SEC 308 Yazılım Mühendisliği Software Project Planning

76
SEC 308 Yazılım Mühendisliği SEC 308 Yazılım Mühendisliği Software Project Planning 1

description

SEC 308 Yazılım Mühendisliği Software Project Planning. The Four P’s. People — the most important element of a successful project Product — the software to be built Process — the set of framework activities and software engineering tasks to get the job done - PowerPoint PPT Presentation

Transcript of SEC 308 Yazılım Mühendisliği Software Project Planning

Page 1: SEC 308 Yazılım Mühendisliği Software Project Planning

SEC 308 Yazılım MühendisliğiSEC 308 Yazılım Mühendisliği

Software Project Planning

1

Page 2: SEC 308 Yazılım Mühendisliği Software Project Planning

The Four P’s0 People — the most important element of a successful project0 Product — the software to be built0 Process — the set of framework activities and software

engineering tasks to get the job done0 Project — all work required to make the product a reality

2

Product Process Project People

Page 3: SEC 308 Yazılım Mühendisliği Software Project Planning

The People: The Stakeholders0 Five categories of stakeholders

0 Senior managers who define the business issues that often have significant influence on the project.

0 Project (technical) managers who must plan, motivate, organize, and control the practitioners who do software work.

0 Practitioners who deliver the technical skills that are necessary to engineer a product or application.

0 Customers who specify the requirements for the software to be engineered and other stakeholders who have a peripheral interest in the outcome.

0 End-users who interact with the software once it is released for production use.

3

Page 4: SEC 308 Yazılım Mühendisliği Software Project Planning

Software Teams

4

How to lead?

How to organize?

How to motivate?

How to collaborate?

How to create good ideas?

Page 5: SEC 308 Yazılım Mühendisliği Software Project Planning

The People: Team Leaders0 Qualities to look for in a team leader

0 Motivation. The ability to encourage (by “push or pull”) technical people to produce to their best ability.

0 Organization. The ability to mold existing processes (or invent new ones) that will enable the initial concept to be translated into a final product.

0 Ideas or innovation. The ability to encourage people to create and feel creative even when they must work within bounds established for a particular software product or application.

5

Page 6: SEC 308 Yazılım Mühendisliği Software Project Planning

The People: The Software Team

0 Seven project factors to consider when structuring a software development team0 the difficulty of the problem to be solved0 the size of the resultant program(s) in lines of code or function

points0 the time that the team will stay together (team lifetime)0 the degree to which the problem can be modularized0 the required quality and reliability of the system to be built0 the rigidity of the delivery date0 the degree of sociability (communication) required for the

project

6

Page 7: SEC 308 Yazılım Mühendisliği Software Project Planning

The Product Scope0 Scope

0Context. How does the software to be built fit into a larger system, product, or business context and what constraints are imposed as a result of the context?

0Information objectives. What customer-visible data objects are produced as output from the software? What data objects are required for input?

0Function and performance. What function does the software perform to transform input data into output? Are any special performance characteristics to be addressed?

0 Software project scope must be unambiguous and understandable at the management and technical levels.

7

Page 8: SEC 308 Yazılım Mühendisliği Software Project Planning

Problem Decomposition0Sometimes called partitioning or problem

elaboration0Once scope is defined …

0 It is decomposed into constituent functions0 It is decomposed into user-visible data objects

or0 It is decomposed into a set of problem classes

0Decomposition process continues until all functions or problem classes have been defined

8

Page 9: SEC 308 Yazılım Mühendisliği Software Project Planning

The Process0Once a process framework has been established

0 Consider project characteristics0 Determine the degree of rigor required0 Define a task set for each software engineering activity

0Task set =0Software engineering tasks0Work products0Quality assurance points0Milestones

9

Page 10: SEC 308 Yazılım Mühendisliği Software Project Planning

The Project0Projects get into trouble when …

0 Software people don’t understand their customer’s needs.0 The product scope is poorly defined.0 Changes are managed poorly.0 The chosen technology changes.0 Business needs change [or are ill-defined]. 0 Deadlines are unrealistic.0 Users are resistant.0 Sponsorship is lost [or was never properly obtained].0 The project team lacks people with appropriate skills.0 Managers [and practitioners] avoid best practices and lessons

learned.10

Page 11: SEC 308 Yazılım Mühendisliği Software Project Planning

To Get to the Essence of a Project

0Why is the system being developed?0What will be done? 0When will it be accomplished?0Who is responsible?0Where are they organizationally located?0How will the job be done technically and managerially?0How much of each resource (e.g., people, software, tools,

database) will be needed?

11

Page 12: SEC 308 Yazılım Mühendisliği Software Project Planning

A Good Manager Measures

12

measurement

What do weuse as abasis? • size? • function?

project metrics

process metricsprocess

product

product metrics

Page 13: SEC 308 Yazılım Mühendisliği Software Project Planning

Why Do We Measure?0assess the status of an ongoing project0track potential risks0uncover problem areas before they go “critical,”0adjust work flow or tasks, 0evaluate the project team’s ability to control quality

of software work products.

13

Page 14: SEC 308 Yazılım Mühendisliği Software Project Planning

Process Metrics0 Quality-related

0 focus on quality of work products and deliverables0 Productivity-related

0 Production of work-products related to effort expended0 Statistical SQA data

0 error categorization & analysis0 Defect removal efficiency

0 propagation of errors from process activity to activity0 Reuse data

0 The number of components produced and their degree of reusability

14

Page 15: SEC 308 Yazılım Mühendisliği Software Project Planning

Typical Project Metrics0Effort/time per software engineering task0Errors uncovered per review hour0Scheduled vs. actual milestone dates0Changes (number) and their characteristics0Distribution of effort on software engineering tasks

15

Page 16: SEC 308 Yazılım Mühendisliği Software Project Planning

Typical Size-Oriented Metrics0 errors per KLOC (thousand lines of code)0 defects per KLOC0 $ per LOC0 pages of documentation per KLOC0 errors per person-month0 errors per review hour0 LOC per person-month0 $ per page of documentation

16

Page 17: SEC 308 Yazılım Mühendisliği Software Project Planning

Typical Function-Oriented Metrics

0errors per FP (function point)0defects per FP0$ per FP0pages of documentation per FP0FP per person-month

17

Page 18: SEC 308 Yazılım Mühendisliği Software Project Planning

Function-Oriented Metrics0 FP are computed by

FP = count-total * [0.65 + 0.01 * Sum(Fi)]0 count-total is the sum of all FP entries0 The Fi (i = 1 to 14) are "complexity adjustment values" based

on responses to the following questions [ART85]:1. Does the system require reliable backup and recovery?2. Are data communications required?3. Are there distributed processing functions?4. Is performance critical?...

0 Each of these questions is answered using a scale that ranges from 0 (not important or applicable) to 5 (absolutely essential). 18

Page 19: SEC 308 Yazılım Mühendisliği Software Project Planning

Comparing LOC and FP

19

Programming LOC per Function point

Language avg. median low high

Ada 154 - 104 205Assembler 337 315 91 694C 162 109 33 704C++ 66 53 29 178

COBOL 77 77 14 400Java 63 53 77 -JavaScript 58 63 42 75Perl 60 - - -PL/1 78 67 22 263Powerbuilder 32 31 11 105SAS 40 41 33 49Smalltalk 26 19 10 55SQL 40 37 7 110Visual Basic 47 42 16 158

Representative values developed by QSM

Page 20: SEC 308 Yazılım Mühendisliği Software Project Planning

Object-Oriented Metrics0Number of scenario scripts (use-cases)0Number of support classes (required to implement

the system but are not immediately related to the problem domain)

0Average number of support classes per key class (analysis class)

0Number of subsystems (an aggregation of classes that support a function that is visible to the end-user of a system)

20

Page 21: SEC 308 Yazılım Mühendisliği Software Project Planning

WebApp Project Metrics0 Number of static Web pages (the end-user has no control over the

content displayed on the page)0 Number of dynamic Web pages (end-user actions result in customized

content displayed on the page)0 Number of internal page links (internal page links are pointers that

provide a hyperlink to some other Web page within the WebApp)0 Number of persistent data objects0 Number of external systems interfaced0 Number of static content objects0 Number of dynamic content objects0 Number of executable functions

21

Page 22: SEC 308 Yazılım Mühendisliği Software Project Planning

Measuring Quality0Correctness — the degree to which a program

operates according to specification0Maintainability—the degree to which a program is

amenable to change0Integrity—the degree to which a program is

impervious to outside attack0Usability—the degree to which a program is easy

to use

22

Page 23: SEC 308 Yazılım Mühendisliği Software Project Planning

Defect Removal Efficiency

23

where:E is the number of errors found before delivery of the software to the end-user D is the number of defects found after delivery.

DRE = E /(E + D)

Page 24: SEC 308 Yazılım Mühendisliği Software Project Planning

Software Project Planning

24

The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a complex technical project.

Why?

So the end result gets done on time, with quality!

Page 25: SEC 308 Yazılım Mühendisliği Software Project Planning

Project Planning Task Set0Establish project scope0Determine feasibility0Analyze risks0Define required resources

0Determine required human resources0Define reusable software resources0Identify environmental resources

25

Page 26: SEC 308 Yazılım Mühendisliği Software Project Planning

Project Planning Task Set (cont.)0Estimate cost and effort

0 Decompose the problem0 Develop two or more estimates using size, function

points, process tasks or use-cases0 Reconcile the estimates

0Develop a project schedule0 Establish a meaningful task set0 Define a task network0 Use scheduling tools to develop a timeline chart0 Define schedule tracking mechanisms

26

Page 27: SEC 308 Yazılım Mühendisliği Software Project Planning

Estimation0Estimation of resources, cost, and schedule

for a software engineering effort requires 0experience0access to good historical information (metrics)0the courage to commit to quantitative

predictions when qualitative information is all that exists

0Estimation carries inherent risk and this risk leads to uncertainty 27

Page 28: SEC 308 Yazılım Mühendisliği Software Project Planning

Write it Down!

28

SoftwareProject

Plan

Project ScopeEstimatesRisksScheduleControl strategy

Page 29: SEC 308 Yazılım Mühendisliği Software Project Planning

What is Scope?0 Software scope describes

0 the functions and features that are to be delivered to end-users0 the data that are input and output0 the “content” that is presented to users as a consequence of

using the software0 the performance, constraints, interfaces, and reliability that

bound the system.

0 Scope is defined using one of two techniques:0 A narrative description of software scope is developed after

communication with all stakeholders.0 A set of use-cases is developed by end-users. 29

Page 30: SEC 308 Yazılım Mühendisliği Software Project Planning

Resource Estimation0 Three major categories of software engineering resources

0 People0 Development environment0 Reusable software components

0 Often neglected during planning but become a paramount concern during the construction phase of the software process

0 Each resource is specified with0 A description of the resource0 A statement of availability0 The time when the resource will be required0 The duration of time that the resource will be applied

30

Time window

Page 31: SEC 308 Yazılım Mühendisliği Software Project Planning

Categories of Resources

31

People- Number required- Skills required- Geographical location

Development Environment- Software tools- Computer hardware- Network resources

Reusable Software Components- Off-the-shelf components- Full-experience components- Partial-experience components- New components

The Project

Page 32: SEC 308 Yazılım Mühendisliği Software Project Planning

Human Resources0Planners need to select the number and the kind of

people skills needed to complete the project0They need to specify the organizational position and

job specialty for each person0Small projects of a few person-months may only need

one individual0Large projects spanning many person-months or

years require the location of the person to be specified also

0The number of people required can be determined only after an estimate of the development effort 32

Page 33: SEC 308 Yazılım Mühendisliği Software Project Planning

Development Environment Resources

0A software engineering environment (SEE) incorporates hardware, software, and network resources that provide platforms and tools to develop and test software work products

0Most software organizations have many projects that require access to the SEE provided by the organization

0Planners must identify the time window required for hardware and software and verify that these resources will be available 33

Page 34: SEC 308 Yazılım Mühendisliği Software Project Planning

Reusable Software Resources0Off-the-shelf components

0 Components are from a third party or were developed for a previous project

0 Ready to use; fully validated and documented; virtually no risk

0Full-experience components0 Components are similar to the software that needs to be

built0 Software team has full experience in the application area

of these components0 Modification of components will incur relatively low risk34

Page 35: SEC 308 Yazılım Mühendisliği Software Project Planning

Reusable Software Resources0Partial-experience components

0 Components are related somehow to the software that needs to be built but will require substantial modification

0 Software team has only limited experience in the application area of these components

0 Modifications that are required have a fair degree of risk

0New components0 Components must be built from scratch by the software team

specifically for the needs of the current project0 Software team has no practical experience in the application

area0 Software development of components has a high degree of risk

35

Page 36: SEC 308 Yazılım Mühendisliği Software Project Planning

Estimation Techniques

36

• Past (similar) project experience• Conventional estimation techniques

• task breakdown and effort estimates

• size (e.g., FP) estimates• Empirical models• Automated tools

Page 37: SEC 308 Yazılım Mühendisliği Software Project Planning

Functional Decomposition

37

functional decomposition

Statementof

Scope Perform a Grammatical “parse”

Page 38: SEC 308 Yazılım Mühendisliği Software Project Planning

Problem-Based Estimation0Start with a bounded statement of scope0Decompose the software into problem functions

that can each be estimated individually 0Compute an LOC or FP value for each function0Derive cost or effort estimates by applying the LOC

or FP values to your baseline productivity metrics (e.g., LOC/person-month or FP/person-month)

0Combine function estimates to produce an overall estimate for the entire project

38

Page 39: SEC 308 Yazılım Mühendisliği Software Project Planning

Problem-Based Estimation0 In general, the LOC/pm and FP/pm metrics should be

computed by project domain0 Important factors are team size, application area, and

complexity 0 LOC and FP estimation differ in the level of detail required

for decomposition with each value0 For LOC, decomposition of functions is essential and should go

into considerable detail (the more detail, the more accurate the estimate)

0 For FP, decomposition occurs for the five information domain characteristics and the 14 adjustment factors0External inputs, external outputs, external inquiries, internal

logical files, external interface files

39

Page 40: SEC 308 Yazılım Mühendisliği Software Project Planning

Problem-Based Estimation0 For both approaches, the planner uses lessons learned to

estimate an optimistic, most likely, and pessimistic size value for each function or count (for each information domain value)

0 Then the expected size value S is computed as follows:

S = (Sopt + 4Sm + Spess)/6

0 Historical LOC or FP data is then compared to S in order to cross-check it

40

Page 41: SEC 308 Yazılım Mühendisliği Software Project Planning

Example: LOC Approach

41

Average productivity for systems of this type = 620 LOC/pm.

Burdened labor rate =$8000 per month, the cost per line of code is approximately $13.

Based on the LOC estimate and the historical productivity data, the total estimated project cost is $431,000 and the estimated effort is 54 person-months.

Page 42: SEC 308 Yazılım Mühendisliği Software Project Planning

Example: FP Approach

42

The estimated number of FP is derived:FPestimated = count-total * [0.65 + 0.01 * Sum(Fi)] (see next)

FPestimated = 375

organizational average productivity = 6.5 FP/pm. burdened labor rate = $8000 per month, the cost per FP is approximately $1230. Based on the FP estimate and the historical productivity data, the total estimated project cost is $461,000 and the estimated effort is 58 person-months.

Page 43: SEC 308 Yazılım Mühendisliği Software Project Planning

Complexity Adjustment FactorFactor Value

0 Backup and recovery 40 Data communications 20 Distributed processing 00 Performance critical 40 Existing operating environment 30 On-line data entry 40 Input transaction over multiple screens 50 Master files updated on-line 30 Information domain values complex 50 Internal processing complex 50 Code designed for reuse 40 Conversion/installation in design 30 Multiple installations 50 Application designed for change 5

43

• Answer the factors using a scale that ranges from 0 (not important or applicable) to 5 (absolutely essential)

• Sum(Fi)=52

Page 44: SEC 308 Yazılım Mühendisliği Software Project Planning

Example: FP Approach

44

The estimated number of FP is derived:FPestimated = count-total * [0.65 + 0.01 * Sum(Fi)]

FPestimated = 375

organizational average productivity = 6.5 FP/pm. burdened labor rate = $8000 per month, the cost per FP is approximately $1230. Based on the FP estimate and the historical productivity data, the total estimated project cost is $461,000 and the estimated effort is 58 person-months.

Page 45: SEC 308 Yazılım Mühendisliği Software Project Planning

Process-Based Estimation0 Identify the set of functions that the software

needs to perform as obtained from the project scope

0 Identify the series of framework activities that need to be performed for each function

0 Estimate the effort (in person months) that will be required to accomplish each software process activity for each function

45

Page 46: SEC 308 Yazılım Mühendisliği Software Project Planning

Process-Based Estimation0 Apply average labor rates (i.e., cost/unit effort) to the

effort estimated for each process activity0 Compute the total cost and effort for each function and

each framework activity (See table in Pressman, p. 655)0 Compare the resulting values to those obtained by way

of the LOC and FP estimates0 If both sets of estimates agree, then your numbers are

highly reliable0 Otherwise, conduct further investigation and analysis

concerning the function and activity breakdown

46

This is the most commonly used of the two estimation techniques (problem and process)

Page 47: SEC 308 Yazılım Mühendisliği Software Project Planning

Process-Based Estimation

47

Obtained from “process framework”

applicationfunctions

framework activities

Effort required to accomplisheach framework activity for each application function

Page 48: SEC 308 Yazılım Mühendisliği Software Project Planning

Process-Based Estimation Example

48

Activity

Task

Function

UICF2DGA3DGA

DSMPCF

CGDF

DAM

Totals

% effort

CC PlanningRisk

Analysis EngineeringConstruction

Release TotalsCE

analysis design code test

0.25 0.25 0.25 3.50 20.50 4.50 16.50 46.00

1% 1% 1% 8% 45% 10% 36%

CC = customer communication CE = customer evaluation

0.50

0.750.500.50

0.500.25

2.50

4.004.003.00

3.002.00

0.40

0.601.001.00

0.750.50

5.002.003.001.501.501.50

8.40

7.358.506.00

5.754.25

0.50 2.00 0.50 2.00 5.00

n/an/an/an/an/an/an/a

Based on an average burdened labor rate of $8,000 per month, the total estimated project cost is $368,000 and the estimated effort is 46 person-months.

Page 49: SEC 308 Yazılım Mühendisliği Software Project Planning

Tool-Based Estimation

49

project characteristicsproject characteristics

calibration factorscalibration factors

LOC/FP dataLOC/FP data

Page 50: SEC 308 Yazılım Mühendisliği Software Project Planning

Estimation with Use-Cases

50

use cases scenarios pages   scenarios pages LOC LOC estimatee subsystem 6 10 6   12 5 560 3,366subsystem group 10 20 8   16 8 3100 31,233e subsystem group 5 6 5   10 6 1650 7,970

       stimate         42,568

User interface subsystem Engineering subsystem group Infrastructure subsystem group

Total LOC estimate

Using 620 LOC/pm as the average productivity for systems of this type and a burdened labor rate of $8000 per month, the cost per line of code is approximately $13. Based on the use-case estimate and the historical productivity data, the total estimated project cost is $552,000 and the estimated effort is 68 person-months.

Page 51: SEC 308 Yazılım Mühendisliği Software Project Planning

Empirical Estimation Models

51

General form:

effort = tuning coefficient * sizeexponent

usually derivedas person-monthsof effort required

either a constant ora number derived based on complexity of project

usually LOC butmay also befunction point

empiricallyderived

Page 52: SEC 308 Yazılım Mühendisliği Software Project Planning

COCOMO-II0COCOMO II is actually a hierarchy of estimation

models that address the following areas:0Application composition model. Used during the early stages of

software engineering, when prototyping of user interfaces, consideration of software and system interaction, assessment of performance, and evaluation of technology maturity are paramount.

0Early design stage model. Used once requirements have been stabilized and basic software architecture has been established.

0Post-architecture-stage model. Used during the construction of the software.

52

Page 53: SEC 308 Yazılım Mühendisliği Software Project Planning

The Software Equation

53

A dynamic multivariable model

E = [LOC x B0.333/P]3 x (1/t4)where

E = effort in person-months or person-yearst = project duration in months or yearsB = “special skills factor”P = “productivity parameter”

Page 54: SEC 308 Yazılım Mühendisliği Software Project Planning

Estimation for OO Projects-I

0 Develop estimates using effort decomposition, FP analysis, and any other method that is applicable for conventional applications.

0 Using object-oriented analysis modeling (Chapter 8), develop use-cases and determine a count.

0 From the analysis model, determine the number of key classes (called analysis classes in Chapter 8).

0 Categorize the type of interface for the application and develop a multiplier for support classes:0 Interface type Multiplier0 No GUI 2.00 Text-based user interface 2.250 GUI 2.50 Complex GUI 3.0

54

Page 55: SEC 308 Yazılım Mühendisliği Software Project Planning

Estimation for OO Projects-II

0 Multiply the number of key classes (step 3) by the multiplier to obtain an estimate for the number of support classes.

0 Multiply the total number of classes (key + support) by the average number of work-units per class. Lorenz and Kidd suggest 15 to 20 person-days per class.

0 Cross check the class-based estimate by multiplying the average number of work-units per use-case

55

Page 56: SEC 308 Yazılım Mühendisliği Software Project Planning

The Make-Buy Decision

56

system Xsystem Xreusereuse

simple (0.30)simple (0.30)

difficult (0.70)difficult (0.70)

minorminor changeschanges

(0.40)(0.40)

majormajorchangeschanges

(0.60)(0.60)

simple (0.20)simple (0.20)

complex (0.80)complex (0.80)

majormajor changeschanges (0.30)(0.30)

minorminor changeschanges

(0.70)(0.70)

$380,000$380,000

$450,000$450,000

$275,000$275,000

$310,000$310,000

$490,000$490,000

$210,000$210,000

$400,000$400,000

buybuy

contractcontract

without changes (0.60)without changes (0.60)

with changes (0.40)with changes (0.40)

$350,000$350,000

$500,000$500,000

buildbuild

Page 57: SEC 308 Yazılım Mühendisliği Software Project Planning

Computing Expected Cost

57

(path probability) x (estimated path cost) i i

For example, the expected cost to build is:

expected cost = 0.30 ($380K) + 0.70 ($450K)

similarly,

expected cost = $382K

expected cost = $267K

expected cost = $410K

build

reuse

buy

contr

expected cost =

= $429 K

Page 58: SEC 308 Yazılım Mühendisliği Software Project Planning

Why Are Projects Late?0 an unrealistic deadline established by someone outside the software

development group0 changing customer requirements that are not reflected in schedule

changes;0 an honest underestimate of the amount of effort and/or the number of

resources that will be required to do the job;0 predictable and/or unpredictable risks that were not considered when

the project commenced;0 technical difficulties that could not have been foreseen in advance;0 human difficulties that could not have been foreseen in advance;0 miscommunication among project staff that results in delays;0 a failure by project management to recognize that the project is falling

behind schedule and a lack of action to correct the problem

58

Page 59: SEC 308 Yazılım Mühendisliği Software Project Planning

Effort and Delivery Time

59

Effort Cost

Impossible region

td

Ed

Tmin = 0.75T d

to

Eo

Ea = m (td4/ ta

4)

development time

Ea = effort in person-months

td = nominal delivery time for schedule

to = optimal development time (in terms of cost)

ta = actual delivery time desired

Page 60: SEC 308 Yazılım Mühendisliği Software Project Planning

Scheduling Principles

60

• “front end” activities– customer communication– analysis– design– review and modification

• construction activities– coding or code generation

• testing and installation– unit, integration– white-box, black box– regression

40-50%40-50%

30-40%30-40%

15-20%15-20%

Page 61: SEC 308 Yazılım Mühendisliği Software Project Planning

40-20-40 Distribution of Effort0 A recommended distribution of effort across the software process

is 40% (analysis and design), 20% (coding), and 40% (testing)0 Work expended on project planning rarely accounts for more

than 2 - 3% of the total effort0 Requirements analysis may comprise 10 - 25%

0 Effort spent on prototyping and project complexity may increase this0 Software design normally needs 20 – 25%0 Coding should need only 15 - 20% based on the effort applied to

software design0 Testing and subsequent debugging can account for 30 - 40%

0 Safety or security-related software requires more time for testing

61

Page 62: SEC 308 Yazılım Mühendisliği Software Project Planning

Basic Principles for Project Scheduling

0 Compartmentalization0 The project must be compartmentalized into a number of

manageable activities, actions, and tasks; both the product and the process are decomposed

0 Interdependency0 The interdependency of each compartmentalized activity,

action, or task must be determined0 Some tasks must occur in sequence while others can occur in

parallel0 Some actions or activities cannot commence until the work

product produced by another is available

62

Page 63: SEC 308 Yazılım Mühendisliği Software Project Planning

Basic Principles for Project Scheduling

0 Time allocation0 Each task to be scheduled must be allocated some number of

work units0 In addition, each task must be assigned a start date and a

completion date that are a function of the interdependencies0 Start and stop dates are also established based on whether

work will be conducted on a full-time or part-time basis0 Effort validation

0 Every project has a defined number of people on the team0 As time allocation occurs, the project manager must ensure

that no more than the allocated number of people have been scheduled at any given time

63

Page 64: SEC 308 Yazılım Mühendisliği Software Project Planning

Basic Principles for Project Scheduling

0 Defined responsibilities0 Every task that is scheduled should be assigned to a specific

team member0 Defined outcomes

0 Every task that is scheduled should have a defined outcome for software projects such as a work product or part of a work product

0 Work products are often combined in deliverables0 Defined milestones

0 Every task or group of tasks should be associated with a project milestone

0 A milestone is accomplished when one or more work products has been reviewed for quality and has been approved

64

Page 65: SEC 308 Yazılım Mühendisliği Software Project Planning

Relationship Between People and Effort

0 Common management myth: If we fall behind schedule, we can always add more programmers and catch up later in the project0 This practice actually has a disruptive effect and causes the

schedule to slip even further0 The added people must learn the system0 The people who teach them are the same people who were

earlier doing the work0 During teaching, no work is being accomplished0 Lines of communication (and the inherent delays) increase for

each new person added

65

Page 66: SEC 308 Yazılım Mühendisliği Software Project Planning

Factors that Influence a Project’s Schedule

0 Size of the project0 Number of potential users0 Mission criticality0 Application longevity0 Stability of requirements0 Ease of customer/developer communication0 Maturity of applicable technology0 Performance constraints0 Embedded and non-embedded characteristics0 Project staff0 Reengineering factors

66

Page 67: SEC 308 Yazılım Mühendisliği Software Project Planning

Purpose of a Task Network0 Also called an activity network0 It is a graphic representation of the task flow for a project0 It depicts task length, sequence, concurrency, and

dependency0 Points out inter-task dependencies to help the manager

ensure continuous progress toward project completion0 The critical path

0 A single path leading from start to finish in a task network0 It contains the sequence of tasks that must be completed on

schedule if the project as a whole is to be completed on schedule

0 It also determines the minimum duration of the project 67

Page 68: SEC 308 Yazılım Mühendisliği Software Project Planning

Example Task Network

68

Task A3

Task B3

Task E8

Task F2

Task H5

Task C7

Task D5

Task I4

Task M0

Task N2

Task G3

Task J5

Task K3

Task L10

Where is the critical path and what tasks are on it?

Page 69: SEC 308 Yazılım Mühendisliği Software Project Planning

Example Task Network

69

Critical path: A-B-C-E-K-L-M-N

Task A3

Task B3

Task E8

Task F2

Task H5

Task C7

Task D5

Task I4

Task M0

Task N2

Task G3

Task J5

Task K3

Task L10

Page 70: SEC 308 Yazılım Mühendisliği Software Project Planning

70

Page 71: SEC 308 Yazılım Mühendisliği Software Project Planning

Timeline Charts

71

Tasks Week 1 Week 2 Week 3 Week 4 Week n

Task 1

Task 2Task 3Task 4Task 5Task 6Task 7Task 8

Task 9Task 10Task 11Task 12

Page 72: SEC 308 Yazılım Mühendisliği Software Project Planning

Use Automated Tools toDerive a Timeline Chart

72

I.1.1 Identify need and benefits Meet with customers Identify needs and project constraints Establish product statement Milestone: product statement definedI.1.2 Define desired output/control/input (OCI) Scope keyboard functions Scope voice input functions Scope modes of interaction Scope document diagnostics Scope other WP functions Document OCI FTR: Review OCI with customer Revise OCI as required; Milestone; OCI definedI.1.3 Define the functionality/behavior Define keyboard functions Define voice input functions Decribe modes of interaction Decribe spell/grammar check Decribe other WP functions FTR: Review OCI definition with customer Revise as required Milestone: OCI defintition completeI.1.4 Isolate software elements Milestone: Software elements definedI.1.5 Research availability of existing software Reseach text editiong components Research voice input components Research file management components Research Spell/Grammar check components Milestone: Reusable components identifiedI.1.6 Define technical feasibility Evaluate voice input Evaluate grammar checking Milestone: Technical feasibility assessedI.1.7 Make quick estimate of sizeI.1.8 Create a Scope Definition Review scope document with customer Revise document as required Milestone: Scope document complete

week 1 week 2 week 3 week 4Work tasks week 5

Page 73: SEC 308 Yazılım Mühendisliği Software Project Planning

Example Timeline Charts

73

Page 74: SEC 308 Yazılım Mühendisliği Software Project Planning

Proposed Tasks for a Long-Distance Move of 8,000 lbs of Household Goods

74

Loadtruck

Unloadtruck

Drive truckfrom origin

to destination

Returntruck andsupplies

Decide on type/size ofrental truck

Reserverental truckand supplies

Arrange forworkers toload truck

Pick uprental truck

Arrange forworkers to

unload truck

Arrange forperson to

drive truck/car

Find lodgingwith space

to park truck

Make lodging

reservations

Determinedestination

locationDetermine

date to moveout or move in

Makedecisionto move

Packhousehold

goods

Plan travelroute and

overnight stops

Get moneyto pay forthe move

Lease or buyhome at

destination

• Where is the critical path and what tasks are on it?• Given a firm start date, on what date will the project be completed?• Given a firm stop date, when is the latest date that the project must start by?

Page 75: SEC 308 Yazılım Mühendisliği Software Project Planning

Proposed Tasks for a Long-Distance Move of 8,000 lbs of Household Goods

75

17. Loadtruck

19. Unloadtruck

18. Drive truckfrom origin

to destination

20. Returntruck andsupplies

6. Decide on type/size ofrental truck

15. Reserverental truck

and supplies

7. Arrange forworkers toload truck

16. Pick uprental truck

9. Arrange forworkers to

unload truck

8. Arrange forperson to

drive truck/car

11. Milestone

13. Find lodgingwith space

to park truck

14. Make lodging

reservations

4. Determinedestination

location

3. Determinedate to move

out or move in

10. Packhousehold

goods

12. Plan travelroute and

overnight stops

2. Get moneyto pay forthe move

5. Lease or buyhome at

destination

• Where is the critical path and what tasks are on it? • Given a firm start date, on what date will the project be completed?• Given a firm stop date, when is the latest date that the project must start by?

Page 76: SEC 308 Yazılım Mühendisliği Software Project Planning

Timeline Chart for Long Distance Move

76