Title: Object-Oriented Software Engineering: An Agile Unified Methodology by David Kung
Chapter 3 focuses on System Engineering.
A multidisciplinary approach to systems development.
Defines system requirements, constraints, and integrates subsystems.
Software engineering is a subset of system engineering.
A system: a set of interrelated components.
Can be:
Big/small, complex/simple.
Natural/man-made, and exist physically or conceptually.
Examples: universe, an ant, measurement systems, sprinkler systems, telephone systems.
Interacting components.
Systems exist in a hierarchy and may act as subsystems of other systems.
Systems are adaptive and ever-evolving.
Covers entire system life cycle.
Follows a top-down, divide-and-conquer approach.
Requires interdisciplinary efforts for development.
Top-down, divide-and-conquer approach.
Requires multidisciplinary teamwork.
Focus on an established engineering process.
System Requirements Definition
System Modeling & Design
System Integration & Testing
System Maintenance
System Deployment
Collect information on business goals and current operation.
Derive business needs based on discrepancies between current and desired states.
Define system capabilities based on business needs.
Acknowledge budget/schedule constraints affecting requirement fulfillment.
R1: Check in and transport luggage based on passenger destinations.
R2: Enable airline agents to inquire and locate luggage.
R3: Check baggage and detect prohibited items.
R4: Service 20,000 passengers daily.
Customer presentations.
Study current business operations.
User surveys and interviews.
Literature surveys.
What business will the system automate?
What is the system's environment?
What are business/product goals?
How does the current system operate?
What are existing business processes?
What issues exist in the current system?
Who are the users of the current and future systems?
What do users want from the future system?
What are quality, performance, and security considerations?
Decomposing into a hierarchy of functional, cohesive, and loosely coupled subsystems.
Assigning system requirements to subsystems.
System architecture depicted through diagramming techniques.
Enable separate engineering teams to develop subsystems.
Facilitate use of COTS components.
Partition system requirements effectively.
Define functionality for each subsystem.
Ensure subsystems are relatively independent.
Consider ease of integration for subsystems.
By system functions.
By engineering disciplines.
By existing architecture.
By organizational functional units.
By application models.
Subsystems organized by function (e.g., HW, SW, HM).
Differentiation among Hardware, Software, and Human components in subsystems.
R1.1: Allow agents to check in luggage.
R1.2: Transport luggage within the airport.
R1.2.1: From check-in to departure gates.
R1.2.2: From arrival gates to baggage claim.
R1.2.3: For transfer passengers.
R1.2.4: Using conveyors.
R1.2.5: Between terminals via DCVs.
R1.3: Control transportation of luggage.
R4.1: Each check-in area handles 1,150 pieces of check-in luggage daily.
R4.2: Each agent checks in three passengers per minute.
R4.3: Each conveyor scans and transports 500 pieces per hour.
R4.4: Control software processes 2,300 bags daily and scans 1,000 requests hourly.
Descriptions and functional clusters for subsystems managing luggage check-in and transport processes.
Block diagram, UML component diagram, SysML diagrams, data flow diagram, etc.
Shows relationships between subsystems: Terminal, High-Speed Tracks, ABHS Control Software.
Diagrammatic representation of the components of the ABHS system.
Illustrates material flows between subsystems and human interfaces.
Development of subsystems by different teams.
Collaboration to tackle interdisciplinary problems.
Integration, testing, and deployment of subsystems.
Why system engineering is interdisciplinary?
Relationship between system and software engineering.
Examples of systems needing a system engineering approach.
Identifying requirements for a fully automated online retailing system for a department store.
R1: Create an online account.
R2: Order online, with subrequirements for multiple items and payment methods.
R2.4: Print shipping labels to conveyor.
R3: Dispense packaging materials.
R4: Direct conveyor cart traversal for loading.
R6: Direct to packaging area once items are loaded.
R9: Conveyor speed specification.
R10: Transaction processing capacity.
Visual representation of the Online Retailing System architecture.
Breakdown of components within Online Retailing System including web ordering, order fulfill, and inventory management.