nov 28, tutorial notes

15
1 CS 407 Tutorial Week 11 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

Upload: hoangkiet

Post on 03-Jan-2017

224 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Nov 28, tutorial notes

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

Page 2: Nov 28, tutorial notes

2CS 407 Tutorial Week 11

Software arch. (continued)Software architecture also involves

usagefunctionalityperformanceresiliencereusecomprehensibilityeconomic and technology constraints and tradeoffsaesthetic concerns

Page 3: Nov 28, tutorial notes

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

Page 4: Nov 28, tutorial notes

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

Page 5: Nov 28, tutorial notes

5CS 407 Tutorial Week 11

Architectural patternsLayeredMVCIR­centricSubsumptionDisposable

DistributedEvent­drivenFrame­basedBatchPipes and filtersRepository­centricBlackboardInterpreterRule­based

Patentable  ­ Hughes CAATS

Page 6: Nov 28, tutorial notes

6CS 407 Tutorial Week 11

Layered architecture

 

Major processes

Domain classes

Mechanisms

Services

Applications& interfaces

Issues  ­ Separation of concerns

Page 7: Nov 28, tutorial notes

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

Page 8: Nov 28, tutorial notes

8CS 407 Tutorial Week 11

Commercial frameworksMTS/MSQSCORBAEnterprise Java BeansDominoSAP R/3DelphiForteVisual Basic

Similar to buildingcodes or localcovenants

Page 9: Nov 28, tutorial notes

9CS 407 Tutorial Week 11

MTS architecture

Client

StubProxy

Class factorywrapper

Contextwrapper

Contextobject

MTS executive

Classfactory

MTSobject

Server

Page 10: Nov 28, tutorial notes

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

Page 11: Nov 28, tutorial notes

11CS 407 Tutorial Week 11

EJB architecture

Page 12: Nov 28, tutorial notes

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

Page 13: Nov 28, tutorial notes

13CS 407 Tutorial Week 11

Focus over timeDiscovery Invention Implementation

Focus

Time

Page 14: Nov 28, tutorial notes

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

Page 15: Nov 28, tutorial notes

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