CS615 – Software Engineering I
Lecture 5

Chapter 14: Architectural Design

What Is Architecture?

Software architecture is a representation that enables a software engineer to

Why Is Architecture Important?

Data Design

Data Design Principles

  1. Systematic analysis principles applied to function and behavior should also be applied to data.
  2. All data structures and the operations to be performed on each should be identified.
  3. Data dictionary should be established and used to define both data and program design.
  4. Low level design processes should be deferred until late in the design process.
  5. Representations of data structure should be known only to those modules that must make direct use of the data contained within in the data structure.
  6. A library of useful data structures and operations should be developed.
  7. A software design and its implementation language should support the specification and realization of abstract data types.

Architectural Styles

Each style describes a system category that encompasses:
  1. a set of components (e.g., a database, computational modules) that perform a function required by a system
  2. a set of connectors that enable “communication, coordination and cooperation” among components
  3. constraints that define how components can be integrated to form the system
  4. semantic models that enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.

Architecture Design Assessment Questions

Architecture Trade-off Analysis Method

  1. Collect scenarios
  2. Elicit requirements, constraints, and environmental description
  3. Describe architectural styles/patterns chosen to address scenarios and requirements:
  4. Evaluate quality attributes independently (e.g. reliability, performance, security, maintainability, flexibility, testability, portability, reusability, interoperability)
  5. Identify sensitivity points for architecture (any attributes significantly affected by variation in the architecture)
  6. Critique candidate architectures (from step 3) using the sensitivity analysis (conducted in step 5)

Architectural Complexity (similar to coupling)

Mapping Requirements to Software Architecture in Structured Design

Transform Mapping

Set of design steps that allows a DFD with transform flow characteristics to be mapped into a specific architectural style
Example:

Steps:

  1. Review fundamental system model with an evaluation of both the System Specification and the Software Requirements Specification

Context level DFD for SafeHome
  1. Review and refine data flow diagrams for the software

Level 1 DFD for SafeHome


Level 2 DFD that refines the monitor sensors process


Level 3 DFD for monitor sensors with flow boundaries

  1. Determine whether the DFD has transform or transaction characteristics
  2. Isolate the transform center by specifying incoming and outgoing flow boundaries
  3. Perform first level factoring
  4. Perform second level factoring
  5. Refine the first iteration architecture using design heuristics for improved software quality

Transaction Mapping

Example

Level 2 DFD for user interaction subsystem with flow boundaries
  1. Review fundamental system model
  2. Review and refine data flow diagrams for the software
  3. Determine whether the DFD has transform or transaction characteristics
  4. Identify the transaction center and flow characteristics along each action path
  5. Map the DFD to a program structure amenable to transaction processing

Transaction mapping
  1. Factor and refine the transaction structure and the structure of each action path
  2. Refine the first iteration architecture using design heuristics for improved software quality

Refining Architectural Design

Software Design Specification (Product)
 

Chapter 15: User Interface Design

Golden Rules

User Interface Design Models

User Interface Design Process (Spiral Model)

  1. User, task, and environment analysis and modeling
  2. Interface design
  3. Interface construction
  4. Interface validation

Task Analysis and Modeling

Interface Design Activities

  1. Establish the goals and intentions of each task
  2. Map each goal/intention to a sequence of specific actions (objects and methods for manipulating objects)
  3. Specify the action sequence of tasks and subtasks (user scenario)
  4. Indicate the state of the system at the time the user scenario is performed
  5. Define control mechanisms
  6. Show how control mechanisms affect the state of the system
  7. Indicate how the user interprets the state of the system from information provided through the interface

Interface Design Issues

User Interface Implementation Tools

User Interface Evaluation Cycle

  1. Preliminary design
  2. Build first interface prototype
  3. User evaluates interface
  4. Evaluation studied by designer
  5. Design modifications made
  6. Build next prototype
  7. If interface is not complete then go to step 3

User Interface Design Evaluation Criteria