Software Project Management, Software Project Metrics-LOC, Risk analysis is critical to software project management. Token Count, Function Point Whenever a software product is to be developed, it is essential to understand the areas of uncertainty, such as, software Objectives implementation to be accomplished before project deadline, Upon completion of this Lesson, you should be able to: technical problems that are to be faced, frequent customer • Know what do you mean by software project management changes to software, which will invariably result in extending the • Know what is software project metrics project schedule. • Know what is LOC, Token Count and Function Point Risk analysis is actually a series of risk management steps that We have been learning throughout right from day 1 about re- enable us to tackle risk: (1) risk identification, (2) risk engineering, software testing, software life cycle models etc. assessment, (3) risk prioritization, (3) risk management Now I hope you all are very familiar with these terms, let us strategies, (4) risk resolution, and (5) risk monitoring. now proceed on to the next topic, and that is the activities of Resources software project management The estimation of resources required to accomplish the We will have a look into the software Project Management software development is an essential task of software project activities? management. The resources can be categorized as: (1) people, Software Project Management Activities and (2) hardware and software tools. The hardware and Software project management activities span the entire life of software tools support the software development effort at the the software product, and hence is the primary concern of lower level, and at a higher level, the primary resource – people, software engineering. It begins with the initial problem is essential. identification, and finally ends when the software is retired. The project planner must evaluate the scope of the project and Successful software projects require the understanding of : select the skills required to complete the software development. The planner must specify organizational positions, such as, i. The objectives and scope of work to be done, managers, software engineers, etc., as well as specialty (e.g. ii. The risks to be involved, database, microprocessor) requirements. The number of people iii. The resources to be required, required for a software development project can be determined iv. The effort (or cost) to be expended, and only after an estimate of software development effort (e.g. person-months) is made. Techniques for estimating effort are v. The schedule to be followed. discussed in detail in a later section. Objectives and Scope Hardware is also a tool for software development, and it should In order to commence a software project plan, the objectives be considered in at least two categories. The development and scope of the project must be established, the alternate system that will be used during the software development, and solutions to the problem must be considered, and the technical the target system on which the software will be eventually and management constraints must be identified. This installed. information will help to define (1) reasonable estimates of the Software is used to aid in the development of new software, in cost, (2) a realistic breakdown of project tasks, and (3) a a manner similar to the use of hardware as a tool. Software manageable project schedule which will indicate project progress. engineers use a tool set called computer-aided software The objectives and scope are defined by the software developer engineering (CASE). CASE tools include: and the customer. The objectives identify the overall goals of the project, and the scope identifies the primary functions that 1. Analysis and Design Tools the software is to accomplish and attempts to specify the 2. Programming Tools and bounds to each of the software functions. 3. Integration and Testing Tools. The alternate solutions can be considered once the objectives Estimation and scope of the software project are known. The alternate Software project planning requires the estimation of human solutions provide managers and software practitioners to select effort usually in person-months, chronological project duration the best approach under the constraints imposed, such as in calendar time, and cost (in rupees/dollars) must be derived. delivery deadlines, budgetary restrictions, availability of personnel, etc. A variety of estimation techniques are available for software project development. Each technique has its own strengths and
24 3E.253 weaknesses. However, all of them have the following common The cost and effort required to build the software, the number
SOFTWARE ENGINEERING TECHNIQUES
characteristics: of lines of codes produced, and other direct measures are • Scope of project must be established in advance. relatively easy to collect. However the quality and functionality of the software, or its efficiency or maintainability, are more • Software metrics (i.e., past measurements) are used as basis difficult to assess and hence are measured indirectly. for new estimates. We can further categorize the software metrics domain as • Software project is broken into components or tasks, which follows: are then estimated individually. • Productivity metrics-focus on the output of the software Scheduling, Tracking and Control engineering process Software project scheduling is similar to scheduling for any • Quality metrics-provide indication on how closely software engineering project. A set of project tasks is identified, and interdependencies among them are established. The effort conforms to implicit and explicit customer requirements required for each task is estimated. People and other resources • Technical metrics-focus on the inherent attributes of the are assigned. A “task network” for the software development software, such as, logical complexity, degree of modularity, project is created, and a time-line schedule is developed. etc. Tracking and control activities commence immediately after the • Size-oriented metrics-provide indication on direct development schedule has been established. The project measures of software engineering output and quality manager tracks each task noted in the schedule. If the task falls • Function-oriented metrics-provide indication on indirect behind schedule, the manager can use project management measures of software tools to determine the impact of schedule slippage. Necessary Summary rescheduling of resources, and reordering of tasks are Measurement enables managers and practitioners to improve performed to accommodate the problem that is uncovered. the software process; assist in the planning, tracking, and Control of software development is better in this manner. control of a software project; and assess the quality of the Now we have seen the various project management activities product(software) that is produced. Measures of specific that has to be taken care of while working on a project. Project attributes of the process, project, and product are used to metrics is one of the activities of project management. Let us compute software metrics. These metrics can be analyzed to see what do you mean by software project metrics. provide indicators that guide management and technical actions. What do you mean by software project metrics? Exercise Software Project Metrics 1. What are the various project management activities? Software metrics refers to a broad range of measures for 2. What do you mean by project metrics, Explain? computer software. Within the context of software management, productivity and quality metrics – measures of 3. What is an indirect measure and why are such measures software development “output” as a function of effort applied common in software metrics work? and measures of the “fitness for use” are the primary concerns. Project Assignment For planning and estimating purposes, historical data is of 1. Make an appointment to visit an information system project concern. manager (or system analyst). What techniques does he or she Measuring Software use to plan and control projects? Why? Is project Software is measured for many purposes: management software used? If so, what does the project 4. To indicate the quality of the product; manager like and dislike? 5. To assess the productivity of the people who produce the Further Readings and Information Sources software; Software process improvement has received a significant 6. To assess the benefits in terms of the productivity and amount of attention over the past decade. Since measurement quality; and software metrics is key to successfully improving the software process, many books on SPI also discuss metrics. 7. To form a baseline for estimation; and Worth while additions to the literature include: 8. To help justify requests for new tools or additional training. Garmus, D and D. Herron, Measuring the software process: A Direct measures of the software engineering process include Practical guide to Functional Measurements, Prentice-Hall, 1996. cost and effort applied. Direct measures of the software Humphrey, W., Introduction to the Team Software Process, product include lines of code (LOC) produced, execution time, Addison-Wesley Longman, 2000. memory size and defects reported over some specified time interval. The news letter IT metrics (edited by Howard Rubin and published by Cutter Information services ) presents useful Indirect measures of the product include functionality, quality, commentary on the state of software metrics in the industry. complexity, efficiency, reliability, maintainability, and many other The magazines Cutter IT Journal and software Development quality attributes. have regular articles and entire features dedicated to software metrics.
3E.253 25 A wide variety of information sources on software related SOFTWARE ENGINEERING TECHNIQUES
topics and management is available on the Internet. An up-to-
date list of World Wide Web references that are relevant to software can be found at the SEPA Web site: http://www.mhhe.com/engcs/compsci/pressman/resources/ process-metrics.mhtml Notes