User Tools

Site Tools


course_outline

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
course_outline [2012/09/14 01:46] jonathancourse_outline [2012/11/28 19:55] (current) jonathan
Line 13: Line 13:
  
 ===== Tabular expressions ===== ===== 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 provide complete and disjoint specifications
-  * Tabular expressions help to develop test cases+  * Tabular expressions help to develop test cases. They cover all the corner cases. 
 +  * Why will tabular expressions help developers produce better code? 
 +  * What does it mean for a tabular expression to be well-defined? 
 +  * See slides 03 (Parnas function tables/tabular expressions) and 04 (birthday book example) for examples of tabular expressions.
   *** 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.   *** 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 and R/E-descriptions =====
   * Context diagrams. Why do we need them? What are monitored and what are controlled variables?   * Context diagrams. Why do we need them? What are monitored and what are controlled variables?
 +  * What are the phenomena of the environment? What are phenomena of the software machines? Can you give examples?
   * What is the difference between a R-description and an E-description? Why do we need these descriptions?   * 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.   * See 04 slides on leap years, date validation and birthday book for examples of context diagrams and R/E descriptions.
 +  * To code we need requirements To write requirements we need domain knowledge. What is domain knowledge?
   * **Required reading**: How to write requirements (Telelogic), on SVN. This important document will help you to produce precise unambiguous atomic 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 =====+===== MSR - Module specifications for reactive and transformational systems ===== 
 + 
 +MSR uses a combination of ideas from Z, B, Event-B and Parnas function tables for the mathematical specification of systems. The suggested text uses Z for part of the course. 
   * What are specification modules? How do they differ from design modules or code 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.   * Review of predicate logic, set theory, functions (total, partial, injective, surjective, bijective), relations, sequences, bags.
Line 39: Line 46:
   * 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. The specification can be used to predict the future behaviour of any software machine that implements the specification.   * 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. The specification can be used to predict the future behaviour of any software machine that implements the specification.
  
 +===== Requirements for the Dell Keyboard =====
 +
 +We discuss the paper by Baber, Parnas and Vilkomer (it is in Slides/SVN).
 +
 +Abstract: We describe our experience applying tabular
 +mathematical approaches to software specifications.
 +Our purpose is to show alternative approaches to
 +writing tabular specifications and to help practitioners
 +who want to apply such methods by allowing
 +them to pick the best one for their problem.
 +The object for the case study is software used by
 +Dell Products for testing the functionality of the keyboards
 +on notebook computers. Starting from informal
 +documents, we developed a variety of tabular representations
 +of finite state machine specifications and
 +tabular trace specifications. We found that the discipline
 +required by these methods raised issues that had
 +never been considered and resulted in documents that
 +were both more complete and much clearer. The various
 +tabular representations are compared from a
 +user’s point of view, i.e., clarity, consistency, unambiguity,
 +completeness, suitability, etc
 +Keywords: software, tabular specifications, finite
 +state machine, traces, trace specifications. 
 +
 +Required: Watch a [[http://www.multimedia.ethz.ch/conferences/2010/fose/01_monday|video]] recording of Precise Documentation: The Key to Better Software, David Lorge Parnas. The slides from this talk are on the SVN.
 +
 +===== UML for Requirements =====
 +
 +The suggested text discusses how UML models are used in requirements engineering. We discuss use cases/diagrams, class diagrams, statecharts (XOR and parallel composition) and sequence charts. UML does not have the formality of MSR; we discuss the pros and cons. We also distinguish between the use of UML in design as opposed to requirements. See slides and UML resources on this website. See the fully worked out requirements example involving the train transportation system on the SVN.
 +
 +===== Writing requirements for reactive/real-time systems =====
 +  * Difference between transformational and reactive systems
 +  * Safety critical systems are usually reactive
 +  * Difference between proof systems and model checking
 +  * Timed Transition Models
 +    * types, constants and variables
 +    * module templates with in, out and share variables
 +    * module instants 
 +    * module compositions
 +    * model-checking and reachability graphs
 +    * temporal logic specifications
 +    * safety properties and liveness properties
 +    * discussion of the the bridge controller
 +
 +===== General Considerations =====
 +
 +This is covered in the slides in the SVN: Readings/ReqIntro-Alexander.pdf (based on the text in Steacie: Discovering Requirements (Alexander et.al). Stakeholders. Goals vs. Requirements. Context, interaction and scope. Scenarios. Priorities. Hazard/risk analysis. In Scenarios we reviewed how to use Use Cases and the include and extend relations.
course_outline.1347587195.txt.gz · Last modified: 2012/09/14 01:46 by jonathan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki