History and overview of CSE. Life cycle: Nature of life cycle, role of life cycle model, quality in relation to the life cycle, influence of system size on choice of life cycle model and nature of system; Models of the life cycle; The concept of process; Maturity models, standards and guidelines. Requirements analysis and elicitation: System analysis; Nature of requirements; Approaches to determine requirements; Prototyping, simulation and modeling; Human factors; Building expertise; Human factors issues; Specific applications, building computer systems such as desktops, laptops, hand-held devices, digital cameras, mobile phones, video phones. Specification: Functional and non-functional specifications; Quality; completeness, consistency, simplicity, verifiability, basis for design; specification in the event of failure; Test plans, limitations; Architectural design: Subdivision into systems and subsystems; Quality design; Systems-level design strategies; diagnostics in the event of failure; special problems of the hardware/software interface; Design issues related to reliability; the role of redundancy; independence of designs, separation of concerns; Specifications of subsystems; Approaches to architectural design; Design to achieve reliability and safety; Concept of common cause failure; Failure modes, fault tolerant design. Testing: White board, black board, regression testing, stress testing, interface testing; System-level test and diagnosis; Printed circuit board, and core-based testing; Software testing. Maintenance: Inevitability of maintenance; Patterns of behavior; Measurement to inform maintenance as with bottlenecks; Nature of maintenance; Impact analysis; legal requirements; planning for possible disasters.
- editing-lecturer: Jeremiah Onunga