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

chapter 8 object design reuse and patterns
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Page 1

Using UML, Patterns, and Java

Object-Oriented Software Engineering

Chapter 8, Object Design: Reuse and Patterns

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

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 Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3

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

  • f 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

slide-2
SLIDE 2

Page 2

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4

Object Design: Closing the Gap

Custom objects Application objects Off-the-shelf components Solution objects System

Problem Machine System design gap Object design gap Requir ements gap

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 5

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 6

A More Detailed View of Object Design Activities

Specifying constraints Specifying types & signatures Identifying patterns Adjusting patterns Identifying missing attributes & operations Specifying visibility Specification Specifying exceptions Reuse Identifying components Adjusting components Select Subsystem

slide-3
SLIDE 3

Page 3

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7

Detailed View of Object Design Activities (ctd)

Collapsing classes Restructuring Optimization Revisiting inheritance Optimizing access paths Caching complex computations Delaying complex computations Check Use Cases Realizing associations

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8

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 9

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

slide-4
SLIDE 4

Page 4

Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 10

Current and Upcoming Materials

  • 1. Reuse: Identification of existing

solutions

Use of inheritance Off-the-shelf components and additional solution objects Design patterns

  • 2. Interface specification
  • Describes precisely each class

interface

  • 3. Object model restructuring

Transforms the object design model to improve its understandability and extensibility

  • 4. Object model optimization

Transforms the object design model to address performance criteria such as response time or memory utilization.

Ch08 Software Reuse Ch10 Mapping Models to Code Ch09 Specifying Interfaces