implementation phase cs4311 – spring 2008 references: shach, object oriented and classical...

27
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object- Oriented Perspective

Upload: oswald-holmes

Post on 14-Dec-2015

220 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Implementation Phase

CS4311 – Spring 2008References: Shach, Object Oriented and Classical

Software EngineeringE. Braude, Software Engineering, an Object-Oriented

Perspective

Page 2: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Choice of Programming Language

Factors Availability of compilers Expertise of programming team

Analysis Cost-benefit analysis Risk analysis Problem domain

Page 3: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Programming Standards and Procedures Assist with clarity and reusability Help translate design to code: structure code

to maintain correspondence Facilitate change to design and code

because interface specifications can be analyzed

Assist in understanding code

Page 4: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Good Programming Practice-1

Abbreviation or not: freq, frequency Ordering of words: frequencyMaximum;

Minimum frequency Use of capitals, underscores

Hungarian naming conventions http://www.akadia.com/services/naming_conv

entions.html

Page 5: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Good Programming Practice-2

Prologue comments Description of what module does Programmer’s name, date of code, date approved and

who approved Description of arguments Files accessed by module Input-output (if any) Error-handling List of modifications, dates, and who approved Known faults

Page 6: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Good Programming Practice-3

In-line comments for understandability Document data—need to know how data is structured Keep small—use other techniques for program

understanding Use to break code into major phases-activities Use to add information

Code Layout Use of white space Use of indentation

Coding Standards (exceptions require approval of leader) Do not exceed a depth of 3 for nested if statements Aim for modules with 35-50 statements Localize sections likely to change

Page 7: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP Principles - 1

The quality of a software system is governed by the quality of its worst components.

The quality of a software component is governed by the individual who developed it.

This is governed by your discipline commitment

Page 8: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP Principles - 2

You should measure, track, and analyze your work.

You should learn from your performance variations.

You should Incorporate these lessons in your personal practices.

Page 9: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

With a Stable PSP

You can meet your commitments resist unreasonable commitment pressures

You will also understand your ability be better able to improve

Page 10: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

A PSP Also Provides

A discipline that shows you how to improve your personal process

The data to continually improve the productivity, quality, and predictability of your work

Page 11: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

What is a PSP?

A personal process for developing software forms standards

A measurement and analyses framework to help you characterize your process

A defined procedure to help you to improve your performance

Page 12: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP Steps

Level 2Software configuration managementSoftware quality assuranceSoftware subcontract managementSoftware project tracking and oversight*Software project planning*Requirements management

*PSP key process areas

Level 3Peer reviews*Intergroup coordinationSoftware product engineering*Integrated software management*Training programOrganization process definition*Organization process focus*

Level 4Quality management*Process measurement and analysis*

Level 5:Process change management*Technology innovation*Defect prevention*

Level 11

2

3

4

5

Page 13: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP Overview -1

PSP0Current processTime recording

Defect recordingDefect type standard

PSP1Size estimating

Test report

PSP2Code reviews

Design reviews

PSP3Cyclic development

PSP2.1Design templates

PSP1.1Task planning

Schedule planning

PSP0.1Coding standard

Size measurementProcess improvement

proposal (PIP)

Page 14: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP Overview - 2

PSP0 -

PSP1 - you make size, resource, and schedule plans

PSP2 - you practice defect and yield management

PSP3 - you scale up PSP methods to larger projects

Page 15: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

The PSP0 Process

Use your current design and development

methods. Gather data on your work:

time spent by phase defects found in compile and test

Prepare a summary report.

Page 16: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

The PSP0 Process Elements

A project plan summary form A time recording log A defect reporting log A defect type standard

Page 17: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

The PSP0 Script - 1

Planning - Development - develop the product using

your current methods Postmortem - complete the project plan

summary, with the time spent and defects found and injected in each phase.

Page 18: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

The PSP0 Script - 2

Design -

Coding - Implement the program Compile - compile until defect free Test - test the program and fix all defects Record defects in the defect log and time per

phase in the time log.

Page 19: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP0 Plan Summary

Actual time in minutes spent in each phase. Time - To Date - Total time spent in each phase Time - To Date % - Percent of the total To Date time

that was spent in each phase. Defects injected and removed - Actual numbers of

defects injected and removed Defects - To Date - Total defects injected and removed Defects - To Date % - Percent of the total To Date

defects injected and removed

Page 20: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP0 Time Recording Log

Date - Current date. Start - Time in minutes when project phase started Stop - Time in minutes when you stop work on a

project phase, even if you are not done with that phase.

Interruption time -

Delta time - The elapsed start to stop time less the interruption time.

Phase – Name of phase on which you were working

Page 21: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Defect Recording Log

Date - Date defect found and fixed Number - Unique number for this defect. Type - Defect type from type standard. Inject - Phase defect was injected. Remove - Fix time - Time to fix the defect. Fix defect - If this defect was injected while

fixing another defect, enter the number of that defect or an X if you do not know.

Page 22: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Defect Type Standard

The defect type standard provides a general set of defect categories.

The PSP defect types are: 10 - 20 - Syntax 30 - Build, package 40 - Assignment 50 - Interface 60 - Checking 70 - Data 80 - Function 90 - System 100 - Environment

Page 23: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP1

Includes: Size estimation Scheduling estimating Process improvement proposal Test report

Page 24: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

PSP2-PSP3

Includes: Personal design and code reviews Yield and cost of quality measures Design templates

Size estimating principles Estimating is unknown process: earlier the

estimate, the less is known

Page 25: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Program Estimation

Conceptual Design

Identify ObjectsNo. Methods Relative size

Object type Reuse Components

Calculate Added and Modified LOC

Estimate Program Size

Page 26: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Quality Management and Quantitative Process Components of Cost of Quality (COQ)

Failure Costs: cost of diagnosing a failure and making necessary repairs

Appraisals Costs: costs of evaluating the product and determining its quality level

Prevention costs: costs of defects and actions taken to prevent them in the future

A/FR: ratio of appraisal to fix time; measures effort to detect defect removal

Page 27: Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented

Process Change Management

Use feedback to improve process Make changes to one’s methodology

Training Seminars Practice with unfamiliar ideas

Strategize to determine when and how to inject new technology

Defect prevention: how did defect occurs and what made it happen; modify one’s development process