Software Architecture - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Software Architecture

Description:

The execution view maps the modules onto the runtime platform and the hardware ... Concerns addressed by the module view include: ... – PowerPoint PPT presentation

Number of Views:26
Avg rating:3.0/5.0
Slides: 17
Provided by: AYA59
Category:

less

Transcript and Presenter's Notes

Title: Software Architecture


1
Software Architecture Design Patterns
  • SENG 311
  • By Gabriel Becerra

2
Todays Agenda
  • Software Architecture A Definition
  • Software Architect Definition via C-Map
  • Software Architecture 4 Views
  • Questions

3
What is Software Architecture?
  • Software architecture is a coherent set of
    abstract patterns guiding the design of each
    aspect of a larger software system. Wikipedia
    http//en.wikipedia.org/wiki/Software_architecture

4
Concept of Software Architect (1/3)
5
Concept of Software Architect (2/3)
6
Concept of Software Architect (3/3)
7
Four Views
  • One of the problems with large systems is the
    complexity.
  • The solution is to provide multiple views that
    separate different aspects of the system to help
    us manage the complexity.
  • There are four architectural views
  • The conceptual view describes the system in terms
    of its major design elements and represents the
    flow of control, thus addressing the requirements
    of the system
  • The module view decomposes the system into
    modules and partitions them into layers, thus
    showing us how we can map our solution onto
    software platforms and technologies.
  • The execution view maps the modules onto the
    runtime platform and the hardware architecture
    allowing us to address resource usage such as
    memory, hardware and basic control flow
  • The code view allows us to map implementations to
    deployment modules.

8
Conceptual View
  • The conceptual view is tied to the application
    domain and represents the components and
    connectors.
  • Problems and solutions are view in domain terms,
    independent of particular software and hardware
    techniques
  • Concerns addressed by the conceptual view
    include
  • How does the system satisfy requirements?
  • How are COTS components integrated?
  • How do we partition the functionality into
    releases?
  • How is the system designed for legacy and growth
    integrations?
  • How are product lines supported?
  • How can the impact of changes in requirements or
    domain be minimized?

9
Application
sender
receiver
mouse events
Node Window
commands
command objects out
commands
command objects in
receiver
sender
new and modified objects out
new and modified objects in
localcommand objects out
localcommand objects in
destination
source
Supervisor
data
data
source
destination
new and modified objects in
new and modified objects out
Hyperbase
10
Module View
  • The module view maps the components and
    connectors to subsystems and modules.
  • Concerns addressed by the module view include
  • How is the product mapped to the software
    platform?
  • What system support/services does it use and
    where?
  • How can testing be supported?
  • How can dependencies between modules be
    minimized?
  • How can reuse of modules and subsystems be
    maximized?
  • How to we guard against changes in COTS software,
    software platform, or standards?

11
ltltlayergtgtLocalAgentServices
ltltlayergtgtRemoteAgentServices
ltltmodulegtgtLAC
ltltmodulegtgtCD
ltltmodulegtgtCDS
ltltmodulegtgtYP
ltltmodulegtgtWP
ltltlayergtgtApplication
ltltmodulegtgtNodeWindow
ltltlayergtgtSupervisory
ltltmodulegtgtSupervisor
ltltmodulegtgtSecurity
ltltmodulegtgthyperbase
ltltlayergtgtApplication
ltltmodulegtgtwindowsServices
ltltmodulegtgtfileServices
ltltmodulegtgtnetworkServices
12
Execution View
  • The execution view describes how modules are
    mapped to elements of the runtime platform and
    how these are mapped to the hardware
    architecture.
  • Concerns addressed by the execution view include
  • How does the system meet its performance,
    recovery, and reconfiguration requirements?
  • How do we balance resource usage?
  • How do we achieve concurrency, replication, and
    distribution without adding too much complexity
    to the algorithms?
  • How can the impact of changes in the runtime
    platform be minimized?

13
socket
ltltLACprocessgtgtLAC1..r
ltltCDprocessgtgtCD1..n
ltltCDprocessgtgtYP1..p
ltltCDSprocessgtgtCDS1..m
ltltWPprocessgtgtWP1..q
ltltmodulegtgtLAC
ltltmodulegtgtCD
ltltmodulegtgtCDS
ltltmodulegtgtYP
ltltmodulegtgtWP
socket
SC
socket
socket
socket
ltltOSgtgtSystem
ltltlayergtgtApplication
ltltApplicationProcessgtgtApp1..s
ltltlayergtgtApplication
ltltmodulegtgtNodeWindow
ltltmodulegtgtwindowsServices
SC
ltltlayergtgtSupervisory
ltltmodulegtgtfileServices
ltltHB_DLLgtgthyperbase
SC
ltltmodulegtgtSupervisor
ltltmodulegtgtSecurity
ltltmodulegtgthyperbase
ltltmodulegtgtnetworkServices
SC
14
Code View
  • The code view determines how runtime entities are
    mapped to deployment components, how modules are
    mapped to source components, and how the
    deployment components are produced from the
    source components.
  • Concerns addressed by the code view include
  • How can the time and effort for product upgrades
    be reduced?
  • How should product versions and releases be
    managed?
  • How can build time be reduced?
  • What tools are needed to support the development
    environment?
  • How are integration and testing supported?

15
generate
compile
import
link
compile
Use at runtime
link
compile
compile
link
16
Questions?
Write a Comment
User Comments (0)
About PowerShow.com