chapter 8 object design reuse and patterns
play

Chapter 8, Object Design: Reuse and Patterns Using UML, Patterns, - PDF document

Object-Oriented Software Engineering Chapter 8, Object Design: Reuse and Patterns Using UML, Patterns, and Java Podcast Ch08-01 Title : Object Design Description : Where does object design fit?; object design activities Participants


  1. Object-Oriented Software Engineering Chapter 8, Object Design: Reuse and Patterns Using UML, Patterns, and Java Podcast Ch08-01 ♦ Title : Object Design ♦ Description : Where does object design fit?; object design activities ♦ Participants : Barry Kurtz (instructor); Brandon Winters, Sara Hyde, Cheng Vue, Dan Baehr (students) ♦ Textbook : Object-Oriented Software Engineering: Using UML, Patterns and Java by Bernd Bruegge and Allen H. Dutoit Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2 Object Design ♦ Object design is the process of adding details to the requirements analysis and making implementation decisions ♦ The object designer must choose among different ways to implement the analysis model with the goal to minimize execution time, memory and other measures of cost. ♦ Requirements Analysis: Use cases, functional and dynamic model deliver operations for object model ♦ Object Design: Iterates on the models, in particular the object model and refine the models ♦ Object Design serves as the basis of implementation Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 Page 1

  2. Object Design: Closing the Gap Problem System Application objects Requir ements gap Solution objects Custom objects Object design gap Off-the-shelf components System design gap Machine Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 Examples of Object Design Activities ♦ Identification of existing components ♦ Full definition of associations ♦ Full definition of classes (System Design => Service, Object Design => API) ♦ Specifying the contract for each component ♦ Choosing algorithms and data structures ♦ Identifying possibilities of reuse ♦ Detection of solution-domain classes ♦ Optimization ♦ Increase of inheritance ♦ Decision on control ♦ Packaging Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5 A More Detailed View of Object Design Activities Select Subsystem Specification Reuse Identifying missing Identifying components attributes & operations Specifying visibility Adjusting components Specifying types & signatures Identifying patterns Specifying constraints Specifying exceptions Adjusting patterns Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 Page 2

  3. Detailed View of Object Design Activities (ctd) Check Use Cases Restructuring Optimization Revisiting Optimizing access inheritance paths Caching complex Collapsing classes computations Delaying complex Realizing associations computations Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 A Little Bit of Terminology: Activities ♦ Object-Oriented methodologies use these terms: � System Design Activity � Decomposition into subsystems � Object Design Activity � Implementation language chosen � Data structures and algorithms chosen Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 A Little Bit of Terminology: Activities ♦ Structured analysis/structured design uses these terms: � Note: Structured Analysis and Design is how software engineering was taught in the 1970-80s using Structured Programming Languages � Preliminary Design Activity � Decomposition into subsystems � Data structures are chosen � Detailed Design Activity � Algorithms are chosen � Data structures are refined � Implementation language is chosen � Typically in parallel with preliminary design, not a separate activity Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Page 3

  4. 1. Reuse: Identification of existing solutions Ch08 � Use of inheritance Software Reuse � Off-the-shelf components and Current and additional solution objects Upcoming � Design patterns Materials 2. Interface specification Ch09 � Describes precisely each class Specifying interface Interfaces 3. Object model restructuring � Transforms the object design model to improve its understandability and Ch10 extensibility Mapping Models to Code 4. Object model optimization � Transforms the object design model to address performance criteria such as response time or memory utilization. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10 Page 4

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend