CS451 Topic 7: Software Design I - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

CS451 Topic 7: Software Design I

Description:

(1) analyze the effectiveness of the design in meeting its stated ... 'four bedrooms, three baths, lots of glass ...' customer requirements. architectural design ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 19
Provided by: frankm8
Category:

less

Transcript and Presenter's Notes

Title: CS451 Topic 7: Software Design I


1
CS451Topic 7 Software Design (I)
  • Yugi Lee
  • STB 555
  • (816) 235-5932
  • yugi_at_cstp.umkc.edu
  • www.cstp.umkc.edu/yugi

2
Why Architecture?
  • The architecture is not the operational software.
    Rather, it is a representation that enables a
    software engineer to
  • (1) analyze the effectiveness of the design in
    meeting its stated requirements,
  • (2) consider architectural alternatives at a
    stage when making design changes is still
    relatively easy, and
  • (3) reduce the risks associated with the
    construction of the software.

3
Architectural Styles
  • set of components (e.g., a database,
    computational modules) that perform a function
    required by a system,
  • a set of connectors that enable communication,
    coordination and cooperation among components,
  • constraints that define how components can be
    integrated to form the system, and
  • semantic models that enable a designer to
    understand the overall properties of a system by
    analyzing the known properties of its constituent
    parts.

4
Architectural Styles
  • Data-centered architectures
  • Data flow architectures
  • Call and return architectures
  • Client-server architectures
  • Object-oriented architectures
  • Layered architectures

5
Data-Centered Architecture
6
Data Flow Architecture
7
Call and Return Architecture
8
Layered Architecture
9
Client/Server Architecture
  • Most Web based applications which involve data
    entry are based on a 3 tier client server
    architecture.
  • the Client (Web Browser)
  • the Web Server/Application Server
  • the Database Server

10
Client/Server Architecture
  • The Client Web browser that runs at the Users PC
    or Workstation. JavaScripts, Java Applets and
    ActiveX
  • The Web/Application Server Center of
    architecture the Web Server and the application
    specific code that gets executed by the Web
    server Perl scripts, Java programs, C/C
    programs, active server pages, etc.
  • The Database Server usually located on a
    different system than the Web/Application server
    and used my more than one application or process.
    Even if it is located on the same system, it is
    still an architecturally separate tier.
    Microsoft's SQL Server, Oracle, DB2, Sybase, etc.

11
Distributed Client/Server Architecture
12
Analyzing Architectural Design
  • 1. Collect scenarios.
  • 2. Elicit requirements, constraints, and
    environment description.
  • 3. Describe the architectural styles/patterns
    that have been chosen to address the scenarios
    and requirements
  • module view, process view, data flow view
  • 4. Evaluate quality attributes by considered
    each attribute in isolation.
  • 5. Identify the sensitivity of quality
    attributes to various architectural attributes
    for a specific architectural style.
  • 6. Critique candidate architectures (developed
    in step 3) using the sensitivity analysis
    conducted in step 5.

13
An Architectural Design Method
customer requirements
"four bedrooms, three baths,
lots of glass ..."
architectural design
14
Deriving Program Architecture
Program Architecture
15
Partitioning the Architecture
  • horizontal and vertical partitioning are
    required

16
Horizontal Partitioning
  • define separate branches of the module hierarchy
    for each major function
  • use control modules to coordinate communication
    between functions

function 3
function 1
function 2
17
Vertical Partitioning Factoring
  • design so that decision making and work are
    stratified
  • decision making modules should reside at the top
    of the architecture

decision-makers
workers
18
Why Partitioned Architecture?
  • results in software that is easier to test
  • leads to software that is easier to maintain
  • results in propagation of fewer side effects
  • results in software that is easier to extend
Write a Comment
User Comments (0)
About PowerShow.com