Introduction to Software Design

Description

- SYDE 322 Flashcards on Introduction to Software Design, created by Cindy Liu on 09/04/2019.
Cindy Liu
Flashcards by Cindy Liu, updated more than 1 year ago
Cindy Liu
Created by Cindy Liu almost 7 years ago
2
0

Resource summary

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
Show full summary Hide full summary

Similar