====== Course Outline ====== ===== Week 1 January 3===== **Tuesday**: Covered 01 slides (mathematical models) and 02 slides (building in software reliability). **Thursday**: What does a requirements document look like? There are many topics that will span many lectures. 04-Requirements slides. The notion of atomic requirements. What makes a good atomic requirement? The difference between R-statements (in the optative mood) and E-statements about the environment (in the indicative mood). Mathematical models: contexts for the static part and machines for the dynamic par. A simple bank as an example. **Required reading**: How to write requirements (see SVN) ===== Week 2 January 9===== **Tuesday**: Discuss Assignment 1. Complete Requirements/Mathematical Model. **Thursday**: Discuss in detail the requirements document for the the return on investment calculator (this may take at least two weeks). This is in preparation for a large assignnment to be handed out next week. Slides on tabular expressions (due to David Parnas). Can check input for completeness and disjointness. **Required reading**: //A rational design process: How and why to fake it//, Parnas and Clements [[http://dl.acm.org/citation.cfm?id=9800|here]] (available online via the library). ===== Week 3 January 16===== Discussion of Assignment 1 - right margin justification. Discussed ambiguities and incompleteness in the specification. R-descriptions versus E-descriptions. ROI RD: Start at section 3, Dictionary. Mathematical Model for ROI. **Required Reading**: //Four Dark Corners of Requirements Engineering//, Zave and Jacskon. See SVN ===== Rest of the syllabus===== * Function tables (Parnas tables). Dell keyboard. Completeness, Disjointness and well-definedness. * Unit testing tools for Java, C# and other languages. The V-diagram, Validation and Verification. * Parnas on documentation and Jackson on Sofwtare Engineering. * Structure of a requirements document. Context diagram. Atomic E and R-descriptions. Mathematical model. Links between atomic descriptions and Mathematical model. Acceptance tests. Tracability matrix. Developing acceptance tests from function tables as well as atomic descriptions. * Requirements for safety critical systems. Fairness. Temporal logic. Modelchecking.