demo:simple
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
demo:simple [2020/04/23 05:24] – created jonathan | demo:simple [2020/04/29 18:18] (current) – jonathan | ||
---|---|---|---|
Line 2: | Line 2: | ||
====== EiffelCode Simple Mode Demo (Design by Contract) ====== | ====== EiffelCode Simple Mode Demo (Design by Contract) ====== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | |||
+ | Below is a Demo of a Capstone Project by two students: Webapp for compiling/ | ||
< | < | ||
- | <iframe width=" | + | <iframe width=" |
- | src=" | + | |
- | frameborder=" | + | |
- | encrypted-media; | + | |
- | allowfullscreen> | + | |
- | </ | + | |
</ | </ | ||
+ | |||
+ | The above video demos the simple mode, but there is also a project and tutorial mode. It is more challenging to develop a robust web-app of this kind than a desktop application. | ||
+ | |||
+ | See [[: | ||
+ | |||
+ | ===== Design by Contract ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 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). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | 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.1587619484.txt.gz · Last modified: by jonathan