nov 28, tutorial notes

Post on 03-Jan-2017

224 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1CS 407 Tutorial Week 11

Software architectureSoftware 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

2CS 407 Tutorial Week 11

Software arch. (continued)Software architecture also involves

usagefunctionalityperformanceresiliencereusecomprehensibilityeconomic and technology constraints and tradeoffsaesthetic concerns

3CS 407 Tutorial Week 11

Forces in software architecture

Avoiding failure  ­ Separation of concerns  ­ Semantic consistency  ­ Distribution of responsibilities

Performance

Throughput

Capacity

Functionality

Availability

Resilience

Fail safe

Fault tolerance

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

Technology churn

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

4CS 407 Tutorial Week 11

PatternsA 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 patternsidioms

design patterns

architectural patterns

5CS 407 Tutorial Week 11

Architectural patternsLayeredMVCIR­centricSubsumptionDisposable

DistributedEvent­drivenFrame­basedBatchPipes and filtersRepository­centricBlackboardInterpreterRule­based

Patentable  ­ Hughes CAATS

6CS 407 Tutorial Week 11

Layered architecture

 

Major processes

Domain classes

Mechanisms

Services

Applications& interfaces

Issues  ­ Separation of concerns

7CS 407 Tutorial Week 11

Distributed architecture

LAN

WAN

Clients

Servers

Issues  ­ DCOM vs EJB vs CORBA  ­ Distribution and migration  ­ Fine grain/large grain objects  ­ Stateless vs stateful services  ­ Clustering  ­ Replication

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

8CS 407 Tutorial Week 11

Commercial frameworksMTS/MSQSCORBAEnterprise Java BeansDominoSAP R/3DelphiForteVisual Basic

Similar to buildingcodes or localcovenants

9CS 407 Tutorial Week 11

MTS architecture

Client

StubProxy

Class factorywrapper

Contextwrapper

Contextobject

MTS executive

Classfactory

MTSobject

Server

10CS 407 Tutorial Week 11

CORBA architecture

Application objects  ­ Organization specific

CORBA facilities  ­ User interface  ­ Information management  ­ System management  ­ Task management

CORBA domains  ­ Financial services  ­ Health care  ­ Telecommunications  ­ Other

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

Object request broker

11CS 407 Tutorial Week 11

EJB architecture

12CS 407 Tutorial Week 11

Architectural contextThe 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

13CS 407 Tutorial Week 11

Focus over timeDiscovery Invention Implementation

Focus

Time

14CS 407 Tutorial Week 11

Architecture across the lifecycle

Inception Elaboration Construction Transition

PreliminaryIteration

Analysis

Design

Architecture

Implementation

Planning

Test/assessment

Iteration #1

Iteration #2 ...

Iteration #n+1

Iteration #...

Iteration #m

Iteration#m+1

Iteration#m+2 ..

Integration

15CS 407 Tutorial Week 11

For more informationThis 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

top related