1 / 47

Advanced Topics in Object Technology

Advanced Topics in Object Technology. Bertrand Meyer. Contact. Chair of Software Engineering: http://se.inf.ethz.ch Course assistant: Karine Arnout http://se.inf.ethz.ch/people/arnout. Lecture 1: Introduction, Quality issues, Lifecycle. Agenda for today. Introduction Quality issues

jerrod
Download Presentation

Advanced Topics in Object Technology

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. Advanced Topics in Object Technology Bertrand Meyer ATOT - Lecture 1, 31 March 2003

  2. Contact • Chair of Software Engineering: • http://se.inf.ethz.ch • Course assistant: • Karine Arnout • http://se.inf.ethz.ch/people/arnout ATOT - Lecture 1, 31 March 2003

  3. Lecture 1: Introduction, Quality issues, Lifecycle ATOT - Lecture 1, 31 March 2003

  4. Agenda for today • Introduction • Quality issues • Lifecycle ATOT - Lecture 1, 31 March 2003

  5. Agenda for today • Introduction • Quality issues • Lifecycle ATOT - Lecture 1, 31 March 2003

  6. Introduction • Course objectives • Topics • Technologies • Guest lectures • Textbook • Grading • Practical setup ATOT - Lecture 1, 31 March 2003

  7. Course objectives • Provide you with solid knowledge of: • Object technology principles and methods • The practice of object-oriented analysis, design and implementation • Some open issues • Some recent developments • Two specific technologies ATOT - Lecture 1, 31 March 2003

  8. Topics • Quality issues • Lifecycle • Abstract Data Types • Object model choices • Inheritance techniques • Design patterns • Concurrent object-oriented computation • Language mechanisms • Persistence and O-O database • Project management • Genericity, typing issues, covariance • … ATOT - Lecture 1, 31 March 2003

  9. Technologies • Eiffel • .NET ATOT - Lecture 1, 31 March 2003

  10. Guest lectures (tentative) • Philippe Lahire, University of Nice (France): • Aspect-Oriented Programming (16 April 2003) • … • ETH assistants • Karine Arnout ATOT - Lecture 1, 31 March 2003

  11. Textbook • Bertrand Meyer: Object-Oriented Software Construction, 2nd edition. Prentice Hall, 1997. • Available from Ruth Bürkli, RZ-F8 • Price: CHF 81.00 • Recommended: • Erich Gamma et al.: Design Patterns. Addison-Wesley, 1995. ATOT - Lecture 1, 31 March 2003

  12. Grading • Exam (2h): 40% • 2 July 2003 • Project: 60% • Development of a “Pattern Wizard” • Deadline: 18 June 2003 ATOT - Lecture 1, 31 March 2003

  13. Practical setup • Course page: • http://se.inf.ethz.ch/teaching/ss2003/atot_ss2003.html • Slides: • http://se.inf.ethz.ch/teaching/ss2003/atot_ss2003.html#slides ATOT - Lecture 1, 31 March 2003

  14. Practical setup (cont’d) • Please send an email: • To: atot-course@se.inf.ethz.ch • Subject: ATOT course participant • Content: • Your name • Preferred email address • Status • Diplom student (semester), Ph.D. student, other. • Taking the course for credit or not. • Attach a picture (JPEG, GIF, PNG) if you wish ATOT - Lecture 1, 31 March 2003

  15. Practical setup (cont’d) • If any questions / problems, contact: • Karine Arnout • http://se.inf.ethz.ch/people/arnout • Office: RZ-F7 • Phone: 01 632 47 23 ATOT - Lecture 1, 31 March 2003

  16. Before getting started… • Please fill in the questionnaire: • Anonymous! • You have 10 minutes ATOT - Lecture 1, 31 March 2003

  17. Some words of warning • Steps in reacting to O-O (from the preface to Object-Oriented Software Construction): • “(1) It’s trivial; • (2) It’s wrong; • (3) That’s how I did it all along anyway.” • Beware of the “mOOzak” phenomenon. ATOT - Lecture 1, 31 March 2003

  18. Some words of warning (cont’d) benefit_from_courseis -- Make students succeed. require some_humility do all_exercises ensure OO_mastery_for_fun_and_profit end ATOT - Lecture 1, 31 March 2003

  19. Terminology • I will be strict about terminology: • Endless confusions in the literature and in discussions. • Basic concepts have precise definitions — no justification whatsoever for such confusions. • Object technology is (in part) about bringing rational, scientific principles to software. No excuse for sloppy terminology. • Alternative conventions will be mentioned when necessary. • CHF 5 fine for saying “object” when meaning “class” (after lecture 4) ATOT - Lecture 1, 31 March 2003

  20. Agenda for today • Introduction • Quality issues • Lifecycle ATOT - Lecture 1, 31 March 2003

  21. The goal: Software quality • REUSABILITY • EXTENDIBILITY • RELIABILITY (Correctness + Robustness) • PORTABILITY • EFFICIENCY • INTEGRITY • … • Correctness: • The ability of a software system to perform according to specification, in cases defined by the specification. • Robustness: • The ability of a software system to react in a reasonable manner to cases not covered by the specification. SPECIFICATION Correctness Robustness ATOT - Lecture 1, 31 March 2003

  22. The challenge of software quality • Reliability [correctness + robustness]: • It should be easier to build software that functions properly, and easier to guarantee what it does. • Modularity [reusability + extendibility]: • We should build less software! • Software should be easier to modify. ATOT - Lecture 1, 31 March 2003

  23. Agenda for today • Introduction • Quality issues • Lifecycle ATOT - Lecture 1, 31 March 2003

  24. The waterfall model of the lifecycle FEASIBILITY STUDY REQUIREMENTS ANALYSIS SPECIFICATION GLOBAL DESIGN DETAILED DESIGN IMPLEMENTATION VALIDATION & VERIFICATION DISTRIBUTION PROJECT PROGRESS ATOT - Lecture 1, 31 March 2003

  25. Arguments for the waterfall (After B.W. Boehm: Software engineering economics) • The activities are necessary. • (But: merging of middle activities.) • The order is the right one. ATOT - Lecture 1, 31 March 2003

  26. The waterfall model of the lifecycle FEASIBILITY STUDY REQUIREMENTS ANALYSIS DESIGN AND IMPLEMENTATION SPECIFICATION GLOBAL DESIGN DETAILED DESIGN IMPLEMENTATION VALIDATION & VERIFICATION DISTRIBUTION PROJECT TIME ATOT - Lecture 1, 31 March 2003

  27. Problems with the waterfall • Late appearance of actual code. • Lack of support for requirements change — and more generally for extendibility and reusability. • Lack of support for the maintenance activity (70% of software costs?). • Division of labor hampering Total Quality Management. • Impedance mismatches. • Highly synchronous model. ATOT - Lecture 1, 31 March 2003

  28. Quality control? Analysts Designers Implementers Testers Customers ATOT - Lecture 1, 31 March 2003

  29. Impedance mismatches As Management requested it. As the Project Leader defined it. As Systems designed it. As Programming developed it. As Operations installed it. What the user wanted. (Pre-1970 cartoon; origin unknown) ATOT - Lecture 1, 31 March 2003

  30. The escherfall (Spiral) M.C Escher: Waterval ATOT - Lecture 1, 31 March 2003

  31. Tasks Analysts Designers Implementers Testers ATOT - Lecture 1, 31 March 2003

  32. Seamless development Specification Specification TRANSACTION,PLANE,CUSTOMER,… Example classes ATOT - Lecture 1, 31 March 2003

  33. Seamless development Specification Specification TRANSACTION,PLANE,CUSTOMER,… STATE, USER_COMMAND, … Design Example classes ATOT - Lecture 1, 31 March 2003

  34. Seamless development Specification Specification TRANSACTION,PLANE,CUSTOMER,… STATE, USER, … Design HASH_TABLE, LINKED_LIST… Implementation Example classes ATOT - Lecture 1, 31 March 2003

  35. Seamless development Specification Specification TRANSACTION,PLANE,CUSTOMER,… STATE, USER, … Design HASH_TABLE, LINKED_LIST… Implementation TEST_DRIVER, … V & V Example classes ATOT - Lecture 1, 31 March 2003

  36. Seamless development Specification Specification TRANSACTION,PLANE,CUSTOMER,… STATE, USER, … Design HASH_TABLE, LINKED_LIST… Implementation TEST_DRIVER, … V & V Generalization Example classes ATOT - Lecture 1, 31 March 2003

  37. Analysis classes deferred classVAT inherit TANK feature in_valve, out_valve: VALVE fillis-- Fill the vat. requirein_valve.open out_valve.closed deferredensurein_valve.closed out_valve.closed is_full end empty, is_full, is_empty, gauge, maximum, ... [Other features] ... invariant is_full = (gauge >= 0.97 * maximum)  and(gauge <= 1.03 * maximum) end Precondition -- i.e. specified only. -- not implemented. Postcondition Class invariant ATOT - Lecture 1, 31 March 2003

  38. Reversibility Specification Specification Design Implementation V & V Generalization ATOT - Lecture 1, 31 March 2003

  39. Seamless development • Use consistent notation from analysis to design, implementation and maintenance. • Advantages: • Smooth process. Avoids gaps (improves productivity, reliability). • Directmapping from problem to solution, i.e. from software system to external model. • Better responsiveness to customer requests. • Consistency, ease of communication. • Better interaction between users, managers and developers. ATOT - Lecture 1, 31 March 2003

  40. Single model principle • Use a single base for everything: analysis, design, implementation, documentation... • Use tools to extract the appropriate views. ATOT - Lecture 1, 31 March 2003

  41. The cluster model Feasibility study Division into clusters Cluster 1 Specification Specification Cluster 2 Design Specification Specification Implementation Design V & V Implementation Generalization Cluster n V & V Specification Specification Generalization Design Implementation V & V Generalization PROJECT TIME ATOT - Lecture 1, 31 March 2003

  42. The cluster model: extreme variants (1) Feasibility study Division into clusters Cluster 1 Cluster 4 Cluster 2 Cluster 3 Cluster 5 Specification Specification Specification Specification Specification Specification Specification Specification Specification Specification Design Design Design Design Design Implementation Implementation Implementation Implementation Implementation V & V V & V V & V V & V V & V Generalization Generalization Generalization Generalization Generalization “Clusterfall” ATOT - Lecture 1, 31 March 2003

  43. The cluster model: extreme variants (2) Feasibility study Division into clusters Cluster 1 Cluster 2 Cluster n The Trickle model ATOT - Lecture 1, 31 March 2003

  44. Quality goals: the Osmond curves Other qualities DESIRABLE Debugging COMMON Functionality Envisaged Early releases ATOT - Lecture 1, 31 March 2003

  45. Cluster development • Bottom-up development: from the most general clusters (providing utility functions) to the most application-specific ones. • Flexible scheduling of clusters – depending on resources, team experience, customer and management demands. Waterfall is one extreme; “trickle” is the other. • Sub-lifecycle sequencing: specification, design and implementation, validation, generalization. • Relations between clusters: each cluster may be a client of lower-level ones. ATOT - Lecture 1, 31 March 2003

  46. Reading assignment • For Monday 7 April 2003: OOSC2 chapters • Chapter 1: Software quality • Chapter 28: The software construction process ATOT - Lecture 1, 31 March 2003

  47. End of lecture 1 ATOT - Lecture 1, 31 March 2003

More Related