Introduction to Software Engineering CSSE2101/ITSE202 Chapter 6 Software Project Management Learning Outcome s Covered LOC 10: Examine cost estimation techniques, software project scheduling, scope, communication, configuration monitoring, and risk management for software projects. LOC 13: Use project management and case tools. At the end of this module, the students will be able to: Objectives ●Understand the concept of project management ●Apply various estimation techniques ●Identify the risk categories and able to apply risk management stages ● Complete procedure of software development from requirement gathering to testing and maintenance. Softwar e Project ● Specified period of time to achieve intended software product. ● Every project may has a unique and distinct goal. ● Project comes with a start time and end time. ● Project ends when its goal is achieved hence it is a temporary phase in the lifetime of an organization. ● Project needs adequate resources in terms of time, manpower, finance, material and knowledge-bank. Need of software project management ●Software project management is essential to incorporate user requirements along with budget and time constraints. ⮚ It is an essential part of software organization to deliver quality product Triple constraint triangle ⮚ keeping the cost within client’s budget constrain and deliver the project as per scheduled ⮚ Any of three factor can severely impact the other two. Software Project Manager ●Person who undertakes the responsibility of executing the software project. ●Aware of all the phases of SDLC that the software would go through. ●Controls and manages the activities involved in production Responsibilities of Software Project Manager Managing People Managing Project ● Act as project leader ⚫ Defining and setting up ● Liaison with stakeholders ● Managing human resources ● Setting up reporting hierarchy etc. project scope ⚫ Managing project management activities ⚫ Monitoring progress and performance ⚫ Risk analysis at every phase ⚫ Take necessary step to avoid or come out of problems ⚫ Act as project spokesperson 1. 1. Project Planning The task is performed before the production of software actually starts. It is a set of multiple processes, which facilitates software production. 2. 2. Scope Management Scope management is essential because it creates boundaries for the project by clearly defining what would be done in the project and what would not be done. This makes the project contain limited and quantifiable tasks, which can easily be documented and avoids cost and time overrun. Software Managemen Activities 3. Project Estimation ●For an effective management accurate estimation of various measures is a must. ●With correct estimation managers can manage and control the project more efficiently and effectively. 1. Software Size Estimation ●Software size may be estimated either in terms of KLOC (Kilo Line of Code) or by calculating number of function points in the software. ●Lines of code depend upon coding practices and Function points vary according to the user or software requirement. 2. Effort Estimation 3. Project Estimation ●The managers estimate efforts in terms of personnel requirement and man-hour required to produce the software. ●For effort estimation software size should be known. ●This can either be derived by managers experience, organization historical data or software size can be converted into efforts by using some standard formulae. 3. Time Estimation ● Once size and efforts are estimated, the time required to produce the software can be estimated. 3. Project Estimation ● Efforts required are segregated into sub categories as per the requirement specifications and interdependency of various components of software. Software tasks are divided into smaller tasks, activities or events by Work Breakthrough Structure (WBS). ● The tasks are scheduled on day-to-day basis or in calendar months. ● The sum of time required to complete all tasks in hours or days is the total time invested to complete the project 4. Cost Estimation This might be considered as the most difficult of all because it depends on more elements than any of the previous ones. For estimating project cost, it is required to consider – 3. Project Estimation o Size of software o Software quality o Hardware o Additional software or tools, licenses etc. o Skilled personnel with task-specific skills o Travel involved o Communication o Training and support Estimation techniques ●Productivity in a manufacturing system can be measures by counting the number of units which are produced and dividing this by number of personhours required to produce them. Productivity = no. of units produced / no. of person hrs. required There are two types of measure 1. 2. Size-related measures Function-related measures SizeRelated Measures ●These are related to the size of some output from an activity. ●The most related size measure is lines of delivered source code. ●Lines of source code per programmermonth are a widely-used metric in productivity measurement. ●This is computed by using the formula Total Number of Lines / Total Time in programmer in months Size-Related Measures ●These are related to overall functionality of the delivered software. SizeRelated Measures ●Function points(FP) are basic data from which productivity metrics could be computed. ●Function Points (FP) can be computed by adding all the Component value from the below table based on Level of Complexity Function-Related Measures ●To compute FP for Average Complexity ●FP = (4*Inp) + (5*Out) + (4* Inq) + (10*Maf) + (7*Inf) Inp= input items Out=output items Inq=inquiries Maf=Master files Inf=Interface Example 1 Suppose that Ada program needs 70 LOC per FP. A system with, 10 inputs, 10 outputs, 5 Inquiries, 4 Files and 2 Interfaces and level of complexity is considered as average. Calculate the total FP? FP= ( 10 * 4 ) + ( 10 * 5 ) + ( 5 * 4 ) + ( 4 * 10 ) + ( 2 * 7 ) = 164 And the estimated Size would be equal to: Size = FP * 70 = 164 * 70 = 11480 LOC Example 2 Assume that you are going to work on a simple project for the Ministry of Higher Education which will have 8 inputs, 11 outputs, 6 inquiries, 7 master files and 9 interfaces. Consider the values on the table below and calculate the function points for this project. FP=( ip*3)+(op*4)+(inq*3)+(maf*7)+(intf*5) =(8*3) + (11*4) + (6*3) + (7*7)+ (9*5) =24 + 44 + 18 + 49 + 45 =180 For Given lines of code/FP, we can calculate the total number of LOC for the Project. Project Size = FP*LOC • Mathematical formula is used to predict costs based on estimates of project size, number of programmers and other process and product Algorithmic features. Cost Estimation • The task of software cost estimation is to determine how many resources are needed to complete the project. • COCOMO Model (Constructive Cost Model) is one of the most widely used software cost estimation models in the industry 1. Basic COCOMO 2. Intermediate COCOMO 3. Detailed COCOMO Types of COCOMO ⮚Basic COCOMO Basic COCOMO is a static, singlevalued model that computes software development effort (and cost) as a function of program size expressed in estimated lines of code. COCOMO applies to 3 classes of software projects: ●Organic projects - are relatively small, simple software projects in which small teams with good application experience work to a set of less than severe requirements. ●Semi-detached projects - are intermediate (in size and complexity) software projects in which teams with mixed experience levels must meet a mix of rigid and less-than-rigid requirements. ●Embedded projects - are software projects that must be developed within a set of tight hardware, software, and operational constraints. BASIC COCOMO The Basic Model makes its estimates of required effort ( measured in Person-Months PM ) based primarily on your estimate of the software project's size ( as measured in thousands of Delivered Source Instructions KDSI ): Effort(E) = ab * ( KDSI )bb The Basic model also presents an equation for estimating the development schedule (Time of Develop TDEV ) of the project in months: TDEV= cb * ( E )db Where: E - effort applied in person-months TDEV - Development time in months BASIC COCOMO The coefficients ab, bb, cb and db are given in the following table. Exercise 1 ●A large chemical products company, is planning to develop a new computer program to keep track of raw materials. An initial study has determined that the size of the program will be roughly 32,000 delivered source instructions. This project is a good example of an organic-mode software project. Using the Basic COCOMO equations for this development mode we have: Exercise 1 Effort: Effort(E) = 2.4*(32)1.05 = 91 Person-Months(PM) Productivity: Productivity is calculated as DSI/Effort. 32000 DSI / 91 PM = 352 DSI / PM Schedule: TDEV = 2.5 * ( 91 )0.38 = 14 Months After estimating the duration of the project the manager can easily determine how many persons in the average must be put on the project: Average Staffing: Average staffing = (E/TDEV) = 91 Person-Months / 14 Months = 6.5 FSP( Full Time equivalent Software Personnel ) Exercise 2 Assume that you are developing an embedded project for “Home-Based Learning System” of Muscat University that contains seven (7) modules. The sizes of the modules are as follow: Module 1: 2200 LOC Module 2: 1250 LOC Module 3: 2.5 KLOC Module 4: 1.25 KLOC Module 7: 3.25 KLOC Module 5: 2650 LOC Module 6: 1240 LOC Using Basic COCOMO, calculate for the following values. Show your solution. a. TOTAL LOC b. Effort Applied(E): c. Productivity: d. Time Duration(TDEV): e. Average Staffing: Exercise 2 a.Total LOC: d. Time Duration(TDEV): 2200 + 1250 + 2500 + 1250 + 2650 + TDEV = cb * ( E ) db 1240 + 3250 = 14,340 LOC or 14.34 KLOC = 2.5 * 88 ^.32 b. Effort Applied(E): = 10.47 or 10 Months E = ab * (KDSI) bb e. Average Staffing: = 3.6 * (14.34) 1.20 Avg_Staff = E/TDEV = 87.93 or 88 PM c. Productivity: P = DSI/Effort = 14,340 DSI/88PM = 162.95 or 163DSI/PM = 88/10 = 8.8 or 9 FSP BASIC COCOMO Advantages of COCOMO ●COCOMO is transparent we can see how it works. ●Drivers are particularly helpful to the estimator to understand the impact of different factors that affect project costs. Drawbacks of COCOMO ●It is hard to accurately estimate, when most effort estimates are required. ●It does not account for differences in hardware constraints Project Scheduling ●Project Scheduling in a project refers to roadmap of all activities to be done with specified order and within time slot allotted to each activity. ● Project managers tend to define various tasks, and project milestones and they arrange them keeping various factors in mind. ●They look for tasks lie in critical path in the schedule, which are necessary to complete in specific manner (because of task interdependency) and strictly within the time allocated. ●Arrangement of tasks which lies out of critical path are less likely to impact overall schedule of the project. Project Management Tools Microsoft Project ●Microsoft Project is a project management software program developed and sold by Microsoft ●Designed to assist a project manager in developing a schedule, assigning resources to tasks, tracking progress, managing the budget and analyzing workloads. ●Visualize your project plan in standard defined formats. ●Schedule tasks and resources consistently and effectively. ●Track information about the work, duration, and resource requirements for your project. ●Generate reports to share in progress meetings. Project Communication Effective communication plays a vital role in the success of a project. It bridges gaps between the client and the organization, among the team members as well as other stakeholders in the project such as hardware suppliers. ● Planning - This step includes the identification of all the stakeholders in the project and the mode of communication among them. It also considers if any additional communication facilities are required. ● Sharing - After determining various aspects of planning, the manager focuses on sharing the correct information with the correct person at the correct time. This keeps everyone involved in the project up to date with the project’s progress and its status. ● Feedback - Project managers use various measures and feedback mechanisms and create status and performance reports. This mechanism ensures that input from various stakeholders is coming to the project manager as their feedback. ● Closure - At the end of each major event, end of a phase of SDLC, or end of the project itself, administrative closure is formally announced to update every stakeholder by sending an email, distributing a hardcopy of document, or by another means of effective communication. Project Resource Management ● All elements used to develop a software product may be assumed as resource for that project. ●This may include human resource, productive tools and software libraries. ●The resources are available in limited quantity and stay in the organization as a pool of assets. ●The shortage of resources hampers the development of project and it can lag behind the schedule. Allocating extra resources increases development cost in the end. ●It is therefore necessary to estimate and allocate adequate resources for the project. Configuration Management ●Configuration management is a process of tracking and controlling the changes in software in terms of the requirements, design, functions and development of the product. ●The process of identifying and defining the items in the system, controlling the change of these items throughout their life cycle, recording and reporting the status of items and change requests, and verifying the completeness and correctness of items”. ●Generally, once the SRS is finalized there is less chance of requirement of changes from user. If they occur, the changes are addressed only with prior approval of higher management, as there is a possibility of cost and time overrun. ● Series of steps that help a software team to understand and manage uncertainty Project Risk Management ● Everyone involved in the software process – managers, engineers and customers participate in risk analysis and management 1. Project risks- Risks that affect the project schedule or resources. ● Example: Loss of experienced designer ● Finding a replacement designer with appropriate skills and experience may take a long time. Categories of risks: 2. Product risks ● Risks that affect the quality or performance of the software being developed ● Example: Failure of a purchased component to perform as expected ● May affect overall performance of the system 3. Business risks ● Risks that affect organization developing or procuring the software ● Example: A competitor introducing a new product is a business risk Risk Management – Project, Product and Business Risks Risk Management Stages ●Risk identification: Should identify possible project, product and business risks ●Risk analysis: Should assess the likelihood and consequences of these risks ●Risk planning: Should make plans to address the risk either by avoiding it or minimizing its effects on the project ●Risk monitoring: Should regularly assess the risk and plans for risk avoidance, revise when you learn about risk