Disciplined Software Engineering Lecture #2 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department.

Slides:



Advertisements
Similar presentations
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Advertisements

The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Sponsored by the U.S. Department of Defense © 2002 by Carnegie Mellon University July 2002 Pittsburgh, PA Lecture 6: Team Planning.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 7.
Copyright © 1997 Carnegie Mellon University Introduction to the Personal Software Process - Lecture 1 1 Introduction to the Personal Software Process Lecture.
Personal software process Mohammed ahmed ali. What is psp The personal software process (psp) is a structured set of process descriptions, measurements.
Estimating Software Size Part I. This chapter first discuss the size estimating problem and then describes the PROBE estimating method used in this book.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #14 Software Engineering.
Personal Software Process KAIST SE Lab..
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #5 Software Engineering.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 8.
Disciplined Software Engineering Lecture #8 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
INFO 637Lecture #41 Software Engineering Process II Development Plan INFO 637 Glenn Booker.
Disciplined Software Engineering Lecture #4 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #6 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Lecture: The Personal Software Process. 2 Overview  Personal Software Process assumptions process stages measures and quality strategy results.
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
© 1998 Carnegie Mellon UniversityTutorial The Personal Software Process (PSP) The overview of the PSP that follows has been built from material made.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #8 Software Engineering.
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #4 Software Engineering.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Fall 2005.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 3 – Planning and Measuring 1INFO636 Week 3.
Disciplined Software Engineering Lecture #3 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #2 Software Engineering.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
SOFTWARE METRICS. Software Process Revisited The Software Process has a common process framework containing: u framework activities - for all software.
Disciplined Software Engineering Lecture #15 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #15 Software Engineering.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
CS 350: Introduction to Software Engineering Slide Set 2 Process Measurement C. M. Overstreet Old Dominion University Fall 2005.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Disciplined Software Engineering Lecture #12 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #12 Software Engineering.
Copyright © 1994 Carnegie Mellon University CSCI511Personal Software Process - Personal Implications of PxP 1 Disciplined Software Engineering Lecture.
Disciplined Software Engineering Lecture #10 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Personal Design and Development Software Process PD 2 SP “The unexamined life is not worth living.” Plato.
Copyright © , Dennis J. Frailey, All Rights Reserved Day 2, Part 1, Page 1 1/11/2004 Day 2, Part 1 Estimating Software Size Section 2 Calculating.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
Chapter 10: Software Size Estimation Omar Meqdadi SE 273 Lecture 10 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CSC 480 Software Engineering PSP Project 1 August 20, 2004.
CS 350: Introduction to Software Engineering Slide Set 3 Estimating with Probe I C. M. Overstreet Old Dominion University Spring 2006.
CSC 205 Programming II Lecture 1 PSP. The Importance of High-Quality Work Three aspects to doing an effective software engineering job producing quality.
SE-280 Dr. Mark L. Hornick 1 Measuring Software Size.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
Disciplined Software Engineering Lecture #6
Estimating with PROBE II
A possible solution: Personal Software Process (PSP)
Personal Software Process Software Estimation
The role of Planning in the Software Development Process
Presentation transcript:

Disciplined Software Engineering Lecture #2 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense

Lecture #2 Overview - Planning I and II Planning overview Software size ­why measure size? ­size measurement criteria ­the SEI size measurement framework Counting program size ­counters ­coding standards

Why Make Plans? To make commitments you can meet To provide a basis for agreeing on the job To guide your work To help track your progress To project completion

The Project Planning Framework Define Requirements Produce Conceptual Design Estimate Size Estimate Resources Produce Schedule Develop Product Size, Resource Schedule Data Process Analysis Resources Available Productivity Database Size Database Product Delivery Tracking Reports Customer Need Customer Management

Why Measure Size? To make better plans To assist in tracking development To normalize other measures –development resources –defect rates

Size Measurement Criteria Relationship to development effort Precision Machine countable Suitable for early planning

Size Versus Development Effort The principle requirement: if the size measure is not directly related to development cost, it is not worth using. There are many possible measures: –lines of code (LOC) –function points –pages, screens, scripts, reports The size measure should be sensitive to language, design, and development practice.

C++ LOC Versus Development Time

Pascal LOC Versus Time

Text Pages Versus Time

Script LOC Versus Time

Report LOC Versus Time

Screen LOC Versus Time

Relationship to Development LOC is a reasonably good measure for development of source programs like Pascal and C++. Pages are an acceptable measure for document development. LOC is not an adequate measure for screens, reports, or scripts. Some other possible measures are function points, screens, and modules.

Precision and Accuracy

Imprecise and inaccuratePrecise and inaccurate Imprecise and accurate Precise and accurate x x x x x x x xx x x x x x x x x x x x x

Measurement Precision When 2 people measure the same thing will they get the same result? To do so requires a precise measurement definition. The measure must also be properly applied. –Pascal LOC do not equate to assembler LOC –new LOC do not equate to modified LOC –logical LOC do not equate to physical LOC –C++ LOC may not relate to C++ LOC

Machine Countable Size measurement is time consuming and inaccurate. Automated counters can only work on definable program characteristics. Counters can be complex: –size definition selected –counting method

Suitable for Early Planning - 1 The issue is: what can you visualize early? –for a house, square feet predict cost –few people can visualize a house in terms of square feet of living space –numbers of rooms are more intuitive Needed for good plans: –intuitive size measures

Suitable for Early Planning - 2 Unfortunately, the popular intuitive measure is not measurable and the popular measurable measure is not intuitive. Function points –intuitive –not directly measurable LOC –not intuitive –directly measurable

Selecting a Size Measure - 1 Start with product development data –resources required –product characteristics –any special development conditions Rank products by resources required. See what characteristics distinguish those products that took the greatest effort from those that took the least.

Selecting a Size Measure - 2 See if these differences are measurable. –correlate this measure for the product set –if no correlation, try again There may be no single best measure. –a combination of measures could be needed –methods for handling multiple measures are discussed later

Selecting a Size Measure - 3 If you are better at estimating resources than program size, size estimation will not improve your planning. If you estimate resources directly, you must: –keep accurate records –build a large database –use an estimating guru

The SEI Measurement Framework Logical versus physical lines Statement specifications: –executable –nonexecutable –counted statement types Application: –language and code type –origin and usage

Counting Program Size - 1 Logical lines –invariant to editing changes –correlate with development effort –uniquely definable –complex to count Physical lines –easy to count –not invariant –not uniquely definable

Counting Program Size - 2 The PSP uses a coding standard and a physical LOC counter. –uses a physical line for each logical line –uses a defined coding standard –this standard must be faithfully followed Then physical line counting equals logical line counting

A Counting Example procedure ISet.Set(var N: int; var inc: boolean); begin inc := false; SearchPtr := SetStart; while (SearchPtr<>nil) and (inc == false) do if SearchPtr^.ThisN == N then inc := true else SearchPtr:=SearchPtr^.NextN; end;

The PSP Counting Standard Count all statements: –begin, end, if, then, else, etc. –{, }, ;,., etc. –count declarations, directives, headers, etc. Do not count blanks, comment lines, automatically generated code, or reused code. Count new and changed code for measuring and estimating development productivity.

Line of Code Accounting For small programs, size tracking can be done manually, but it requires care. For larger programs, size tracking requires an accounting system. LOC accounting provides an orderly and precise way to track LOC changes through multiple program versions.

Example of LOC Accounting - 1 Version LOC Enhance to Version New and Changed LOC Expected Size: =475 LOC What happened? Measured Size 450 LOC

Example of LOC Accounting - 2 Added Subtracted Base Base V0 0 Deleted 0 Modified 0 0 Added 350 Total V0 LOC Deleted 0 Modified Added 100 Final Product Total New and Changed LOC 475

PSP0.1 Process Additions Coding and LOC counting standards: –tailored to your language and needs –incorporate PSP elements from the text –needed to write the PSP programs –Process improvement proposal (PIP) –used to record process improvement ideas –also used to record findings and comments on each project

PSP0.1 Summary Additions - 1 Program size - before development: –if this is an enhancement, measure the size of the base program –enter these LOC in the Base (B) space under Actual –estimate the new and changed LOC –enter these LOC in the Total New & Changed (N) space under Plan

PSP0.1 Summary Additions - 2 Program size - after development: –measure total program size –enter these LOC in the Total LOC (T) space under Actual –count the deleted LOC and enter in the Deleted (D) space under Actual –count the modified LOC and enter in the Modified (M) space under Actual –count the reused LOC and enter in the Reused (R) space under Actual

PSP0.1 Summary Additions - 3 After development (continued): –calculate the added LOC as: A = T - B + D - R –enter the added LOC in the Added (A) space under actual –count or estimate the number of new and changed LOC that will be added to the reuse library –enter as Total New Reuse in the space under Actual

PSP0.1 Summary Additions - 4 To Date: –total the actual reused, new and changed, total, and total new reuse LOC from this and all previous programs –enter these data in the To Date column for each LOC type These To Date data are used to calculate various process parameters in later PSP versions.

Completing the PIP Form In this course, you are asked to complete a PIP form for each programming exercise and include the following information: –Problem description - any problems you have encountered in using the process –Proposal description - any suggestions you have for process improvements –Notes and comments - your observations and findings from doing the exercise

Assignment #2 Read chapters 3 and 4 of the text. Produce an LOC counting standard and a coding standard. (Reports 1 and 2) Use PSP0.1 to write program 2B to modify your program 1B. Use a coding standard and a physical line counter. See Appendices C and D for process and program specifications.

Messages to Remember from Lecture To effectively plan and manage your work, you must measure product size. 2 - The PSP uses LOC as the size measure.

Messages to Remember from Lecture For other measures, size must correlate with development time. 4 - Every size measure should be precisely defined and automatically countable.