Final Exam Flashcards
What is engineering?
The meeting of science an economics.
What is software engineering?
A systematic approach to the development of software
What are the factors that drive the selection of the SE approach?
Scale, quality, consistency, productivity, rate of change
SATISFYING USER NEEDS
What are the goals of software engineering?
Consistently develop software that addresses user needs with high quality and productivity for varied scale problems under change
What are quality and productivity governed by?
people, processes, and technology
What are some characteristics of agile?
- lightweight
- welcomes change
- emphasizes teamwork
- short minimal planning
- iterative development
- heavy client involvement
- high standards of quality
- devoted to simplicity
What questions does a user story answer?
WHO, WHAT and WHY
who the user is, what they want to accomplish and why they want to accomplish it
What is a user story?
A proto-requirement
action oriented, face to face elicitation with the client
leads directly to a short term development goal.
What makes a good user story?
User stories should provide enough detail to make a reasonable time estimate.
User stories should lead directly to one or more concrete acceptance tests that will verify that the story has been realized.
What are acceptance tests?
Criteria that must be passed in order to verify that the user story has been realized. Should be validated with the client.
I user should be able to do something so that some behaviour occurs
What are the (6) steps in the XP release cycle?
Select user stories for release task breakdown Plan release Develop/Integrate/Test software Release software evaluate
What are the 10 XP principles?
Incremental planning Small releases Test Driven Development Paired Programming Simple design Refactoring Collective ownership Continuous integration On-site Client Sustainable pace
What are the 4 themes of XP?
Fine scale feedback
Continuous process
Shared understanding
Programmer well being
What is fine scale feedback in the context of XP?
TDD
Paired programming
Whole team
Planning game
What is continuous process in the context of XP?
Continuous integration
Small releases
Refactoring
What is shared understanding in the context of XP?
Coding standards
Collective ownership
Simple design
System metaphor
What is sustainable pace in the context of XP?
Programmer well being.
When is risk management performed?
At the start of a project
Whenever there are significant changes
At every major project phase
What are the 4 steps of risk management
Identification
Analysis
Planning
Review
How do we calculate risk priority?
Likelihood * Impact
What is meant by risk management is implicit and continuous in agile
risk management should be baked into the agile processes.
Continuous client engagement, TDD, Risk management of user stories, velocity tracking, sustainable pace, small releases
What is Brookes rule of thumb for software cost?
A story with 2 points is 3x the effort of 1,
a story with 3 points is 3x the effort of 1
a story with 4 points is 9x the effort of 1
What is the Iron triangle
Scope, Resources, Schedule = quality
What are the three steps of the Planning Game?
Exploration: Business provides user stories, Development estimates time required or asks for clarification, splitting
Commitment: Business sorts stories by value, Development sorts stories by risk (confidence of estimate), Development states team velocity (productivity), Business selects stories
Steering: Business determines stories for iteration, Development can ask for re-evaluation if velocity estimate wrong, Business can add new stories, Development will estimate and insert new story, or re-estimate entire project.
What are the 4 main elements of a software process?
Specification
Design and implementation
Validation
Evolution
What are some types of software components that can come out of the box?
- Web services that are developed according to service standards and which are available for remote invocation.
- Collections of objects that are developed as a package to be integrated with a component framework such as .NET or J2EE.
- Stand-alone software systems (COTS) that are configured for use in a particular environment.
- Software frameworks offer a different path for reuse,
What is the TDD circle of life?
test passes, test fails, refactor
What are some characteristics of paired programming?
- pairs sit at same workstations together
- pairs are created dynamically so every person works with every other person during the process
- the sharing of knowledge reduces the impact of team members leaving in the future
- not necessarily inefficient
What are the advantages of paired programming?
- supports collective ownership and responsibility
- informal review process
- supports refactoring
What are the objectives of continuous integration?
- minimize duration and effort of each integration
- be able to deliver a product version suitable for the release at any moment
- any effort related to producing intermediate products should be included in CI