Final Exam Flashcards
What is a process?
A collection of work activities, actions and tasks that are performed when some work product is to be created
What a methodology addresses?
Introducing new people to the process, substituting people, delineating responsibilities, demonstrating visibile progress
How do you evaluate a methodology?
How rapidly you can substitute or train people, how great an effect i has on the sales process, how much freedom it is to people on the project, how fast it allows people to respond to changing situations, how well it protects the organization - legally or from other damages
What are the elements of a methodology?
Teams, Roles, Skills, Techniques, Activities, Process, Work Products, Milestones, Standards, Quality
What are some characteristics of plan driven methodologies?
- Focus on repeatability and predictability
- Define, standardized, and incrementally improving processes
- Thorough documentation
- Software architecture defined up-front
- detailed plans, workflows, roles, responsibilities, and work product descriptions
- process group containing resources for specialists: process monitoring, controlling, and educating
- ongoing risk management
- focus on verification and validation
What are the three plan-driven methodologies?
- Personal software process
- Team Software Process
- Rational Unified Process
What is PSP (personal software process)?
Individual process methodology. Structured framework of forms, guidelines, and procedures intended to guide an engineer in using a defined, measured, planned, and quality controlled process
- Goal is to access individual development skills to improve performane
- Evolutionary improvement approach.
- “early defect detection is much less expensive than later defect removal”
- each level has detailed scripts, checklists, and templates to guide the engineer through the required steps
What are some PSP artifacts?
Scripts (orderly structure of steps for each phase of development and review), Forms (data collection for defect recording, time recording, and project planning), checklists (design, coding, etc)
What are the advantages of PSP?
Improved size & time estimation, improved productivity, reduced testing time, improve quality
What are the disadvantages of PSP?
Pushback of forms & detailed data recording, requires discipline and opportunity to work ton TSP teams
What is the Team Software Process (TSP)?
Team planning, building, and control. Project divided into overlapping, iterative development cycles. Each cycle is a mini waterfall consisting of cycle launch, strategy, planning, requirements, design, implementation, test, and postmortem
Advantages of TSP?
Scripted (consistent) process activities, teams take ownership of their process and plans, process improvement focus, visibile tracking.
Disadvantages of TSP?
Similar to PSP (artifact centric, high ceremony), doesn’t scale well for small teams/short projects)
What are the phases of the RUP model?
Inception phase (what to do, business case, scope. Initial project plan, define risks),
Elaboration phase (analyze the problem domain and define a technically feasible architecture. Mitigate highest risks, make detailed project plan with prioritized risks),
Construction phase (Develop, integrate and test. Provide user documentation), and
Transition phase (distribute the product to the customers and maintain it).
What are the supporting workflows to RUP?
- Project Management (management of competing objectives, risks to the project and successful delivery of a product)
- Configuration and Change Management (Managment of parallel development, deve done at multiple sites, change requests)
- Environment (Provide tools to a sw project and adaptation of RUP to a specific project)
What is the basic process of estimations?
- Estimate the size of the product
- Estimate the effort (man-months)
- Estimate the schedule
What are some estimation techniques?
Top down, bottom up, analogy, expert judgement, priced to win, parametric or algorithmic method
Describe (inc. pros and cons) of top-down estimations
- Based on overall characteristics of a project.
+ Easy to calculate
+ Effective early on - Some models are questionable or may not fit
- Less accurate because it doesn’t look at the details
Describe (inc. pros and cons) of bottom-up estimation
- Create a WBS to identify individual tasks to be done
- Add from the bottom-up
+ Works well if activities are well understood - Specific activities are not always known
- More time consuming
Describe (inc. pros and cons) of expert judgement
Use somebody who has recent experience on a similar project. You get a guesstimate, accuracy depends on their ‘real’ expertise, comparable application(s) must be accurately chosen
Describe (inc. pros and cons) of estimation by analogy
Use past project (must be sufficiently similar, comparable attributes) \+ Based on actual historical data - Difficult matching project types - Prior data may have been mis-measured - How to measure differences
Describe algorithmic measures
Lines of Code (LOC), function points, feature points or object points. LOC and function poits most common, majority of projects use non of the above
What are the pros and cons of code-based estimations?
\+ Commonly understood metric \+ Permits specific comparisons \+ Actuals easily measured - Difficult to estimate early in cycle - Counts vary by language - Many costs not considered (ex. reqs) - Programmers may be rewarded based on this (#defects/#LOC) - Code generators produce excess code
What are some estimation issues with LOC?
- How do you know how many in advance?
- What about different languages?
- What about programmer style?
- Most algo approaches are more effective after requirements (or have to be after)
Describe wideband delphi, including pros and cons
Grop consensus approach
+ Easy, inexpensive, utilizes expertise of several people
+ Does not require historical data
- Difficult to repeat
- May fail to reach consensus, reach wrong one, or may have same bias
Describe function points
Software size measured by number & complexity of functions it performs, more methodical than LOC counts
Describe code reuse and estimation?
If code is more than 50% modified, its “new”
Reused code take 30% effort of new
Modified is 60% of new
Integration effort with reused code almost as expensive as with new code
Describe COCOMO
Input - LOC
Output - Persons Months
Biggest weakness is that it requires input of product size estimate in LOC
What are some issues with over estimations?
- Project will not be funded
- Parkinson’s Law: Work expands to take the time allowed
- Danger of feature and scope creep
- Beware of double-padding: Team member + manager
What are some issues with under estimations?
- Quality issues (short changing key phases like testing)
- Inability to meet deadlines
- Morale and other team motivation issues (DEATH MARCH)
Describe estimation for agile development
- Each user scenario is considered separately
- Each task is estimated separately
- Total scenario estimate is computed *sum estimate for each task”
- THe effort estimates for all scenarios in the increment are summered to get an increment estimate
What are some estimation guidelines?
- Estimate iteratively! Process of gradual refinement, make your best estimates at each planning stage, refine estimates and adjust plans iteratively, plans and decisions can be refined in response. Balance: too many revisions vs too few.