Personal Software Process Initial Process Overview Winter 2005












- Slides: 12
Personal Software Process: Initial Process Overview Winter 2005 SE-280 Dr. Mark L. Hornick
Back in SE-2030, you heard about the “life cycle” of software product development. Integration & System Testing Unit Testing Code Review In this course, we focus on a subset of these activities, but also on the process used to perform them. Implementation DLD Review Detail-Level Design (DLD) HLD Review Architectural & Conceptual Design (HLD) Requirements Analysis & Specification N/A Planning SE-280 Dr. Mark L. Hornick 2
As you have likely learned, many organizations use a cyclic/iterative development process. Cycle 1 Product Teams Cycle n SE-280 Dr. Mark L. Hornick 3
In this course, we'll apply software process to the incremental development of a software system. The system you will build performs statistical calculations that are useful in estimating and planning software development work. Cycle 1 Cycle 2 It will be built incrementally, in a Cycle 3 series of seven development cycles. Cycle 4 Cycle 5 You are strongly encouraged to plan for Cycle 6 reuse and enhancement as you proceed. Cycle 7 We'll talk more about the process as we go. SE-280 Dr. Mark L. Hornick 4
The Personal Software Process (PSP) is organized in logical steps called phases. l l l l Planning Design review Coding Code review Compile (if used) Test Postmortem Winter 2005 Note that phases are not the same thing as activities! Scripts are used to define the process. The PSP can be easily be used with cyclic development (as we are doing in this course) SE-280 Dr. Mark L. Hornick 5
To plan, we need Historical Data. In the PSP, there are four basic process data metrics: 1. Program Size l 2. Minutes/phase Quality l 4. What to count? Time to complete l 3. To improve performance, we must be able to measure and make comparisons. Defects/phase Schedule l Winter 2005 Task completion date Other measures, such as productivity and defect density, are derived from the base measures. SE-280 Dr. Mark L. Hornick 6
Time logging is an important tool for planning and tracking project effort (any project, not just SW development) Winter 2005 SE-280 Dr. Mark L. Hornick 7
Defect logging provides a basis for quality planning and process improvement. What is a defect? Winter 2005 SE-280 Dr. Mark L. Hornick 8
To categorize defects, we use a defect type standard. Category Example of defect Documentation (UML, Javadoc, Output) UML diagrams illustrating the application design were found to be incorrect or incomplete Javadoc comments describing method/parameters were found to be incorrect or incomplete User messages being output by the application were found to be incorrect or incomplete Syntax (Variable reference, Method reference, Early termination, Missing Braces) A spelling error resulted in the access of the wrong variable or method A punctuation error (such as a semi-colon after an if() or while() terminated the condition abnormally. Missing braces after an if() resulted in the wrong instructions being executed Build, package The application was being built using the wrong version of a source component or jarfile. This type of error is due to problems with change management, library, version control Naming (Bad naming, Duplicate naming, Data hiding) The name of a class, method, or argument was found to be incorrect or inappropriate. A variable/attribute has the same name as a method. Interface (Wrong arguments, Wrong method) The arguments to a method were found to have been supplied in the wrong order ( e. g. function takes x, y, but arguments representing y, x were supplied). The wrong method was accidentally called ( e. g. Point. get. X() rather than Point. get. Y() ) Checking An incorrect user error message was output as the result of a check Inadequate checks for errors led to incorrect behavior of the application. Data (Indexing error, Data overwrite) Wrong index used to access a data structure. Content of a data structure was corrupted (many ways to do this). Logic (Boolean expression, For() expression) A boolean expression in an if(), while(), do-while() was found to be incorrect A for() loop was found to terminate incorrectly (too early or too late, due to an incorrect loop termination expression) In a recursive method, the recursion termination condition was incorrect The incorrect implementation of a formula or mathematical expression led to an incorrect computation result. System Unlikely: Wrong version of the operating system or service pack was being used. Unlikely: errors resulting from timing or memory Environment The configuration of the development environment was incorrect (wrong version of Eclipse, JDK, etc) Problems in JUnit, SVN, or other development tools introduced or masked errors. A local variable with the same name as a class attribute was found to improperly hide the class attribute. A local variable within the scope of a for(), while(), or if() block was found to hide a local variable declared at the method scope. 9
Baseline Personal Software Process l Baseline Process l l l Document whatever you now do l Effort (time, program size) l Quality (defects) Establish current performance l Reference for measuring improvement How? Winter 2005 SE-280 Dr. Mark L. Hornick 10
Like other processes, the PSP works best with appropriate tool support. In this class, we will use Process Dashboard, an open-source tool designed to work with the PSP and other processes. SE-280 Dr. Mark L. Hornick 11
Process Dashboard l Installation & Demo SE-280 Dr. Mark L. Hornick 12