Software Design: Principles, Process, and Concepts - PowerPoint PPT Presentation

1 / 6
About This Presentation
Title:

Software Design: Principles, Process, and Concepts

Description:

Software Design: Principles, Process, and Concepts. Getting Started with Design ... Elaborate and refine detail of major components ... – PowerPoint PPT presentation

Number of Views:28
Avg rating:3.0/5.0
Slides: 7
Provided by: keithas
Category:

less

Transcript and Presenter's Notes

Title: Software Design: Principles, Process, and Concepts


1
Software Design Principles, Process, and Concepts
  • Getting Started with Design

2
General Information on Design
  • Analysis (requirements) model vs. design model
  • End User vs. Developer
  • Function and behavior (what) vs. architecture,
    interface, and component (how)
  • Primary views of the design
  • Data/Classes necessary information, data
    structures, data stores, objects and actors
  • Architecture Overall big picture of
    relationships among system elements, design
    framework and patterns
  • Deployment How system is hosted in target
    environment (i.e., what computers, data files,
    networks, and/or other infrastructure).
  • Interfaces user, external, and internal
  • Components refinement of visible object classes
    to include system, support, and utility classes.

3
Design Modeling Principles
  • Design should result from analysis
  • Design should consider s/w architecture first
  • Give thought to data structures (foundation of
    design). Good data design simplifies components.
  • Give extra care to communicate across interfaces
  • Keep user in mind when creating UI, stress easy
    use, not easy implementation.
  • Keep components cohesive (functionally
    independent)
  • Keep components loosely coupled (simple
    interfaces)
  • Keep your designs (and design descriptions)
    simple and easily understood
  • Develop the design iteratively
  • See task set on pg 112 6/e (and more detailed on
    pg 222 7/e, pg 232 6/e)

4
Design Modeling Process
  • Class Modeling
  • Examine analysis class diagrams for data
    characteristics content, pervasiveness,
    sharing, flow, transformation, persistence
  • Examine analysis class diagrams and use cases for
    problem domain actors and objects, processes,
    constraints, and interfaces
  • Architecture Modeling
  • Identify all major system components
  • Determine relationships among major components,
    business processes, system elements
  • Apply design framework or pattern (if
    appropriate)
  • Interface Design
  • Three interface types user, external and
    internal
  • Component-Level Design
  • Elaborate and refine detail of major components
  • Add helper, system and utility classes as
    required
  • Re-factor as required

5
Design Modeling Concepts
  • Abstraction allows us to handle complexity
  • Architecture organizes program components
  • Patterns when applicable, provides insight or
    guidance for design choices
  • Modularity the mechanism for implementing
    abstractions
  • Information Hiding inhibits side effect errors
  • Functional Independence low coupling and high
    cohesion
  • Refinement the manner in which designs are
    elaborated
  • Refactoring improving the internal structure of
    the design or code

6
Additional Points of Emphasis
  • Diversification and convergence (pg 216 7/e,
    pg227 6/e)
  • Quality Attributes (pgs 220-221 7/e, pgs 231-232
    6/e)
  • Functionality
  • Usability
  • Reliability
  • Performance
  • Supportability
  • Design Classes (pg 230 7/e, pg 239 6/e)
  • UI Classes
  • Business Domain Classes
  • Process Classes
  • Persistent Classes
  • System Classes

Application-specific classes
Write a Comment
User Comments (0)
About PowerShow.com