Sie sind auf Seite 1von 14

Software Engineering

CS / COE 1530
Lecture 4 Project Management

CS 1530 Software Engineering Fall 2004

Dilbert on Project Planning

CS 1530 Software Engineering Fall 2004

Overview

Reading: chapter 3 in textbook Requirements documents due 9/20

CS 1530 Software Engineering Fall 2004

Tracking project progress

Do you understand customer problem and needs? Can you design a system to solve customer problem or satisfy customer needs? How long will it take you to develop the system? How much will it cost to develop the system?

Project deliverables

Documents Demonstrations of function Demonstrations of subsystems Demonstrations of accuracy Demonstrations of reliability, performance or security

Milestones and activities


Activity: takes place over a period of time Milestone: completion of an activity -- a particular point in time Precursor: event or set of events that must occur in order for an activity to start Duration: length of time needed to complete an activity Due date: date by which an activity must be completed

Table 3.1. Phases, steps and activities of building a house.


Phase 1: Landscaping the lot Step 1.1: Clearing and grubbing Activity 1.1.1: Remove trees Activity 1.1.2: Remove stumps Step 1.2: Seeding the turf Activity 1.2.1: Aerate the soil Activity 1.2.2: Disperse the seeds Phase 2: Building the house Step 2.1: Prepare the site Activity 2.1.1: Survey the land Activity 2.1.2: Request permits Activity 2.1.3: Excavate for the foundation Activity 2.1.4: Buy materials Step 2.2: Building the exterior Activity 2.2.1: Lay the foundation Activity 2.2.2: Build the outside walls

Activity 1.2.3: Water and weed Step 1.3: Planting shrubs and trees Activity 1.3.1: Obtain shrubs and trees Activity 1.3.2: Dig holes Activity 1.3.3: Plant shrubs and trees Activity 1.3.4: Anchor the trees and mulch around them

Activity 2.2.3: Activity 2.2.4: Activity 2.2.5: Activity 2.2.6:

Install exterior plumbing Exterior electrical work Exterior siding Paint the exterior

Activity 2.2.7: Install doors and fixtures Activity 2.2.8: Install roof Step 2.3: Finishing the interior Activity 2.3.1: Install the interior plumbing Activity 2.3.2: Install interior electrical work Activity 2.3.3: Install wallboard Activity 2.3.4: Paint the interior Activity 2.3.5: Install floor covering Activity 2.3.6: Install doors and fixtures

Table 3.2. Milestones in building a house.


1.1. 1.2. 1.3. 1.4. 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. Survey complete Permits issued Excavation complete Materials on hand Foundation laid Outside walls complete Exterior plumbing complete Exterior electrical work complete Exterior siding complete Exterior painting complete Doors and fixtures mounted Roof complete Interior plumbing complete Interior electrical work complete Wallboard in place Interior painting complete Floor covering laid Doors and fixtures mounted

Table 3.3. Activities and time estimates.


Activity Step 1: Prepare the site Activity 1.1: Survey the land Activity 1.2: Request permits Activity 1.3: Excavate for the foundation Activity 1.4: Buy materials Step 2: Building the exterior Activity 2.1: Lay the foundation Activity 2.2: Build the outside walls Activity 2.3: Install exterior plumbing Activity 2.4: Exterior electrical work Activity 2.5: Exterior siding Activity 2.6: Paint the exterior Activity 2.7: Install doors and fixtures Activity 2.8: Install roof Step 3: Finishing the interior Activity 3.1: Install the interior plumbing Activity 3.2: Install interior electrical work Activity 3.3: Install wallboard Activity 3.4: Paint the interior Activity 3.5: Install floor covering Activity 3.6: Install doors and fixtures Time estimate (in days) 3 15 10 10 15 20 10 10 8 5 6 9 12 15 9 18 11 7

Slack or float time


Slack time = available time - real time = latest start time - earliest start time

Activity Graph

CS 1530 Software Engineering Fall 2004

Table 3.4. Slack time for project activities.


Activity 1.1 1.2 1.3 1.4 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 3.1 3.2 3.3 3.4 3.5 3.6 Finish Earliest start time 1 1 16 26 36 51 71 81 91 99 104 104 71 83 98 107 107 118 124 Latest start time 13 1 16 26 36 51 83 93 103 111 119 116 71 83 98 107 107 118 124 Slack 12 0 0 0 0 0 12 12 12 12 15 12 0 0 0 0 0 0 0

Critical Path

a path from start to finish in the activity graph for which the slack at every node is 0

typically multiple critical paths (not just one)

Any delay of a node on a critical path delays the whole project

in contrast, nodes with slack can tolerate delays

Analyzing your project in this way is called the Critical Path Method (CPM)
CS 1530 Software Engineering Fall 2004

PERT

= Program Evaluation and Review Technique


an alternative to CPM uses the normal probability distribution, activity graph, activity graph, and latest and earliest start times to compute likely bottlenecks

CS 1530 Software Engineering Fall 2004

Tools to track progress


Very popular: Gantt chart Many tools (some free) to draw them, e.g., ConceptDraw Project, search on Google

CS 1530 Software Engineering Fall 2004

Example Gantt chart

CS 1530 Software Engineering Fall 2004

Project personnel
Key activities requiring personnel:

requirements analysis system design program design program implementation testing training maintenance quality assurance

Choosing personnel
ability to perform work interest in work experience with similar applications similar tools or languages similar techniques similar development environments training ability to communicate with others ability to share responsibility management skills

Work styles

Extroverts: tell their thoughts Introverts: ask for suggestions Intuitives: base decisions on feelings Rationals: base decisions on facts, options

Work Styles Graph

CS 1530 Software Engineering Fall 2004

Project organization

Depends on

backgrounds and work styles of team members number of people on team management styles of customers and developers Chief programmer team Egoless approach

Examples:

Table 3.5. Comparison of organizational structures.


Highly structured High certainty Repetition Large projects Loosely structured Uncertainty New techniques or technology Small projects

Effort estimation

Expert judgment

analogy proportion Delphi technique Wolverton model S size , X cost vector, m multiplier a,b,c constants Walston and Felix model: E = 5.25 S 0.91 Bailey and Basili model: E = 5.5 + 0.73 S1.16

Algorithmic methods: E = (a + bSc) m(X)


Table 3.6. Wolverton model cost matrix.


Difficulty OH NE 30 33 27 28 26 28 22 25 35 37 75 75

Type of software Control Input/output Pre/post processor Algorithm Data management Time-critical

OE 21 17 16 15 24 75

OM 27 24 23 20 31 75

NM 40 35 34 30 46 75

NH 49 43 42 35 57 75

Table 3.7. Walston and Felix model productivity factors.


1. Customer interface complexity 2. User participation in requirements definition 3. Customer-originated program design changes 4. Customer experience with the application area 5. Overall personnel experience 6. Percentage of development programmers who participated in the design of functional specifications 7. Previous experience with the operational computer 8. Previous experience with the programming language 9. Previous experience with applications of similar size and complexity 10. Ratio of average staff size to project duration (people per month) 11. Hardware under concurrent development 12. Access to development computer open under special request 13. Access to development computer closed 14. Classified security environment for computer and at least 25% of programs and data 15. Use of structured programming 16. Use of design and code inspections 17. Use of top-down development 18. Use of a chief programmer team 19. Overall complexity of code 20. Complexity of application processing 21. Complexity of program flow

22. Overall constraints on programs design 23. Design constraints on the programs main storage 24. Design constraints on the programs timing 25. Code for real-time or interactive operation or for execution under severe time constraints 26. Percentage of code for delivery 27. Code classified as nonmathematical application and input/output formatting programs 28. Number of classes of items in the database per 1000 lines of code 29. Number of pages of delivered documentation per 1000 lines of code

Bailey-Basili technique
Minimize standard error estimate to produce an equation such as: E = 5.5 + 0.73S1.16 Adjust initial estimate based on the ratio of errors.
If R is the ratio between the actual effort, E, and the predicted effort, E, then the effort adjustment is defined as

ERadj = R 1

if R > 1

= 1 1/R if R < 1 Then adjust the initial effort estimate E: Eadj = (1 + ERadj)E if R > 1 = E/(1 + ERadj) if R < 1

Table 3.8. Bailey-Basili effort modifiers.


Total methodology (METH) Tree charts Top-down design Formal documentation Chief programmer teams Formal training Formal test plans Design formalisms Code reading Unit development folders Cumulative complexity (CPLX) Customer interface complexity Application complexity Program flow complexity Internal communication complexity Database complexity External communication complexity Customer-initiated program design changes Cumulative experience (EXP) Programmer qualifications Programmer machine experience Programmer language experience Programmer application experience Team experience

COCOMO model: stages of development

application composition:

prototyping to resolve high-risk user interface issues size estimates in object points to explore alternative architectures and concepts size estimates in function points development has begun size estimates in lines of code

early design:

postarchitecture:

TABLE 3.9 Three Stages of COCOMO II Stage 1: Application Composition Application points Implicit in model Stage 2: Early Design Function points (FP) and language Equivalent SLOC as function of other variables % change expressed as a cost factor Function of ACT, software understanding, unfamiliarity

Model Aspect Size

Stage 3: Post-architecture FP and language or source lines of code (SLOC) Equivalent SLOC as function of other variables

Reuse

Requirements change Maintenance

Implicit in model Application Point Annual Change Traffic 1.0

% change expressed as a cost factor Function of ACT, software understanding, unfamiliarity

Scale (c) in nominal effort equation

0.91 to 1.23, depending on precedentedness, conformity, early architecture, risk resolution, team cohesion, and SEI process maturity Complexity, required reusability

0.91 to 1.23, depending on precedentedness, conformity, early architecture, risk resolution, team cohesion, and SEI process maturity

Product cost drivers

None

Reliability, database size, documentation needs, required reuse, and product complexity Execution time constraints, main storage constraints, and virtual machine volatility Analyst capability, applications experience, programmer capability, language and tool

Platform cost drivers

None

Platform difficulty

Personnel None Personnel capability cost drivers and experience programmer experience, experience, and personnel continuity Project cost drivers None Required development schedule, development

Use of software tools, required development schedule, and

environment

multisite development

Table 3.10. Application point complexity levels.


For Screens Number of views contained Number and source of data tables Total < 4 Total < 8 Total 8+ (<2 (2-3 (>3 server, server, server, >5 3-5 client) <3 client) client) simple simple medium simple medium difficult medium difficult difficult For Reports Number of sections contained Number and source of data tables Total < 4 Total < 8 Total 8+ (<2 (2-3 (>3 server, server, 3- server, 5 client) >5 <3 client) client) simple simple medium simple medium difficult medium difficult difficult

<3 3-7 8+

0 or 1 2 or 3 4+

10

Table 3.11. Complexity weights for application points.


Object type Screen Report 3GL component Simple 1 2 Medium 2 5 Difficult 3 8 10

Table 3.12. Productivity estimate calculation.


Developers experience and capability CASE maturity and capability Productivity factor Very low Very low 4 Low Low 7 Nominal Nominal 13 High High 25 Very high Very high 50

Table 3.13. Tool use categories.


Category Very low Low Nominal High Very high Meaning Edit, code, debug Simple front-end, back-end CASE, little integration Basic life-cycle tools, moderately integrated Strong, mature life-cycle tools, moderately integrated Strong, mature, proactive life-cycle tools, well-integrated with processes, methods, reuse

Machine learning techniques

Example: case-based reasoning


user identifies new problem as a case system retrieves similar cases from repository system reuses knowledge from previous cases system suggests solution for new case cause-effect network trained with data from past history

Example: neural network

Evaluating models

Mean magnitude of relative error (MMRE)

absolute value of mean of


[(actual - estimate)/actual]

goal: should be .25 or less

Pred(x/100): percentage of projects for which estimate is within x% of the actual

goal: should be .75 or greater for x = .25

11

Table 3.14. Summary of model performance.


Model Walston-Felix Basic COCOMO Intermediate COCOMO Intermediate COCOMO (variation) Bailey-Basili Pfleeger SLIM Jensen COPMO General COPMO PRED(0.25) 0.30 0.27 0.63 0.76 0.78 0.50 0.06-0.24 0.06-0.33 0.38-0.63 0.78 MMRE 0.48 0.60 0.22 0.19 0.18 0.29 0.78-1.04 0.70-1.01 0.23-5.7 0.25

Risk management requirements


Risk impact: the loss associated with the event Risk probability: the likelihood that the event will occur Risk control: the degree to which we can change the outcome

Risk exposure = (risk probability) x (risk impact)

Three strategies for risk reduction


avoiding the risk: change requirements for performance or functionality transferring the risk: transfer to other system, or buy insurance assuming the risk: accept and control it

risk leverage = difference in risk exposure divided by cost of reducing the risk

12

Boehms top ten risk items

Personnel shortfalls Unrealistic schedules and budgets Developing the wrong functions Developing the wrong user interfaces Gold-plating Continuing stream of requirements changes Shortfalls in externally-performed tasks Shortfalls in externally-furnished components Real-time performance shortfalls Straining computer science capabilities

Project plan contents


project scope project schedule project team organization technical description of system project standards and procedures quality assurance plan configuration management plan

documentation plan data management plan resource management plan test plan training plan security plan risk management plan maintenance plan

Digital Alpha AXP: Enrollment management model


Establish an appropriately large shared vision Delegate completely and elicit specific commitments from participants Inspect vigorously and provide supportive feedback Acknowledge every advance and learn as the program progresses

13

Lockheed Martin: Accountability modeling

Matrix organization

Each engineer belongs to a functional unit based on type of skill Combines people from different functional units into interdisciplinary work unit

Integrated product development team

Each activity tracked using cost estimation, critical path analysis, schedule tracking

Earned value a common measure for progress

Anchoring milestones

Objectives: Why is the system being developed? Milestones and schedules: What will be done by when? Responsibilities: Who is responsible for a function? Approach: How will the job be done, technically and managerially? Resources: How much of each resource is needed? Feasibility: Can this be done, and is there a good business reason for doing it?

14

Das könnte Ihnen auch gefallen