Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "October 20, 2005Architectural Design, ECEN 50331 Architectural Design Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng."— Presentation transcript:

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

2 October 20, 2005Architectural Design, ECEN 50332 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

3 October 20, 2005Architectural Design, ECEN 50333 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

4 October 20, 2005Architectural Design, ECEN 50334 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:

5 October 20, 2005Architectural Design, ECEN 50335 Elements of Good Design - 1 1.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

6 October 20, 2005Architectural Design, ECEN 50336 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

7 October 20, 2005Architectural Design, ECEN 50337 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

8 October 20, 2005Architectural Design, ECEN 50338

9 October 20, 2005Architectural Design, ECEN 50339 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

10 October 20, 2005Architectural Design, ECEN 503310 (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

11 October 20, 2005Architectural Design, ECEN 503311 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

12 October 20, 2005Architectural Design, ECEN 503312 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?

13 October 20, 2005Architectural Design, ECEN 503313 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

14 October 20, 2005Architectural Design, ECEN 503314 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.

15 October 20, 2005Architectural Design, ECEN 503315 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

16 October 20, 2005Architectural Design, ECEN 503316 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?

17 October 20, 2005Architectural Design, ECEN 503317 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?


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

Similar presentations


Ads by Google