PROJECT PLANNING Dronacharya College of Engineering Project Planning Project Planning consists of the following essential activities: Estimating some basic attributes of the project cost, duration ,efforts Scheduling manpower and other resources. Staff organization and staffing plans Risk identification, analysis planning Miscellaneous plans Precedence ordering among planning activities Efforts Estimation Cost Estimation Duration Estimation Project Staffing Size Estimation Scheduling THE SPM Document Once project planning is complete, project managers document their plans in a software Management Plan(SPMP) document. 1. Introduction a) objectives b)Major Functions c) Performance Issues d) Management and Technical Constraints Project THE SPM Document 2. Project Estimation a) Historical data used b) Estimation Techniques Used c) Efforts, Recourses, Cost, and Project Duration Estimation 3. Schedule a) Work Breakdown Structure b) Task Network Representation c)Gantt Chart Representation d) PERT Chart Representation THE SPM Document 4. Project Resources a) People b) Hardware and Software c) Special resources 5. Staff Organization a) Team Structure b) Management Reporting 6. Project Tracking and Control Plan THE SPM Document 7. Risk Management Plan a) Risk Analysis b) Risk Identification c) Risk Estimation 8. Miscellaneous Plans a) Process Tailoring b) Quality assurance Plan c) Validation & Verification d) System Testing Plan Software Measurement Objectives To understand the importance of measurement in software engineering To describe and compare the different metrics that can be used for measuring software To understand the important factors that affect the measurement of software Why Do We Measure? To indicate the quality of the product To assess the productivity of the people who produce the product To assess the benefits derived from new software engineering methods and tools To form a baseline for estimation To help justify requests for new tools or additional training Definitions Measure - quantitative indication of the extent, amount, dimension, capacity, or size of some attribute of a product or process. Measurement - the act of determining a measure Metric - a quantitative measure of the degree to which a system, component, or process given attribute (IEEE) Project Size Estimation Metrics Software metrics can be divided into two categories based on the type of measures used in evolving them 1) Direct Measures: It includes cost, efforts, LOC, response time, resource usage and so on. 2) Indirect Measures : Include functionality, quality, complexity, efficiency, dependability, ease of use ,quality of documentation. Example: length of a pipe is a direct measure. the quality of the pipes can only be measured indirectly by finding the ratio of the accepted pipes to the rejected. Lines of Code Metrics LOC is the simplest among all metrics available to estimate Project size The project size is estimated by counting the number of source instructions in the developed program. While counting the number of source instructions, the line used for commenting the code and the header lines are ignored Lines of Code Metrics Shortcomings of LOC metrics: 1. LOC gives a numerical value of problem size that can vary widely with individual coding style-different programmers lay out their code in different ways. 2. A good problem size measure should consider the overall complexity of the problem and the effort needed to solve it .that is should consider the total efforts needed to specify, design, code, test, etc. Lines of Code Metrics Shortcomings of LOC metrics: 3. LOC measure correlates poorly with the quality and efficiency of the code. A large code size does not necessarily imply better quality or higher efficiency. 4. LOC metric penalizes use of higher- level programming languages, code reuse etc. if a programmer consciously uses several library routines, then the LOC count will be lower Example of Project Measurements project effort (personmonth) cost ($) kLOC Doc. errors people (pgs) aaa-01 24 168,000 121 365 29 3 ccc-03 62 440,000 272 1224 86 5 Example of Size-Oriented Metrics Productivity = Size / Effort = kLOC / person-month Quality = Errors / Size = Errors / kLOC Cost = $ / kLOC Documentation = pages / kLOC Other metrics can also be developed like: errors/KLOC, page/KLOC...etc. Or errors/person-month, LOC/person-month, cost/page. Function Point Metrics Based on “functionality” delivered by the software as the normalization value. Functionality is measured indirectly Function points (FP) measure- derived using an empirical relationship based on countable (direct) measures of software’s information domain and assessments of software complexity Software information domain values Number of user inputs: user inputs. Number of user outputs: reports, screens, error messages, etc. Number of user inquiries: an on-line input that generates an immediate on-line output response. Number of files: each logical (logical grouping of data) master file is counted. Number of external interfaces: all machine readable interfaces (e.g. data files on some storage media) that are used to transmit information to another system are counted. Steps In Calculating FP 1.Count the information domain values. 2. Assess the complexity of the values. 3. Calculate the raw FP (see next table). 4. Rate the complexity factors to produce the complexity adjustment value (CAV) CAV = Fi i = 1 to 14 5. Calculate the adjusted FP as follows: FP = raw FP x [0.65 + 0.01 x CAV] Function Point (FP) Metrics Weighting Factor Parameter Count Simple Average Complex Inputs x 3 4 6 = Outputs x 4 5 7 = Inquiries x 3 4 6 = Files x 7 10 15 = Interfaces x 5 7 10 = Count-total (raw FP) Rate Complexity Factors For each complexity adjustment factor (F), give a rating on a scale of 0 to 5 0 - No influence 1 - Incidental 2 - Moderate 3 - Average 4 - Significant 5 - Essential Complexity Adjustment Factors (F ) i 1. Does the system require reliable backup and recovery? 2. Are data communications required? 3. Are there distributed processing functions? 4. Is performance critical? 5. Will the system run in an existing, heavily utilized operational environment? Complexity Adjustment Factors (F ) i 6. Does the system require on-line data entry? 7. Does the on-line data entry require the input transaction to be built over multiple screens or operations? 8. Are the master files updated on-line? 9. Are the inputs, outputs, files, or inquiries complex? Complexity Adjustment Factors 10.Is the internal processing complex? 11. Is the code designed to be reusable? 12. Are conversion and installation included in the design? 13. Is the system designed for multiple installations in different organizations? 14. Is the application designed to facilitate change and ease of use by the user? Complexity Adjustment Value The rating for all the factors, F1 to F14, are summed to produce the complexity adjustment value (CAV) CAV is then used in the calculation of the function point (FP) of the software Example of Function-Oriented Metrics Productivity = Functionality / Effort = FP / person-month Quality = Errors / Functionality = Errors / FP Cost = $ / FP Documentation = pages / FP FP Characteristics Advantages: language independent, based on data known early in project, good for estimation Disadvantages: calculation complexity, subjective assessments, FP has no physical meaning (just a number) Extended Function Point Metrics Feature points applied to systems and engineering software. includes assessment for complex algorithms. 3D Function points applied to real-time systems and engineered products (by Boeing) integrates data dimension (normal FP) with functional and control dimensions