Chair of Software Engineering ATOT - Lecture 1, 31 March 2003 1 Advanced Topics in Object Technology Bertrand Meyer.

Slides:



Advertisements
Similar presentations
Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
Advertisements

Course Overview CSE8313 Object-Oriented Analysis and Design Spring 2015 Dr. LiGuo Huang Dept. of Computer Science and Engineering Southern Methodist University.
Object-Oriented Software Development CS 3331 Fall 2009.
Software Project Management
CS3773 Software Engineering Lecture 01 Introduction.
Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997.
CMPT 225 Data Structures and Programming. Course information Lecturer: Jan Manuch (Jano), TASC TAs: Osama Saleh,
Chapter 6: Design of Expert Systems
Chair of Software Engineering ATOT - Lecture 10, 5 May Advanced Topics in Object Technology Bertrand Meyer.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer Lecture 10: Project Presentation Ilinca.
General information CSE 230 : Introduction to Software Engineering
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
IS 421 Information Systems Management James Nowotarski 16 September 2002.
Chair of Software Engineering ATOT - Lecture 25, 30 June Advanced Topics in Object Technology Bertrand Meyer.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer Lecture 1: Modularity.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Chair of Software Engineering ATOT - Lecture 2, 2 April Advanced Topics in Object Technology Bertrand Meyer.
Feb. 23, 2004CS WPI1 CS 509 Design of Software Systems Lecture #5 Monday, Feb. 23, 2004.
Chapter 1 Principles of Programming and Software Engineering.
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Introduction.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
Software Architecture in Practice
Chair of Software Engineering Updated: 04 April 2006 Lecture 1: Course overview and introduction Concurrent Object-Oriented Programming Bertrand Meyer,
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Lecture 1: Introduction.
Chair of Software Engineering ATOT - Lecture 7, 23 April Advanced Topics in Object Technology Bertrand Meyer.
Chair of Software Engineering ATOT - Lecture 22, 18 June Advanced Topics in Object Technology Bertrand Meyer.
Software Configuration Management (SCM)
Data Structures and Programming.  John Edgar2.
COMP 151: Computer Programming II Spring Course Topics Review of Java and basics of software engineering (3 classes. Chapters 1 and 2) Recursion.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Department of Computer Science, York University Slides based on Object Oriented Software Construction 12/09/ :05 PM 0 COSC3311 – Software Design.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Course: Software Engineering © Alessandra RussoUnit 1 - Introduction, slide Number 1 Unit 1: Introduction Course: C525 Software Engineering Lecturer: Alessandra.
Chapter 1: Introduction to Project Management
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Chapter 2 – Software Processes Lecture 1 1Chapter 2 Software Processes.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Message Analysis Table.
WXGE 6103 Digital Image Processing Semester 2, Session 2013/2014.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Objected Oriented Programming & Design JAVA Shishir Gupta (704) (704)
Information System Development Courses Figure: ISD Course Structure.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
AR354: Advanced Billing Welcome to AR354: Advanced Billing.
CSEP 545 Transaction Processing for E-Commerce Course Information Spring (March – May) 2007.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
Administrative Information SC/CSE SU10 -- Software Design.
Course Overview CSE 8340 Advanced Software Engineering Topics: Software Engineering Economics & Processes Spring 2016 Dr. LiGuo Huang Dept. of Computer.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Discussion of Course Syllabus Class will start momentarily. Please Stand By … CS 8532: Advanced.
CS 8532: Adv. Software Eng. – Spring 2009 Dr. Hisham Haddad , Monday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Advanced Software Engineering. Agenda Syllabus Review of Software Engineering Concepts UML.
Advanced Software Engineering Dr. Cheng
Software Configuration Management (SCM)
Course Overview CSE8313 Object-Oriented Analysis and Design
Software Architecture
EECE 310 Software Engineering
Presentation transcript:

Chair of Software Engineering ATOT - Lecture 1, 31 March Advanced Topics in Object Technology Bertrand Meyer

Chair of Software Engineering ATOT - Lecture 1, 31 March Contact  Chair of Software Engineering:   Course assistant:  Karine Arnout 

Chair of Software Engineering ATOT - Lecture 1, 31 March Lecture 1: Introduction, Quality issues, Lifecycle

Chair of Software Engineering ATOT - Lecture 1, 31 March Agenda for today  Introduction  Quality issues  Lifecycle

Chair of Software Engineering ATOT - Lecture 1, 31 March Agenda for today  Introduction  Quality issues  Lifecycle

Chair of Software Engineering ATOT - Lecture 1, 31 March Introduction  Course objectives  Topics  Technologies  Guest lectures  Textbook  Grading  Practical setup

Chair of Software Engineering ATOT - Lecture 1, 31 March 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

Chair of Software Engineering ATOT - Lecture 1, 31 March 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  …

Chair of Software Engineering ATOT - Lecture 1, 31 March Technologies  Eiffel .NET

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

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

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

Chair of Software Engineering ATOT - Lecture 1, 31 March Practical setup  Course page:   Slides: 

Chair of Software Engineering ATOT - Lecture 1, 31 March Practical setup (cont’d)  Please send an  To:  Subject: ATOT course participant  Content:  Your name  Preferred 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

Chair of Software Engineering ATOT - Lecture 1, 31 March Practical setup (cont’d)  If any questions / problems, contact:  Karine Arnout   Office: RZ-F7  Phone:

Chair of Software Engineering ATOT - Lecture 1, 31 March Before getting started…  Please fill in the questionnaire:  Anonymous!  You have 10 minutes

Chair of Software Engineering ATOT - Lecture 1, 31 March 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.

Chair of Software Engineering ATOT - Lecture 1, 31 March Some words of warning (cont’d) benefit_from_course is -- Make students succeed. require some_humility do all_exercises ensure OO_mastery_for_fun_and_profit end

Chair of Software Engineering ATOT - Lecture 1, 31 March 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)

Chair of Software Engineering ATOT - Lecture 1, 31 March Agenda for today  Introduction  Quality issues  Lifecycle

Chair of Software Engineering ATOT - Lecture 1, 31 March 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. Robustness SPECIFICATION Correctness

Chair of Software Engineering ATOT - Lecture 1, 31 March 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.

Chair of Software Engineering ATOT - Lecture 1, 31 March Agenda for today  Introduction  Quality issues  Lifecycle

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

Chair of Software Engineering ATOT - Lecture 1, 31 March 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.

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

Chair of Software Engineering ATOT - Lecture 1, 31 March 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.

Chair of Software Engineering ATOT - Lecture 1, 31 March Quality control? Analysts Designers Implementers Testers Customers

Chair of Software Engineering ATOT - Lecture 1, 31 March 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)

Chair of Software Engineering ATOT - Lecture 1, 31 March The escherfall (Spiral) M.C Escher: Waterval

Chair of Software Engineering ATOT - Lecture 1, 31 March Tasks Analysts Designers Implementers Testers

Chair of Software Engineering ATOT - Lecture 1, 31 March Seamless development Specification TRANSACTION, PLANE, CUSTOMER, … Example classes

Chair of Software Engineering ATOT - Lecture 1, 31 March Seamless development Specification Design Specification TRANSACTION, PLANE, CUSTOMER, … STATE, USER_COMMAND, … Example classes

Chair of Software Engineering ATOT - Lecture 1, 31 March Seamless development Specification Design Implementation Specification TRANSACTION, PLANE, CUSTOMER, … STATE, USER, … HASH_TABLE, LINKED_LIST… Example classes

Chair of Software Engineering ATOT - Lecture 1, 31 March Seamless development Specification Design Implementation V & V Specification TRANSACTION, PLANE, CUSTOMER, … STATE, USER, … HASH_TABLE, LINKED_LIST… TEST_DRIVER, … Example classes

Chair of Software Engineering ATOT - Lecture 1, 31 March Seamless development Specification Design Implementation V & V Generalization Specification TRANSACTION, PLANE, CUSTOMER, … STATE, USER, … HASH_TABLE, LINKED_LIST… TEST_DRIVER, … Example classes

Chair of Software Engineering ATOT - Lecture 1, 31 March deferred class VAT inherit TANK feature in_valve, out_valve: VALVE fill is -- Fill the vat. require in_valve.open out_valve.closed deferred ensure in_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 Analysis classes Precondition Class invariant -- i.e. specified only. -- not implemented. Postcondition

Chair of Software Engineering ATOT - Lecture 1, 31 March Reversibility Specification Design Implementation V & V Generalization Specification

Chair of Software Engineering ATOT - Lecture 1, 31 March Seamless development  Use consistent notation from analysis to design, implementation and maintenance.  Advantages:  Smooth process. Avoids gaps (improves productivity, reliability).  Direct mapping 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.

Chair of Software Engineering ATOT - Lecture 1, 31 March Single model principle  Use a single base for everything: analysis, design, implementation, documentation...  Use tools to extract the appropriate views.

Chair of Software Engineering ATOT - Lecture 1, 31 March The cluster model Specification Design Implementation V & V Generalization Specification Design Implementation V & V Generalization Specification Feasibility study Division into clusters Specification Design Implementation V & V Generalization Specification PROJECT TIME Cluster 1 Cluster 2 Cluster n

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

Chair of Software Engineering ATOT - Lecture 1, 31 March The cluster model: extreme variants (2) Feasibility study Division into clusters Cluster 1 Cluster 2 Cluster n The Trickle model

Chair of Software Engineering ATOT - Lecture 1, 31 March Quality goals: the Osmond curves DESIRABLE COMMON Functionality Other qualities Debugging Envisaged Early releases

Chair of Software Engineering ATOT - Lecture 1, 31 March 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.

Chair of Software Engineering ATOT - Lecture 1, 31 March Reading assignment  For Monday 7 April 2003: OOSC2 chapters  Chapter 1: Software quality  Chapter 28: The software construction process

Chair of Software Engineering ATOT - Lecture 1, 31 March End of lecture 1