course_outline
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
course_outline [2015/04/08 17:18] – jonathan | course_outline [2015/06/24 17:53] (current) – jonathan | ||
---|---|---|---|
Line 9: | Line 9: | ||
Software designers are experts at developing software products that are correct, robust, efficient and maintainable. Correctness is the ability of software products to perform according to specification. Robustness is the ability of a software system to react appropriately to abnormal conditions. Software is maintainable if it is well-designed according to the principles of abstraction, | Software designers are experts at developing software products that are correct, robust, efficient and maintainable. Correctness is the ability of software products to perform according to specification. Robustness is the ability of a software system to react appropriately to abnormal conditions. Software is maintainable if it is well-designed according to the principles of abstraction, | ||
- | 1. Describe software specifications via Design by Contract, including the use of preconditions, | + | 1. **Specification**: |
- | 2. Implement specifications with designs that are correct, efficient and maintainable. | + | 2. **Construction**: |
- | 2. Develop systematic approaches to organizing, writing, testing and debugging software. | + | 3. **Testing**: |
- | 3. Develop insight into the process of moving from an ambiguous problem statement to a well-designed solution | + | 4. **Analysis**: |
- | 4. Design software using appropriate abstractions, | + | 5. **Architecture**: |
- | 5. Develop facility in the use of an IDE for editing, organizing, writing, debugging, testing and documenting code including the use of BON/UML diagrams for documenting designs. Also the ability to deploy the software in an executable form. | + | 6. **Tools**: |
- | 6. Develop the ability to write precise and concise software documentation that also describes the design decisions and why they were made. | + | 7. **Documentation**: |
+ | ===Commentary=== | ||
+ | A design for a software product is the combination of its specification (to verify its safety and correctness) and a suitable architecture (for maintainability). A design that is not correct cannot be a good design. A design that does not have a suitable modular architecture is not a good design. | ||
+ | |||
+ | ===Eiffel== | ||
+ | Why do we use the Eiffel method in this course? The worldview underlying the Eiffel method is to treat the whole process of software development as a continuum; unifying the concepts behind activities such as requirements, | ||
==== Topics ==== | ==== Topics ==== | ||
Line 144: | Line 149: | ||
=== Slides 16 === | === Slides 16 === | ||
- | Correctness: | + | Correctness: |
[[https:// | [[https:// | ||
lampsort/ | lampsort/ | ||
- | The Eiffel method | + | The Eiffel method |
process of software development as a continuum; unifying | process of software development as a continuum; unifying | ||
the concepts behind activities such as requirements, | the concepts behind activities such as requirements, |
course_outline.1428513484.txt.gz · Last modified: 2015/04/08 17:18 by jonathan