Software architecture

343 views

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
343
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software architecture

  1. 1. 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
  2. 2. 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
  3. 3. Forces in software architecture Functionality Performance Technology churn Resilience Throughput Fail safe Capacity Differences   ­ No moving parts   ­ New materials can be created   ­ Physics can be changed Avoiding failure   ­ Separation of concerns   ­ Semantic consistency   ­ Distribution of responsibilities 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
  4. 4. 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
  5. 5. Architectural patterns Distributed Event­driven Frame­based Batch Pipes and filters Repository­centric Blackboard Interpreter Rule­based Layered MVC IR­centric Subsumption Disposable Patentable   ­ Hughes CAATS CS 407 Tutorial Week 11 5
  6. 6. Layered architecture Issues Applications&    interfaces   ­ Separation of concerns Major  processes Domain  classes Mechanisms Services CS 407 Tutorial Week 11 6
  7. 7. Distributed architecture Issues   ­ DCOM vs EJB vs CORBA   ­ Distribution and migration   ­ Fine grain/large grain objects   ­ Stateless vs stateful services   ­ Clustering   ­ Replication Clients Mechanisms LAN   ­ RPC   ­ Transaction       ­ Atomicity       ­ Consistency       ­ Isolation       ­ Durability   ­ Messaging   ­ Conversation   ­ Request/response   ­ Publish and subscribe   ­ Broadcast WAN Servers CS 407 Tutorial Week 11 7
  8. 8. Commercial frameworks Similar to building codes or local covenants MTS/MSQS CORBA Enterprise Java Beans Domino SAP R/3 Delphi Forte Visual Basic CS 407 Tutorial Week 11 8
  9. 9. MTS architecture MTS executive Class factory wrapper Client Proxy Stub Context wrapper Server Class factory MTS object Context object CS 407 Tutorial Week 11 9
  10. 10. CORBA architecture CORBA facilities Application objects   ­ Organization specific   ­ User interface   ­ Information management   ­ System management   ­ Task management CORBA domains   ­ Financial services   ­ Health care   ­ Telecommunications   ­ Other Object request broker CORBA services   ­ Concurrency   ­ Events   ­ Externalization   ­ Licensing ­ Lifecycle ­ Naming ­ Security ­ Time ­ Trade ­ Start up ­  Persistence ­ Properties CS 407 Tutorial Week 11 ­ Query ­ Relationships ­ Transactions ­ Collections 10
  11. 11. EJB architecture CS 407 Tutorial Week 11 11
  12. 12. 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
  13. 13. Focus over time Discovery Invention Implementation Focus Time CS 407 Tutorial Week 11 13
  14. 14. Architecture across the lifecycle Inception Elaboration Construction Transition Planning Analysis Architecture Design Implementation Integration Test/assessment Preliminary Iteration Iteration #1 Iteration #2 ... Iteration #n+1 Iteration #... Iteration Iteration #m #m+1 CS 407 Tutorial Week 11 Iteration #m+2 .. 14
  15. 15. 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

×