Software System Design - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Software System Design

Description:

All systems have an architecture, but what are the benefits of ... Data interchange can be hampered by different data layouts. Communication may be expensive ... – PowerPoint PPT presentation

Number of Views:16
Avg rating:3.0/5.0
Slides: 24
Provided by: RowanUni8
Learn more at: http://elvis.rowan.edu
Category:

less

Transcript and Presenter's Notes

Title: Software System Design


1
Software System Design
  • System Architecture
  • Distributed Systems
  • Object-Oriented Design
  • Design with Reuse (component-based design)
  • Designing User Interfaces

2
Software System Design
  • System Architecture
  • System structuring
  • Control models
  • Modular decomposition
  • Domain-specific architectures

3
Software Architecture
  • What is a Software Architecture?
  • High-level description of a complex software
    system
  • Includes both diagrams and text
  • Simplified diagrams often used for marketing
    (e.g. Apples OS X)

4
Software Architecture
  • All systems have an architecture, but what are
    the benefits of designing (and specifying) one?
  • Stakeholder communication
  • System analysis (reasoning about non-functional
    requirements)
  • Reuse
  • Project management (concurrent development)

5
Software Architecture
  • What is a Software Architecture?
  • Answers questions like
  • What are the primary subsystems?
  • What is the division of labor?
  • How will the subsystems communicate?
  • What will the subsystems communicate?

6
Subsystems
A subsystem is a system in its own right whose
operation does not depend on services provided by
other systems. Subsystems are composed of
modules, and have defined interfaces used for
communication with other subsystems.
Sommerville, p. 217
  • .
  • Design/implementation often delegated to
    different engineering teams
  • Development can proceed in parallel
  • Separation of responsibility
  • Minimal inter-subsystem communication

7
Software Architecture
  • Subsystem breakdown guided by
  • Performance
  • Security
  • Safety
  • Availability
  • Maintainability

8
Software Architecture
  • Subsystem breakdown guided by
  • Performance
  • Minimize communication among subsystems
  • Security
  • Safety
  • Availability
  • Maintainability

9
Software Architecture
  • Subsystem breakdown guided by
  • Performance
  • Security
  • Use layered architecture, with critical assets in
    inner layers
  • Safety
  • Availability
  • Maintainability

10
Software Architecture
  • Subsystem breakdown guided by
  • Performance
  • Security
  • Safety
  • Isolate safety-critical components
  • Availability
  • Maintainability

11
Software Architecture
  • Subsystem breakdown guided by
  • Performance
  • Security
  • Safety
  • Availability
  • Redundancy, replication of services
  • Maintainability

12
Software Architecture
  • Subsystem breakdown guided by
  • Performance
  • Security
  • Safety
  • Availability
  • Maintainability
  • Subsystems modules with self-contained components

13
Structural Models
  • The Repository
  • The Client-Server Model
  • The Abstract Machine

14
The Repository Model
  • Shared data is stored in centralized location
    (the repository subsystem), and accessed by
    various (other) subsystems
  • Shared data is passed from one subsystem to the
    next (pipeline architecture)
  • E.g., compiler

15
CASE toolset architecture
16
The Repository Model
  • Characteristics
  • Sharing model is published as repository schema
  • Pros
  • Efficient way to share large amounts of data
  • Data integrity localized to repository module
  • Cons
  • Subsystems must agree (i.e., compromise) on a
    repository data model.
  • Schema evolution is difficult and expensive
  • Distribution can be a problem

17
Client-server architecture
  • Subsystems are viewed as independent processes.
  • Set of stand-alone servers which provide specific
    services such as printing, data management, etc.
  • Set of clients which call on these services.
    Servers can be clients of other servers.
  • Communication network

18
Film and picture library
19
Client-server characteristics
  • Pros
  • Makes effective use of networked systems. May
    require cheaper hardware
  • Easy to add new servers or upgrade existing
    servers
  • Availability (redundancy) may be straightforward
  • Cons
  • Data interchange can be hampered by different
    data layouts
  • Communication may be expensive
  • Data integrity functionality must be implemented
    for each server
  • The naming problems

20
Abstract machine model
  • Organises the system into a set of layers (or
    abstract machines) each of which provide a set of
    services
  • Supports the incremental development of
    sub-systems in different layers. When a layer
    interface changes, only the adjacent layer is
    affected
  • Cant model all systems this way

21
Abstract machine model
  • Examples
  • Version Management System
  • Operating System (e.g., Linux)
  • Runtime Language Environments (e.g., Java)

22
Version management system
23
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com