Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #14 Software Engineering.

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

Lecture # 2 : Process Models
Chapter 2 The Software Process
ITIL: Service Transition
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 555 Software Requirements & Specification Requirements Validation.
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
Capability Maturity Model
Release & Deployment ITIL Version 3
What is Business Analysis Planning & Monitoring?
S/W Project Management
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.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 Software Process: A Generic View
Chapter 2 The process Process, Methods, and Tools
THE PROTOTYPING MODEL The prototyping model begins with requirements gathering. Developer and customer meet and define the overall objectives for the software.
CLEANROOM SOFTWARE ENGINEERING.
N By: Md Rezaul Huda Reza n
Disciplined Software Engineering Lecture #8 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
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.
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 #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.
Lecture 7: Requirements 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.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming Both change and stability are fundamental to process.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
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.
Disciplined Software Engineering Lecture #2 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.
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.
CS 350: Introduction to Software Engineering Slide Set 2 Process Measurement C. M. Overstreet Old Dominion University Fall 2005.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Focus on design principles and on a process for doing design = To produce a precise, complete, high- quality foundation for product implementation.
Evaluate Phase Pertemuan Matakuliah: A0774/Information Technology Capital Budgeting Tahun: 2009.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Information Technology Project Management, Seventh Edition.
What’s New in SPEED APPS 2.3 ? Business Excellence Application Services.
 System Requirement Specification and System Planning.
ITIL: Service Transition
Software Project Configuration Management
CS4311 Spring 2011 Process Improvement Dr
Disciplined Software Engineering Lecture #6
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Capability Maturity Model
Capability Maturity Model
Presentation transcript:

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #14 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 2 Lecture # 14 Overview Process terms Why define a process Process definition process elements process architecture process evolution A process development process

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 3 Selected Process Terms - 1 Accuracy - the degree to which the process produces the intended result Agent - the person or machine that enacts the process Fidelity - the faithfulness with which the process is followed Fitness - the degree to which the agents can faithfully follow the process

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 4 Selected Process Terms - 2 Precision - the degree to which the process- defined actions produce accurate results Process architecture - a process design framework Process definition - a process implementation Process design - an embodiment of a process architecture

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 5 Selected Process Terms - 3 Process element - a component of a process Process script - a process definition suitable for a human agent Process step - an atomic process action with no visible external substructure Process tailoring - the act of adapting a process design to support a particular purpose

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 6 Why Define a Process The principal purpose of a defined process is to help agents to faithfully enact it. To help to automate the process To provide a framework for process measurement To improve the process - if you don’t know what you are doing, you can’t improve it

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 7 Software Process Elements Defined scripts for performing the tasks A set of planning, tracking, and recording forms and templates A set of standards and checklists An improvement procedure, with process improvement proposal (PIP) forms and facilities

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 8 Process Formats There are many possible process formats. A convenient format is helpful but not critical. The textbook follows the principles of information mapping.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 9 Information Mapping The principles of information mapping group information into manageable chunks place only like things together in chunks provide a label for each chunk be consistent with terms, organization, format use tables, illustrations, diagrams write at the most usable level of detail provide a clear hierarchy of chunks

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 10 Process Architecture - 1 Process architecture: a conceptual framework for consistently incorporating, relating, and tailoring process elements into enactable processes An effective process architecture provides consistency among processes facilitates unit process development and reuse identifies missing process elements enables the use of consistent support tools provides a common measurement framework

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 11 Process Architecture - 2 Process architectures will ultimately be very helpful in guiding process development. At present, no general process architectures have been developed and there are no guidelines for their development. Until we have experience with developing multiple related processes, we will not likely be able to develop sound process architectural principles and guidelines.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 12 Defining the Software Process The steps in defining a software process are determine agent needs and priorities define process objectives, goals and quality criteria characterize the target process characterize the current process establish the development strategy define the initial process validate the initial process install and enhance the process

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 13 Agent Needs and Priorities - 1 The actions involved in determining agent needs and priorities are identify the potential process agents determine the nature of the products that the process is to produce identify the principal product attributes determine the relative priorities of these attributes determine the process features needed to produce these attributes

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 14 Agent Needs and Priorities - 2 Note the relationships among the product attributes and the process features strong medium weak Categorize these process features into priorities HP - high priority P - priority N - needed NN - not needed

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 15 Objectives, Goals, Quality To determine the process objectives, goals, and quality criteria define what a good process would look like to each using constituency. the product customer the agents project management organization management Considering the agent’s needs, set composite product and process objectives.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 16 PSP Example Using the PSP as an example, define the using constituencies. the developers of the PSP agents using the PSP Specify the nature of products to be produced. small experimental programs the PSP process process improvement data

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 17 Example Product Priorities - 1 Highest priority meet the program functional objectives minimize the number of defects

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 18 Example Product Priorities - 2 Priority meet the performance objectives minimize the development time maintain the development cost within 10% of plan

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 19 Example Product Priorities - 3 Needed an easy to use product a maintainable end product a reusable object asset library

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 20 Example Process Priorities - 1 Highest priority process improvement feedback comprehensive process measurements a fully planned and tracked process

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 21 Example Process Priorities - 2 Priority assure minimum latent product errors minimize test and rework cost maximize process predictability

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 22 Example Process Priorities - 3 Needed minimize cycle time minimize development resource

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 23 Example Goals and Criteria - 1 Goal 1: learn how to produce an effective PSP process improvement proposals (PIPs) are submitted a process development process is used to make process updates process development data are gathered and used

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 24 Example Goals and Criteria - 2 Goal 2: obtain comprehensive process data a final report is prepared on each project a database is maintained for all defect data a database is maintained for all plan and actual project data

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 25 Example Goals and Criteria - 3 Goal 3: process and product quality overall process yield is above 80% test defects are below 5/KLOC compile time is below 2% of total development time

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 26 Example Goals and Criteria - 4 Goal 4: process predictability the estimate to actual standard deviations are under 20%

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 27 The Target Process - 1 The target process is used to relate process objectives to the process design. By setting a long-term direction, the target process guides process improvement priorities.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 28 The Target Process - 2 Since a target process will likely be hard to define, some helpful initial steps are to examine other processes use available data on the current process define an early experimental version as a learning vehicle At a minimum, the target process should contain a high-level listing of the principal steps key process measures the principal improvement goals

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 29 The Target Process - 3 Ask some questions about the target process which steps are currently performed? which steps are and are not well understood? which steps will be frequently repeated? which steps will likely use the most resources? where do you expect the most problems? Use the answers to guide your prototype studies and improvement priorities.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 30 The Current Process - 1 How well do you understand the current process? can you describe the principal steps? do you know how these steps relate? do you know the resource distribution among these steps? Does each step have defined entry and exit criteria? Does your current process have known serious deficiencies?

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 31 The Current Process - 2 Is the current process planned and tracked? Is it well enough measured to permit quantitative improvement plans? Is there a current quality baseline? resource distribution defect rates schedule and cost performance

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 32 Process Development Strategy Ask some questions about the steps in the current process. Establish some initial priorities. Define the initial process. Test and adjust the initial process.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 33 Current Process Questions Which steps are and are not well understood? are frequently repeated? use the most resources? cause the most quality problems? have the most management problems? have the most technical problems?

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 34 Initial Priorities Include the following items in an early process version an initial planning phase basic resource and product measures some initial quality measures documented estimates of all measured items planning and reporting forms for all measures a process completion report a postmortem phase for data gathering, data analysis, and reporting

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 35 Define, Test, and Adjust Follow the abstraction paradigm first define the total process as a single step second define each subprocess step then continue until the process is appropriately refined use a standard format Focus on process quality do a walkthrough with available data do an initial test with a small project encourage user feedback

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 36 Definition Level A process captures knowledge; you must have knowledge to develop a good process. only generally define the steps you know well and that do not cause current problems study and measure the steps you do not understand before attempting to define them on steps you generally understand, define a little more than you know and revise the definition as your knowledge improves

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 37 Defining Process Steps Use a standard step definition template to ensure you include all the necessary items. purpose responsibilities products produced inputs tasks methods, procedures, and standards entry criteria exit criteria next steps

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 38 Process Definition Guidelines Start with your current process. make minimal initial enhancements only define things you know reasonably well how to do if you know a step well, focus elsewhere if a step is confusing, experiment or talk to someone who knows how to do it expect to get it wrong the first time plan to prototype and test plan for perpetual enhancement make improvements in small steps

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 39 Process Evolution To evolve and improve your process it must be defined it must reasonably represent what you do You must know where you want to go be willing to experiment observe and measure your own performance Expect process evolution to take time.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 40 what you are supposed to do The 4 Processes what you want to do what you think you do what you do

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 41 what you are supposed to do Start By Converging what you want to do what you think you do what you do your initial process

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 42 Evolving Your Process - 1 Your first objective should be to converge what you do, what you think you do, and what you are supposed to do to a common process. Convergence is an iterative process that lasts throughout process development and evolution.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 43 Evolving Your Process - 2 Process convergence is critical because until converged, improvement actions will often not affect behavior convergence provides a deeper understanding of the current process convergence can result in substantial behavior modification

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 44 Process Development Process Start with a simplified process definition Plan and measure your work record development time per process category count the numbers of product items by category define productivity measures plan every process development keep a record of each process development produce a summary report for each process development

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 45 A Process Development Process Requirements and Planning Review PIPs Step Definition Test and Update Post- mortem Scripts Standards Databases Forms and Templates PIP Submissions Further refinements? yes

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 46 Lecture #14 Assignment Complete the final report. Update the process used to develop the mid- term report and use it to develop the final report. Turn in the updated process, the plan for the work, the actual data for the work, and the final report. Consult the report specifications in Appendix D.

Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 47 Messages to Remember from Lecture Process development is an evolutionary process. 2. You must understand your process before you can properly define it. 3. Process development is a process that should also be defined, measured, and managed.