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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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 wellstructured systems are full of patternsidioms
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