Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 3 Planning and Managing the Project. Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.2 Important Dates 09/09/2010 HW: Page.

Similar presentations


Presentation on theme: "Chapter 3 Planning and Managing the Project. Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.2 Important Dates 09/09/2010 HW: Page."— Presentation transcript:

1 Chapter 3 Planning and Managing the Project

2 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.2 Important Dates 09/09/2010 HW: Page 44, Questions 4, 7 09/14/2010 HW: Page 81, Questions 4, 11 09/23/2010 Project Milestone 1

3 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.3 Contents 3.1 Tracking Progress 3.2 Project Personnel 3.3 Effort Estimation 3.4 Risk Management 3.5 The Project Plan 3.6Process Models and Project Management 3.7 Information System Example 3.8 Real Time Example 3.9 What this Chapter Means for You

4 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.4 Chapter 3 Objectives Tracking project progress Project personnel and organization Effort and schedule estimation Risk management Using process modeling with project planning

5 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.5 3.1 Tracking Progress Do we understand customer’s needs? Can we design a system to solve customer’s problems or satisfy customer’s needs? How long will it take to develop the system? How much will it cost to develop the system?

6 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.6 3.1 Tracking Progress Project Schedule Describes the software-development cycle for a particular project by –enumerating the phases or stages of the project –breaking each phase into discrete tasks or activities to be completed Portrays the interactions among the activities and estimates the times that each task or activity will take

7 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.7 3.1 Tracking Progress Project Schedule: Approach Understanding customer’s needs by listing all project deliverables –Documents –Demonstrations of function –Demonstrations of subsystems –Demonstrations of accuracy –Demonstrations of reliability, performance or security Determining milestones and activities to produce the deliverables

8 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.8 3.1 Tracking Progress Milestones and activities Activity: is a part of the project which takes place over a period of 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 Milestone: completion of an activity -- a particular point in time

9 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.9 3.1 Tracking Progress Project Schedule (continued) Project development can be separated into a succession of phases which are composed of steps, which are composed of activities

10 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.10 3.1 Tracking Progress Project Schedule (continued) Table 3.1 shows the phases, steps and activities to build a house –landscaping phase –building the house phase Table 3.2 lists milestones for building the house phase

11 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.11 3.1 Tracking Progress Phases, Steps, and Activities in Building a House

12 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.12 3.1 Tracking Progress Milestones in Building a House

13 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.13 3.1 Tracking Progress Work Breakdown and Activity Graphs Work breakdown structure depicts the project as a set of discrete pieces of work Activity graphs depict the dependencies among activities –Nodes: project milestones –Lines: activities involved

14 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.14 3.1 Tracking Progress Work Breakdown and Activity Graphs (continued) Activity graph for building a house

15 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.15 3.1 Tracking Progress Estimating Completion Adding estimated time in activity graph of each activity to be completed tells us more about the project's schedule

16 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.16 3.1 Tracking Progress Estimating Completion for Building a House

17 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.17 3.1 Tracking Progress Critical Path Method (CPM) Minimum amount of time it will take to complete a project –Reveals those activities that are most critical to completing the project on time Real time (actual time): estimated amount of time required for the activity to be completed Available time: amount of time available in the schedule for the activity's completion Slack time: the difference between the available time and the real time for that activity

18 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.18 3.1 Tracking Progress Critical Path Method (CPM) (continued) Critical path: the slack at every node is zero –can be more than one in a project schedule Slack time = available time – real time = latest start time – earliest start time

19 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.19 Slack Time for Activities of Building a House

20 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.20 3.1 Tracking Progress CPM Bar Chart Includes information about the early and late start dates Asterisks indicate the critical path

21 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.21 3.1 Tracking Progress Tools to Track Progress : Tree Structure Example: to track progress of building a communication software

22 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.22 3.1 Tracking Progress Tools to Track Progress: Gantt Chart Activities shown in parallel –helps understand which activities can be performed concurrently

23 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.23 3.1 Tracking Progress Tools to Track Progress: Resource Histogram Shows people assigned to the project and those needed for each stage of development

24 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.24 3.1 Tracking Progress Tools to Track Progress: Expenditures Tracking An example of how expenditures can be monitored

25 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.25 3.2 Project Personnel Key activities requiring personnel –requirements analysis –system design –program design –program implementation –testing –training –maintenance –quality assurance There is great advantage in assigning different responsibilities to different people

26 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.26 3.2 Project Personnel Choosing Personnel Ability to perform work Interest in work Experience with –similar applications –similar tools, languages, or techniques –similar development environments Training Ability to communicate with others Ability to share responsibility Management skills

27 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.27 3.2 Project Personnel Communication A project's progress is affected by –degree of communication –ability of individuals to communicate their ideas Software failures can result from breakdown in communication and understanding

28 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.28 3.2 Project Personnel Communication (continued) Line of communication can grow quickly If there is n worker in project, then there are n(n-1)/2 pairs of communication

29 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.29 3.2 Project Personnel Sidebar 3.1 Make Meeting Enhance Project Progress Common complains about meeting –the purpose is unclear –the attendees are unprepared –essential people are late or absent –the conversation veers away from its purpose –participants do not discuss, instead argue –decisions are never enacted afterward Ways to ensure a productive meeting –clearly decide who should be in the meeting –develop an agenda –have someone who tracks the discussion –have someone who ensures follow-up actions

30 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.30 3.2 Project Personnel Work Styles Extroverts: tell their thoughts Introverts: ask for suggestions Intuitives: base decisions on feelings Rationals: base decisions on facts, options

31 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.31 3.2 Project Personnel Work Styles (continued) Horizontal axis: communication styles Vertical axis: decision styles

32 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.32 3.2 Project Personnel Work Styles (continued) Work styles determine communication styles Understanding workstyles –help to be flexible –give information based on other's priorities Impacts interaction among customers, developers and users

33 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.33 3.2 Project Personnel Project Organization Depends on –backgrounds and work styles of team members –number of people on team –management styles of customers and developers Examples: –Chief programmer team: one person totally responsible for a system's design and development –Egoless approach: hold everyone equally responsible

34 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.34 3.2 Project Personnel Project Organization: Chief Programmer Team Each team member must communicate often with chief, but not necessarily with other team members

35 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.35 3.2 Project Personnel Project Organization (continued) Characteristics of projects and the suggested organizational structure to address them

36 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.36 3.2 Project Personnel Sidebar 3.2 Structure vs. Creativity Experiment by Sally Phillip examining two groups building a hotel –structured team: clearly defined responsibilities –unstructured team: no directions The results are always the same –Structured teams finish a functional Days Inn –Unstructured teams build a creative, multistoried Taj Mahal and never complete Good project management means finding a balance between structure and creativity

37 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.37 3.3 Effort Estimation Estimating project costs is one of the crucial aspects of project planning and management Estimating cost has to be done as early as possible during the project life cycle but also should continue through out the life cycle Type of costs –facilities: hardware, space, furniture, telephone, etc –software tools for designing software –staff (effort): the biggest component of cost

38 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.38 3.3 Effort Estimation Estimation Should be Done Repeatedly Uncertainty early in the project can affect the accuracy of cost and size estimations

39 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.39 3.3 Effort Estimation Sidebar 3.3 Causes of Inaccurate Estimates Key causes –Frequent request for change by users –Overlooked tasks –User's lack of understanding of the requirements –Insufficient analysis when developing estimates –Lack of coordination of system development, technical services, operations, data administration, and other functions during development –Lack of an adequate method or guidelines for estimating

40 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.40 3.3 Effort Estimation Sidebar 3.3 Causes of Inaccurate Estimates (continued) Key influences –Complexity of the proposed application system –Required integration with existing system –Complexity of the program in the system –Size of the system expressed as number of functions or programs –Capabilities of the project team members –Project team's experience with the application, the programming language, and hardware –Capabilities of the project team members –Database management system –Number of project team member –Extent of programming and documentation standards

41 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.41 3.3 Effort Estimation Type of Estimation Methods Expert judgment The complete estimate can be computed from either top-down or bottom-up analysis of what is needed. – Analogy: pessimistic (x), optimistic (y), most likely (z); estimate as (x + 4y + z)/6 – Delphi technique: based on the average of “secret” expert judgments

42 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.42 3.3 Effort Estimation Expert Judgement: Wolverton Model Two factors that affect difficulty –whether problem is old (O) or new (N) –whether it is easy (E) or moderate (M)

43 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.43 3.3 Effort Estimation Algorithmic Method: Algorithmic methods: E = (a + bS c ) m(X) The effort is determined mostly by the size of the proposed system, adjusted by the effects of several other project. – Walston and Felix model: E = 5.25 S 0.91 A productivity index is included in the equation There are 29 factors that can affect productivity –Factor weights 1 if increase the productivity –-1 if decrease the productivity

44 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.44 3.3 Effort Estimation Watson and Felix Model Productivity Factors

45 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.45 3.3 Effort Estimation Algorithmic Method: Bailey-Basili technique First, they minimize standard error estimate to produce an equation such as E = 5.5 + 0.73S 1.16 Then, 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 –ER adj = R – 1 if R >= 1 = 1 – 1/R if R < 1 Then they adjust the initial effort estimate E adj –E adj = (1 + ER adj )E if R >= 1 = E/(1 + ER adj ) if R < 1

46 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.46 3.3 Effort Estimation Algorithmic Method: Bailey-Basili Modifier

47 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.47 3.3 Effort Estimation COCOMO model Introduced by Boehm COCOMO II –updated version –include models of reuse The basic models –E = bS c m(X) –where bS c is the initial size-based estimate m(X) is the vector of cost driver information

48 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.48 3.3 Effort Estimation COCOMO II: Stages of Development Stage 1: Application composition – Projects usually build prototypes to resolve high-risk issues involving user interface, software and system interaction, performance – COCOMO II estimate sizes in terms of high level generators, such as the number of screens and reports. Stage 2: Early design – Designers explore alternative architectures and concepts – COCOMO II estimates size in function points (a technique to estimate the functionality captured in the requirements. Stage 3: Post-architecture – development has begun – COCOMO II estimates size in lines of code

49 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.49 Three Stages of COCOMO II

50 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.50 3.3 Effort Estimation COCOMO II: Estimate Application Points To compute application points, first we need to count the number of screens, reports and programming language used to determine the complexity level 8 +mediumdifficult 4 +mediumdifficult

51 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.51 3.3 Effort Estimation COCOMO II: Estimate Application Point (continued) The number to be used for simple, medium or difficult application point is a complexity weight as shown in table. Then you sum the weighted reports and screens to obtain a single application point number. Object typeSimpleMediumDifficult Screen 123 Report 258 3GL component -- 10

52 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.52 3.3 Effort Estimation Productivity Estimate Calculation If r percent of the objects will be reused from previous project, the number of new application points is calculated to be NAP =(application points) *(100-r)/100 Calculate the productivity factor based on developer experience and capability

53 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.53 3.3 Effort Estimation Machine Learning Techniques Example: neural network –cause-effect network “trained” with data from past history

54 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.54 3.3 Effort Estimation Machine learning techniques: Neural Network Neural network used by Shepperd to produce effort estimation

55 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.55 3.3 Effort Estimation Machine Learning Techniques: CBR Involves four steps –the user identifies a new problem as a case –the system retrieves similar case from a repository of historical information –the system reuses knowledge from previous case –the system suggests a solution for the new case Two big hurdles in creating successful CBR system –characterizing cases (Based on the information availability) –determining similarity (usually experts are asked to supply a list of features that are significant in determining similarity)

56 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.56 3.3 Effort Estimation Finding the Model for Your Situation 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: PRED (0.25) is greater than 75% – 75% project estimates are within 25% of actual

57 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.57 3.3 Effort Estimation Evaluating Models (continued) No model appears to have captured the essential characteristics and their relationships for all types of development

58 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.58 3.3 Effort Estimation Evaluating Models (continued) It is important to understand which types of effort are needed during development even when we have reasonably accurate estimate –Categorize and save the results Two different reports of effort distribution from different researchers

59 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.59 3.4 Risk Management What is a Risk? Risk is an unwanted event that has negative consequences We distinguish risks from other project events –Risk impact: the loss associated with the event –Risk probability: the likelihood that the event will occur Quantify the effect of risks –Risk exposure = (risk probability) x (risk impact) Risk sources: generic and project-specific

60 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.60 3.4 Risk Management Sidebar 3.4 Boehm’s Top Risk Items Personnel shortfalls Unrealistic schedules and budgets Developing the wrong functions Developing the wrong user interfaces Continuing stream of requirements changes Shortfalls in externally-performed tasks Shortfalls in externally-furnished components Real-time performance shortfalls

61 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.61 3.4 Risk Management Risk Management Activities

62 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.62 3.4 Risk Management Risk Management Activities (continued) Example of risk exposure calculation PU: prob. of unwanted outcome LU: lost assoc with unwanted outcome

63 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.63 3.4 Risk Management Risk Management Activities (continued) 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 Cost of reducing risk –Risk leverage = (risk exposure before reduction – (risk exposure after reduction) / (cost of risk reduction)

64 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.64 3.5 Project Plan 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

65 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.65 3.5 Project Plan Project Plan Lists : Writing a Technical Description List of the people in development team List of hardware and software Standards and methods, such as –algorithms –tools –review or inspection techniques –design language or representations –coding languages –testing techniques

66 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.66 3.6 Process Models and Project Management Enrollment Management Model: Digital Alpha AXP 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

67 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.67 3.6 Process Models and Project Management Digital Alpha AXP (continued) Vision: was used to “enroll” the related programs, so they all shared common goals

68 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.68 3.6 Process Models and Project Management Digital Alpha AXP (continued) An organization that allowed technical focus and project focus to contribute to the overall program

69 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.69 3.6 Process Models and Project Management Accountability Modelling: Lockheed Martin Matrix organization – Each engineer belongs to a functional unit based on type of skill Integrated product development team – Combines people from different functional units into interdisciplinary work unit Each activity tracked using cost estimation, critical path analysis, schedule tracking

70 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.70 3.6 Process Models and Project Management Accountability modeling:Lockheed Martin (continued) Accountability model used in F-16 Project

71 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.71 3.6 Process Models and Project Management Accountability modeling: Lockheed Martin (continued) Because the teams had multiple, overlapping activities An activity map used to illustrate progress on each activity

72 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.72 3.6 Process Models and Project Management Accountability modeling: Lockheed Martin (continued) For each activity, progress was tracked using earned value chart

73 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.73 3.6 Process Models and Project Management Anchoring (Common) Milestones Life cycle objectives: is to make sure the stakeholders agree with the system’s goal 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? Life-cycle architecture: defines the system and software architectures and address architectural choices and risks Initial operational capability: The key elements are readiness of software, deployment site, user training

74 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.74 3.6 Process Models and Project Management Anchoring milestones (continued) The Win-Win spiral model suggested by Boehm is used as supplement to the milestones

75 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.75 3.8 Real Time Example Ariane-5 System The Ariane-5 destruction might have been prevented had the project managers developed a risk management plan –Risk identification: possible problem with reuse of the Ariane-4) –Risk exposure: prioritization would have identified if the inertial reference system (SRI) did not work as planned –Risk control: assesment of the risk using reuse software –Risk avoidance: using SRI with two different designs

76 Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.76 3.7 What this Chapter Means for You Key concepts in project management –Project planning –Cost and schedule estimation –Risk management –Team Organization Project planning involves input from all team members Communication path grows as the size of the team increases and need to be taken into account when planning and estimating schedule


Download ppt "Chapter 3 Planning and Managing the Project. Pfleeger and Atlee, Software Engineering: Theory and PracticeChapter 3.2 Important Dates 09/09/2010 HW: Page."

Similar presentations


Ads by Google