Plantronics CS540 Monaural Convertible Wireless Headset User Guide
Software Architecture - mathcs.emory.educengiz/cs540-485-soft-eng-fa... · Example: Airline...
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)