© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Detailed Design Overview and Mid-Level Class Modeling.

Slides:



Advertisements
Similar presentations
Practical Business Modeling in the Unified Process Tom Morgan Software Architect, Fidelity National Information Services
Advertisements

Chapter 1 Object Oriented Analysis and Design. UML, Patterns, and Object-Oriented Analysis and Design  The essential skills for the creation of well-designed,
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Introduction To System Analysis and Design
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Software Engineering 1 Provisional Revision Plan.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
© Copyright Eliyahu Brutman Programming Techniques Course.
Chapter 8 Object Design Reuse and Patterns. Finding Objects The hardest problems in object-oriented system development are: –Identifying objects –Decomposing.
Use Case Analysis – continued
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Structured Vs. Object Oriented Analysis and Design SAD Vs. OOAD
The chapter will address the following questions:
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Interaction Design Process and Heuristics.
Objects What are Objects Observations
Introduction To System Analysis and design
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Context of Software Product Design.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Software Design Processes and Management.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Engineering Design Resolution & Design Principles.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Design.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
An Introduction to Software Architecture
Detail (mid-level part) Design: Mid-Level OO Design – Designing Classes Detailed Design starts with Software Architecture Design (SAD) and fill in the.
CSE 303 – Software Design and Architecture
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
Chapter 7 System models.
Systems Analysis and Design in a Changing World, 3rd Edition
CS3773 Software Engineering Lecture 04 UML Class Diagram.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
© 2005 Prentice Hall9-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Design Model Lecture p6 T120B pavasario sem.
Software Design Process
Requirements Engineering for Web Applications. SR: System Vision Document Written by key stakeholders Written by key stakeholders An executive summary.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
SWE 4743 Responsibility Driven Design with CRC cards Richard Gesick.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
Basic Characteristics of Object-Oriented Systems
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
The Movement To Objects
Systems Analysis and Design With UML 2
Conceptual Modeling.
Systems Analysis and Design With UML 2
The Object Oriented Approach to Design
Object-Oriented Design
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
Design Yaodong Bi.
Use Case Analysis – continued
Presentation transcript:

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Detailed Design Overview and Mid-Level Class Modeling

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 2 Objectives  To present an overview of the detailed design process  To survey detailed design specifications  To distinguish mid-level and low-level design  To present techniques for generating mid-level class designs  To present heuristics for mid-level class design

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 3 Topics  Scope of detailed design  Mid- and low-level design  Detailed design process and specifications  Mid-level design techniques Creational Transformational  Mid-level design heuristics Responsibility-driven design Inheritance Delegation

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 4 Scope of Detailed Design  Levels of abstraction from architecture to coding  Many static and dynamic models  Great bulk of design specifications  Divide into two parts: mid-level and low- level design  The boundaries between detailed design, architectural design, and programming are fuzzy.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 5 Mid-Level Design  DeSCRIPTR specification (Chapter 8)  Design patterns (more on this later) Mid-level design is the activity of specifying software at the level of medium-sized components, such as compilation units or classes, and their properties, relationships, and interactions. Mid-level design is the activity of specifying software at the level of medium-sized components, such as compilation units or classes, and their properties, relationships, and interactions.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 6 Low-Level Design DeSCRIPTR specifications plus PAID Packaging—Placing code into compilation units, libraries, packages, etc. Algorithms—Sometimes specified Implementation—Visibility, accessibility, association realization, etc. Data structures and types—Sometimes specified Low-level design is the activity of filling in the small details at the lowest level of abstraction.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 7 Detailed Design Process

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 8 Detailed Design Document  A design document consists of a SAD (Chapter 9) and a detailed design document (DDD).  A DDD template 1. Mid-Level Design Models 2. Low-Level Design Models 3. Mapping Between Models 4. Detailed Design Rationale 5. Glossary

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 9 Mid-Level Generation Techniques  Creational—Make a mid-level design class model from scratch Functional decomposition Quality attribute decomposition Design themes  Transformational—Change another model into a mid-level design class model Similar system Patterns or architectures Analysis model

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 10 Generation from Design Themes  A design theme is an important problem, concern, or issue that must be addressed in a design.  Design themes can be the basis for generating a design from scratch.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 11 Design Theme Process

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 12 Analyzing Design Stories  Start by writing a design story : a short description of the application that stresses its most important aspects.  Study the design story to identify design themes.  List the themes Functional themes Quality attribute themes

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 13 Generating Candidate Classes  Brainstorm candidate classes from the themes; list classes and their responsibilities. Entities in charge of program tasks Actors Things about which the program stores data Structures and collections  Rationalize the classes. Discard those with murky names or responsibilities Rework classes with overlapping responsibilities Discard those that do something out of scope

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 14 Draft a Class Diagram  Draw the classes from the list.  Add attributes, operations, and associations.  Refine the class diagram. Check classes for completeness and cohesion. Make super-classes where appropriate. Apply design patterns where appropriate.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 15 Transforming a Conceptual Model  Change actors to interface classes.  Add actor domain classes.  Add a startup class.  Convert or add controllers and coordinators.  Add classes for data types.  Convert or add container classes.  Convert or add engineering design associations.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 16 Responsibilities  Operational responsibilities are usually fulfilled by operations.  Data responsibilities are usually fulfilled by attributes.  Class collaborations may be involved. A responsibility is an obligation to perform a task (an operational responsibility) or to maintain some data (a data responsibility).

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 17 Responsibility-Driven Decomposition  Responsibilities may be stated at different levels of abstraction.  Responsibilities can be decomposed.  High-level responsibilities can be assigned to top-level components.  Responsibility decomposition can be the basis for decomposing components. Responsibilities reflect both operational and data obligations, so responsibility-driven decomposition can be different from functional decomposition.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 18 Responsibility Heuristics 1  Assigning responsibilities well helps achieve high cohesion and low coupling. State both operational and data responsibilities. Assign modules at most one operational and one data responsibility. Assign complementary data and operational responsibilities.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 19 Responsibility Heuristics 2  Make sure module responsibilities do not overlap.  Place operations and data in a module only if they help fulfill the module’s responsibilities.  Place all operations and data needed to fulfill a module responsibility in that module.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 20 Inheritance Inheritance is a declared relation between a class and one or more super-classes that causes the sub-class to have every attribute and operation of the super-class(es). Captures a generalization relation between classes Allows reuse of attributes and operation from super-classes in sub-classes

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 21 Using Inheritance Properly  Don’t use inheritance only for reuse. Confusing Ugly Leads to problems in the long run  Use inheritance only when there is a generalization (kind-of) relation present.  Reuse can often be achieved by rethinking the class structure. Clear Elegant Robust

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 22 Inheritance Example

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 23 Delegation Delegation is a tactic wherein one module (the delagator) entrusts another module (the delegate) with a responsibility. Allows reuse without violating inheritance constraints Makes software more reusable and configurable

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 24 Delegation Example

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 25 Inheritance and Delegation Heuristics  Use inheritance only when there is a generalization relationship between the sub-class and its super-class(es).  Combine common attributes and operations in similar classes into a common super-class.  Use delegation to increase reuse, flexibility, and configurability.

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 26 Summary 1  Detailed design is a big job that comprises the bulk of software engineering design work, so it helps to divide it into mid-level and low-level design.  Mid-level design is captured in a DDD that includes DeSCRIPTR specifications.  Mid-level class designs can be generated from scratch (creational) or by changing another model (transformational).

© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 27 Summary 2  One creational techniques uses design themes extracted from a design story.  One transformational techniques is to convert a conceptual model into a design class model.  Responsibility-driven design helps designers make good decisions about class models.  Inheritance and delegation, when used properly, lead to clear and elegant designs that increase reusability, flexibility, and configurability.