Informatics 43 Introduction to Software Engineering Lecture 10-1 December 9, 2014 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission of the professor is prohibited. SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 1 Today’s Lecture • Announcements • Moore’s Law • Project estimation • Test 2 • Wrap-up SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 2 Today’s Lecture • Announcements • Moore’s Law • Project estimation • Test 2 • Wrap-up SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 3 Some Announcements • 0.5% extra credit for submitting the EEE Course Evaluation • I will be in my office on Thursday, December 18 3:30-5:30pm for pickup of Test 2, HW 3, HW 2, Quiz 6, etc. SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 4 Today’s Lecture • Announcements • Moore’s Law • Project estimation • Test 2 • Wrap-up SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 5 Moore’s Law The number of transistors on integrated circuits doubles approximately every two years. Intel P4004 from 1969 2,300 transistors, 108 kHz clock speed SDCL Software Design and Collaboration Laboratory Intel Core i7 from 2010 731,000,000 transistors, 3.06 GHz clock speed 6 Department of Informatics, UC Irvine sdcl.ics.uci.edu 6 Moore’s Law Electronics 19 April 1965 SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 7 Moore’s Original Data Gordon Moore Electronics 19 April 1965 SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 8 Moore’s Law to 2000 SDCL Software Design and Collaboration Laboratory 9 Department of Informatics, UC Irvine sdcl.ics.uci.edu 9 Moore’s Law through 2010 Motorola Intel SDCL Software Design and Collaboration Laboratory 10 Department of Informatics, UC Irvine sdcl.ics.uci.edu 10 Moore’s Law with MS OS SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 11 Moore’s Law in the Future? SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 12 Moore’s Law • Has held true for almost 50 years • Is so “true” that it guides the semiconductor industry in longterm planning and setting targets for research and development • May have reached its last stages with chips shrinking to the atomic level – But Intel claims they will continue to follow Moore’s Law SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 13 Today’s Lecture • Announcements • Moore’s Law • Project estimation • Test 2 • Wrap-up SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 14 Project Estimation – Why? • We need to be able to estimate things like how long a project will take, how many people are needed, how much it will cost, etc. • For the purpose of planning, giving bids, etc. SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 15 What to estimate • • • • SDCL Effort (person-months) Duration (calendar months) Cost (dollars) KLOC (thousands of lines of code) Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 16 Estimating a project • Approach 1: Naïve estimation – Take your best guess • Approach 2: Estimation by parts – Bottom-up or top-down, depending on where you start • Approach 3: Re-estimation – As more time is spent on a project, uncertainty decreases SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 17 Productivity Rates • Longhorn Project (2003) – – • Grady and Caswell at HP (1987) – • ~1100 LOC/person/year Brooks (1975) IBM OS/360 – SDCL 16 MLOC, 5000 people, 3 years 1067 LOC/person/year 600-800 instructions/person/year in control group Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 18 Factors Affecting Productivity Rates • Application domain experience • Process quality • Project size – Negative relationship • Technology support • Working environment SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 19 A general estimation formula • Textbook, p. 275: Units of effort = a + b(size)c + ACCUM(factors) a = base cost b = scales the size variable, derived from past projects c = allows estimated project size to influence the effort estimation non-linearly ACCUM = a function, sum or product or ? factors = other influences on the effort SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 20 COCOMO - A Specific Estimation Model (Boehm) • One of the most widely used software estimation models • Predicts effort and schedule based on inputs relating to the size of the software and a number of cost drivers that affect productivity • Steps 1. 2. 3. 4. SDCL Determine project mode (organic/simple, semidetached/intermediate, embedded/difficult) Estimate the size of project (in KLOC or function points) Review 15 factors (cost-drivers), and estimate the impact of each on the project Determine project effort by inserting the estimated values into an effort formula Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 21 COCOMO Project Modes • Project mode is based on 8 parameters – – – – – The team’s understanding of project objectives The team’s experience with similar projects The project’s need to conform with established requirements The project’s need to conform with established external interfaces The need to develop the project concurrently with new systems/operational procedures – The project’s need for new technology, architecture, etc. – The project’s need to meet or beat the schedule – Project size SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 22 COCOMO Project Modes • Organic Mode – Small teams with good experience working with “less than rigid” requirements • Semidetached Mode – Medium teams with mixed experience working with a mixture of rigid and less than rigid requirements • Embedded Mode – Projects that must be developed within a series of tight constraints • Each mode has its own effort estimation formula SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 23 COCOMO Cost Drivers • Product attributes • Personnel attributes – Required software reliability – Database size – Product complexity • Computer attributes – – – – SDCL Execution time constraint Main memory constraint Virtual machine complexity Computer turnaround time Software Design and Collaboration Laboratory – – – – – Analyst capability Applications experience Programmer capability Virtual machine experience Programming language experience • Project attributes – Use of modern practice – Use of software tools – Required development schedule Department of Informatics, UC Irvine sdcl.ics.uci.edu 24 Comparison of Formulas KLOC Halstead Boehm Walston-Felix E=0.7 KLOC1.50 E=2.4 KLOC1.05 E=5.2 KLOC0.91 1 10 50 100 1000 0.7 22.1 247.5 700.0 22,135.9 2.4 26.9 145.9 302.1 3,390.1 5.2 42.3 182.8 343.6 2,792.6 • Coefficients derived using actual project data – Variability in project characteristics? SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 25 What to Measure/Estimate • Lines of code – e.g. delivered lines of executable source code • Function points – count inputs, outputs, files • Feature points – similar to function points, also count algorithms • Object points – count screens, reports, and 3-GL components SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 26 Function Points • Analyze specifications and high-level design for – – – – – External inputs External outputs External inquiries Internal logical files (e.g. classes, data structures) External interface files • The result (after plugging them into a formula) is a number of Function Points. • Maybe: person-months = 0.20 * FP1.5 SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 27 Today’s Lecture • Announcements • Moore’s Law • Project estimation • Test 2 • Wrap-up SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 28 Test 2 Items from Today’s Lecture • Moore’s Law • Project estimation – Factors affecting productivity rates – COCOMO (know what it is) – Function points SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 29 Today’s Lecture • Announcements • Moore’s Law • Project estimation • Test 2 • Wrap-up SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 30 What Did We Learn? • What is software engineering? – Perspectives – Definitions – Essential qualities (complexity, conformity, changeability, invisibility) • Software engineering principles – Rigor and formality – Separation of concerns • modularity • divide and conquer • abstraction – Anticipation of change – Generality – Incrementality • Software failures/fiascos – Many related to requirements SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 31 What Did We Learn? • Requirements Engineering – Requirements document (Homework 1) • • • • • Mythical Man Month Use cases Software architecture Software process models Version control – Git (Homework 2) • • • • • SDCL Designs, models, notations User orientation Testing Moore’s law Project estimation Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 32 What is Software Engineering? Software – Engineering - SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 33 What is Software Engineering? Software – • • • • • Code Documentation, user manuals Designs, specifications Test cases Plans and schedules Engineering - SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 34 What is Software Engineering? Software – • • • • • Code Documentation, user manuals Designs, specifications Test cases Plans and schedules Engineering • Skill and knowledge • Application of scientific principles • Trade-offs, cost / benefit analysis SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 35 Software engineering • “A broad field that touches upon all aspects of developing and supporting a software system.” [Tsui, Karam, Bernal] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 36 Software engineering • “A broad field that touches upon all aspects of developing and supporting a software system.” [Tsui, Karam, Bernal] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 37 Software engineering • “A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers.” [Ghezzi, Jazayeri, Mandrioli] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 38 Software engineering • “A discipline that deals with the building of software systems which are so large that they are built by a team or teams of engineers.” [Ghezzi, Jazayeri, Mandrioli] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 39 Software engineering • “Multi-person construction of multi-version software.” [Parnas] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 40 Software engineering • “Multi-person construction of multi-version software.” [Parnas] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 41 Software engineering • “A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user’s needs. Furthermore, the software must be easy to modify when the user’s needs change.” [Schach] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 42 Software engineering • “A discipline whose aim is the production of fault-free software, delivered on-time and within budget, that satisfies the user’s needs. Furthermore, the software must be easy to modify when the user’s needs change.” [Schach] SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 43 What is Software Engineering? Informatics 43: • The process of constructing software. • Phases of development other than programming. • Principles and qualities of enduring value. SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 44 • Good luck on Test 2 • Enjoy your break! SDCL Software Design and Collaboration Laboratory Department of Informatics, UC Irvine sdcl.ics.uci.edu 45