User Tools

Site Tools


eiffel:why

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
eiffel:why [2020/05/08 23:10]
jonathan [Design by Contract]
eiffel:why [2020/05/13 02:11] (current)
jonathan [Example of a Top Level BON Class Diagram from an SDD]
Line 106: Line 106:
 The double green arrows represent client-supplier relations (associations) between classes, and the single red arrows represent inheritance. ​ The double green arrows represent client-supplier relations (associations) between classes, and the single red arrows represent inheritance. ​
  
 +==== Example of a Top Level BON Class Diagram from an SDD ==== 
  
 +The "​capstone"​ of the course is a project (usually with a team of 2 students) in two phases (in the second phase, more features are added). Below is one of the BON class diagrams produced by a team (taken from their software design document). This 3rd-year course is usually the first time most students design software with many classes (typically 15-20 classes are needed for a modular design).
 +
 +
 +
 +{{:​eiffel:​why:​3311-draw.io.png?​740|by 3311 students Jinho Hwang and Ato Koomson, with their permission}}
 +
 +
 +===== Specifications in industrial use =====
 +
 +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 the video below for **Specifications in Industry** at Amazon, Google and Facebook. ​
 +
 +<​HTML>​
 +<iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​GMQMzk3DZug"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; encrypted-media;​ gyroscope; picture-in-picture"​ allowfullscreen></​iframe>​
 +</​HTML>​
eiffel/why.1588979459.txt.gz · Last modified: 2020/05/08 23:10 by jonathan