Architectural design
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

Architectural Design PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on
  • Presentation posted in: General

Architectural Design. Architecture Business Cycle Design for Maintainability ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs, University of Colorado, Boulder. When do you review an architecture?. . . Time. fea-ture chunk-ing into pro-posed incre-ments. Increment1 Req Tests Des Rev

Download Presentation

Architectural Design

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Architectural design

Architectural Design

Architecture Business Cycle

Design for Maintainability

ECEN 5543 / CSCI 5548 SW Eng of Standalone Programs, University of Colorado, Boulder

Architectural Design, ECEN 5033


When do you review an architecture

When do you review an architecture?

...

...

Time

fea-ture chunk-ing into pro-posed incre-ments

Increment1

Req

Tests

Des

Rev

Code

Test

Integ

Increment2

Req

Tests

Des

Rev

Code

Test

Integ

IncrementI

Req

Tests

Des

Rev

Code

Test

Integ

Increment

Req

Tests

Des

Rev

Code

Test

Integ

Require-ments elicitation and analysis

Architec-ture

RELEASE

System Test Planning

Test

Test

Test

Test

Architectural Design, ECEN 5033


What is maintenance

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

Architectural Design, ECEN 5033


What is maintainability

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:

Architectural Design, ECEN 5033


Elements of good design 1

Elements of Good Design - 1

  • a mind well-educated in design principles

  • 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

Architectural Design, ECEN 5033


Design as community

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

Architectural Design, ECEN 5033


Representing community

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

Architectural Design, ECEN 5033


Architectural design

Architectural Design, ECEN 5033


How to evaluate alternative assignments

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

Architectural Design, ECEN 5033


Information expert

(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

Architectural Design, ECEN 5033


Controller

Controller

mouse click

What first object after or beyond the UI layer should receive the message from the UI layer?

UI

Domain

Controller

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)

Architectural Design, ECEN 5033


Cohesion

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?

Architectural Design, ECEN 5033


Pure fabrication

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

Architectural Design, ECEN 5033


Pure fab continued

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.

Architectural Design, ECEN 5033


Pure fab continued1

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

Architectural Design, ECEN 5033


Creator

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?

Architectural Design, ECEN 5033


Modular design

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?

Architectural Design, ECEN 5033


  • Login