0% found this document useful (0 votes)
1 views20 pages

Chapter 11 - Managing Software Project

kec book with all detail knnowldge about software engineering

Uploaded by

Stay Healthy
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
1 views20 pages

Chapter 11 - Managing Software Project

kec book with all detail knnowldge about software engineering

Uploaded by

Stay Healthy
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
1 MANAGING SOFTWARE PROJECT (CHAPTER OUTLINE ‘After studying this chapter, the reader will be able to understand the Introduction Software Project Manager Management Activities Project Planning Mile Stones and Deliverable Project Scheduling Risk Management Cost Estimation Techniques Seamed wth Camscanner cy sorrenns ENGINEERING 8 group of tasks that need to complete to reach a clear result. difficult and can be operated by one person or in a Broup. Proje roved by @ project manager or team executive. They go beyond t objects and it's up to the team to handle logistics and complete the Proj ject development, some teams split the project into specific tasks resi) and utilize team strengths. aproject 8.9 Projects can vary from cts usually described heir expectations and ject on time. For good and apP so they can manage a software Project is the complete procedure of software development from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product. ” software project management is an essential part of software engineering, Good management cannot guarantee project success however bad management usually results in. Project failure ie. software delivered late, cost more than originally estimated and fails to meet its requirement. Software Project Management (SPM) is a proper way of planning and leading software projects. Itis a part of project management in which software projects are planned, implemented, monitored and controlled. SOFTWARE PROJECT MANAGER = A software project manager is a person who undertakes the responsibility of planning, executing and controlling the software project. A project manager closely monitors the development process, prepares and executes various plans, arranges necessary and adequate Sources, maintains communication among all team members in order to address issues of ‘st budget, resources, time, quality and customer satisfaction. Project managers are responsible for planning and scheduling project development. The "anagetial person who supervise the development work to ensure that, it is carried out to the Liited standards and monitor progress to check that the development is on time and within “get. The manager's job is to ensure that software project meets these constraints and ive the sofware that contributes to the goal of organization. Software project management “differing from other type of project management due to following reasons: The product is intangible and it can be realized only, it cannot | The soft is intangible in nature itware product is intangible anager 89 measure PFOSTESS and be seen or touched. So, it is difficult for project Should rely on documentation produced by others. Seamed wth Camscanner Managing Sofware Project © (QHARTERIZG na * There are no standard software processes With a long history in engineering discipline, the process is tried and tested. The engineering process for some types of system, such as building construction is well understood but in software project there is no universally accepted fixed standard sprocess change from one organization to another and project to project. * Large software Projects are often One-off Projects Software technology is changing very rapidly and it makes the manager's experience and skill obsolete. Lessons learned from previous project may not be transferrable to new projects. So, managers having massive volume of experience may find it difficult to anticipate problems. Project manager's job varies depending on type of organization and software product being developed. So it is difficult to write standard job description for a software manager. Some common activities of project managers are as follows: 1 3. Proposal writing Project manager have to write the project proposal to win a contract from the customer. Proposal writing is a skill that acquire through practice and experience. Proposal should include the objective of the project and how it will be carried out. It also includes cost and schedule estimates and justification why the project contract awarded to a particular organization or team. Project planning and scheduling Project planning is concerned with identifying activities, milestones and deliverable produced by a project. A plan is drawn up to guide the development team towards the project goals. Project cost .stimation activity that is concerned with estimating the effort, ccomplishing the project development. The parameters 1 cost of a software development project includes: travel and training costs and Effort Project cost includes cost time and resources require ac: involved in computing the total hardware and software costs including maintenance, coats ie, the costs of paying software engineers and others. Estimation involves answering the following questions. How much effort is required to complete each activity? Jendar time is needed to complete each activity? © How much cal «Whats the total cost of each activity? Scanned wth Camscaner 180 €Q Sorrware Excmmmerna 4, Project monitoring and reviews It is the continuing project activity. In this the managers must keep the track of progress ‘of project and compare actual and planned progress and costs. Managers clear that what is going on through informal discussion with project staff and review concerned with overall progress and technical development of system and checking whether the project and goals of the organization paying for the software are still aligned. Personnel selecting and evaluation Project managers usually have to select people to work on their project. Ideally, skilled staff with appropriate experience will be available to work on their project but in most cases, managers have to settle for a less than ideal project team members because. + The project budget may not cover the use of highly paid staff. Less experienced, less well paid staff may have to be used. Staff with appropriate experience may not be available either within an organization or externally. It may be impossible to recruit new staff to the project. * The organization may wish to develop a skill of its employees. Inexperienced staff may be assigned to a project to learn and to gain experiences. Report writing and presentation Project managers are usually responsible for reporting on the project to both the client and contractor organization. They have to write concise, coherent documents that abstract critical information to detailed project report. NNING Software project planning is task, which is performed before the production of software actually starts. It is there for the software production but involves no concrete activity that has any direction connection with software production; rather it is a set of multiple processes, which. facilitates software production. The project plan sets out the resources available to the project the work breakdown and a sche4dule for carrying out the work. So, effective management of software project depends on the thoroughly planning the progress of project. A plan drawn up at the starting of a project should be used as driver for the project. The planning is an iterative. Process, which is only complete when the project itself is complete. As the project information becomes available during the project. The plan should be regularly revised. The details of the project plan vary depending on the type of project organization. However, most plans should include the following sections: Scanned wth Camscaner Managing Sofware Project RHARTERIN IE 161 1. Introduction It describes the objectives of the projects and sets out the constraints like budget, time ete that affect the project management. 2. Project organizatior. It describes the way in which develop their role in the team. ment team is organized, the people involved and 3. Risk analysis This describes the possible project ris! reduction strategies that afe proposed. , the likelihood of these risks arising and the risk 4, Hardware and software resource requirement ‘This specifies the hardware and software required to carry out the development. If the hardware has to be bought estimates of prices and delivery schedule may be included. 5. Work breakdown In this phase the project is breakdown into activities and identifies the milestones and deliverables associated with each activity. 6. Project schedule This phase shows the dependencies between activities the estimated time required to reach each milestone and allocation of people to each activity. 7. Monitoring and reporting mechanism This defines the management report that should be produced Types of Plan © Quality Plan . Validation Plan © Configuration management plan + Maintenance plan . Staff development Plan 1. Validation plan Validation plan describes the approach, resources and schedule used for system validation. It is intended to show that the program does what the user requires. 2 Configuration and management plan Ths plan includes the management of system change. When a system is maintained the ml le of the CM team is to ensure that changes are incorporated in a controlled way. This plan includes configuration management procedures and structures to be used. Seamed wth Camscanner «gy sorreane Exonrennvo 18 Maintenance plan a dicts the maintenance requirements of the syste, i It prea 'ystem, maintenance cost ay ind effort | required: staff development plan describes how the skill nd experince ofthe project team member wil be dee " oped, Because software is intangible, information can only be provided as Eon describe the state of software being developed without this information, it is impossible to access how well the impossible to access how well the project is progressing, cost estimates and schedule can be not be updated. Milestones ' Project milestones are the predictable outcome of an activity where some formal report of progress. Milestones are the recognizable end point of software process activity, They may be short report of what has been completed and presented to the management. Milestones should represent the end of a distinct, logical stage in the project. 1. Deliverables A deliverable is a project report (result) that is delivered to the customer at the end of tome major project phase. Deliverables are usually milestones but milestones need to be deliverables. The project deliverable, which are delivered to customer are the | Tequirement definition and requirement specification. i ignand | [ _ System Baimtn | Bata | saree Fig: Milestone manage the | Projet sch Schvit employed to duling is concerned with the techniques that 75%). Risks are tabulated in order according to the seriousness of the risk, Risk planning: Risk planning is the process of consideration of the key risks that have been identified and formulation of strategies to manage the risk. It is not a simple process; it depends on the judgment and experience of the project manager. the strategies to manage the risk are as follows: i. Avoidance Strategies: This strategy tells that the probability that the risk will arise will be reduced. Example: The strategy for dealing with defective components. Minimization Strategies: These strategies mean that the impact of the risk will be reduced. Example: Staff illness, Reorganize team so that there is more overlap of work and people therefore understand each other's job. fii, Contingency Plans: These strategies means that you are prepared for the worst and have a strategy in place to deal with it. itoring: Risk monitoring means regularly assessing each of the identified risk to becoming more or less portable and whether the effect of Id be a continuous process, and at every management Risk moni decide whether or not the risk is the risk have changed. It shou! progress review. Scanned wth Camscaner 188 GQ Sorrware Exomerrina Software projects are notorious for going past their deadline, going over budget, or both. The problem lies in the estimation of the amount of effort required for the development of a project. While developing a software project, the project is split in to a number of separate activities. So cost estimation concerned with estimates of effort and time with the project activities. It is the Process of predicting the effort required to develop a software system. Many estimation models, have been proposed over the years. As a number of these models rely on a software size estimate as input, we first provide an overview of common size metrics. The cost estimation is usually dependent upon the size estimate of the project, which may use lines of code or function points as metrics. Cost estimation is usually measured in terms of effort. The most common metric used is person months or years (or man months or years). The effort is the amount of time for one person to work for a certain period of time. For any new software project, it is necessary to know how much it will cost to develop and how much development time will it take. These estimates are needed before development is initiated. There are several different techniques for performing software cost estimation, including expert judgment and algorithmic models. Software cost estimation is the process of predicting the effort required to develop a software system. Many estimation models have been proposed over the years. As a number of these models rely on a software size estimate as input, we first provide an overview of common size metrics. Estimation is done to answer the following questions: © How much effort is required complete an activity? * How much calendar time is needed to complete each activity? © Whatis the total cost of an activity? Since the cost of development is primarily the cost of the effort. There are three parameters involves in computing the total cost of a software development. * Hardware and software cost including maintenance. «Travel and training cost + Effort cost ie. the cost of paying software engineers. The effort cost is calculated by calculating following: © The cost of providing heating and lighting office space. © Cost of support staffs. © Cost of networking and communications © Cost of social security and employee benefits. Scanned wth Camscaner ‘Managing Software Project © {CHAPTERSAL 189 Software Pricing Factors Software pricing must take into account broader organizational, economic, political and business consideration. The major factors that affect the software pricing areas follows: «Development organization quotes a low price if want to move info a nev segment of software market, Accepting low profit in one project may give the opportunity of more profit later. «fan organization has no idea about cost estimation then it may increase its price by some contingency. «Te the customer is not clear about their requirement then there is chance of changing requirement at that time organization may Jower its price. After contract is awarded then high prices may be charged for changes to the requirement. If the financial health of the organization is not good then they may lower their price to gain contract and establish themselves in business. Estimation Techniques Cost estimation is one of the most challenging tasks in project management, It is 10 accurately estimate needed resources and required schedules for software development projects. The software estimation process includes estimating the size of the software product to be produced, estimating the effort required, developing preliminary project schedules, and finally, estimating overall cost of the project It is very difficult to estimate the cost of software development. Many of the problems that plague the development effort itself are responsible for the difficulty encountered in estimating, that effort. Software, however, is intangible, invisible, and intractable. It is inherently more difficult to understand and estimate a product or process that cannot be seen and touched. Software grows and changes as itis written. When hardware design has been inadequate, or when hardware fils to perform as expected, the solution is often attempted through changes t0 the software. This change may occur late in the development process, ancl sometimes results in unanticipated software growth. ‘The approaches to cost estimation can be tackled using wither top-down or @ bottom up approach. Top down Approach ‘Top-down estimating method is also called Macro Model. Using top-down estimating method, an overall cost estimation for the project is derived from the global properties of the software project, and then the project is partitioned into various low-level components. This method is Scanned wth Camscaner orr#aRe EXGINEERING w samat: pplicable to early cost estimation when only a f the software development, It is very useful of This approach starts at system level. The estimato f the product and how that functionality more ase available. nationality © there are no detailed information farts by examinin, r 8 the overall "* Provided by interacting sub systems rT ste fu Advantages + It focuses. on system-level activities such ag etc, many of which estimating methods and it will not miss the cost of syste configuration management, “ - may be ignored in other jem-level functions + Itrequires minimal project detail, and itis usually faster, easier to implement. Disadvantages . It often does not identify difficult low-level problems that are likely to escalate costs and sometime tends to overlook low-level components. + Itprovides no detailed basis for justifying decisions or estimates, Bottom up Approach Using bottom-up estimating method, the cost of each software components is estimated and then combines the results to arrive at an estimated cost of overall project. It aims at constructing the estimate of a system from the knowledge accumulated about the small software components and their interactions. The leading method using this approach is COCOMO's detailed model. Advantages * _ Itpermits the software group to handle an estimate in an almost traditional fashion and to handle estimate components for which the group has a feel. : a . 5 ve a It is more stable because the estimation errors in the various components ha chance to balance out, Disadvantages . ration, configuration It may overlook many of the system-level costs (integ: ; tt : . lopment. Management, quality assurance, etc.) associated with software develop! : ‘i t available in the It may be inaccurate because the necessary information may no! carly phase. Ittends to be more time-consuming. jimited. tmay not be feasible when either time or personnel are limit Seamed wth Camscanner Managing Software Project © REAPER vx 1. Algorithm Cost Modeling: The algorithmic method is designed to provide some mathematical equations to perform software estimation. These mathematical equations are based on research and historical data and use inputs such as Lines of Code (LOC), number of functions to perform, and other cost drivers such as language, design methodology, skill-levels, risk assessments, etc. The algorithmic methods have been largely studied and there are a lot of models have been developed, such as COCOMO The main cost estimation techniques are: Algorithmic cost model can be built by analyzing the cost and attributes of similar Projects by using an empirical formula Effort = A x Size® x M, where A: depends on organizational practice and type of software that is developed B: 1-15 reflects disproportionate effort for large projects M: reflects product, process and people attributes Size: size may be assessment of code size expressed in function or object points. COCOMO Model The Constructive Cost Model (COCOMO) is an algorithmic software cost estimation model developed by Barry Boehm in 1981. This model is an empirical model derived by collecting data from a large number of software projects, then analyzing that data to discover formulae. The model uses a basic regression formula, with parameters that are derived from historical project data and current project characteristics. The first model of COCOMO model known as COCOMO 81 assumes that the software would be developed using waterfall model and from scratch level. ‘There have been radical changes in software development practice. Software can be created by using reusable components and linking them by scripting language. Existing software reengineering to create new software, CASE tools are used to generate source code automatically from the design, prototyping and incremental development are heavily in practice. To take these changes in account COCOMO 2 model is introduced, In COCOMO, projects are categorized into three types: i. Organic: A development project can be treated of the organic type, if the project deals with developing a well-understood application program, the size of the ‘am is reasonably small, and the team members are experienced in projects. Examples of this type of projects are le inventory management systems, and data development te developing similar methods of simple business systems, simpl processing systems. . — La Scanned wth Camscaner 192 CQ Sorrware Evomrenna fi, Moderate: A development project can be treated with moderate type if the development consists of a mixture of experienced and inexperienced staff. Team members may have finite experience in related systems but may be unfamiliar with some aspects of the order being developed. Example of moderate (Semidetached) system includes developing a new operating system (OS), a Database Management System (DBMS), and complex inventory management system. iii, Embedded: A development project is treated to be of an embedded type, if the software being developed is strongly coupled to complex hardware, or if the stringent regulations on the operational method exist. For Example: ATM, Air Traffic control. For the three classes of software products, the formulas for estimating the effort based on the code size are shown below: Organic: Effort = 2.4(KLOC) 1.05 PM Semi-detached: Effort = 3.0(KLOC) 1.12 PM Embedded: Effort = .6(KLOC) 1.20 PM For the three classes of software products, the formulas for estimating the development time based on the effort are given below: Organic: Tdev = 2.5(Effort) 0.38 Months Semi-detached: Tdev = 2.5(Effort) 0.35 Months Embedded: Tdev = 2.5(Effort) 0.32 Months Example: Suppose a project was estimated to be 400 KLOC. Calculate the effort and development time for each of the three model i.e,, organic, semi-detached & embedded. Solution: The basic COCOMO equation takes the form: Effort=al*(KLOC) a2 PM Tdev=b1*(efforts)b2 Months Estimated Size of project= 400 KLOC () Organic Mode E=24"* (400)1.05 = 1295.31 PM D=25* (1295.31)0.38=38.07 PM (ii) Semidetached Mode E=3,0* (400)1.12=2462.79 PM D=25°* (2462.79)0.35=38.45 PM Scanned wth Camscaner Managing Software Project Of (iii) Embedded Mode =3.6* (400)1.20 = 4772.81 PM D=25+* (4772.8)032= 38 PM Example: A project size of 200 KLOC is to be developed. Software development team has average experience on similar type of projects. The project schedule is not very tight. Calculate the Effort development time, average staff size, and productivity of the project. Solution: The semidetached mode is the most appropriate mode, keeping in view the size, schedule and experience of development time. Hence E=3.0(200)1.12=1133.12PM D=2.5(1133.12)0.35=29.3PM_ P=176 LOC/PM The Basic COCOMO Itis the one type of static model to estimates software development effort quickly and roughly. It mainly deals with the number of lines of code and the level of estimation accuracy is less as we don’t consider the all parameters belongs to the project. The estimated effort and scheduled time for the project are given by the relation: Effort (E) = a*(KLOC)b MM . Scheduled Time (D) = c*(E)d Months(M) Where, «B= Total effort required for the project in Man-Months (MM) © D=Total time required for project development in Months (M). « KLOC= the size of the code for the project in Kilo lines of code « — a,b,c,d = The constant parameters for a software project. PROJECT TYPE a b d Organic 24 [105 | 25 0.38 Semidetached 3 12h 25) 0.35 Embedded 36 [12 25 0.32 Example: For a given project was estimated with a size of 300 KLOC. Caleulate the Effort Scheduled time for development. Also, calculate the Average resource size and Productivity of the software for Organic project type. Scanned wth Camscaner sorrans BXCEERING m @ : ven estimated size of project is:300 KLOc ans or organie sie 6)" a*(KLOC)b = 2.4*(300)1.05 = 957.61 MM ggetuled Time (0) = CE)A = 2.5(957.61)0.38 = 33.95 Month(s) avg Resource Size = E/D = 957.61/33.95 = 28.21 Mans productivity of Software = KLOC/E = 300/957.61 = 0.3132 KLOC/MM =313 Locyana For Moderate sift) =a*(KLOC)b = 3.0°(300)1.12 = 1784.42 MM = scheduled Time (D) = c*(E)d. = 2.5%(1784.42)0.35 = 34.35 Months(M) For Embedded . stfortE) = a*(KLOC)b = 3.6"(300)1.2 = 3379.46 MM Scheduled Time (D) = cX(E)d = 2.5*(3379.46)0.32 = 93.66 Months(M) COCOMO 2 This model incorporates a range of sub-models that produce increasingly detailed software cost ¢stimates. The sub-models in COCOMO 2 are: Application composition model: It is used when software is composed from existing parts. Supports prototyping projects and projects where there is extensive reuse based on standard estimates of developer productivity in application (object) points/month. It Takes CASE tool use into account. The formula is: PM = NOP/PROD = (Object Points x (1 - %reuse/100)) / PROD Where, PM is the effort in person-months NOP is the new abject points PROD is the productivity. 5. Barly design model: This model is used when requirements are available but design has not yet started, In this model, Estimates can be made after the Tequirements have been agreed. The empirical formula used to calculate person month is: PM=A xSize¥xM Where, M= PERSxRCPXxRUSExPDIFXPREXXFCILXSCED A= 2.94 in initial calibration Size in KLOC B varies from 1.1 to 1.24 depending on novelty af the project Management approaches and the process maturity. development flexibility, risk ‘Scanned with CanScanner « i Managing sofware Projet RERy 105 Reuse oriented Model: This model is used to compute the effort of integrating Teusable components. Major effort is r i ; equired to integrate automaticall code. The empirical formula is: ine PMAuto = (ASLOC x (AT/100))/ATPROD Where, ASLOC - No. LOC that have to be adapted AT-- % of adapted code that is automatically generated ATPROD - engineer productivity in adapting code (2400 LOC/month) ae model. This model is used once the system architecture has been lesigned and more information about the system is available. In this model we ‘uses same formula as early design estimates: PM = A x Size? x M) Where, Size estimate for the software should be more accurate at this stage. It takes into consideration the factors like: New code to be developed, rework required to support change and extent of possible reuse. xpert judgment: Expert judgment techniques involve consulting with software cost estimation expert or a group of the experts to use their experience and understanding of the proposed project to arrive at an estimate of its cost. The estimating steps using this method are: Coordinator presents each expert with a specification and an estimation form. Coordinator calls a group meeting in which the experts discuss estimation issues with the coordinator and each other. Experts fill out forms anonymously Coordinator prepares and distributes a summary of the estimation on an iteration form. Coordinator calls a group meeting, specially focusing on having the experts discuss points where their estimates varied widely. Experts fill out forms, again anonymously, and steps 4 and 6 are iterated for as many rounds as appropriate. Estimating by analogy means comparing the proposed project project development information is 15 are extrapolated to estimate the Estimation by analogy: to previously completed similar project where the known. Actual data from the completed project ‘od can be used cither at system-level or at the component- Jatively straightforward, Actually in some respects, it perts often search for analogous proposed project. This meth level. Estimating by analogy is rel is a systematic form of expert judgment since ex situations s0 as to inform their opinion. Scanned wth Camscaner 196. CD Sorrware Encurzerino ‘The steps using estimating by analogy are: * Characterizing the proposed project. * Selecting the most similar completed projects whose characteristics have been stored in the historical data base. ‘* Deriving the estimate for the proposed project from the most similar completed projects by analogy. Parkinson's law: Parkinson's Law states that work expands to fill the time available. In this method, the cost is determined by available resources rather than by objective assessment. Pricing to win: In this method, the software cost is estimated to be whatever the customer has available to spend on the project. The estimated effort depends on customer's budget not on the software functionality. What is software project management? Explain the management activities in brief. Managing software project is difficult than other project management. Why? What is project planning? Project planning is iterative. Explain. Explain different sections of project plan. What is project scheduling? Explain the importance of activity network and bar chart, with example. ‘What is risk management? Explain risk management process with block diagram. What do you mean by cost estimation? Explain different software cost estimation techniques. What is COCOMO model? Explain different sub models of COCOMO 2 model. goa Scanned wth Camscaner

You might also like