CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high...

Post on 04-Jan-2016

213 views 0 download

Transcript of CSCI 521 Final Exam Review. Why Establish a Standard Process? It is nearly impossible to have a high...

CSCI 521 Final Exam Review

Why Establish a Standard Process?Why Establish a Standard Process?

• It is nearly impossible to have a high quality product without a high quality process.

• Standard set of activities leads to better estimation

• Standard roles leads to improved communication and training

• etc…

Customer's ProcessCustomer's Process

• Why, if at all, should we spend time analyzing how the customer does their work?

• What are the first questions you should ask and why?

Goal StatementGoal Statement

• Manages expectations and helps limit scope

• Measurable

• Short

• Communicated

Standard DocumentsStandard Documents

• SOW - Statement of Work

• Project Management Plan

• WBS - Work Breakdown Structure– inside the PMP– used for planning, estimation, etc.– probably only 2 or 3 levels deep

Estimation TechniquesEstimation Techniques

• Analogy

• Decomposition Methods– lines of code– function points

• Empirical Methods

Accuracy of Estimate is based on:Accuracy of Estimate is based on:• degree to which the planner has properly

estimated the size of the product

• ability to translate a size estimate to a time estimate

• degree to which the project plan reflects the abilities of the software team

• stability of product requirements and project environment

Software Engineering: Practitioner's Approach by Pressman

Team SelectionTeam Selection

A successful project requires:

1. quality people hire for trait, train for skills

2. effective use of individuals– match tasks with personality– give authority to those with responsibility– make responsibilities crystal clear

How to build a schedule:How to build a schedule:1. Determine dependencies of activities found in WBS.

2. Use dependencies to build activity network diagram (eg PERT).

3. Perform resource leveling and consider uncertainty.

4. Insert Milestones

5. Map network to a timeline (eg Gantt Chart) using the effort estimates.

• Use a software tool to help do this work.

Types of RequirementsTypes of Requirements• Functional

– ex - it must email the sales manager when an inventory item is "low"

• Non-Functional– ex - it must require less than one hour to run

• Explicit– ex – required features

• Implied– ex – software quality

• Forgotten– ex – exists in current process

• Unimagined

Req Gathering ProblemsReq Gathering Problems• Accommodating changing reqs

• Being complete, without being constraining

• Conflicting views

• Ease of omitting obvious info

• Identifying the experts and getting authority to talk to people

• Incomplete understanding of the problem on the part of the user/customer

• Sticking with “what” and not “how”

• Determining what is critical

• Avoiding mission creep

Characteristics of Good RequirementsCharacteristics of Good Requirements

1. Unambiguous

2. Complete

3. Verifiable, Measurable

4. Modifiable

5. Traceable

6. Prioritized

RisksRisks

RE = likelihood x impact

RRL =

RE = risk exposureRRL = risk reduction leverage

REbefore – REafter

risk reduction cost

MetricsMetrics

• Product Metrics– direct measures - number of bugs, LOC– indirect measures - usability, maintainability

• Project and Process Metrics– direct measures - costs, LOC per month– indirect measures - quality, reliability

Goals of Configuration ManagementGoals of Configuration Management

• Identify Change

• Control Change• Stability vs Progress

• Ensure Change is Properly Implemented

BaselinesBaselines

• What is a baseline?

• Baseline change control process– change request form

• Config Management Tools Features

SQA ActivitiesSQA Activities

• Contract Review

• Formal Technical Reviews

• Peer Inspections– driven by checklists, coding standards, etc

• Work Instructions

• Statistical SQA

Statistical SQA, six sigma, TQM, et.al.

• Goal is to remove cause of problems

• Data Gathering– bug reports– customer feedback– random sampling

• Categorize problems, then trace the critical 20% back to their root cause

• Control Charts, Scatter Charts

Test ManagementTest Management

• When to White Box. When to use Black Box.

• Stop testing when cost of finding and removing errors today is more expensive than releasing the product and fixing errors during maintenance.

• Laws of Testing:– someone else should test your code– complete test coverage is impossible

• Test Plan: what to test, when to test, what is acceptable…

• Keep Records of types of errors found

MaintenanceMaintenance

• Types of Maintenance– Corrective– Adaptive– Perfective

• Does software wear out?

• How do we reduce maintenance costs?

CMM LevelsCMM Levels1. Initial

2. Repeatableo past successes can be repeated

3. Definedo each project uses a tailored version of a standard process

4. Managedo Quantitative Quality Goals

5. Optimizingo major focus on eliminating waste in the process