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

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Ch 3 System Development Environment
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
October 20, 2005Architectural Design, ECEN Architectural Design More on layers Architecture Reviews Architecture Business Cycle ECEN 5543 / CSCI.
Chapter 25 GRASP: More Objects with Responsibilities 1CS6359 Fall 2011 John Cole.
8/28/2005ECEN5543 Req Elicitation1 Targets of Requirements Engineering ECEN 5543 SW Engineering of Standalone Programs University of Colorado, Boulder.
© 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.
December 9, 2001Architectural Design, ECEN Architecture – Layers, in particular ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs University of.
Software Architecture in Practice
GRASP : Designing Objects with Responsibilities
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
October 20, 2005Architectural Design, ECEN Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Design Patterns Trends and Case Study John Hurst June 2005.
CIS 321—IS Analysis & Design
S/W Project Management
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 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
An Introduction to Software Architecture
Architecture Business Cycle
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 17. GRASP General Responsibility Assignment Software Patterns (Principles) OOD: after identifying requirements, create domain model, define responsiblities.
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 )
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
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
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Software Requirements Engineering: What, Why, Who, When, and How
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
December 9, 2001Architectural Design, ECEN Architectural Design Principles & Techniques A Long Road of History.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
GRASP: Designing Objects with Responsibilities
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
+ Chapter 9: Management of Business Intelligence © Sabherwal & Becerra-Fernandez.
IntellAgile Copyright © 2002 Craig Larman. All rights reserved. Object Design and Use- Case Realizations with GRASP Patterns.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Scenario-Based Analysis of Software Architecture Rick Kazman, Gregory Abowd, Len Bass, and Paul Clements Presented by Cuauhtémoc Muñoz.
TK2023 Object-Oriented Software Engineering CHAPTER 12 Introduction to Responsibility-Driven Design.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
OO Design Roshan Chitrakar. Analysis to Design Do the RIGHT thing Do the RIGHT thing Requirement Analysis Requirement Analysis Domain Modeling with addition.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
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
GRASP: More Patterns for Assigning Responsibilities Presented By Dr. Shazzad Hosain.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Software Engineering Lecture 10: System Engineering.
1 Requirements Engineering for Agile Methods Lecture # 41.
General Principles in Assigning Responsibilities Responsibilities Responsibility-Driven Design CRC Cards GRASP.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
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,
Lecture 15 Attribute Driven Design Again Topics ATAM – team expertise and experience needed Chapter 24 Next Time: June 22, 2016 CSCE 742 Software Architecture.
GRASP – Designing Objects with Responsibilities
Chapter 7: Modifiability
Chapter 24: Architecture Competence
Chapter 12: Collaboration Diagram - PART2
Conception OBJET GRASP Patterns
Lecture 17 ATAM Team Expertise
DESIGN MODEL: USE-CASE REALIZATIONS WITH GRASP PATTERNS
Apply Expert, Creator, Controller, Low Coupling, High Cohesion
GRASP : Designing Objects with Responsibilities
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
Presentation transcript:

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

October 26, 2006Architectural Design, ECEN Overview Architecture Business Cycle Design for Maintainability

October 26, 2006Architectural Design, ECEN CUSTOMER pays for the development or purchase specifies requirements that ensure usability (we hope) to the end user may be more concerned with cost than usability if a compromise must be made END USERS use it many different categories (see operational profiles): input givers, administrators, output receivers Acceptability involves -behavior- platform compatibility -performance- memory utilization -reliability- network usage -availability- security -ease of modification- interoperability with other systems

October 26, 2006Architectural Design, ECEN Developing Organization Immediate business existing architectures and products proposed system may be “next” in a product family so cost estimates assume high degree of reuse Long-term business desire an infrastructure to pursue strategic goals this product seen as the way to fund that Organizational structure For example, lack of certain expertise may require design that allows a subsystem to be subcontracted 4 strong personalities = 4 major components Or... groups responsible for maintaining individual portions of the product family want the next generation product to require those groups

October 26, 2006Architectural Design, ECEN Background and Experience of Architects If a certain approach produced good results in the past, first inclination is to try that again even if factors have changed If a prior experience was a disaster, hard to muster the courage to try it again Architectural choices may also come from the architect’s education and training exposure to successful styles exposure to systems that worked well or didn’t desire to experiment (heh-heh)

October 26, 2006Architectural Design, ECEN Technical Environment Special case of the architect’s background and experience The technical environment that is current (popular) when the architecture is designed will influence that architecture Might (mind you, I said might!) include industry standard practices software engineering techniques prevalent in the architect’s professional community

October 26, 2006Architectural Design, ECEN Ghostly influences Often not consciously understood Rarely fully articulated Critical to identify and actively engage the stakeholders to solicit their needs and expectations as early as possible discover constraints and additional requirements avoid false starts by managing expectations and negotiating priorities Vision document helps to reveal and engage Architectural reviews also engage Iterative development helps to engage

October 26, 2006Architectural Design, ECEN Customer & End User Developing Organization Technical Environment Architect’s Experience Requirements (Qualities) Architecture Business Cycle Architecture Archi System

October 26, 2006Architectural Design, ECEN How does the architecture affect... the structure of the developing organization the enterprise goals customer requirements for the next system the architect’s experience that influences next system the technical environment, the software engineering culture

October 26, 2006Architectural Design, ECEN Bibliography Software Architecture in Practice, Len Bass, Paul Clements, Rick Kazman, Addison Wesley, ISBN – includes several case studies and the original chapters on architecture analysis that our text uses in chapter 32. Software Engineering Concepts, Richard Fairley, McGraw-Hill, ISBN – excellent, compact compendium of historical software engineering.

October 26, 2006Architectural Design, ECEN Bibliography (cont.) Pattern-Oriented Software Architecture, A System of Patterns, Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, Wiley & Sons, 1996, ISBN – often referred to as the POSA book. Object-Oriented Software Construction, 2 nd edition, Bertrand Meyer, Prentice Hall PTR, 1997, ISBN – excellent sections on the criteria of object orientation and how to get there; well (and humorously) written and thorough. “Recommended Best Industrial Practice for Software Architecture Evaluation.” G. Abowd, L. Bass, P. Clements, R. Kazman, L. Northrop, and A. Zaremski., SEI, Carnegie Mellon University, Technical Report CMU/SEI-96-TR-025, 1996.

October 26, 2006Architectural Design, ECEN Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs University of Colorado, Boulder

October 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural Design, ECEN Controller mouse click 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)

October 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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 26, 2006Architectural 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?