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. The specification describes precise outputs for all possible inputs whether valid or invalid.
course_outline.1347587081.txt.gz · Last modified: 2012/09/14 01:44 by jonathan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki