User Tools

Site Tools


eiffel:why:start

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
eiffel:why:start [2021/02/09 16:28]
jonathan [02 Specification Mystery]
eiffel:why:start [2021/02/09 21:20] (current)
jonathan [Why Eiffel?]
Line 8: Line 8:
   * **A Design Language/​Tool**:​ This is where Eiffel the language, method and tool plays a role. It must not only be compared to programming languages such as Java, Golang and Rust. Like these languages, one may use Eiffel to code implementations. But it is also a tool that expresses design above the code level to produce products that can be demonstrated to be safe and fit for purpose. What tools are used in industry to express such designs? There are many (e.g. there is a proliferation of tools for expressing design via UML, statecharts and OCL). If comparisons are to be made -- then it must be to those tools that are used to express designs that are feasible and correct, having a cohesive and thus maintainable architecture. ​     * **A Design Language/​Tool**:​ This is where Eiffel the language, method and tool plays a role. It must not only be compared to programming languages such as Java, Golang and Rust. Like these languages, one may use Eiffel to code implementations. But it is also a tool that expresses design above the code level to produce products that can be demonstrated to be safe and fit for purpose. What tools are used in industry to express such designs? There are many (e.g. there is a proliferation of tools for expressing design via UML, statecharts and OCL). If comparisons are to be made -- then it must be to those tools that are used to express designs that are feasible and correct, having a cohesive and thus maintainable architecture. ​  
  
-  * **Seamlesness**: Bertand Meyer developed the ideas of **Design** by Contract (DbC). He writes as follows. The worldview underlying the Eiffel method is treating the whole process of software development as a continuum; unifying the concepts behind activities such as requirements,​ specification,​ design, implementation,​ verification,​ maintenance and evolution; and working to resolve the remaining differences,​ rather than magnifying them. Anyone who has worked in both specification and programming knows how similar the issues are. Formal specification languages look remarkably like programming languages; to be usable for significant applications they must meet the same challenges: defining a coherent type system, supporting abstraction,​ providing good syntax (clear to human readers and parsable by tools), specifying the semantics, offering modular structures, allowing evolution while ensuring compatibility. The same kinds of ideas, such as an object-oriented structure, help on both sides. Eiffel as a language is the notation that attempts to support this seamless, continuous process, providing tools to express both abstract specifications and detailed implementations+  * **Seamlessness**: Bertand Meyer developed the ideas of **Design** by Contract (DbC). He writes as follows. The worldview underlying the Eiffel method is treating the whole process of software development as a continuum; unifying the concepts behind activities such as requirements,​ specification,​ design, implementation,​ verification,​ maintenance and evolution; and working to resolve the remaining differences,​ rather than magnifying them. Anyone who has worked in both specification and programming knows how similar the issues are. Formal specification languages look remarkably like programming languages; to be usable for significant applications they must meet the same challenges: defining a coherent type system, supporting abstraction,​ providing good syntax (clear to human readers and parsable by tools), specifying the semantics, offering modular structures, allowing evolution while ensuring compatibility. The same kinds of ideas, such as an object-oriented structure, help on both sides. Eiffel as a language is the notation that attempts to support this seamless, continuous process, providing tools to express both abstract specifications and detailed implementations
  
 ---- ----
eiffel/why/start.txt · Last modified: 2021/02/09 21:20 by jonathan