software architecture design patterns l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Software Architecture & Design Patterns PowerPoint Presentation
Download Presentation
Software Architecture & Design Patterns

Loading in 2 Seconds...

play fullscreen
1 / 16

Software Architecture & Design Patterns - PowerPoint PPT Presentation


  • 732 Views
  • Uploaded on

Software Architecture & Design Patterns SENG 311 By Gabriel Becerra Today’s Agenda Software Architecture: A Definition Software Architect Definition via C-Map Software Architecture: 4 Views Questions What is Software Architecture?

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Software Architecture & Design Patterns' - lotus


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
software architecture design patterns

Software Architecture & Design Patterns

SENG 311

By Gabriel Becerra

today s agenda
Today’s Agenda
  • Software Architecture: A Definition
  • Software Architect Definition via C-Map
  • Software Architecture: 4 Views
  • Questions

Software Architecture - Gabriel Becerra

what is software architecture
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]

Software Architecture - Gabriel Becerra

concept of software architect 1 3

Concepts & Plans

include

Soft. Modularity

develops

Extensive KnowledgeofSoftware Theory

SoftwareArchitect

Module InteractionMethods

include

employs

include

include

Interface Methods orAdapters

Object Operations

Concept of Software Architect (1/3)

Software Architecture - Gabriel Becerra

concept of software architect 2 3

consults

is a

SoftwareArchitect

is a

Stakeholders

is a

is a

Clients

ComputerScientists

Managers

know

know

ConceptualIssues

ImplementationTechniques, Complexity, etc

know

know

Broad DesignIssues

SoftwareEngineers

InnovativeStructuralFeatures

Concept of Software Architect (2/3)

Software Architecture - Gabriel Becerra

concept of software architect 3 3
Concept of Software Architect(3/3)

Software Architecture - Gabriel Becerra

four views
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.

Software Architecture - Gabriel Becerra

conceptual view
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?

Software Architecture - Gabriel Becerra

slide9

Application

receiver

sender

mouse events

Node Window

commands

command objects out

commands

command objects in

sender

receiver

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

Software Architecture - Gabriel Becerra

module view
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?

Software Architecture - Gabriel Becerra

slide11

<<layer>>LocalAgentServices

<<layer>>RemoteAgentServices

<<module>>CDS

<<module>>WP

<<module>>CD

<<module>>YP

<<module>>LAC

<<layer>>Application

<<module>>NodeWindow

<<layer>>Supervisory

<<module>>Supervisor

<<module>>Security

<<module>>hyperbase

<<layer>>Application

<<module>>fileServices

<<module>>windowsServices

<<module>>networkServices

Software Architecture - Gabriel Becerra

execution view
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?

Software Architecture - Gabriel Becerra

slide13

socket

<<CDprocess>>CD1..n

<<CDSprocess>>CDS1..m

<<CDprocess>>YP1..p

<<WPprocess>>WP1..q

<<LACprocess>>LAC1..r

<<module>>CDS

<<module>>WP

SC

<<module>>CD

<<module>>YP

socket

<<module>>LAC

socket

socket

socket

<<OS>>System

<<layer>>Application

<<ApplicationProcess>>App1..s

<<layer>>Application

<<module>>windowsServices

<<module>>NodeWindow

SC

<<layer>>Supervisory

<<module>>fileServices

<<HB_DLL>>hyperbase

SC

<<module>>Supervisor

<<module>>Security

<<module>>hyperbase

<<module>>networkServices

SC

Software Architecture - Gabriel Becerra

code view
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?

Software Architecture - Gabriel Becerra

slide15

<<binary>>Supervisor.class

<<binary>>Security.class

<<binary>>HyperBase.class

<<library>>CMap.jar

<<configuration description>>CMap.info

<<source>>NodeWindow.java

CMap_w.exe(Windows)

<<source>>HyperBase.java

<<source>>Supervisor.java

<<source>>Security.java

<<binary>>NodeWindow.class

CMap_solaris(solaris)

CMap_linux(linux)

CMInstaller

CMap_mac(mac)

<<package>>NodeWindow

<<package>>

generate

compile

import

link

compile

Use at runtime

link

compile

compile

link

Software Architecture - Gabriel Becerra

questions
Questions?

Software Architecture - Gabriel Becerra