User Tools

Site Tools


course_outline

This is an old revision of the document!


Course Outline

2011F outline

Guide to topics discussed in class:

Introduction

  • Slides 01: Introduction to requirements engineering. Solving the right problem (the one our customer needs to solve). Why “waste time” doing requirements? (i.e. the importance of RE).
  • Required readings: Chapter 1 of suggested text (AvL09)
  • Slides 02: Problem Domain vs. Solution Domain. Scope of RE. Requirements are about phenomena external to teh machine. E-descriptions, R-descriptions, S-descriptions, M-descriptions. Difference between a requirements and a Specification. Dependability/Certification argument. System-as-is vs. System-to-be. WHY, WHAT, WHO? Parnas 4-variable model.
  • Do the specification exercise 1 (date validation) in the slides

Tabular expressions

  • See 03 (Parnas function tables/tabular expressions) and 04 (birthday book example) slides
  • Tabular expressions help to provide complete and disjoint specifications
  • Tabular expressions help to develop test cases
  • Required readings: Slides 1-15 of ReqIntro-Alexander.pdf (in SVN, and text on reserve in Steacie). These slides will introduce you to “soft” topics in RE.

Context diagrams and R/E-descriptions

  • Context diagrams. Why do we need them? What are monitored and what are controlled variables?
  • What is the difference between a R-description and an E-description? Why do we need these descriptions?
  • See 04 slides on leap years, date validation and birthday book for examples of context diagrams and R/E descriptions.
  • Required reading: How to write requirements (Telelogic), on SVN. This important document will help you to produce precise unambiguous atomic R/E descriptions.

Mathematical specification modules

  • What are specification modules? How do they differ from design modules or code modules?
  • Review of predicate logic, set theory, functions (total, partial, injective, surjective, bijective), relations, sequences, bags.
  • What are carrier sets, constants, variables, queries and invariants in specification modules?
  • What are actions, events and procedures in specification modules?
  • When do we use an event and when to use a procedure in a specification?
  • What is a pre-state and what is a post-state? When do we use unprimed variables and when do we use primed variables?
  • What is the difference between a procedure precondition and an event guard?
  • What is an action predicate?
  • What is the proof rule that ensure that actions (events or procedures) maintain the specification module invariant?
  • What are parameterized carrier sets? What is an injective constructor for carrier sets?
  • Required readings: slides 04 for review and examples of the above using leap years, date validation and the birthday book example?
  • Note that a precise and complete mathematical specification of the birthday book (specification modules and tabular expression) is less than two pages.
course_outline.1347587007.txt.gz · Last modified: 2012/09/14 01:43 by jonathan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki