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

Post on 22-Sep-2020

11 views 0 download

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

Software ArchitecturePatrick CookOctober 21

Who are software architects?

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

Complexity

• Complexity ≠ Size

• Defined by:

✦ Time

✦ Budget

Predicting the Future

Example: Southwest.com Reservations

Advantages to Good Architecture

• Easy to fix specific components

• Easy to understand system

• Easy to extend

Quality Attribute Concerns

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

• Examples:

✦ Performance

✦ Fault-tolerance

✦ Modifiability

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

Decomposition

• Partitioning into subparts, divide and conquer

• Issues to consider:

✦ Scalability

✦ Reduction of cost - reuse efforts

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

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?

Limitations of Decomposition

• Interoperability - how well do the components interact together?

• What about runtime and deployment environment?

The Paradox

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

Composition

• Assembling, verifying, and packaging system

• Runtime platform, technology dependencies

Decomposition vs. Composition

• Designer vs. Integratrator

• Separation of requirements vs. Overall requirements

• Break-down structures vs Packaging structures

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

Shelf Browser

Common AJAX Interface

Ext JS(Desktop Client)

Sencha Touch(Mobile Interface)

Shelf Browser Service

Google Book Search API

Emory Libraries Service (stubbed)