Architecture 2 1 Announcements What is Architecture? ❚ Final project hand-in and documentation ❚ Big picture ❚ Structure or structures that support the system ❚ Early design decisions ❙ “ Architecture is the design decisions you have to make early in the project. ” ❙ Expensive to change CS361 08-3 CS361 08-4 Why is architecture What is Architecture? important? ❚ Key to meeting non-functional ❚ High-level design (components = requirements modules) ❚ Provides a common view for all ❚ Pervasive patterns (components = lower stakeholders level objects) ❚ Divide the system into modules ❙ Divide the developers into teams ❙ Subcontract work to other groups ❙ Find packages to reuse CS361 08-5 CS361 08-6 1
Where does architecture come from? What order? ❚ Use an architecture you’ve seen before ❚ Use cases first? ❙ great artists often steal!! ❚ Processes first? ❚ Invent one ❚ Data model first? ❚ Let it emerge ❚ GUI first? ❚ Depends on architectural style CS361 08-7 CS361 08-8 Architecture in RUP Architecture in XP ❚ No architect ❚ “ Elaboration phase ” develops architecture, ❚ “ System metaphor ” is the architecture expressed as a skeleton system ❚ Infrastructure emerges, it isn ’ t planned in ❚ Architect advance ❙ chooses architectural style ❚ Good developers will convince customer to ❙ prioritizes use cases ❙ performs “ architectural analysis ” to decompose pick important user stories first system into components ❙ reviews work of component engineers CS361 08-9 CS361 08-10 Original Amazon.com Picking an architecture architecture ❚ Many standard architectures ❚ Each has strengths and weaknesses WebBrowser WebServer ❚ Each solves some problems and creates cgi, servlet, ASP HTTP and HTML others Logic Database CS361 08-11 CS361 08-12 2
Facts about Web architecture One solution ❚ HTTP protocol is stateless WebBrowser WebServer ❙ state encoded in URLs and cookies JSP, ASP ❚ Web server should be stateless HTTP and HTML Presentation ❙ All state is in database EJB, .NET ❚ Separate “ presentation ” from logic and Logic database design Database CS361 08-13 CS361 08-14 Another solution What they have in common HTTP and HTML ❚ Use database for integration ❚ Use database for synchronization WebBrowser WebServer ❚ Database is usually the bottleneck cgi, servlet, UI Templates ASP Framework Logic Database CS361 08-15 CS361 08-16 Service-oriented architecture Organizing project: people HTTP and HTML ❚ Database designer ❚ UI designer WebBrowser WebServer ❚ programmers Application Service 1 Service 2 Service 3 Service 4 Service 5 CS361 08-17 CS361 08-18 3
Organizing project: process Trade-offs ❚ Database design is key ❚ How do you pick an architectural style? ❙ hard to change ❚ How do you make design choices? ❙ everything else depends on it ❚ What is important? ❚ GUI tells what data is needed ❙ Flexibility and ease of change ❙ build prototype early ❙ Efficiency ❙ redo at the end after feedback ❙ Reliability ❙ relatively easy to change CS361 08-19 CS361 08-20 What is an architect? How it is really done ❚ Responsible for choosing architecture ❚ Experts pick a way that seems best and start to use it. ❚ Responsible for communicating with ❙ Developers ❚ If problems arise, they reconsider. ❙ Clients ❚ Responsible for making trade-offs about ❚ See http://www.fastcompany.com/online/ features 38/klein.html ❚ Chief builder - “ Architect also implements ” ❚ Blink: the power of thinking without ❚ Leader of developers thinking (Malcolm Gladwell) CS361 08-21 CS361 08-22 Summary: Why architecture? What they don ’ t tell you ❚ A common vision of the design that ❚ Good architecture requires experience enables people to talk to each other. ❚ There is more to being an architect than ❚ The key design decisions of the system. picking the architecture ❙ “ chief builder ” ❚ Simplified version of design, ideal for teaching new developers. ❙ create conceptual integrity CS361 08-23 CS361 08-24 4
Next time: read on Wikipedia Quality Attributes ❚ Software Architecture ❚ Desired properties of entire system, not ❚ Architecture frameworks particular features ❙ DODAF, TOGAF, Federal Enterprise Architecture ❚ Non-functional requirements ❚ Architectural styles ❙ Client-server, database-centric *, service-oriented, three-tier ❚ Usability, maintainability, flexibility, ❚ Software Architecture Patterns understandability, reliability, efficiency, ... ❚ Architecture tradeoff analysis method * ❚ Software architect * CS361 08-25 CS361 08-26 ATAM ❚ Architectural Trade-off Analysis Method ❙ Collect scenarios (architectural use cases) ❙ Collect requirements, constraints, and environment descriptions ❙ Describe candidate architectural styles ❙ Evaluate quality attributes ❙ Identify sensitivity of quality attributes ❙ Critique candidate architectures CS361 08-27 5
Recommend
More recommend