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)