lectures
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
lectures [2015/06/04 03:52] – jackie | lectures [2015/08/13 03:39] (current) – jackie | ||
---|---|---|---|
Line 22: | Line 22: | ||
* Two video introductions to Design by Contract [[https:// | * Two video introductions to Design by Contract [[https:// | ||
* A short video introduction to Eiffel Studio ([[https:// | * A short video introduction to Eiffel Studio ([[https:// | ||
- | |||
- | === Topics === | ||
- | * Requirements vs. Design vs. Implementation | ||
- | * What is design? | ||
- | * Architecture | ||
- | * Specification of behaviour | ||
- | * What are the criteria of good design? | ||
- | * correct | ||
- | * efficient | ||
- | * maintainable | ||
- | * modular | ||
- | * stable interface | ||
- | * **information hiding** | ||
- | * Design by Contract | ||
- | * precondition, | ||
- | * the precondition of a feature is the obligation of its client but benefits of its supplier | ||
- | * the postcondition of a feature is the benefits of its client but obligation of its supplier | ||
- | * Logic | ||
- | * the notion that a predicate is weaker or stronger than another | ||
- | * a precondition can be strengthened to disallow input values that will cause a class invariant violation upon executing the command (e.g., withdraw) | ||
- | * a satisfactory precondition is derived from the class invariant | ||
- | * a wrong implementation may pass through a postcondition that is too weak | ||
- | * a postcondition can be strengthened to disallow improper updates on the state | ||
- | * Testing | ||
- | * not to prove correctness, | ||
- | * partition input domain into equivalence classes | ||
- | * Eiffel Studio | ||
- | * create an empty project | ||
- | * add the espec (Eiffel Specification) testing library | ||
- | * at runtime, | ||
- | * before a feature' | ||
- | * then the implementation body is executed; | ||
- | * upon its termination, | ||
==== Week 2 (May 27) ==== | ==== Week 2 (May 27) ==== | ||
Line 79: | Line 46: | ||
* You should try to practice your drawing by using Visio to reproduce these architectural diagrams. | * You should try to practice your drawing by using Visio to reproduce these architectural diagrams. | ||
+ | ==== Week 4 (June 10) ==== | ||
+ | === Slides and Notes === | ||
+ | * Writing Complete Contracts [[https:// | ||
+ | * [[https:// | ||
+ | * Syntax: Contracts vs. Implementations [[https:// | ||
+ | * Inheritance and Polymorphism [[https:// | ||
+ | |||
+ | ==== Week 8 (July 8) ==== | ||
+ | |||
+ | === Slides and Notes === | ||
+ | * Eiffel Testing Framework (ETF) [[https:// | ||
+ | |||
+ | |||
+ | ==== Week 9 (July 15) ==== | ||
+ | |||
+ | === Slides and Notes === | ||
+ | * Composite Pattern [[https:// | ||
+ | * [[https:// | ||
+ | * Visitor Pattern [[https:// | ||
+ | |||
+ | ==== Week 12 (August 5) ==== | ||
+ | |||
+ | === Slides and Notes === | ||
+ | * DbC and Loops (up to slide 21) [[https:// | ||
+ | * The [[https:// | ||
+ | * You can also find details about the Hoare triple here. | ||
+ | |||
+ | ==== Week 13 (August 12) ==== | ||
+ | |||
+ | === Slides and Notes === | ||
+ | * DbC and Loops (from Slide 22 to the end) [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |
lectures.1433389979.txt.gz · Last modified: 2015/06/04 03:52 by jackie