1 / 79

Chapter 14

Chapter 14. Object-Oriented Design. Objectives. To explain how a software design may be represented as a set of interacting objects that encapsulate their own state and operations. To describe (and illustrate) the activities in the object-oriented design process . (cont’d).

lucia
Download Presentation

Chapter 14

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. Chapter 14 Object-Oriented Design

  2. Objectives • To explain how a software design may be represented as a set of interacting objects that encapsulate their own state and operations. • To describe (and illustrate) the activities in the object-oriented design process. (cont’d)

  3. Objectives (cont’d) • To introduce various models used to describe an object-oriented design • To show how the UML may be used to represent these models

  4. Topics covered • Characteristics of OOD • History of OOD as reflected by Sommerville • Objects and object classes • Generalization and inheritance • An object-oriented design process (Weather Station example) • Design evolution

  5. Characteristics of OOD • Allows designers to think in terms of interacting objects that maintain their own state and provide operations on that state instead of a set of functions operating on shared data. • Objects hide informationabout the represen-tation of state and hence limit access to it. • Objects may be distributed and may work sequentially or in parallel.

  6. A design strategy based on “information hiding”… Another way to think about “information hiding”: Potentially changeable design decisions are isolated (i.e., “hidden”) to minimize the impact of change. - David Parnas (Is there any connection between information hiding and AOSD?)

  7. Interacting objects

  8. Advantages of OOD • Easier maintenance. Objects may be understood as stand-alone entities (and ripple effect is reduced). • Objects are appropriate reusable components. • For some systems, there is an obvious mapping from real world entities to system objects.

  9. Object-oriented development • OO Analysis: concerned with developing an object model of the application domain. • OO Design: concerned with developing an object-oriented system model to implement requirements • OO Programming: concerned with realising an OOD using an OO pro-gramming language such as Java or C++.

  10. The history of OO Development as reflected by Sommerville’s text • 1st Edition (1982): No mention of OO design! • 2nd Edition (1985): …it has been sug-gested that a better design methodology is OO design… To place such comments in perspective, many large systems have been built using top-down design. Few large systems have been built using an object-oriented approach.

  11. The history of OO Development as reflected by Sommerville’s text • 3rd Edition (1989): It is only within the past few years that an alternative mode of decomposition, OO design, has been recognized as of value. • 4th Edition (1992): OO methods are still relatively immature and are changing rapidly so are not nearly as widely used as methods based on functional decomposition. They will become more widely used as they mature…

  12. The history of OO Development as reflected by Sommerville’s text • 5th Edition (1995): Until relatively recently, the most commonly used software design strategy involved decomposing the design into functional components with system state information held in a shared data area…It is only since the late 1980’s that…OO design has been widely adopted.

  13. The history of OO Development as reflected by Sommerville’s text • 6th Edition(2001): An OO approach to the whole (of) software development is now commonly used… Coverage of functional design is now included in the new chapter on legacy systems.

  14. The history of OO Development as reflected by Sommerville’s text • 7th Edition (2004): Chapter on legacy systems deleted. Although many software developers consider function-oriented design to be an outdated approach, OO development may not offer significant advantages (in some) situations. An interesting challenge…is to ensure that function-oriented and OO systems can work together.

  15. The history of OO Development as reflected by Sommerville’s text • 8th Edition (2007): Chapter on Aspect-Oriented Software Development added. In most large systems...implementing a change to a requirement may involve understanding and changing many components... AOSD is an emerging approach...intended to address this problem. Aspects are used alongside other abstractions such as objects and methods. (AOSD) support separating concerns into independent elements...

  16. Should we still be placing an emphasis on OO Design? • Extensive up-front design can be criticized because the extensive analysis and design effort is not well suited to incremental development and delivery. • Agile methods have been developed to address this problem. (cont’d)

  17. Should we still be placing an emphasis on OO Design? (cont’d) • Sommerville's view: extensive, “heavy-weight” design is unnecessary for small and medium-sized systems. But for large systems, particularly critical systems, it is essential to ensure that teams working on different parts of the system are properly coordinated.

  18. Objects and object classes • Objects are entities with state and a defined set of operations on that state. • State is represented as a set of object attributes. • Operations provide services to other objects when requested.

  19. Objects and object classes (cont’d) • Object classes are templates for objects. • An object classdefinition includes declarations of all attributes and operations associated with an object of that class. • They may inherit attributes and services from other object classes.

  20. The Unified Modeling Language • Several different notations for OOD were proposed in the 1980s and 1990s. (Booch, Rumbaugh, Jacobson, Coad & Yourdon, Wirfs, …) • UML is an integration of these notations. • It describes a number of different models that may be produced during OO analysis and design (user view, structural view, behavioural view, implementation view, …) • The de facto standard for OO modelling.

  21. Employee object class (UML) Object attributes Services to other objects

  22. Object communication • Conceptually, objects communicate by message passing. • Messages include: • The name of the service requested, • A copy of the information required to carry out the service, and • the name of a holder for the result of the service. • In practice, messages are often imple-mented by procedure calls

  23. Message examples // Call a method associated with a buffer // object that returns the next value // in the buffer v = circularBuffer.Get () ; // Call the method associated with a// thermostat object that sets the // temperature to be maintained thermostat.setTemp (20) ; Holderforresult Nameofservice Info required (cf. XML text messages in service-based systems)

  24. Generalization and inheritance • Objects are members of classes which define attribute types and operations. • Classes may be arranged in a hierarchy where one class (a super-class) is a generalization of one or more other classes (sub-classes)

  25. Generalization and inheritance • A sub-class inherits the attributes and operations from its super class and may add new methods or attributes of its own.

  26. A UML generalisation hierarchy Definition on slide 21

  27. Advantages of inheritance • It is an abstraction mechanism which may be used to classify entities. • It is a reuse mechanism at both the design and the programming level. • The inheritance graph is a source oforganizational knowledge about domains and systems. (OO Analysis)

  28. Problems with inheritance • Object classes are not self-contained (i.e., they cannot be understood without reference to their super-classes). • Designers have a tendency to reuse the inheritance graph created during analysis. (Inheritance graphs of analysis, design and implementation have different functions.) Due to inherited attributes/ops Discipline/education problem?

  29. Inheritance and OOD • Inheritance is a useful implementation concept which allows reuse of attribute and operation definitions. • Some feel that identifying an inheritance hierarchy or network is also a funda-mental part of object-oriented design.(Obviously, this can only be implemented directly using an OOPL.) (cont’d)

  30. Inheritance and OOD (cont’d) • Others feel this places unnecessary restrictions on the implementation.* • Inheritance introduces complexity and this is undesirable, especially in critical systems. (where design transparency is of utmost importance) * This appears to be Sommerville’s view

  31. UML associations • Objects and object classes participate in various types of relationships with other objects and object classes. • In the UML, a generalized relationship is indicated by an association. (cont’d)

  32. UML associations (cont’d) • Associations may be annotated with information that describes their nature. • Associations can be used to indicate that an attribute of an object is an associated object or that a method relies on an associated object. (semantics)

  33. An association model annotations

  34. Concurrent objects • The nature of objects as self-contained entities make them well suited for con-current implementation. • The message-passing model of object communication can be implemented directly if objects are running on separate processors in a distributed system. (as opposed to using procedure calls) (e.g., as XML text messages in service-based systems)

  35. Concurrent object implementation: servers and active objects • Servers (Passive objects):entry points correspond to object operations. If no calls are made to it, the object suspends itself and waits for further requests for service. • Active objects:internal object state may be changed by the object itself and not simply by external calls.

  36. Example: an active transponder object • A transponder object broadcasts an aircraft’s position.(on demand) • The object periodically updates the position by triangulation from satellites. (autonomously)

  37. An active transponder object Java-based interface description ON DEMAND IN BACKGROUND

  38. Active object implementation: Java threads, Ada tasks, etc. • Threads in Java are a simple construct for implementing concurrent objects. • Threads must include a method called run() and this is started up by the Java run-time system. • Active objects typically include an infinite loop so that they are always carrying out the computation.

  39. An object-oriented design process(an iterative, boot-strapping process)

  40. An object-oriented design process(an iterative, boot-strapping process) • Define the context and modes of use of the system. • Design the system architecture. • Identify the principal system objects. • Develop design models (static and dynamic). • Specify object interfaces.

  41. Weather system description A weather data collection system is required to generate weather maps on a regular basis using data collected from remote, unattended weather stations and other data sources such as weather observers, balloons and satellites. Weather stations transmit their data to the area computer in response to a request from that machine.

  42. Weather system description The area computer validates the collected data and integrates it with the data from different sources. The integrated data is archived and, using data from this archive and a digitized map database, a set of local weather maps is created. Maps may be printed for distribution on a special-purpose map printer or may be displayed in a number of different formats.

  43. Weather station description A weather station is a package of software controlled instruments which collects data, performs some data processing and transmits this data for further processing. The instruments include air and ground thermometers, an anemometer, a wind vane, a barometer and a rain gauge. Data is collected every five minutes.

  44. Weather station description When a command is issued to transmit the weather data, the weather station processes and summarises the collected data. The summarised data is transmitted to the mapping computer when a request is received.

  45. An object-oriented design process(an iterative, boot-strapping process) Define the context and modes of use of the system. Design the system architecture. Identify the principal system objects. Develop design models (static and dynamic). Specify object interfaces.

  46. Define system context and modes of use • Goal: develop an understanding of the relationships between the software being designed and its external environment. • System context: a static model that describes other systems in the environ-ment. • The context of the weather station is illustrated below using UML packages.

  47. Context of weather station

  48. Define system context and modes of use (cont.) • Modes of system use: a dynamic model that describes how the system will interact with its environment. • Modes of weather station use are illustrated below using a UML use-case model.

  49. Use-cases for the weather station External entity (weather data collection sys) Possible interactions

  50. Use-case description basis for “information hiding”

More Related