Nov 28, tutorial notes
Transcript of 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
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 wellstructured systems are full of patternsidioms
design patterns
architectural patterns
5CS 407 Tutorial Week 11
Architectural patternsLayeredMVCIRcentricSubsumptionDisposable
DistributedEventdrivenFramebasedBatchPipes and filtersRepositorycentricBlackboardInterpreterRulebased
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