1 / 52

Course of Software Engineering II a.a. 2001/2002

Learn about Eiffel methodology, software process, clusters, and project management in Eiffel. Explore principles, design by contract, and case studies in EiffelStudio projects.

lindapalmer
Download Presentation

Course of Software Engineering II a.a. 2001/2002

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Talking about Eiffel Course of Software Engineering II a.a. 2001/2002 Massimo Ruffa

  2. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  3. Bertrand Meyer • hold the chair of Software Engineering at ETH, the Swiss Federal Institute of Technology in Zürich • adjunct professor at Monash University, Melbourne, Australia (school of Computer Science and Software Engineering, CSSE) since 1998 • Chairman of the TOOLS Conference Series ( Technology of Object-Oriented Languages and Systems ) • CTOat Interactive Software Engineering (ISE) • ISE co-founder in 1985 ( is best-known for introducing the Eiffel method, language, and ISE Eiffel software development environment )

  4. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  5. EiffelStudio 1/2 • EiffelStudio is the central tool of ISE Eiffel, letting you • Design • Develop • Debug • Document • Measure • Maintain • Revise • Expand systems using the full power of object technology and Design by Contract • is available for the major industry platforms • it is at its best when used as a combination technology to reuse software components written in various languages • 100000 licenses all over the world

  6. Some ISE Eiffel Projects EuroDisney S.C.A.Marne-la-Vallee (France) Simulation of park's attractions National Defense Research Establishment Database query language evaluator; analysis and simulation system for hostile submarine activity Telesoft Rome (Italy) Telecommunications applications, networking Lucent Technologies Middletown, New Jersey (USA) Telecommunications Hewlett-Packard, printer division Marina del Rey (California) Embedded systems CALFP Bank (Credit Agricole Lazard Financial Products Bank)London, New York, Paris, Singapore, Tokyo Futures trading, pricing, bank operations EiffelStudio 2/2

  7. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  8. EIFFEL • covers the whole spectrum of software development • Analysis and specification • Design and architecture • Implementation • Maintenance • Documentation • method and language for the efficient description and development of quality systems • Reliability • Reusability • Extendibility • Portability • Maintainability

  9. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  10. Principles : Cluster, basic organizational unit seamlessness and reversibility generalization for reusability Constant availability ( current demo ) SOFTWARE PROCESS IN EIFFEL • supports the entire lifecycle • radically different from the traditional Waterfallmodeland from its more recent variants such as the spiral model or rapid prototyping in the author’s mind these are that fit best with the language and the rest of the method, even if some highly competent and successful Eiffel developers may disagree with some of them and use a different process model.

  11. group of related classes or, recursively, of related clusters natural unit for single-developer mastery: each cluster should be managed by one person and one person should be able to understand allof it Each of the individual cluster lifecycles is based on a continuous progression of activities, from the more abstract to the more implementation-oriented in a process of accretion, where each step enrichethe results of the previous one The principle is here to treat the software as a single product which will be repeatedly refined, extended and improved Eiffel language supports this view by providing high-level notations that can be used throughout the lifecycle ( BON ) BACK BACK SW PROCESS in EIFFEL 2/11 CLUSTER

  12. Analisys Design Implementation V & V * Generalization *Validation & Verification Time SW PROCESS in EIFFEL 3/11 INDIVIDUAL CLUSTER LIFECYCLE identify the classes (data abstractions) of the cluster and their major features and constraints (yielding invariant clauses) define the architecture of the classes and their relations finalize the classes, with all details added check that the cluster’s classes perform satisfactorily (through static examination, testing and other techniques) prepare for reuse

  13. assumes that the system is divided into a number of subsystems or clusters keeps from the Waterfall a sequential approach to the development of each cluster ( without the gaps ), but promotes concurrent engineering for the overall process using information hiding Design by Contract clearly defined interfaces of clusters SW PROCESS in EIFFEL 4/11 CLUSTER MODEL

  14. Cluster 1 Cluster 2 Cluster n Concurrent Engineering Project Time SW PROCESS in EIFFEL 5/11 Feasibility Study The Cluster Model : Sequential and Concurrent Engineering Division into Cluster

  15. information hiding properties of the object-oriented method make possible concurrent engineering thanks to data abstraction it is possible for a cluster to proceed even if the clusters on which it depends are not yet finished, it suffices that the analisysphase of the needed classes be complete clusters may depend on each other rotating the preceding figure we emphasize the software layers corresponding to the various clusters design and implementation of each cluster depend only on the analisys of clusters below it, not on their own design and implementation SW PROCESS in EIFFEL 6/11 PROJECT CLUSTER AS A SET of ABSTRACTION LAYERS

  16. I V & V A D G More application-specific More general I A D G V & V Client Dependecy I A D V & V G Project Time SW PROCESS in EIFFEL 7/11 Cluster n Cluster 2 Cluster 1

  17. has the responsibility for finding clusters is in charge of deciding when to start a new cluster a new task can advances or delay various clusters and steps through dynamic reallocation of resources by the task of Integration can avoid divergence between the current states of the various clusters’ development ensures that at every stage after start-up there will be a current demo SW PROCESS in EIFFEL 8/11 PROJECT LEADER and CLUSTER MODEL

  18. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  19. defines a single framework for analysis, design, implementation and maintenance instead of erecting barriers between successive lifecycle steps Reversibility: wisdom sometimes blooms late in the season BACK BACK SW PROCESS in EIFFEL 9/11 SEAMLESSNESS and REVERSIBILITY

  20. Analisys Design Implementation V & V * Generalization *Validation & Verification Time SW PROCESS in EIFFEL 10/11

  21. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  22. has no equivalent in traditional approaches Its goal is to polish the classes so as to turn them into potentially reusable software components may involve the following activities Abstracting Factoring Adding assertions ( postconditions and invariant clauses ) Adding rescueclauses to handle exceptions Adding documentation BACK BACK SW PROCESS in EIFFEL 11/11 GENERALIZATION

  23. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  24. A system is made of a number of cooperating components. Design by Contract states that their cooperation should be based on precise specifications — contracts— describing each party’s expectations and guarantees Contract Form is the fundamental tool for using supplier classes in the Eiffel method. It enables client authors to reuse software without having to read their source code, this is a crucial elements requirement in large-scale industrial developments DESIGN by CONTRACT

  25. DESIGN by CONTRACT 2/6 • Eiffel directly implements this idea, which • enhance software reliability • provide a sound basis for software • specification • documentation ( Assertions - Reusable Components ) • testing, debugging and quality assurance • exception handling • inheritance • The underlying theory, the centerpiece of the Eiffel method, views software construction as based on contracts between clients (callers) and suppliers (routines), relying on mutual obligations and benefits made explicit by the assertions

  26. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  27. DESIGN by CONTRACT 3/6 • are logical properties of object states • method and notation support writing the assertions to express the terms of the contracts • syntactically, the assertions of our notation will simply be boolean expressions, with a few extensions ( old in postcondition ) • assertions generally cover correctness • mathematically, the closest notion is that of predicate, although the assertion language that we shall use has only part of the power of full first-order predicate calculus • can express many higher-level properties through function calls,although the functions involved must be simple and of unimpeachable correctness

  28. assertions include preconditions, postconditions, class invariants and also appear in “check” instructions precondition binds the callers expresses the constraints under which a routine will function properly, appears in the official documentation postcondition binds the class/routine expresses properties of the state resulting from a routine’s execution invariant a need for expressing global properties of the instances of a class, which must be preserved by all routines capturing the deeper semantic properties and integrity constraints characterizing a class DESIGN by CONTRACT 4/6

  29. with preconditions, postconditions and invariants, we can now define precisely what it means for a class to be correct this provides a basis against which to assess correctness: the class is correct if and only if its implementation, as given by the routine bodies, is consistent with the preconditions, postconditions and invariant a class, like any other software element, is correct or incorrect not by itself but with respect to a specification. By introducing preconditions, postconditions and invariants we have given ourselves a way to include some of the specification in the class text itself DESIGN by CONTRACT 5/6 CORRECTNESS

  30. instruction is prescriptive describes the “how” part of the implementation imperative assertion is descriptive describes the “what” an element of specification is applicative DESIGN by CONTRACT 6/6

  31. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  32. Analisys Design Implementation Generalization V & V RUP vs EIFFEL Design by Contract Integration & Current Demo RUPAcknowledgment

  33. Bertrand Meyer EiffelStudio Eiffel Software Process in Eiffel Cluster and Cluster Model What is a cluster What is the Cluster Model Project Leader and Cluster Model Seamlessness and Reversibility Generalization Design by Contract Contract Form Assertion Precondition Postcondition Invariant RUP vs EIFFEL BON Bibliography

  34. Business Object Notation • The original designer of BON was Jean-Marc Nerson of SOL (Paris) • design was completed with the collaboration of Kim Waldén of Enea Data (Stockholm) • is a method and graphical notation for high-level object-oriented analysis and design • static part of the model focuses • Classes, interfaces, their interrelationships, and their • clusters ( denoting a group of logically related classes ) • dynamic part describes • objects • object interactions • scenarios for message sequencing

  35. BON 2/4 • formalisms include • textual notation • not have to be directly compilable • use extensions in the area of assertions • delta a • forall • exists • member_of • tabular form : • tabular class chart ( convenient to summarize the properties of a class compactly ) • graphical diagrams

  36. BON 3/4 Static Diagrams

  37. BON 4/4 Dinamic Diagrams

  38. Object Oriented Software Construction ( second edition) Published by Prentice Hallisbn 0-13-629155-4 : all about Eiffel method, Ise Eiffel, Bon Method/Notation Bibliography ISE web site www.eiffel.com : all information about Meyer, Ise Eiffel, Eiffel Method An Eiffel Tutorial ISE Technical Report TR-EI-66/TU : information about Eiffel method and notation Invitation to Eiffel ISE Technical Report TR-EI-67/IV : information about Ise Eiffel EiffelStudio: A Guided Tour ISE Technical Report TR-EI-68/GT. (Replaces TR-EI-38/EB.) : information about Ise Eiffel scopes and usage Meyer’ s Personal web page www.inf.ethz.ch/personal/meyer Meyer : the man and his history Book Book Web Link Web Link

  39. BACK BACK Calcolo dei Predicati • Diversi alfabeti • Simboli di costanti • Simboli di variabile • Simboli di funzione • Simboli di predicato • Una frml f appartenente al CdP è • t1 = t2 (t1, t2 sono termini) • p(t1,…,tn) (p è predicato ; t1, t2 sono termini) • frml1ANDfrml2 (OR,=>,sse,) • NOT frml1 • per ogni x . frml • esiste x . Frml • Un termine è • Costante • Variabile • F(t1,…,tn) (F funzione, t1,..,tn termine)

  40. is a Software Engineering Process is a configurableprocess It provides disciplined approach to assigning tasks and responsibilities within a development organization Its goal : is to ensure the production of high-quality software that meets the needs of its end-users, within a predictable schedule and budget is a guide for how to effectively use the Unified Modeling Language UML is a industry-standard language that allows us to clearly communicate requirements, architectures and designs RUP and UML 1/7 RUP and UML

  41. horizontal axis represents time and shows the dynamic aspect of the process as it is enacted, and it is expressed in terms of Cycles Phases Iterations Milestones vertical axis represents the static aspect of the process: how it is described in terms of activities, artifacts, workers and workflows RUP and UML 2/7

  42. The software lifecycle is broken into cycles Each cycle working on a new generation of the product RUP divides one development cycle in four consecutive phases Inception phase Elaboration phase Construction phase Transition phase Each phase can be broken down into iterations An iterationis a complete development loop resulting in a release (internal or external) of an executable product, a subset of the final product under development, which grows incrementally from iteration to iteration to become the final system RUP and UML 3/7

  43. You establish the business case for the system success criteria risk assessment estimate of the resources needed phase plan showing dates of major milestones delimit the project scope identify all external entities (with which the system will interact actors) define the nature of this interaction at a high-level dentifying all use cases RUP and UML 4/7 Inception phase

  44. analyze the problem domain establish a sound architectural foundation develop the project plan and eliminate the highest risk elements of the project RUP and UML 5/7 Elaboration phase

  45. remaining components and application features are developed and integrated into the product, and all features are thoroughly tested Is a manufacturing process where emphasis is placed on managing resources controlling operations to optimize Costs Schedules Quality Is a transition from the development of intellectual property during inception and elaboration, to the development of deployable products during construction and transition RUP and UML 6/7 Construction phase

  46. delivering the software product to the user community prepare new releases correct some problems finish the features that were postponed BACK BACK RUP and UML 7/7 Transition phase

  47. Analisys understand the problems that the eventual software system should solve prompt relevant questions and provide a basis for answering questions about specific properties of the problem and system decide what the system should do and should not do ascertain that the system will satisfy the needs of its users provide a basis for the development of the system Specification elaborate all analisys results using Design by Contract every system component can be accompanied by a precise specification of its abstract properties BACK BACK EIFFEL 1/3 Analisys and Specification

  48. Analisys and Specification where Eiffel can be used as a purely descriptive tool to analyze and document the structure and properties of complex systems (even non-software systems) Design and Architecture where Eiffel can be used to build solid, flexible system structures Implementation where Eiffel provides practical software solutions with an efficiency comparable to solutions based on such traditional approaches as C and Fortran Maintenance where Eiffel helps thanks to the architectural flexibility of the resulting systems Documentation where Eiffel permits automatic generation of documentation, textual and graphical, from the software itself, as a partial substitute for separately developed and maintained software documentation BACK BACK EIFFEL 2/3

  49. Reliability producing bug-free systems, which perform as expected Reusability making it possible to develop systems from prepackaged, high-quality components, and to transform software elements into such reusable components for future reuse Extendibility developing software that is truly soft — easy to adapt to the inevitable and frequent changes of requirements and other constraints Portability freeing developers from machine and operating system peculiarities, and enabling them to produce software that will run on many different platforms Maintainability yielding software that is clear, readable, well structured, and easy to continue enhancing and adapting BACK BACK EIFFEL 3/3

  50. BACK BACK SW PROCESS in EIFFEL Requirements Analisys Waterfall Model with iteration Problem Val Requirements Specification Design Val & Ver Implementation Design Specification Val & Ver Code Testing Working System Operation & Maintenance Val & Ver Val : Validation Ver : Verification

More Related