This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
eiffel:why:petition:start [2020/05/11 20:07] jonathan [Learning Design by Contract in Eiffel] |
eiffel:why:petition:start [2020/05/12 17:16] (current) jonathan [Learning Design by Contract in Eiffel] |
||
---|---|---|---|
Line 168: | Line 168: | ||
The petition also claims that "other types of software design is not explored in depth", but this is not so as mentioned earlier and described in Design Principles mentioned in [[http://seldoc.eecs.yorku.ca/doku.php/eiffel/why#design_principles_covered_in_the_course|why eiffel: Fig 1]]. Many other design principles are covered in depth and applied in many design patterns (covered throughout the course in depth). | The petition also claims that "other types of software design is not explored in depth", but this is not so as mentioned earlier and described in Design Principles mentioned in [[http://seldoc.eecs.yorku.ca/doku.php/eiffel/why#design_principles_covered_in_the_course|why eiffel: Fig 1]]. Many other design principles are covered in depth and applied in many design patterns (covered throughout the course in depth). | ||
- | Ada and Eiffel provide native language support for Design by Contract, but the principle that **specifications** are integral to design carries over to designing in any language. The Unified Modeling Language (UML) is the //de facto// modelling language in software engineering thus supports Design by Contract in the form of OCL (Object Constraint Language). For other methods of specification, see [[https://youtu.be/-4Yp3j_jk8Q|Video: Thinking Above the Code]], | + | Ada and Eiffel provide native language support for Design by Contract, but the principle that **specifications** are integral to design carries over to designing in any language. The Unified Modeling Language (UML) is the //de facto// modelling language in software engineering thus supports Design by Contract in the form of OCL (Object Constraint Language). For other methods of specification, see [[https://youtu.be/-4Yp3j_jk8Q|Video: Thinking Above the Code]] and [[https://youtu.be/GMQMzk3DZug|Specifications in Industry]] at Amazon, Google and Facebook. |
==== Learning Software Design in Eiffel ==== | ==== Learning Software Design in Eiffel ==== | ||
Line 174: | Line 174: | ||
> 6. In summary, the course does not focus on Software Design, in contradiction with its name. Instead, it focuses on gaining knowledge of the semantics of proprietary, obsolete tools and heavy software testing (again - with students that do not know proper test plans and testing patterns). | > 6. In summary, the course does not focus on Software Design, in contradiction with its name. Instead, it focuses on gaining knowledge of the semantics of proprietary, obsolete tools and heavy software testing (again - with students that do not know proper test plans and testing patterns). | ||
- | What we describe above justifies that the use of the Eiffel language, method and tool which allows us to have a clear distinction between implementation and specification, and we are thus able to focus on design. The fact that a new language is used should not be a concern, given the amount of resource, as well as scheduled lab hours and TA/instrutor office hours. | ||
- | As mentioned above, student evaluation in the past have been quite positive. | + | In summary, the course focuses on many foundational aspects of design, and a sequence of labs and a significant project allow students to exercise these various design principles. As mentioned above, student evaluation in the past have been relatively positive. |