CSC480 Software Engineering Lecture 5 September 9, 2002.

24
CSC480 Software Engineering Lecture 5 September 9, 2002

Transcript of CSC480 Software Engineering Lecture 5 September 9, 2002.

Page 1: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC480 Software Engineering

Lecture 5September 9, 2002

Page 2: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 29/9/2002

Principal Variables

Project planners can vary the followingCostCapabilityQualitySchedule

The degree to which these 4 factors can be controlled depends on the project:

A bulls-eye diagram can visualize the factors

Page 3: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 39/9/2002

Bulls-eye Diagram

this project

cost

durationcapability

defect density

Target:30 wks

Actual:20 wks

Target:$70K

Actual:$90K

Target:100%

Actual:80%

Target:4 defect/KLOC

Actual:2 defect/KLOC

Page 4: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 49/9/2002

Roadmap for Project Management

1. Understand project content, scope, & time frame

2. Identify development process (methods, tools, languages, documentation and support)

3. Determine organizational structure (organizational elements involved)

4. Identify managerial process (responsibilities of the participants)

6. Develop staffing plan

5. Develop schedule (times at which the work portions are to be performed)

7. Begin risk management

8. Identify documents to be produced

9. Begin process itself

Page 5: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 59/9/2002

Optimal Size for Interaction

Number of people with whom developer must frequently interact

Developer communicates regularly with eleven people. Communication time outweighs benefits of interaction

Developer communicates regularly with no one. No communication time lost, but developer is too isolated and has no help.

Approximateoptimal range

3 7

Effectiveness per developer

Page 6: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 69/9/2002

Project Management Hierarchy

Larger Projects:Smaller Projects:

No separate Marketing?No separate QA organization?

Subdivide QA into testing, …?Subdivide Engineering into

system engineering, …?

Page 7: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 79/9/2002

Communication in Large Projects

Team of leaders

Page 8: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 89/9/2002

S/W Management Distinctions

The product is intangible and uniquely flexible Software engineering is not recognized as an

engineering discipline with the sane status as mechanical, electrical engineering, etc.

The software development process is not standardised

Page 9: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 99/9/2002

Proposal writing Project planning and scheduling Project costing Project monitoring and reviews Personnel selection and evaluation Report writing and presentations

Management Activities

Page 10: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 109/9/2002

Project Staffing May not be possible to appoint the ideal people

to work on a project Project budget may not allow for the use of highly-

paid staff Staff with the appropriate experience may not be

available Managers have to work within these constraints

especially when there is an international shortage of skilled IT staff

Page 11: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 119/9/2002

Project Planning

Probably the most time-consuming project management activity

Plans must be regularly revised as new information becomes available from initial concept to system delivery

Various different types of plan may be developed to support the main software project plan

Page 12: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 129/9/2002

Types of Project PlanPlan DescriptionQuality plan Describes the quality procedures and

standards that will be used in a project.Validation plan Describes the approach, resources and

schedule used for system validation. Configurationmanagement plan

Describes the configuration managementprocedures and structures to be used.

Maintenance plan Predicts the maintenance requirements ofthe system, maintenance costs and effortrequired.

Staff development plan. Describes how the skills and experience ofthe project team members will bedeveloped.

Page 13: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 139/9/2002

Project Planning ProcessEstablish the project constraints Make initial assessments of the project parameters Define project milestones and deliverableswhile project has not been completed or cancelled loop

Draw up project scheduleInitiate activities according to schedule

Wait ( for a while ) Review project progress Revise estimates of project parameters Update the project schedule Re-negotiate project constraints and deliverables if ( problems arise ) then Initiate technical review and possible revision end ifend loop

Page 14: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 149/9/2002

Project Plan Structure Introduction Project organisation Risk analysis Hardware and software resource requirements Work breakdown Project schedule Monitoring and reporting mechanisms

Page 15: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 159/9/2002

Activity Organization

Activities in a project should be organised to produce tangible outputs for management to judge progress Milestones are the end-point of a process activity Deliverables are project results delivered to

customers The waterfall process allows for the straight

forward definition of progress milestones

Page 16: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 169/9/2002

Milestones in The RE Process

Evaluationreport

Prototypedevelopment

Requirementsdefinition

Requirementsanalysis

Feasibilityreport

Feasibilitystudy

Architecturaldesign

Designstudy

Requirementsspecification

Requirementsspecification

ACTIVITIES

MILESTONES

Page 17: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 179/9/2002

Project Scheduling

Dependent on project managers intuition and experience Split project into tasks and estimate time and

resources required to complete each task Organize tasks concurrently to make optimal use

of workforce Minimize task dependencies to avoid delays

caused by one task waiting for another to complete

Page 18: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 189/9/2002

The Project Scheduling Process

Estimate resourcesfor activities

Identify activitydependencies

Identifyactivities

Allocate peopleto activities

Create projectcharts

Softwarerequirements

Activity chartsand bar charts

Page 19: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 199/9/2002

Scheduling Problems Estimating the difficulty of problems and

hence the cost of developing a solution is hard Productivity is not proportional to the number of

people working on a task Adding people to a late project makes it later

because of communication overheads The unexpected always happens. Always allow

contingency in planning

Page 20: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 209/9/2002

Bar Charts & Activity Networks Graphical notations used to illustrate the

project schedule Show project breakdown into tasks. Tasks

should not be too small. They should take about a week or two

Activity charts show task dependencies and the the critical path

Bar charts show schedule against calendar time

Page 21: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 219/9/2002

Task Durations & DependenciesTask Duration (days) DependenciesT1 8T2 15T3 15 T1 (M1)T4 10T5 10 T2, T4 (M2)T6 5 T1, T2 (M3)T7 20 T1 (M1)T8 25 T4 (M5)T9 15 T3, T6 (M4)T10 15 T5, T7 (M7)T11 7 T9 (M6)T12 10 T11 (M8)

Page 22: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 229/9/2002

Activity network

start

T2

M3T6

Finish

T10

M7T5

T7

M2T4

M5

T8

4/7/99

8 days

14/7/99 15 days

4/8/99

15 days

25/8/99

7 days

5/9/99

10 days

19/9/99

15 days

11/8/99

25 days

10 days

20 days

5 days25/7/99

15 days

25/7/99

18/7/99

10 days

T1

M1 T3T9

M6

T11

M8

T12

M4

Page 23: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 239/9/2002

Activity Timeline4/7 11/7 18/7 25/7 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

T4

T1T2

M1

T7T3

M5T8

M3

M2T6

T5M4

T9

M7T10

M6

T11M8

T12

Start

Finish

Page 24: CSC480 Software Engineering Lecture 5 September 9, 2002.

CSC 480 - Software Engineering 249/9/2002

Staff Allocation4/7 11/7 18/7 25/ 1/8 8/8 15/8 22/8 29/8 5/9 12/9 19/9

T4

T8 T11

T12

T1

T3

T9

T2

T6 T10

T7

T5

Fred

Jane

Anne

Mary

Jim