SE 616 – Introduction to Software Engineering

Lecture 5

Architectural Design (Chapter 10)

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.

Description: C:\Webstuff\SE616\L5New\Image2.jpg

Description: C:\Webstuff\SE616\L5New\Image3.jpg

Description: C:\Webstuff\SE616\L5New\Image4.jpg

 

 

 

 

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:
      • module view
      • process view
      • data flow view
  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

Description: C:\Webstuff\SE616\L5New\Image5.jpg
Context level DFD for SafeHome

  1. Review and refine data flow diagrams for the software

Description: C:\Webstuff\SE616\L5New\Image6.jpg
Level 1 DFD for SafeHome

Description: C:\Webstuff\SE616\L5New\Image7.jpg
Level 2 DFD that refines the monitor sensors process

Description: C:\Webstuff\SE616\L5New\Image8.jpg
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

Description: C:\Webstuff\SE616\L5New\Image9.jpg

  1. Perform second level factoring

Description: C:\Webstuff\SE616\L5New\Image10.jpg

  1. Refine the first iteration architecture using design heuristics for improved software quality

Transaction Mapping

Example

Description: C:\Webstuff\SE616\L5New\Image11.jpg
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

Description: C:\Webstuff\SE616\L5New\Image12.jpg
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)
 

 

Component-Level Design (Chapter 11)

Purpose

Timeline

Work Product

Structured Programming

Design Notation

Description: C:\Webstuff\SE616\L5New\img1a.gif

Description: C:\Webstuff\SE616\L5New\img2a.gif


(1) functional domain (that is, the scope of repetition or if-then-else) is well defined and clearly visible as a pictorial representation
(2) arbitrary transfer of control is impossible
(3) the scope of local and/or global data can be easily determined
(4) recursion is easy to represent

Description: C:\Webstuff\SE616\L5New\img3.gif
 

Description: C:\Webstuff\SE616\L5New\img4.gif

Steps  to develop a decision table:

  1. List all actions that can be associated with a specific procedure (or module).
  2. List all conditions (or decisions made) during execution of the procedure.
  3. Associate specific sets of conditions with specific actions, eliminating impossible combinations of conditions; alternatively, develop every possible permutation of conditions.
  4. Define rules by indicating what action(s) occurs for a set of conditions.

Example
If the customer account is billed using a fixed rate method, a minimum monthly charge is assessed for consumption of less than 100 KWH (kilowatt-hours). Otherwise, computer billing applies a Schedule A rate structure. However, if the account is billed using a variable rate method, a Schedule A rate structure will apply to consumption below 100 KWH, with additional consumption billed according to Schedule B.

Description: C:\Webstuff\SE616\L5New\img5.gif

Description: C:\Webstuff\SE616\L5New\img6.gif

Design Notation Assessment Criteria