1 Where does architecture come from? What order? Use an - - PDF document

1
SMART_READER_LITE
LIVE PREVIEW

1 Where does architecture come from? What order? Use an - - PDF document

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


slide-1
SLIDE 1

1

1

Architecture

2

Announcements

❚ Final project hand-in and documentation

CS361 08-3 CS361 08-4

What is Architecture?

❚ 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-5

What is Architecture?

❚ High-level design (components = modules) ❚ Pervasive patterns (components = lower level objects)

CS361 08-6

Why is architecture important?

❚ Key to meeting non-functional requirements ❚ Provides a common view for all stakeholders ❚ Divide the system into modules

❙ Divide the developers into teams ❙ Subcontract work to other groups ❙ Find packages to reuse

slide-2
SLIDE 2

2

CS361 08-7

Where does architecture come from?

❚ Use an architecture you’ve seen before

❙ great artists often steal!!

❚ Invent one ❚ Let it emerge

CS361 08-8

What order?

❚ Use cases first? ❚ Processes first? ❚ Data model first? ❚ GUI first? ❚ Depends on architectural style

CS361 08-9

Architecture in RUP

❚ “Elaboration phase” develops architecture, expressed as a skeleton system ❚ Architect

❙ chooses architectural style ❙ prioritizes use cases ❙ performs “architectural analysis” to decompose system into components ❙ reviews work of component engineers

CS361 08-10

Architecture in XP

❚ No architect ❚ “System metaphor” is the architecture ❚ Infrastructure emerges, it isn’t planned in advance ❚ Good developers will convince customer to pick important user stories first

CS361 08-11

Picking an architecture

❚ Many standard architectures ❚ Each has strengths and weaknesses ❚ Each solves some problems and creates

  • thers

CS361 08-12

Original Amazon.com architecture

Database WebBrowser Logic WebServer HTTP and HTML cgi, servlet, ASP

slide-3
SLIDE 3

3

CS361 08-13

Facts about Web architecture

❚ HTTP protocol is stateless

❙ state encoded in URLs and cookies

❚ Web server should be stateless

❙ All state is in database

❚ Separate “presentation” from logic and database design

CS361 08-14

One solution

Database WebBrowser Presentation WebServer HTTP and HTML EJB, .NET Logic JSP, ASP

CS361 08-15

Another solution

Database WebBrowser Logic WebServer HTTP and HTML cgi, servlet, ASP UI Templates Framework

CS361 08-16

What they have in common

❚ Use database for integration ❚ Use database for synchronization ❚ Database is usually the bottleneck

CS361 08-17

Service-oriented architecture

WebBrowser Service 3 HTTP and HTML WebServer Service 4 Application Service 5 Service 1 Service 2

CS361 08-18

Organizing project: people

❚ Database designer ❚ UI designer ❚ programmers

slide-4
SLIDE 4

4

CS361 08-19

Organizing project: process

❚ Database design is key

❙ hard to change ❙ everything else depends on it

❚ GUI tells what data is needed

❙ build prototype early ❙ redo at the end after feedback ❙ relatively easy to change

CS361 08-20

Trade-offs

❚ How do you pick an architectural style? ❚ How do you make design choices? ❚ What is important?

❙ Flexibility and ease of change ❙ Efficiency ❙ Reliability

CS361 08-21

How it is really done

❚ Experts pick a way that seems best and start to use it. ❚ If problems arise, they reconsider. ❚ See http://www.fastcompany.com/online/ 38/klein.html ❚ Blink: the power of thinking without thinking (Malcolm Gladwell)

CS361 08-22

What is an architect?

❚ Responsible for choosing architecture ❚ Responsible for communicating with

❙ Developers ❙ Clients

❚ Responsible for making trade-offs about features ❚ Chief builder - “Architect also implements” ❚ Leader of developers

CS361 08-23

Summary: Why architecture?

❚ A common vision of the design that enables people to talk to each other. ❚ The key design decisions of the system. ❚ Simplified version of design, ideal for teaching new developers.

CS361 08-24

What they don’t tell you

❚ Good architecture requires experience ❚ There is more to being an architect than picking the architecture

❙ “chief builder” ❙ create conceptual integrity

slide-5
SLIDE 5

5

CS361 08-25

Next time: read on Wikipedia

❚ Software Architecture ❚ Architecture frameworks

❙ DODAF, TOGAF, Federal Enterprise Architecture

❚ Architectural styles

❙ Client-server, database-centric *, service-oriented, three-tier

❚ Software Architecture Patterns ❚ Architecture tradeoff analysis method * ❚ Software architect *

CS361 08-26

Quality Attributes

❚ Desired properties of entire system, not particular features ❚ Non-functional requirements ❚ Usability, maintainability, flexibility, understandability, reliability, efficiency, ...

CS361 08-27

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