User Tools

Site Tools


demo:simple

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
demo:simple [2020/04/23 21:17] jonathandemo:simple [2020/04/29 18:18] (current) jonathan
Line 4: Line 4:
  
   * [[https://youtu.be/eCVraeBKgiQ|Simple Mode Video]]   * [[https://youtu.be/eCVraeBKgiQ|Simple Mode Video]]
 +  * [[http://code.eecs.yorku.ca|Access the IDE in a browwser]] (EECS or Passport York Login required)
  
 Below is a Demo of a Capstone Project by two students: Webapp for compiling/executing Eiffel programs with a selection of coding challenges illustrating Design by Contract. Below is a Demo of a Capstone Project by two students: Webapp for compiling/executing Eiffel programs with a selection of coding challenges illustrating Design by Contract.
Line 15: Line 16:
 See [[:student:demo|More details of the student capstone features and design]].  See [[:student:demo|More details of the student capstone features and design]]. 
  
-{{:demo:sqrt.png?720|}}+===== Design by Contract =====
  
-{{:demo:contract.png?720|}}+In Design by Contract (developed by Bertrand Meyer), a software component has a mathematical **specification** that describes **what** the the component must do (free of implementation detail) and an **implementation** (one of possibly many) that describes **how** the specification is implemented.  
 + 
 +For example, the specification of a  a square root function is described by a precondition (keyword **require**) and a postcondition (keyword **ensure**) as shown below.  
 + 
 +{{:demo:sqrt.png?600|}} 
 + 
 +There are of course many different implementations that might satisfy this specification.  
 + 
 +A **contract** imposes obligations and benefits on the **client** (a component that uses the square root function) and the **supplier** (who must provide a body for the square root function). 
 + 
 +{{:demo:contract.png?600|}} 
 + 
 +A precondition failure is the fault of the client of the component. A postcondition failure is the fault of the supplier of the failure.  
 + 
 +Runtime assertion checking (in Eiffel) is used to check that the given implementation satisfies the specification. 
demo/simple.1587676659.txt.gz · Last modified: 2020/04/23 21:17 by jonathan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki