Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline...

18
Software Architecture Patrick Cook October 21

Transcript of Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline...

Page 1: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Software ArchitecturePatrick CookOctober 21

Page 2: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Who are software architects?

Page 3: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

When do we need them?

• “Relatively complex systems, where the complexity is interfering with the ability to change and respond”

• Design decisions are hard to change later

• Mission-critical systems

• Stock exchange

• Fly-by-wire airplane systems

Page 4: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Complexity

• Complexity ≠ Size

• Defined by:

✦ Time

✦ Budget

Page 5: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Predicting the Future

Page 6: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Example: Southwest.com Reservations

Page 7: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Advantages to Good Architecture

• Easy to fix specific components

• Easy to understand system

• Easy to extend

Page 8: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Quality Attribute Concerns

• What is important to the business and success of the application?

• Examples:

✦ Performance

✦ Fault-tolerance

✦ Modifiability

Page 9: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Example: Airline Reservation System• Airline asked you to build new back-end

system that manages flight availability, reservations, tickets, and payments

• Must integrate with airport kiosks, travel agency computers, gate ticket scanners, customer service agents computers, the website and mobile applications

• Each device offers different functionality

Page 10: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Decomposition

• Partitioning into subparts, divide and conquer

• Issues to consider:

✦ Scalability

✦ Reduction of cost - reuse efforts

Page 11: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Airport Kiosk MyAirline.comCustomer Service

Agent

Ticketing

Security Docs

E-Tickets

Nonrev Tickets

Paper Tickets

Reservations

Flights

Baggage

Passengers

Assistance Options

Payment Processing

Gift Vouchers

Credit Cards

Exchanges

Refunds

Flight Availability

Flight Times

Open Seats

Flight Statuses

Overbooking

Page 12: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Limitations of Decomposition

• Assembly - how are the components going to come together?

• Scalability - will keep up with growth?

• Location Transparency - can it run on different platforms?

• Market differentiation - which components are required for each market?

Page 13: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Limitations of Decomposition

• Interoperability - how well do the components interact together?

• What about runtime and deployment environment?

Page 14: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

The Paradox

• The tendency of the decomposition to produce rather monolithic software systems whereas composition tends to produce more componentized software systems

Page 15: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Composition

• Assembling, verifying, and packaging system

• Runtime platform, technology dependencies

Page 16: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Decomposition vs. Composition

• Designer vs. Integratrator

• Separation of requirements vs. Overall requirements

• Break-down structures vs Packaging structures

Page 17: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Airport Kiosk MyAirline.comCustomer

Service Agent

TicketingReservationsPayment

ProcessingFlight Availability

Internal Communication and Redirection Layer

Common Integrated Services and External Communication Layer

SOAP APIs AJAX APIs

Page 18: Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline Reservation System • Airline asked you to build new back-end system that manages flight

Shelf Browser

Common AJAX Interface

Ext JS(Desktop Client)

Sencha Touch(Mobile Interface)

Shelf Browser Service

Google Book Search API

Emory Libraries Service (stubbed)