Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
109 Cards in this Set
- Front
- Back
Define Reuse |
Use component parts instead of making it all yourself |
|
Define Quality Measurement |
Define metrics and standards for product and process quality testing |
|
What is Software Engineering |
- Apply engineering practices to software development - Think hard about the similarities and differences between regular and software engineering |
|
Why do software engineering? |
-complexity of large programs: 1 person can't develop large systems -reduction of cost and time to develop - maintenance costs -Quality software -Had a software crisis in 1968 |
|
What is IEEE's approach to Software Engineering? |
Systematic approach to the development, operation, maintenance, and retirement of software |
|
What is Pressman's approach to Software Engineering |
Establishment and use of sound engineering principles in order to obtain, economically, software that is reliable and works efficiently on real machines |
|
What are the 2 steps in Problem Solving? |
1) Analysis: define the problem 2) Modeling: design solution |
|
What are the 2 steps in production? |
1) Process: repeatable steps - process model: how the steps fit together 2) Quality: measure of success |
|
What are the 3 steps in profit motive? |
1) development time 2) cost estimation 3) return on investment |
|
What are the 3 steps in subsystems? |
1) boundary and interface: how 1 subsystem interacts with another 2) software architecture: how subsystems fit together 3) management vs. technical reasons for subsystems |
|
What are the 2 steps in Paradigms |
1) how to create subsystems: object-oriented development, component-oriented software-engineering 2) methodology |
|
What are the 2 steps in Product (what you're building)? |
1) code and executable 2) other work products: user manual, design documents |
|
What are the 3 steps in Process (how you're building the product)? |
1) how are the products produced? 2) measurement/cost control 3) repeatable |
|
What are the 2 steps in Product Quality (how good the product is)? |
1) # of bugs, customer satisfaction, MTBF.. 2) iltilities: (reliability, usability, portability, correctness, efficiency, maintainability, testability,..) |
|
What are the 4 steps of process quality (how good you do it) |
1) Documentation of process 2) quantifiable goals 3) inspections, reviews, tests 4) planning for quality |
|
What are the 2 steps for Configuration Management (when dealing with multiple ppl working on many parts of a product need to control changes) |
1) for each product: -initial development -baselines -static change control 2) traceability: -links between work products -dynamic change control |
|
What are the 5 steps to Systems Engineering? (IMPORTANT! on study guide) |
1) decide on the need for the system 2) consider alternative solutions - do nothing - COTS: commerical of-the-shelf software - buy - build 3) determine hardware and software needs 4) make cost estimates 5) do risk analysis over all alternatives |
|
What are the 5 steps of gathering requirements? |
1) get requirements from users and clients: elicitation 2) customer requirements (statements of basic needs) 3) developer specifications (precise statements of operation) 4) create first-cut models: analysis 5) document requirement specifications |
|
What are the 3 steps to Design? |
1) high level: software architecture -partition the system into modules -assign functionality to each module 2) medium level: for each module, define classes (with methods and data) and their relationships - may include creation of class diagrams and other UML models 3) low level: detailed design of methods - algorithms and data structures |
|
What are the 3 steps to Implementation |
1) code the pieces 2) integration: put the pieces together 3) debug |
|
What are the 4 steps to Testing? |
1) unit testing: individual modules 2) integration testing: module interactions 3) system testing: all modules together 4) acceptance testing by the customer |
|
What are the 2 steps to Delivery? |
1) installation on customer's system 2) easier than it sounds.. |
|
What are the 5 steps to Maintenance? |
1) fix bugs 2) add enhancements 3) improve performance 4) adapt to new environments 5) 67% cost of software |
|
What does the Cost of Change Curve say (part of scrum)? |
start = relatively cheap (requirements
later = more expensive |
|
How does Agile claim to flaten the Cost of Change curve? (4 steps) |
1) it's a waterfall statistic, not applicable to agile projects 2) it's less applicable for small projects 3) it's highly correlated to the amount of documentation to be changed 4) the XP values work together to flatten the curve: communication, simplicity, feedback, courage |
|
What are the 3 "pillars" of Scrum |
1) transparency: process must be visible to those responsible for the end products, with a common standard of evaluation for the stakeholders 2) inspection: frequent review of artifacts and progress 3) adaption: adjust process when product is at risk |
|
What are the team roles of Scrum? |
1) Product Owner 2) Scrum master 3) Team member |
|
Which role of scrum: -enforces scrum practices -insulates development team from outsiders -coaches and teaches development team -facilitates team meetings |
Scrum Master |
|
Which role of scrum: creates and orders the items in the product backlog |
Product owner |
|
Which role of scrum -is "self-organizing" -cross-functional: all necessary skills -requires accountaiblity |
Team Member |
|
What does a Sprint typically consist of? |
1) Team members sign up for backlog goals 2) priorities remain constant during the sprint 3) scope may be adjusted based on product owner feedback 4) sprint planning meeting 5) daily scrums 6) the actual work 7) sprint review 8) sprint retrospective |
|
T/F - Outsiders can be present for the Daily Scrum |
False. No outsiders should be present |
|
T/F - Daily scrum should be about 15 mins and facilitated by scrum master |
True |
|
Sprint Review Involves all of the following EXCEPT? a) review progress b) demonstrate current product for product owner c) discuss what went well, what went poorly d) create an improvement plan e) start planning next sprint -- review the product backlog |
D... this is for the sprint retrospective |
|
T/F - The sprint retrospective includes all of the following: 1) discuss how the last sprint went concerning people, process, tools, communication 2) create and improvement plan |
True |
|
T/F - Product backlog is dynamic and starts with the best-understood and most needed items first |
True |
|
T/F - Sprint backlog consists of items that are last on the product backlog |
FALSE. It is just items for the current sprint |
|
What are the 7 basic activities (phases) in the lifecycle model? |
1) Systems engineering 2) Requirements gathering and analysis 3) High level and low level design 4) Implementation 5) Testing 6) Delivery 7) Mainenance |
|
Why are the 5 reasons you would mode lyour process? |
1) Helps organize, plan, staff, budget, schedule 2) outlines documents and deliverables: milestones 3) tells what tools and staff are needed 4) can measure cost, quality, and productivity per process 5) basis for organizational quality improvement |
|
What does the Build and Fix "Model" do? (note the name is a dead giveaway) |
1) Build a version 2) Let the client complain 3) Build the next version |
|
T/F - There are 2 different types of Waterfall methods |
True - 1) The waterfall model 2) The Iterated waterfall model |
|
Water Fall Method T/F -------------------------------- Does not use basic phases in order |
False. It does use basic phase in order |
|
Water Fall Method T/F -------------------------------- Each phase is input to the previous phase |
False. It is input to the next phase |
|
Water Fall Method T/F -------------------------------- Each phase must be completed before beginning the next phase |
True |
|
Water Fall Method T/F -------------------------------- The only downside to the waterfall method is that milestones are considered difficult to obtain |
FALSE. They are easy to obtain |
|
Water Fall Method T/F -------------------------------- With water fall, you test after each phase |
True |
|
Water Fall Method T/F -------------------------------- Waterfall is not document-heavy |
False. In Water Fall it is document-driven |
|
Water Fall Method T/F -------------------------------- The Water Fall method is kind of like a linked list... it's sequential |
False. It is sequential |
|
Iterated Water Fall Method T/F ------------------------------------------- Does not include feedback loops like the original water fall method does |
False. IT does include feedback loops |
|
Iterated Water Fall Method T/F ------------------------------------------- Allows for fixes DURING the process |
TRUE |
|
Iterated Water Fall Method T/F ------------------------------------------- Is considered more sequential than the original waterfall, hence the name (iterated) |
FALSE. It REMOVES (some) of the sequential-ness |
|
The V Model is said to be similar to which model (albeit additional testing)
1) Prototyping model 2) Water fall model 3) Iterated water fall model 4) Spiral model |
Water Fall model |
|
In the V Model _______ is HEAVILY emphasized! |
TESTING |
|
In the V model,
requirements <-> ________ testing |
acceptance testing |
|
in the V model,
high lvl design <-> ______ testing, ________ testing |
system testing, integration testing |
|
in the v model,
low lvl design <-> ______ testing |
UNIT testing |
|
T/F - In the V Model, you would tie the implementation phase to a testing phase |
TRUE |
|
T/F In the Prototyping Model, you build JUST 1 prototype |
FALSE. You build one OR more |
|
T/F Initial prototype verifies the requirements, especially the user interface |
True |
|
T/F The Spiral Model was originally applied to the Waterfall method |
True |
|
T/F The Spiral Model has 4 stages: plan, risk analysis, <go/no go decision>, develop, evaluate |
True |
|
T/F The Incremental model builds part of the system on each round |
True (derp) |
|
What is the difference between the Incremental and Iterative Models? (aren't they the same thing??) |
Incremental: builds part of the system on each round
Iterative: adds depth on each round - user has working system from the beginning, but live with the initial design |
|
T/F - Agile methods are not Iterative and incremental |
FALSE. They are iterative and incremental |
|
T/F When getting user requirements (user stories) from the customer, you should get all of them in one sitting |
FALSE. Don't get them all at one time |
|
T/F - Iterations in Scrum are generally 2-3 weeks |
True |
|
What are some characteristics of XP (eXtreme Programming)? |
1) On-site customer 2) Pair programming 3) continual refactoring of code and design |
|
T/F - Rational Unified Method has 4 phases independent of several workflows |
True |
|
What does RUP (lifecycle model) stand for? |
Rational Unified Method |
|
T/F - RUP Engineering workflows has a business modeling that ensures the system will support the business goals |
True |
|
T/F - RUP Engineering workflows requirements are used to determine the users needs by eliciting functional, nonfunctional and pseudo-requirements |
True |
|
What 3 workflows are supported by RUP |
1) Project Management 2) Configuration and Change management 3) Environmental (Tools) |
|
Describe the Chart used for the RUP Engineering Workflows. Can you name the 7 phases? What about how each one spends on inception, elaboration, construction, and transition |
|
|
How do companies pick a methadology? |
1) We've always done it this way 2) Hype: everyone is doing method X, so we should too 3) Size/complexity analysis (agile methods may not work for large projects) 4) Best practice analysis |
|
What typically happens in a project retrospective? |
1) related more to Agile methods 2) Talk about what went right/wrong 3) Organizational memory (statistics) 4) Plan for next project |
|
What are the 5 steps involved in gathering requirements? |
1) Identify stakeholders 2) get needs from stakeholders 3) analyze the info 4) confirm with the stakeholders 5) write specs |
|
What is the difference between Requirement and Specification?
^note this is in gathering requirements from userboy |
Requirement: Talking in the user domain (some action the system must do) Specification: Talking in the developer's domain (precise statement of a requirement) |
|
T/F - Requirement specification is a precise statement of software functionality, performance, or interface that can be tested |
true |
|
T/F - Developer should avoid leading questions (i.e., gold plating which is "developers suggest requirements to the users because...") but instead ask open-ended questions in a structured interview |
True |
|
What are some good pieces of advice one should follow in a STRUCTURED <--- (keyword structured) interview? |
1) develop Q's beforehand 2) adapt questions to answer 3) ask a range of users 4) follow-up questions later 5) get sense of user environment 6) don't use jargon |
|
T/F - When doing a structured interview, one can expect contradictory views |
TRUE TRUE TRUE |
|
T/F - In a Task-based interview, the developer gives the user a common problem |
TRUE |
|
T/F - in a Task-based interview, avoid asking question while stepping through a solution |
FALSE. you should ask questions while stepping through a solution |
|
T/F - in a Task-based interview, the developer should avoid trying to form a model of the user's thought processes |
False. the developer should form a model of the user's thought processes |
|
In gathering requirements, what is a questionnaire?
^easiest question in the world |
A list of questions for users |
|
When sending a questionnaire to userboy, you should include open-ended questions |
TRUE |
|
List 1 pro and 1 con of doing a questionnaire |
Pro: no one is going to be biased Con: No way to do a follow-up question; can't adjust questions on the fly like you can in an interview |
|
What is Observation in requirements gathering?
^i.e., the most boring job ever |
- watch and record users doing the job that the system will do/replace |
|
Name 1 pro and 1 con for Observation |
Pro: Good when replacing existing systems or automating manual tasks Cons: Time consuming!!! |
|
Name 1 pro and 1 con of group discussion in gathering requirements |
Pro: gets more ppl involved in shorter time Con: avoid group-think (1 person says something, another agrees and suddenly everyone agrees) |
|
What is Rapid prototyping
^note these names are rather obvious |
create a prototype quickly |
|
Name a pro and con of Rapid Prototyping |
Pro: useful in getting users to say what they *don't* want Con: does not provide all (or even any) system functionality |
|
What is the purpose of Market analysis in requirements gathering?
^again: really obvious name |
Product analysis
is the market already dominated by a competitor? market analysis is generally done by marketers, not developers |
|
What does JAD mean in requirements gathering? |
Joint Application Design |
|
What is JAD? |
Really fancy name for a group interview. Facilitator leads the meeting. Really important that you have management involved. |
|
T/F - Generally in a JAD (group interview) no users are present |
False. this is a meeting of users, developers, facilitator, management |
|
T/F - Only the manager gets to speak in a JAD |
False. the facilitator makes sure that everyone gets to speak |
|
T/F - The JAD MUST include someone with authority to make and enforce decisions |
True |
|
T/F - Specs should be verifiable (i.e., does the product actually *do this?) |
True |
|
What is a functional requirement?
^really obvious |
Tells what the system will do in response to some event or input |
|
What is 1 pro and 1 con of a functional requirement? |
Pro: makes up most of a systems requirements Con: getting all the functional requirements for a complex system--rarely known by one customer |
|
What are non-functional requirements (NFR) or quality attributes? |
Tell how the system does something |
|
What is a pro and con of NFR (non-functional requirements) |
Pro: Tell how the system does something Con: Getting precise statements of NFR's ("The system shall be user friendly") |
|
Match each category with a lifecycle model
Waterfall -> _______ RUP -> ________ Agile ->______ high risk systems ->______
A) use cases B) user stories C) TLR, SRS D) formal languages |
Waterfall -> TLRS, SRS RUP -> use cases Agile ->user stories high risk systems ->formal language |
|
What are the Top Level Requirements (TLR) |
1) Executive summary 2) clients and user profile 3) scope 4) system definition -system level diagram -functional requirements -non-functional requirements -user-interface requirements -data storage requirements
|
|
What is SRS? |
Software Requirements Specification
Fully describes what the software will do and how it will be expected to perform |
|
name 3 Pros of SRS |
Pros: 1) industry standard 2) well-accepted 3) straight forward Cons: 1) a bit constraining 2) no feel for flow 3)when requirements change -- and they will -- takes work to keep the SRS up to date |
|
List the 4 meetings held during a sprint |
1) sprint review 2) daily scrum 3) planning 4) stories |
|
Diff between product backlog and sprint backlog? |
Product backlog: has no finite date Sprint backlog: Has to be completed THIS sprint |