SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 6.

Slides:



Advertisements
Similar presentations
Software Engineering Lab Session Session 1 – Introduction to the practicum © Jorge Aranda, 2005.
Advertisements

Team Software Process By: Bryan Peterson. Presentation Topics History Brief overview of the Team Software Process (TSP) TSP Team Launch Team-working Conclusion.
The Personal Software Process (PSP) Lecture #1 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Computer Engineering 203 R Smith Project Tracking 12/ Project Tracking Why do we want to track a project? What is the projects MOV? – Why is tracking.
Software Engineering Lab Session Session 4 – Feedback on Assignment 1 © Jorge Aranda, 2005.
1 Disciplined Software Engineering Watts S. Humphrey Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the.
PRO2 - 1 Introduction to the Personal Software Process SWENET PRO2 Module Developed with support from the National Science Foundation.
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.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Important concepts in software engineering The tools to make it “easy to apply common sense”!
Important concepts in software engineering The tools to make it easy to apply common sense!
Personal Software Process
The Software Process Strategy The Software Process Strategy Part III.
Computer Engineering 203 R Smith Process/Plan Model 7/ Development Process Models Development Process Models are different ways to look at the processes.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Team Leader Training How to manage a team or be on a team (and survive) 540f07tltrain5sep6 1.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
Personal software process Mohammed ahmed ali. What is psp The personal software process (psp) is a structured set of process descriptions, measurements.
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #1 Software Engineering.
Self Management Project MGT 494
INFO 637Lecture #31 Software Engineering Process II Launching & Strategy INFO 637 Glenn Booker.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 8.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 10: Testing and Inspecting to Ensure High Quality Part 4:
INFO 637Lecture #41 Software Engineering Process II Development Plan INFO 637 Glenn Booker.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software.
Disciplined Software Engineering Lecture #6 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
PBL in Team Applied to Software Engineering Education Liubo Ouyang Software School, Hunan University CEIS-SIOE, January 2006, Harbin.
Lecture 1 Introduction to Software Engineering
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.
Lecture: The Personal Software Process. 2 Overview  Personal Software Process assumptions process stages measures and quality strategy results.
© 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.
Experimental Evaluation of Pair Programming Copyright, 2001 © Jerzy R. Nawrocki European Software Control & Metrics ESCOM’01 ESCOM’01 Poznan University.
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 9.
Software Engineering Prof. Dr. Bertrand Meyer March–June 2007 Chair of Software Engineering Lecture 2: The Personal Software Process.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
COMP 208/214/215/216 – Lecture 8 Demonstrations and Portfolios.
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 #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.
SE-280 Dr. Mark L. Hornick 1 SE-280 Software Engineering Process Dr. Mark L. Hornick web: myweb.msoe.edu/hornick SE280 info syllabus,
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.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
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.
Copyright © 1994 Carnegie Mellon University CSCI511Personal Software Process - Personal Implications of PxP 1 Disciplined Software Engineering Lecture.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 11.
Personal Design and Development Software Process PD 2 SP “The unexamined life is not worth living.” Plato.
Introduction to the Personal Software Process. Overview Process Fundamentals PSP Concepts and Structure PSP Planning and Measurement PSP Quality Management.
CSC 480 Software Engineering PSP Project 1 August 20, 2004.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 10 – Process Definition 1INFO636 Week 10.
n Taking Notes and Keeping a Journal n Listening Skills n Working Together n Managing Your Time.
CSC 205 Programming II Lecture 1 PSP. The Importance of High-Quality Work Three aspects to doing an effective software engineering job producing quality.
Watts Humphrey IBM director of programming and vice-president of technical development Joined CMU Software Engineering Institute in 1986 Initiator and.
Software Engineering Lab Session
A possible solution: Personal Software Process (PSP)
Presentation transcript:

SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 6

Contents The Personal Software Process Introduction to Lab and Assignment #4 SE 501 Dr. Basit Qureshi2

Bibliography Humphrey, Watts (1995). A disciple for Software Engineering. The Personal Software Process. SE 501 Dr. Basit Qureshi3

PERSONAL SOFTWARE PROCESS SE 501 Dr. Basit Qureshi4

Intro to PSP Hardly surprising facts: – 1 – Most software projects go wrong – 2 – Most software projects do not follow *any* development process – 3 – Software projects that do follow some process have a much better chance of survival It really can be almost any process Extreme Programming and other Agile styles Cleanroom Capability Maturity Model (CMM)

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 6 What Does a PSP Provide? A stable, mature PSP allows you to estimate and plan your work meet your commitments resist unreasonable commitment pressures You will also understand your current performance be better equipped to improve your capability

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 7 What Does the PSP Provide? The PSP provides a proven basis for developing and using an industrial- strength personal process a discipline that shows you how to improve your personal process the data to continually improve the productivity, quality, and predictability of your work

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 8 What is the PSP? The PSP is a personal process for developing software or for doing any other defined activity. The PSP includes defined steps forms standards It provides a measurement and analysis framework for characterizing and managing your personal work. It is also a defined procedure that helps you to improve your personal performance.

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 9 The PSP Process Flow

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 10 The Personal Software Process The PSP process is designed for individual use. It is based on scaled-down industrial software practice. The PSP course demonstrates the value of using a defined and measured process. It helps you and your organization meet the increasing demands for high quality and timely software.

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 11 Learning the PSP -1 The PSP is introduced in six upward-compatible steps. You write one or more module-sized programs at each step. You gather and analyze data on your work. You use the results to improve your personal performance.

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 12 Learning the PSP -2

© 2006 by Carnegie Mellon University October 2006 PSP I - Introduction to PSP and TSP - 13 Learning the PSP -3 PSP0:You establish a measured performance baseline. PSP1:You make size, resource, and schedule plans. PSP2:You practice defect and yield management.

Why are we doing this? But software engineers are frequently too busy to learn software processes The best time for you to learn them is now We chose the Personal Software Process (PSP) – Will help you think about software development in a disciplined way – Will help you to know your own strengths and weaknesses, and to improve them – It’s a personal activity, but it can be extended to teams and organizations – It’ll look good on your resume – PSP certifications: PSP Developer, PSP Instructor, SEI-certified Coach

Why are we doing this? Think about the term ‘Software Engineer’ – What defines an engineer? – What do engineers measure/control/plan? – Do software developers really do engineering?

Why are we doing this? Software engineering: – Management of resources Main resource is the engineer’s own time and what he does with it! Estimation Progress tracking – Quality Assurance Defects injected into product Conformance of product to requirements

Why are we doing this? Would you be able to respond accurately to these questions? – On average, how many defects do you inject in the code you write (per 1,000 lines of code)? – How many of those defects are coding errors, and how many are design or requirements errors? – What percentage of your time goes into coding? What percentage goes into fixing defects? – How many lines of code have you written in the past year? How many classes, methods or routines? Of what kind? – By what percentage are your estimates normally off? – Developers are all different –what are your weaknesses and strengths as a developer? (Fast coder, high quality, good architecture…?)

Why are we doing this? This set of Lab sessions will help you find answers to those questions It’s harder than it sounds! – You need to be disciplined about your own work – Use a structured process – Keep track of a lot of little details – Little by little you’ll get used to it – If you like it, great! You’ll have an important skill for your professional career. – And if you don’t like it, remember you only have to do it this term…

What is it about? Based on Watts Humphrey’s Personal Software Process – Outlined in A Discipline for Software Engineering – Six relatively easy programming assignments On C Focus on learning and understanding the process Assignments map to Humphrey’s 1A-6A exercises

How to get a good grade Short story: – It’s very easy, really. Just follow the process thoroughly and you’ll do great. Longer story: – Stick to the process while doing the exercises Use the forms appropriately – Extract insights from your own work, and report them Reflections on your performance and on the process – Work on two levels Quality of your code, quality of your process – Submit your assignments on time

The Personal Software Process Basic idea #1: Measure yourself – Know how much time you spend in programming tasks – Know how many defects your code has – Know how well you estimate your effort You can’t control what you can’t measure Basic idea #2: Control yourself – Improve your estimates – Improve the quality of your software

The Personal Software Process PSP is incremental: – PSP0 Whatever you’re currently doing, plus some measurements – PSP0.1 -> PSP1 -> PSP1.1 Increasingly detailed estimates, controls You start to apply regression to your estimates You start getting efficiency and other quality metrics This is as far as we’ll go – PSP2 -> PSP3 We won’t have the time to go there…

The Personal Software Process PSP0 – You’ll be using three forms: Project Plan Summary Time Recording Log Defect Recording Log – Refer to Humphrey’s book for correct usage of these forms 1. Project Plan Summary After understanding the requirements, estimate how many minutes will the assignment take After finishing the assignment, write down how much time it actually took, and how many defects you found It is OK to be absolutely wrong in your initial estimates…

The Personal Software Process PSP0 2. Time Recording Log Have it handy when you work on your assignments Record everything – If you get up from your desk, get a call, read … make sure your log has the corresponding ‘Interruption Time’ entries – Some details will feel embarrassing (two hours fixing a bug, for example…). Record them anyway Use minutes, not hours Low-tech works better than hi-tech at this point Use Humphrey’s classification of activities: – Planning, Design, Code, Compile, Test, Postmortem

The Personal Software Process PSP0 3. Defect Recording Log Again, record every defect – If you designed your routines incorrectly, write the defect in the log – If you made an off-by-one error, write it in the log – If your automated tests were wrong, write it in the log – …you get the idea… If unsure as to what ‘defect type’ each defect belongs to, write your assumptions in the defect description

The Personal Software Process The three forms of PSP0 will become the foundation of later assignments – It will feel weird at the beginning Give it some time – With time, you will be recording your time and defects naturally Appreciating the advantages of this process will take a while – It shouldn’t interfere with your creative processes!

Assignment #4 Write a program to calculate the mean and standard deviation of a sample of n real numbers. Hints – Remember we’re interested in that you learn a process, not in that you know how to program a standard deviation routine! – Your report on insights and impressions is important – it will show us if your brain is engaged in the exercise or not – Make sure you understand the requirements before you start coding – Document all assumptions – Automated tests are (almost) always better than manual tests

Assignment #4 Refer to a sample of completed PSP0 forms for an example by Dr. Honig at

Summary Introduction to PSP Assignment #4 SE 501 Dr. Basit Qureshi29