| Question | Answer |
| What is software engineering defined by? | software and engineering |
| What does software engineering adhere to? | time and budget constraints |
| What do engineers face and how do they deal with it? | Ill-defined problems and partial solutions. They rely on empirical methods to evaluate solutions. |
| What's the Year 1900 bug? | Only the last 2 digits of a person's age were recorded. (So if someone is 101, they're 1 in the records) |
| What's the Leap-year bug? | Some programs do not take leap-years into account. (leap year every year whose number divisible by 4 except years that are divisible by 100 but not 400) |
| What's an example of interface misuse? | A train conductor taping down the start button (that starts train when all doors are closed) and then leaving the train. |
| What does CERT deal with? | security incidents, vulnerabilities and security know-how |
| What are some common issues with software engineering? | Being late and over budget, delivering late, unnecessary complexity |
| Name 4 activities that define software engineering | Modeling, problem-solving, knowledge acquisition, rationale-driven |
| What does modelling entail? | representing real world objects in software systems |
| What does problem-solving entail? | Formulate problem Analyze problem Search for solution Decide on solution Specify solution |
| What does knowledge acquisition entail? | Collect data, organize into information, formalize into knowledge (non-linear process) |
| What does rationale entail? | context of decisions need to evaluate alternatives in addition to experience/intuitive choices (must be able to rationalize decisions) |
| What is a functional requirement? | A specification of a function the system must support |
| What is a non-functional requirement? | A constraint on the operation of the system (not directly related to function) |
| What is a notation? | graphical or textual set of rules representing a model |
| What is a method? | repeatable technique that specifies steps in solving a specific problem |
| What is a methodology? | collection of methods for solving a class of problems (when and how each method should be used) |
| List the Software Development Activities | Requirements Elicitation Analysis System Design Object Design Implementation Testing |
| What is requirements elicitation? | client and developers define the purpose of the system |
| What is analysis? | produce a model of the system that is correct, complete, consistent, and unambiguous |
| What is system design? | decompose the system into smaller subsystems |
| What is object design? | bridge the gap between the analysis model and the hardware/software platform |
| What is implementation? | translate the solution domain model into source code |
| What is testing? | find differences between the system and its models by executing the system (or parts of it) with sample input data sets |
| How is software development managed? | Communication Rationale Management Software Configuration Management (SCM) Software Life Cycle (SDLC) Project Management |
| Why is communication important? | Misunderstandings and omissions often lead to faults and delays that are expensive to correct later |
| What is rationale? | justification of decisions includes problem, alternatives considered, criteria to evaluate alternatives, debate and the final decision |
| What is software configuration management? | process that monitors and controls changes in work products ie. client requests new features and as developers improve their understanding of the application domain |
| What is SDLC? | framework defining tasks performed at each step in the software development process |
| What is project management? | the oversight activities that ensure the delivery of a high-quality system on time and within budget |
Want to create your own Flashcards for free with GoConqr? Learn more.