safety critical system - Answers System whose failure could result in injury or loss of life.
IVV - Answers Independent Verification and Validation; Someone who is not involved with the
project should verify the code
IVV is necessary because it is common for developers to test their code softly
Shaw's Model of Engineering Evolution - Answers Engineering starts as just a craft: Virtuosos
and talented armatures, casual transmission of knowledge, haphazard progress, manufactured
for use rather than sale
Evolves into commercial production: Established procedure, Manufacture for sale
Finally, professional engineering: Educated professionals, analysis and theory, market
segmentation by product variety
Software Engineering Phases - Answers 1. Definition: What?; Requirements definition and
analysis. Project planning / System analysis
2. Development: How?;
Software design - UI design, High-level design( Define modular components and major data
structures) , Detailed design (Define algorithms and procedural detail);
Coding - Develop code and Unit testing
Integration - Combine modules, System testing
3. Maintenance: Managing change;
Correction; Adaptation; Prevention; Enhancement;
4. Umbrella Activities
Reviews; Documentation; Version control; Configuration management;
, What activates fall under the Maintenance Phase? - Answers Correction - Fix software defects
Adaptation - Accommodate changes (New hardware, New company policy)
Prevention - Make more maintainable
Enhancement - Add functionality
What activities fall under the Umbrella Activities phase? - Answers Reviews - Assure quality
Documentation - Improve maintainability
Version control - track changes
Configuration management - integrity of collection of components
Software Engineering Cost Breakdown / Costs to Fix Errors - Answers Total costs as follow:
Maintenance > Development > Definition
As the project continues, the relative costs to fix errors increase (i.e., error fixing cost low during
requirements phase, error fixing during testing is very costly)
Analysis vs. Synthesis - Answers Analysis: Decompose a large problem into smaller,
understandable pieces
Synthesis: build a software from smaller building blocks
Computer Science vs. Software Engineering - Answers Computer Science: Focusing on
computer hardware, compilers, operating systems, and programming languages (The theories
and Functions)