The Effects on Development

Slides:



Advertisements
Similar presentations
Software Cost Estimation Main issues:  What factors determine cost/effort?  How to relate effort to development time?
Advertisements

SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION © University of LiverpoolCOMP 319slide 1.
Planning. SDLC Planning Analysis Design Implementation.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
1 Software Construction Software Construction Chapter 1.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Chapter 6 : Software Metrics
1 Software Process and Project Metrics. 2 Normalization for Metrics.
T. E. Potok - University of Tennessee CS 594 Software Engineering Lecture 3 Dr. Thomas E. Potok
Slide 1 Teams l Most products are too large to be completed by a single software professional with the given time constraints l You will work within a.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M16 - Version 8.01 SMU CSE 7315 Planning and Managing a Software Project.
SFWR ENG 3KO4 Slide 1 Management of Software Engineering Chapter 8: Fundamentals of Software Engineering C. Ghezzi, M. Jazayeri, D. Mandrioli.
Software Project Estimation IMRAN ASHRAF
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
Advanced S/w Eng - s/w productivity issues 1 Software Productivity Issues Why do software projects fail? Advanced Software Engineering COM360 University.
CSE 403 Lecture 27 Course Wrap-up Discussion slides created by Marty Stepp
PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
Personal Estimation with PROBE CS3300 Fall Process Everybody has one !!! Formal – Completely defined and documented Informal – Just the way things.
Chapter Eighteen Proposition of the Mythical Man Month: True or False?
Copyright , Dennis J. Frailey CSE7315 – Software Project Management CSE7315 M15 - Version 9.01 SMU CSE 7315 Planning and Managing a Software Project.
Chapter 8: Maintenance and Software Evolution Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Jeff Kern NRAO/ALMA.  Scaling and Complexity ◦ SKA is not just a bigger version of existing systems  Higher Expectations  End to End Systems  Archive.
Copyright © Curt Hill Software Development Methodology What do you need to know?
Slide 1 Project Management Chapter 4. PowerPoint Presentation for Dennis, Wixom & Tegardem Systems Analysis and Design Copyright 2001 © John Wiley & Sons,
Advanced Software Engineering Dr. Cheng
Understanding the RUC Survey Instrument
Architectural Design Copyright © 2016 – Curt Hill
Why is software engineering worth studying?
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
The Waterfall Methodology
DOCUMENTATION DEVELOPMENT LIFE CYCLE (DDLC)
Configuration Management Why do we need it? What does it do?
Software Life Cycle “What happens in the ‘life’ of software”
1. Welcome to Software Construction
Systems Analysis and Design
Systems Analysis and Design
Chpter#5 -part#1 Project Scope and Human Resource Planning
Requirements and the Software Lifecycle
Constructive Cost Model
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
CS 425/625 Software Engineering Software Evolution
Paul Ammann The Agile Heresy: What Drives Traditional Software Engineering, and Why Agile Turns it Upside Down Paul Ammann.
Tools of Software Development
SLOC and Size Reporting
COCOMO Model Basic.
Software Construction
Software Testing and Maintenance Maintenance and Evolution Overview
Software Construction
More on Estimation In general, effort estimation is based on several parameters and the model ( E= a + b*S**c ): Personnel Environment Quality Size or.
COCOMO Models.
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Based on Chapter 5 of the book [McConnell 2006]
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Or are they really guidelines?
The Computer Skills Divide
Software Cost Estimation
Software Construction
Chapter 4 Process Models
Lecture 06:Software Maintenance
Software Construction Dr. Samer Odeh Hanna (PhD)
Software Construction
The Core Concepts of EA A Few Final Words
Software Construction
COCOMO MODEL.
Presentation transcript:

The Effects on Development Program Size The Effects on Development Mythical Man Month by Fred Brooks Chapter 27 of Code Complete by Steve McConnell Copyright © 2017 Curt Hill

Introduction We have this naïve view of how difficult programs are to construct We think that doubling a program’s size double its complexity We think that converting a program for our use to anyone’s use is easy We think making an existing program part of a system of interrelated program should be easy We are wrong on all counts Copyright © 2017 Curt Hill

Fred Brooks Wrote a very influential book: The Mythical Man Month First published in 1975, updated 1995 First decried the practice of adding people to behind schedule projects He came up with the following graphic Copyright © 2017 Curt Hill

Evolving Programs A Programming System A Program A Programming Product Interfaces, System Integrarion 3X 3X 3X A Programming Product Generalization, Testing, Documentation, Maintenance A Programming Systems Product 3X Copyright © 2017 Curt Hill

Commentary The original program was suitable for some purpose To make it a purpose that anybody can use requires three times the work It must also be maintainable by anyone To integrate it into a system of programs takes a similar magnitude of work This does not even speak of how effort grows with size Copyright © 2017 Curt Hill

Staff and Communication Two team members One communication line Four team members Six communication lines Six team members Fifteen communication lines The communication lines to not go up linearly Copyright © 2017 Curt Hill

Commentary Larger projects often imply larger teams Yet larger teams have less productivity Number of communication lines is a contributor to this Not the only one Copyright © 2017 Curt Hill

Range of Sizes Projects may vary in size A survey in 1983 found this distribution 1-3 members account for 25% 4-10 members account for 30% 11-25 members account for 20% 26-50 members account for 15% 50 and more members account for 10% Big projects need big teams Partitioning the project may shrink a team From A Survey of Software Engineering Practice: Tools, Methods and Results by Beck and Perkins 1983 in McConnell Copyright © 2017 Curt Hill

Quality and Errors Larger projects produce more errors and different types of errors On small projects the largest factor on errors is the skills of the developers On large projects these are still the greatest contributor Architectural and requirements errors make a relatively much larger contribution Copyright © 2017 Curt Hill

Error Density Surveys found this distribution of error per size Size of project in KLOC Error Density in errors per KLOC < 2 0 – 25 2 – 16 0 – 40 16 – 64 0.5 – 50 64 – 512 2 – 70 > 512 4 - 100 From Program Quality and Programmer Productivity by Beck 1977 and Estimating Software Costs by Jones in 1998 in McConnell Copyright © 2017 Curt Hill

Productivity The size of the team contributes to productivity Similar to quality Smaller teams are more productive than large teams Copyright © 2017 Curt Hill

Productivity Survey Size of project in KLOC LOC per staff year 1 2,500 – 25,000 10 2,000 – 25,000 100 1,000 – 20,000 1,000 700 – 10,000 10,000 300 – 5,000 From Program Quality and Programmer Productivity by Beck 1977 and Estimating Software Costs by Jones in 1998 in McConnell Copyright © 2017 Curt Hill

Productivity There is a lot more to productivity than team size Experience and skill of the developer Kind of software being developed Tools available to the team Software development methodology Programming language Complexity of the project Despite these factors team size is as well Copyright © 2017 Curt Hill

Development Activities The percentage of time spent in various activities in the development process changes as the size of the project increases In small project the construction is the largest factor Construction includes Detailed design Coding and debugging Developer testing Copyright © 2017 Curt Hill

Sizing Projects of a few thousand lines typically spend 60-70% of the time in these construction tasks As the project rises to more than a hundred thousand this percent reduces to less than half These activities do increase In its place Integration, System testing and Architecting all increase at faster rates Copyright © 2017 Curt Hill

Another Study For projects less than 10 KLOC the lowest cost was obtained by spending about 5% on requirements and architecture For projects around 100 KLOC the lowest cost was obtained by spending about 10% to 15% on requirements and architecture Boehm and Turner cited by McConnell Copyright © 2017 Curt Hill

Methodology The methodology must vary somewhat with size An informal approach works with small projects A projects get large a more formal approach is required One of the aspects of the level of formality is paperwork Copyright © 2017 Curt Hill

Paperwork Paperwork is not a punishment Rather, it is a communication mechanism Small teams may communicate with meetings As the teams get larger this is problem A project which produces about 1 KLOC will average 7% of its effort in reports and other documentation A 100 KLOC will average 26% of its effort in this category Copyright © 2017 Curt Hill

Finally Linear growth of work generally does not happen in software development projects Large projects usually cannot tolerate using a small team for a very long time Large teams suffer from communication issues These issues take more time and cause more errors Copyright © 2017 Curt Hill

Copyright © 2017 Curt Hill

Copyright © 2017 Curt Hill