Vous êtes sur la page 1sur 15

Software architecture

Software architecture encompasses the set of 
significant decisions about the organization of a 
software system
− selection of the structural elements and their interfaces by 
which a system is composed
− behavior as specified in collaborations among those 
elements
− composition of these structural and behavioral elements into 
larger subsystem
− architectural style that guides this organization

CS 407 Tutorial Week 11 1
Software arch. (continued)
Software architecture also involves
usage
functionality
performance
resilience
reuse
comprehensibility
economic and technology constraints and tradeoffs
aesthetic concerns
CS 407 Tutorial Week 11 2
Forces in software architecture
Functionality Technology churn

Performance Resilience Differences


  ­ No moving parts
  ­ New materials can be created
  ­ Physics can be changed

Throughput Fail safe Avoiding failure


  ­ Separation of concerns
  ­ Semantic consistency
  ­ Distribution of responsibilities

Capacity Fault tolerance

Availability

Have an architecture that makes sense before you write 3.5 million
lines of code.
  ­ Patrick Naugton

CS 407 Tutorial Week 11 3
Patterns
A pattern is a solution to a problem in a context
A pattern codifies specific knowledge collected 
from experience in a domain
All well­structured systems are full of patterns
idioms
design patterns
architectural patterns

CS 407 Tutorial Week 11 4
Architectural patterns
Distributed Layered
Event­driven MVC
Frame­based IR­centric
Batch Subsumption
Pipes and filters Disposable
Repository­centric
Blackboard Patentable
  ­ Hughes CAATS

Interpreter
Rule­based CS 407 Tutorial Week 11 5
Layered architecture
Issues
Applications&    ­ Separation of concerns
 
interfaces

Major 
processes

Domain 
classes

Mechanisms

Services

CS 407 Tutorial Week 11 6
Distributed architecture
Issues
  ­ DCOM vs EJB vs CORBA
  ­ Distribution and migration
  ­ Fine grain/large grain objects
  ­ Stateless vs stateful services
  ­ Clustering
Clients   ­ Replication

Mechanisms
  ­ RPC
  ­ Transaction
      ­ Atomicity
      ­ Consistency
      ­ Isolation
      ­ Durability
LAN   ­ Messaging
  ­ Conversation
  ­ Request/response
  ­ Publish and subscribe
  ­ Broadcast

WAN
Servers

CS 407 Tutorial Week 11 7
Commercial frameworks
Similar to building
MTS/MSQS codes or local
covenants
CORBA
Enterprise Java Beans
Domino
SAP R/3
Delphi
Forte
Visual Basic
CS 407 Tutorial Week 11 8
MTS architecture
MTS executive Server

Class factory Class
Client wrapper factory

Proxy Stub Context


wrapper MTS
object

Context
object

CS 407 Tutorial Week 11 9
CORBA architecture

Application objects CORBA facilities CORBA domains


  ­ Organization specific   ­ User interface   ­ Financial services
  ­ Information management   ­ Health care
  ­ System management   ­ Telecommunications
  ­ Task management   ­ Other

Object request broker

CORBA services
  ­ Concurrency ­ Lifecycle ­ Trade ­ Query
  ­ Events ­ Naming ­ Start up ­ Relationships
  ­ Externalization ­ Security ­  Persistence ­ Transactions
  ­ Licensing ­ Time ­ Properties ­ Collections

CS 407 Tutorial Week 11 10
EJB architecture

CS 407 Tutorial Week 11 11
Architectural context
The choice of which building code or covenant you 
chose to live under is an architectural decision

− but by no means is this a sufficient architectural decision

CS 407 Tutorial Week 11 12
Focus over time
Discovery Invention Implementation

Focus

Time
CS 407 Tutorial Week 11 13
Architecture across the lifecycle
Inception Elaboration Construction Transition

Planning

Analysis

Architecture

Design

Implementation

Integration

Test/assessment

Preliminary Iteration Iteration Iteration Iteration Iteration Iteration Iteration


Iteration #1 #2 ... #n+1 #... #m #m+1 #m+2 ..

CS 407 Tutorial Week 11 14
For more information
This set of tutorial slides is entirely based on a talk 
delivered by Grady Booch.

The original talk can be downloaded from:
http://www.rational.com/media/whitepapers/sd98.zip

CS 407 Tutorial Week 11 15

Vous aimerez peut-être aussi