Software Engineering- Chapter 04: Process Models
A design review must establish what two things?
(1) that the proposed solutions are correct and (2) which design alternative accomplishes the best tradeoff of quality attributes
List four advantages of the waterfall model
1. Adapts to Shifting Teams 2. Forces Structured Organization 3. Allows for Early Design Changes 4. Suited for Milestone-Focused Development
List 3 pitfalls of the burndown chart.
1. Assign blame 2. Make the chart "look good" 3. Big jumps in actual
XP has 12 practices, grouped into four areas, derived from the best practices of software engineering. What are the four areas ?
1. Fine scaled feedback 2. Continuous process 3. Shared understanding 4. Program welfare
List the four benefits of a minimum viable product?
1. Test product hypothesis / assumptions with minimal resources 2. Accelerate learning 3. Reduce wasted engineering hours 4. Get the product to early customers as soon as possible
What the maximum number of days you should spend on a SCRUM board task ?
3; Explanation: Tasks should be small enough to be accomplished in around 1-3 days. That ensures that there is constant activity on the board and illustrates the progress the team is making.
What is a minimal marketable release?
A fully functional release of a product that represents the smallest possible feature set that address the current needs of your customers.
What are some basic observations made in a burndown chart?
Actual above expected; Actual line reaches 0 before sprint ends; Sudden drop at the end
List an advantage of using Kanban and (ii) give an example
Allows for adapting to constantly changing requirements; (ii) system administration or DevOps tasks
Schedule and budget risks are considered what type of risks?
Business risks
A _______ ___ _________ , also referred to as "CONOPS", describes the proposed system in terms of the user needs it will fulfill, its relationship to existing systems or procedures, and the ways it will be used.
CONcept of OPerationS
What are some things that everyone should have a shared understanding of in extreme programming practices?
Coding standard; Collective code ownership; Simple design; System metaphor
In pair programming, two programmers work together on the same task. Every programmer has either the role of the ______ or the _______
Driver; navigator
What describes concrete programming practices to support specified values
Extreme Programming (XP)
True or False: In continuous integration, team members retain a local version of their code for long periods of time.
False; Explanation: team members do not retain a local version of their code for very long. They submit their changes to version control frequently. The code is then automatically tested for integration issues
True or False: Product imposes consistency and structure on a set of activities
False; Process
True or False: Scrum boards are managed by the scrum master.
False; Scrum boards are not managed by a specific person but every developer is responsible for picking the ticket that they can accomplish
True or False: Tasks in Kanban are estimated and broken down so that they can be finished in the current increment
False; This is true for SCRUM. . Kanban does not require estimation of effort and does not have a limit on how large a task can be
True or False: The Spiral Model was designed to be code driven
False; the spiral model is risk-driven. It makes the identification, assessment and mitigation of risks a central part of the process
Define release backlog
Features from the product backlog that go into the respective release.
Pair programming falls under which area of extreme programming practices?
Fine scale feedback
Once the sprint starts in the scrum board process, each member of the development team takes a task from the "ToDo" column and moves it into the "__ _______" column.
In-Progress
What is the purpose of frequent small releases of software in XP?
It creates concrete value. The small releases help the customer to gain confidence in the progress of the project.
Why does the spiral model impose such a burdensome process?
It does not provide the close relationship and partnership with the customer whose lack led to unsuccessful systems that were late, overpriced, and didn't meet customer's expectations
____________, or sprints, are short time frames (timeboxes) that typically last from one to four weeks.
Iterations
What is a drawback of Kanban
Kanban gives little guidance about roles, means of communicating amongst team members
When is the spiral model used for?
Large projects where requirements are not fully defined and where flexibility is needed to control the final outcome.
What is a disadvantage of the V-mode?
More complex than the waterfall model
The __________ ________ Review is a formal inspection conducted to determine if the final solution is ready for release into the production environment for sustained operations and maintenance.
Operational Readiness (ORR(
What fine scale feedback technique is a consensus-based effort estimation?
Planning poker
Give some examples of throw away prototypes
PowerPoint mockups, paper wireframes, simulations
The ________ Design Review focuses on the conceptual (architecture) design while the ________ Design Review aims to evaluate the detailed design
Preliminary; Critical
The first steps involved identifying what basic phases make up a software development process. _______ _________ than described how these phases are to be executed
Process models
What is the main tool in the spiral model used for addressing risks?
Prototypes
What is the responsibility of the navigator/observer in pair programming?
Reviews each line of code as it is typed in and also considers the "strategic" direction of the work, coming up with ideas for improvements and likely future problems to address
(Scrum or XP) teams and meetings are fairly set in stone whereas the question of how work actually gets done is left to the teams to decide themselves.
Scrum
What type of agile software development method uses time boxes and feedback loops?
Scrum
Why would a programmer want to apply XP techniques in a Scrum driven project?
Since Scrum does specify any specific techniques, XP techniques are often applied in a Scrum driven project as practices which improve quality and speed up the release process.
The _______ Model allows for dividing the software development process into multiple phases
Spiral
A ______ ________ Review is conducted to determine if the system under review is ready to proceed into formal testing by deciding whether the test procedures are complete and verify their compliance with test plans and descriptions.
Test Readiness
What does the Test Readiness Review (TRR) assess?
Test objectives; methods & procedures; resources; traceability; completeness; consistency; development maturity
What is the goal of a Kanban?
The goal is to find the right balance of throughput and cycle time
Who writes user stories for the features requested by the customer?
The product owner
True or False: SCRUM is the most popular of the Agile methods
True
True or False: The priorities of requirements in a Kanban can be changed at any time
True
True or False: The spiral model is very explicit in what activities are to occur at what point in the process.
True
True or False: XP specifies a set of values that define the philosophy of the team.
True
True or False: There is no priority among the tasks on the Scrum board.
True; . A developer can take on any tasks in any order. Of course, dependencies between tasks have to be considered
What is a spring backlog?
User stories taken from the release backlog
What are wireframes?
Wireframes are low fidelity mockups of an application. They model the composition of the user interface
What is a product backlog?
Wishlist with input from all stakeholders
What approach is intended to stimulate the programmer to think about conditions in which his or her code could fail?
Within XP, unit tests are written before the eventual code is coded
_____ teams work on items in a strict priority order whereas a _______ team might not necessarily tackle each item in priority order once in sprint
XP; Scrum
Define system metaphor
a naming concept for classes and methods that should make it easy for a team member to guess the functionality of a particular class/method
Kanban is well suited for work where there is no big _______ of features to go through.
backlog
______ that are found during testing and cannot be completed are also tracked as tasks to be implemented in a future sprint
bugs
What type of chart represents how many story points have been accomplished at any point during the sprint overlaid on top of the expected progress?
burndown chart
Any ________ risks that are identified can be communicated to the customer and decisions can be made to adjust the development project to these risks
business
User stories follow are described in semi-structured format and expressed in terms of the _________ need
business
How does the agile movement focus on providing value to customers?
by emphasizing the value of customer relationship building, which includes constant re-evaluation of priorities and frequent releases
__________ _____________ is the process of restructuring existing computer code—changing the factoring—without changing its external behavior.
code refactoring
In comparison to Scrum, Kanban uses a _______ rather than breaking down the process into increments (sprints)
continuous
No matter which development method is followed, every team should include a _______________ _________________.
customer representative
If the Work in Progress (WIP) limit is increased, the ______ _____ suffers, which means it takes longer for each item to get completed
cycle time
A(n) ______ is a requirement that cannot be delivered as defined within a single iteration or is large enough that it can be split into smaller user stories.
epic
Process enables capturing of knowledge and ________.
experience
What role does the driver play in pair programming?
has his/her hands on the keyboard and writes the code.
What are some advantage of code refactoring?
improved code readability and reduced complexity;
Kanban is particularly useful when an agile process is needed but __________ cannot be identified
increments
Most subsequent models tackle the drawback infrequent releases and rigid requirements by introducing iterations and _______ .
increments
The V model makes _____ activities that are hidden in the waterfall model, more explicit
iterative
A ________________ is a product with just enough features to satisfy early customers, and to provide feedback for future product development
minimum (or minimal) viable product (MVP)
Who chairs the meeting in the planning poker technique?
moderator
The ______ of a task serves as a gateway to assess whether one is ready to move into the next phase
output
The outcome of _______ ________ are effort estimates for each of the user stories.
planning poker
Software developers aim to follow some _________ process with the goal to produce high ______ products consistently.
prescribed, quality
Any software development project follows a ________
process
__________ ____________ are templates for implementing a process. They should be tailored to fit the specific development process, domain, customer and team
process models
To address architecture deterioration in XP; the system should be _______ to reduce effort of implementing new changes in the future.
refactored
XP advocates for short _____ cycles to improve software quality and responsiveness to changing customer requirements.
release
Process helps ensures _________ and _________ with the assumption that good process yields good product.
repeatability, controllability
A _______ __________ is a manual process that involves people from both client and contractor organizations where the members check the requirements document for anomalies and omissions
requirements review
Inputs are used identify ______ and _______.
resources, constraints
Kanban does not define specific _____ or a ______ schedule.
roles; meeting
What visualizes the status of tasks and provides an indication of the progress made so far. (i.e., "To Do", "In Progress", "Done") ?
scrum board
What 3 things does a network evaluation focus on?
speed; reliability; recoverability
Define cycle time
the amount of time it takes for one task to be completed.
Define throughput
the number of tasks that are completed for each increment (e.g., week, month, etc.)
Define Desired Process.
the process that one envisioned
Define actual process
the process that was actually applied
Define official process
the process that was documented
Define perceived process
the process that was understood by the actor
The basic unit of work defined in Scrum is the _______ ________
user story
The Agile movement focused strictly on providing ________ to the _______ .
value; customer
Which model identifies the high-level software development activities and organizes them in a strictly sequential order
waterfall model
The _______ model works well in systems where the ________ are well defined and are not changing throughout the development lifecycle
waterfall; requirements
Programmer ______ is a team practice that aims for work pace that they would be able to sustain indefinitely.
welfare
Kanban limits the amount of _____ allowed in any one condition
work; Explanation: only so many tasks can be ongoing, only so many can be on the to-do list
List some example categories of refactoring techniques
● Composing methods ● Moving features between objects ● Organizing data ● Simplifying conditional expressions ● Simplifying method calls ● Dealing with generalization
What are some drawbacks of SCRUM?
● Few techniques ● Limitations for larger teams ● Little focus on the future ● Little focus on final product.
What are some benefits of pair programming?
● Increased code quality ● Better diffusion of knowledge ● Better transfer of skills
Scrum is suitable for systems where:
● Requirements change often ● The customer needs to be able to share in which direction the system grows. ● The customer and the product benefits from frequent customer input. ● The team is comfortable in that process and has the experience to function effectively.
What are some aspects to be controlled in process models?
● Requirements elicitation, analysis and management ● Architecture and detailed design ● Unit, integration and system testing ● Deployment ● Risk analysis
List the advantages of SCRUM
● responsiveness to changing requirements ● focus on the customer, and frequent deliveries ● Explicitly specifies roles, meetings, rules and constraints ● Easy to Follow
Organize the following XP planning and feedback loops by the amount of time spent on each (ie. monthly, weekly, daily,etc): Release plan, iteration plan, acceptance test, stand up meeting, pair negotation, unit test, & pair programming
●Release plan (monthly) ● Iteration plan [weekly] ● Acceptance test [every several days] ● Stand up meeting [daily]● Pair negotiation [every several hours] ● Unit test [every several minutes] ● Pair programming [seconds]
What type of review entail the development team 'walking' the client through the system requirements explaining the implications of each requirement?
Formal Reviews
True or False: The waterfall model does not work well in safety critical systems
False
True or False: There is a standard format to represent epics.
False; There is no standard format to represent epics. Some teams use the familiar user story formats while other teams represent the epics with a short phrase.
True or False: Wireframes are tedious to create and difficult to change.
False; They are quick to create and easy to change.
True or False: Descriptive models provide a guideline or framework to organize and structure how software development should be performed.
False; prescriptive models
How is risk analysis carried out in the spiral model?
In the beginning of a spiral, risks that threaten the project are identified and classified. Each of these risks is then evaluated to decide on the mitigation strategy
What are the spiral model phases?
Plan next phase; Determine objectives, alternatives, constraints; Evaluate alternatives, identify, resolve risks; Develop, verify next level product
Describe a sprint planning meeting
Team and product owner negotiate what to put into the sprint backlog, breaks it into smaller tasks, validate that they are clear about what to do and if it's the right amount of work (requirements validation).
What is the goal of a sprint?
The goal of the sprint is to close all tasks in a sprint. In other words, the goal is to accomplish the total sum of all effort estimated for the sprint's tasks.
What is the main responsibility of the scrum master?
The main responsibility of the Scrum master is to be an expert of the process and to communicate.
True or False: Every user story has assigned an effort estimate (e.g., story points).
True
True or False: Evolutionary prototype serves as the basis for building the product
True
True or False: The V-Model supports large projects particularly well as it introduces additional levels of verification that help to detect defects early.
True
True or False: User stories are described on a high level, other important pieces of information (e.g., design constraints or acceptance criteria) are often tracked along with the user story
True
The ___ model is a variation of the waterfall model that demonstrates how the testing activities are related to analysis and design.
V
A software development process can be a well-planned and executed process, or it can be an __-___ process that is not documented and doesn't follow any specific rules.
ad-hoc
Tasks are tracked in the _______ alongside user stories
backlog
The principle of __-__________ is that co-workers on the same team should be situated together to better establish the identity as a team and to improve communication.
co-location
A _______ model is used as the basis for understanding and improving software development process
descriptive
What are some process types?
desired, official, perceived, actual, observed
How does one know when a design is correct?
if it meets the set of functional requirements and satisfies a set of acceptance criteria outlined in a checklist
What two major changes did the spiral model introduce to the paradigm of the waterfall model?
iterative development; revisiting phases
A _________ may be built as a ring in one prototype and star in another, performance characteristics evaluated to see which structure is better at meeting performance goals or constraints
network
The only process that is tangible is the _____ process
official
A ________ is a partially developed product that enables customers and developers to examine some aspect of the proposed system and decide if it is suitable or appropriate for the finished product
prototype
Give an example of an evolutionary prototype
prototyping web application using static HTML markup
A ______ ________ is the facilitator for an agile development team and the Scrum development process.
scrum master
Informal reviews involve contractors discussing requirements with as many system _________ as possible
stakeholders
_______ may be composed of sub processes with hierarchy or links.
structure
During sprint planning and before a user a story is to be implemented, it is decomposed into technical ______ by the development team
tasks
What are some aspects covered in an ORR?
tests completed; failure documents; training provided; operational support
What are the two types of prototypes?
throw away; evolutionary
What are some requirements that can be found a review checklist? (List at least 5)
● Completeness ● Clarity ● Consistency ● External Interfaces ● Testability ● Design-Neutrality● Readability ● Level of Detail ● Singularity ● Inputs and Outputs ● Scope ● Traceability
What are the key responsibilities of the product owner?
● Creates and manages the product backlog (i.e., requirements) ● Prioritizes user stories in the backlog to match the priorities and expectations of the customer ● Answers requirements questions and is the final arbiter of any questions
List at least 6 agile principles
● Customer satisfaction ● changing requirements ● delivered frequently ● cooperation b/n business people and developers ● motivated team ● conversation (face-t-face) ● Working software ● Sustainable development ● attention to technical excellence and good design ● Simplicity
Give four advantages of the spiral model
● Manages risk explicitly ● Constant monitoring and product evaluation ● Supports documentation explicitly ● Delivers product to customer earlier
What are some design risks throughout the spiral model?
● Response time is too slow ● Accuracy of algorithms is not sufficient ● System does not meet availability requirements
Give two disadvantages of the spiral model
● Risk management activities can be costly and burdensome ● Enforcing adherence to complex model is difficult
Give 3 advantages of the V- model
● Testing activities like planning, test designing happens well before coding. Hence higher chance of success over the waterfall model ● Proactive defect tracking: that is defects are found at early stage. ● Avoids the downward flow of the defects.
What are some system risks in a spiral model?
● The boundaries of the system are unclear ● Mechanisms for quality monitoring and control are insufficient. ● Funding has not yet been secured.
What are some factors that can be influenced and trade-off once a process model is chosen?
● Time to market ● Product quality ● Project visibility ● Risk Exposure ● Customer Relations
What are some benefits of epics?
● Track vaguely defined stories ● Organization ● Explainability
What are some implementation risks in the spiral model?
● Unclear design guidance for parts of the system. ● Insufficient resources for testing the system. ● Test environment not available.
What are the key responsibilities for a scrum master?
● backlog ● Coaching the development team if Scrum is not yet fully understood ● Helping the team to reach consensus throughout the development process ● Removing obstacles that are impeding the team's progress. ● Protecting the team from outside distractions.
What are some requirement risks in the spiral model?
● missing stakeholders ● ambiguous, conflicting, unverifiable, etc. requirements
What are some characteristics of a process?
● process activities ● inputs and outputs ● structure ● product-driven ● cycles ● many people ● control flow implicit
As software development progresses, we're able to find value and better ways to develop agile systems. Give at least 3 examples of things that we have come to value as developers.
●Individuals and interactions over processes and tools ●Working software over comprehensive documentation ●Customer collaboration over contract negotiation ●Responding to change over following a plan
List three drawbacks of the waterfall model
1. Non-adaptive design constraints 2. Ignores mid- process customer feedback 3. Delayed delivery of the product
List four agile software development methods.
1. Rapid application development (RAD) 2. Unified process (UP) 3. Dynamic systems development method (DSDM) 4. Scrum 5. Crystal Clear 6. Extreme programming (XP) 7. Feature-driven development
What are the two main characteristics of the waterfall model?
1. Sequential: a phase can only be started if the previous phase has been completed and verified 2. No backtracking: once the development team enters a phase, it cannot step into a previous phase to make changes
What lists intermediate and final products?
outputs