CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 1, 1999 Marge Holtsinger Lecture Overview Review of Previous Discussion Project Management Project Metrics Project Planning Software Engineering “Establishment & use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” “Application of a systematic, disciplined, quantifiable approach to the development, operation, & maintenance of software; that is, the application of engineering to software. Layered Approach Tools How Tos Methods Process Quality TQM Case, Use, etc. Framework Spiral Model Evolutionary process that combines iterative nature of prototyping with controlled & systematic aspects of the linear sequential model Software is developed in a series of incremental releases 90-90 Rule The first 90% of a system absorbs 90 % of the allocated effort and time. The last 10% takes the other 90% of the allocated effort and time. 3 P’s of Effective Project Mgmt People – Resource Management Problem – Vision / Scope – Problem Decomposition Process – Match the problem to the process People Recruiting Selection Performance Management Training / Career Development Compensation Organization and Work Design Who Are the Players? Senior Management Project (technical) Managers Practitioners Customers End Users Team Leader Must Be Able To Motivate Organize Encourage people to be creative Problem solve Take control when necessary Reward initiative and accomplishments Encourage team building Problem Vision - represents the unbounded view of what the product can do for its users; – – – – Business Problem How business will change with new solution Business context of the solution Establishes long term vision of the product Problem Scope – Incorporates the vision mapped against reality – Identifies priorities; what the customer deems as essential for success – Describes functions, performance, constraints, interfaces, reliability – Obtained by preliminary customer interviews; Need enough information for a preliminary estimate. Project Trade-off Matrix Project Trade-off Matrix Optimize Constrain Accept Resources (COST) Ship Date (SCHEDULE) Features (SCOPE) Process Melding of Problem and Process Common Process Framework Activities – Customer Communication – Planning – Risk Analysis – Engineering Project Proposal is the deliverable Project Proposal Vision Statement Scope Project Assumptions Project Trade-off Matrix Hardware / Software Players – Team Roles & Responsibilities – Customer Profile Software Project Planning Estimating Features and Priorities Risk Assessment Resources Milestones and Deliverables Software Project Estimation Not an exact science More accurate if delay estimation until late in the project Base estimates on similar projects Decomposition techniques to estimate effort & cost Empirical models to estimate effort & cost Decomposition Techniques Software sizing – “Fuzzy-logic” sizing – Function point sizing – Standard component sizing – Change sizing LOC Based Estimation Major functions are identified Range of values for LOC for each function are estimated Must have historical data to determine productivity FP-Based Estimation Based on information domain values – Number of inputs – Number of outputs – Number of inquiries – Number of files – Number of external interfaces Complexity factors are then determined Process-Based Estimation Estimate effort required for each software process / phase of the project – – – – – Vision/Scope Project plan Analysis Design Development What Causes Poor Estimates Scope of project not understood Productivity data is incorrect Empirical Estimation Models Based on historical data on LOC and FP Derived using regression analysis on data collected from past software projects – E=A+B*(ev)c A, B, & C are derived constants, E is the effort in person months, and ev is the estimation variable