October 20, 2005Architectural Design, ECEN 50331 Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng.

Slides:



Advertisements
Similar presentations
GRASP: Designing Objects with Responsibilities
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Object-Oriented Analysis and Design CHAPTER 17, 25: GRASP PATTERNS 1.
GRASP Patterns M Taimoor Khan
Oct 2, Ron McFadyen1 From the Merriam-Webster’s online dictionary ( Main Entry: an·thro·po·mor·phism Pronunciation: -"fi-z&m Function:
Copyright W. Howden1 Lecture 6: Design Evaluation and Intro to OO Design Patterns.
Chapter 25 GRASP: More Objects with Responsibilities 1CS6359 Fall 2011 John Cole.
October 26, 2006Architectural Design, ECEN Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
NJIT More GRASP Patterns Chapter 22 Applying UML and Patterns Craig Larman Prepared By: Krishnendu Banerjee.
Object-Oriented Software Engineering Practical Software Development using UML and Java Design Patterns Sources: Chapter 6: Using Design Patterns, and Chapter.
NJIT 1 GRASP: Designing Objects with Responsibilities Chapter 17 Applying UML and Patterns Craig Larman.
GRASP : Designing Objects with Responsibilities
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Feb 4, Ron McFadyen1 founded on principles of good OO design idea was first put forth by Christopher Alexander (1977) in their work concerning.
Chapter 25 More Design Patterns.
CSSE 374: More GRASP’ing and Use Case Realization Steve Chenoweth Office: Moench Room F220 Phone: (812) These.
GRASP Design Patterns: Designing Objects with Responsibilities
The Design Discipline.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
GRASP Pattern Zhen Jiang West Chester University
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
Chapter 17. GRASP General Responsibility Assignment Software Patterns (Principles) OOD: after identifying requirements, create domain model, define responsiblities.
1 Chapter 17 GRASP Design Patterns: Designing Objects with Responsibilities.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
Architecture GRASP Realization of use cases in interaction diagrams Design class diagram Design ( how )
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
BTS430 Systems Analysis and Design using UML Design Patterns.
Chapter 17. Initial Object Design Inputs: requirements meetings various Use Cases – 10% complete Key risks addressed with preliminary programming System.
GRASP: Designing Objects With Responsibilities
Object-Oriented Analysis and Design Mar 11, 2008.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Design Patterns. Patterns “Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Copyright © Craig Larman All Rights Reserved Responsibility-Driven Design with the GRASP Patterns.
Next Gen POS Example GRASP again. Same Patterns Different Example!
Systems Analysis and Design in a Changing World, 3rd Edition
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
GRASP: Designing Objects with Responsibilities
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Object Design and Use- Case Realizations with GRASP Patterns.
What to remember from Chap 13 (Logical architecture)
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Object-Oriented Analysis and Design Mar 9, 2008.
Patterns Roberto Damiani Mendes. Roteiro Definition; Definition; Architecture Patterns; Architecture Patterns; Design Patterns; Design Patterns; GRASP.
TK2023 Object-Oriented Software Engineering CHAPTER 12 Introduction to Responsibility-Driven Design.
OO Design Roshan Chitrakar. Analysis to Design Do the RIGHT thing Do the RIGHT thing Requirement Analysis Requirement Analysis Domain Modeling with addition.
Slide 1 What the business needs  How to build it Functional requirements  + Nonfunctional requirements Performance System environment issues Problem.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
Chapter 17 Designing with Responsibilities. Fig
References: Applying UML and patterns Craig Larman
Design. 2 The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary but not sufficient in order.
GRASP: More Patterns for Assigning Responsibilities Presented By Dr. Shazzad Hosain.
BTS430 Systems Analysis and Design using UML
General Principles in Assigning Responsibilities Responsibilities Responsibility-Driven Design CRC Cards GRASP.
TK2023 Object-Oriented Software Engineering
Elaboration: Iteration 2. Elaboration: Iteration 2 Basics Iteration 1 ends with : All the software has been tested: The idea in the UP is to do early,
GRASP – Designing Objects with Responsibilities
Chapter 12: Collaboration Diagram - PART2
Conception OBJET GRASP Patterns
DESIGN MODEL: USE-CASE REALIZATIONS WITH GRASP PATTERNS
TK2023 Object-Oriented Software Engineering
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
GRASP : Designing Objects with Responsibilities
GRASP Design Patterns: Designing Objects with Responsibilities
GRASP (General Responsibility Assignment Software Patterns)
Starting Design: Logical Architecture and UML Package Diagrams
Next Gen POS Example GRASP again.
Object Oriented System Design Responsibilities
Presentation transcript:

October 20, 2005Architectural Design, ECEN Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs, University of Colorado, Boulder

October 20, 2005Architectural Design, ECEN When do you review an architecture? Require- ments elicitation and analysis System Test Planning Archi tec- ture fea- ture chunk -ing into pro- posed incre- ments Incre ment1 Req Tests Des Rev Code Test Integ Incre ment2 Req Tests Des Rev Code Test Integ Incre mentI Req Tests Des Rev Code Test Integ Incre ment Req Tests Des Rev Code Test Integ Test RELEASE... Time

October 20, 2005Architectural Design, ECEN What is maintenance? Development with intermittent releases Continues incrementally New features Enhanced features Fault corrections Hardware design fault workarounds Designing for maintainability is also designing for ease of development

October 20, 2005Architectural Design, ECEN What is Maintainability? Maintainability – “… the measures taken during development, design and installation of a manufactured product that reduce required maintenance, man-hours, tools, logistic cost, skill levels, and facilities” (Dhillon, 1999, p.1) In software, what is reduced is the people- time it takes to:

October 20, 2005Architectural Design, ECEN Elements of Good Design a mind well-educated in design principles 2.responsibility-driven design obligations of an object in terms of its role Doing  something itself  initiating action in others  controlling or coordinating activities Knowing  about private encapsulated data  about related objects  about things it can derive or calculate

October 20, 2005Architectural Design, ECEN Design as Community Software objectspeople with responsibilities who collaborate with others to get work done An effective design is a community of collaborating responsible objects

October 20, 2005Architectural Design, ECEN Representing community Interaction diagrams sequence diagrams collaboration diagrams Depicts collaborations Allows one to consider responsibilities realized as methods Fundamental principles guide choices about assigning responsibilities Appropriate assignments last

October 20, 2005Architectural Design, ECEN 50338

October 20, 2005Architectural Design, ECEN How to evaluate alternative assignments Information Expert – a responsibility needs information to be fulfilled Supports low coupling Find the object that has most of the information required for the responsibility; assign it there Low Coupling – If there is dependency, when the depended-upon changes, the dependent may be affected. Low coupling reduces the impact of changes. So work for low coupling at interface points of instability, where change is likely. Reduces time, effort, and defects when modifying

October 20, 2005Architectural Design, ECEN (Information) Expert Assign responsibility to the class that has the information necessary to fulfill the responsibility Objects do things related to the information they have Fulfillment of a responsibility can require info spread across different classes partial experts collaborate they interact via messages to share the work Keep app logic in domain layer, database logic in database layer – don’t intermingle system concerns

October 20, 2005Architectural Design, ECEN Controller UI Domain Controller What first object after or beyond the UI layer should receive the message from the UI layer? EITHER: Represents the overall “system” or a device that the software is running within or a major subsystem (facade controller) OR Represents a use case scenario within which the system operation occurs (session controller) mouse click

October 20, 2005Architectural Design, ECEN Cohesion Basic software quality How functionally related are the operations of a software element? Occurs naturally in hardware components; must be designed in software components Keeps objects focused, understandable, and manageable. Consider relationship to Low Coupling Assign responsibilities to keep cohesion high WHY?

October 20, 2005Architectural Design, ECEN Pure Fabrication What object should have the responsibility when you do not want to violate high cohesion and low coupling (or other goals) but solutions offered by Expert and others are not appropriate? Assign a highly cohesive set of responsibilities to an artifical or convenience class that does not represent a problem domain concept. This class is a fabrication

October 20, 2005Architectural Design, ECEN Pure Fab - continued Example is Sale Large number of supporting database- oriented operations, none related to the concept of sale-ness Sale class has to be coupled to the relational database interface so its coupling goes up. Saving objects in a rel db is a very general task for which many classes need support. Placing these responsibilities in Sale is not likely to be reusable.

October 20, 2005Architectural Design, ECEN Pure Fab - continued Create a new class solely for saving objects in some kind of persistent storage medium such as a relational db Call it PersistentStorage It is an understandable concept but not something in the domain model Fabricated for the convenience of the software developer

October 20, 2005Architectural Design, ECEN Creator General principle for the assignment of creation responsibilities, a very common task. Design can support low coupling, increased clarity, encapsulation, and reusability. What B do we look for to be a creator of A objects: prefer a class B which aggregates or contains class A. Why does this contribute to maintainability?

October 20, 2005Architectural Design, ECEN Modular Design Modularity is the property of a system that has been decomposed into a set of cohesive and loosely coupled modules Impact on maintainability?