lectures
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| lectures [2015/06/11 03:40] – 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 87: | Line 54: | ||
| * Inheritance and Polymorphism [[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.1433994035.txt.gz · Last modified: by jackie
