University of Southern California Center for Software Engineering CSE USC 1 Software Schedule Analysis with Process Concurrence Ray Madachy

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

S-Curves & the Zero Bug Bounce:
Resource Management §A resource can be a logical, such as a shared file, or physical, such as a CPU (a node of the distributed system). One of the functions.
Lecture # 2 : Process Models
CS487 Software Engineering Omar Aldawud
Information Resources Management January 23, 2001.
The Mythical Man-Month By: Zac Lippard CS 470. What is the “Man-Month”? This is the idea that men and months are interchangeable between each other. This.
Development of Parallel Simulator for Wireless WCDMA Network Hong Zhang Communication lab of HUT.
University of Southern California Center for Software Engineering C S E USC 02/16/05©USC-CSE1 LiGuo Huang Computer Science Department.
Basic guidelines for the creation of a DW Create corporate sponsors and plan thoroughly Determine a scalable architectural framework for the DW Identify.
Lecture 5 Themes in this session Building and managing the data warehouse Data extraction and transformation Technical issues.
University of Southern California Center for Software Engineering CSE USC System Dynamics Modeling of a Spiral Hybrid Process Ray Madachy, Barry Boehm,
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
University of Southern California Center for Systems and Software Engineering ©USC-CSSE1 3/18/08 (Systems and) Software Process Dynamics Ray Madachy USC.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
CS 501: Software Engineering
University of Southern California Center for Software Engineering CSE USC 3/11/02 1 New System Dynamics Models Ray Madachy USC-CSE Annual.
Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002.
Fundamentals of Information Systems, Second Edition
1 SOFTWARE PRODUCTION. 2 DEVELOPMENT Product Creation Means: Methods & Heuristics Measure of Success: Quality f(Fitness of Use) MANAGEMENT Efficient &
Development Processes and Product Planning
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Project planning. Software project management Informal definition of management – The art of getting work done through other people Software project management.
Introduction to Computer Technology
Architectural Design.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 2 The process Process, Methods, and Tools
Cost Behavior Analysis
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
ITEC224 Database Programming
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Software Project Management Lecture # 7. Outline Project Scheduling.
Project planning and Management By Fouad CSI1. MODULE III: PROJECT LIFE CYCLE Project Life Cycle A project life cycle is the series of phases that a project.
Performance Model & Tools Summary Hung-Hsun Su UPC Group, HCS lab 2/5/2004.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 March 01, 2005 Session 14.
Software Engineering Lecture 7: Scheduling & Tracking.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Geog 469 GIS Workshop Project Management.
13-January-2003cse LifeCycle © 2003 University of Washington1 Lifecycle CSE 403, Winter 2003 Software Engineering
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Chapter 4 프로세스 모델 Process Models
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 1: Introduction to Systems Analysis and Design Alan.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
CS 484 Designing Parallel Algorithms Designing a parallel algorithm is not easy. There is no recipe or magical ingredient Except creativity We can benefit.
Information System Project Management.  Some problems that org faced with IS dev efforts include schedule delays, cost overrun, less functionality than.
Software Project Management (SEWPZG622) BITS-WIPRO Collaborative Programme: MS in Software Engineering SECOND SEMESTER /1/ "The content of this.
Static Process Scheduling
The COCOMO model An empirical model based on project experience. Well-documented, ‘independent’ model which is not tied to a specific software vendor.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
An Architecture-Centric Approach for Software Engineering with Situated Multiagent Systems PhD Defense Danny Weyns Katholieke Universiteit Leuven October.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Project management. Software project management ■It is the discipline of planning, organizing and managing resources to bring about the successful completion.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
بشرا رجائی برآورد هزینه نرم افزار.
1 Agile COCOMO II: A Tool for Software Cost Estimating by Analogy Cyrus Fakharzadeh Barry Boehm Gunjan Sharman SCEA 2002 Presentation University of Southern.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Software life cycle models
Comparison between each special case
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Presentation transcript:

University of Southern California Center for Software Engineering CSE USC 1 Software Schedule Analysis with Process Concurrence Ray Madachy 16th International Forum on COCOMO and Software Cost Modeling October 25, 2001

University of Southern California Center for Software Engineering CSE USC 2 Outline Process concurrence introduction and examples Review of Rayleigh curve dynamics Integrating modeling perspectives Simulating work availability rates Conclusions and future work

University of Southern California Center for Software Engineering CSE USC 3 Introduction Increasing task parallelism is a primary RAD opportunity to decrease cycle time Process concurrence: the degree to which work becomes available based on work already accomplished –represents an opportunity for parallel work System dynamics is attractive to analyze schedule –can model task interdependencies on the critical path

University of Southern California Center for Software Engineering CSE USC 4 Process Concurrence Basics Process concurrence describes interdependency constraints between tasks –can be an internal constraint within a development stage or an external constraint between stages Describes how much work becomes available for completion based on previous work accomplished Accounts for realistic bottlenecks on work availability –vs. a model driven solely by resources and productivity that can finish in almost zero time with infinite resources Concurrence relations can be sequential, parallel, partially concurrent, or other dependent relationships

University of Southern California Center for Software Engineering CSE USC 5 Trying to Accelerate Software Production development rate software tasks restricted channel flow tasks to develop completed tasks personnel (partially adapted from Putnam 80)

University of Southern California Center for Software Engineering CSE USC 6 Limited Parallelism of Software Activities There are always sequential constraints independent of phase:  analysis and specification; figure out what you're supposed to do  development of something (architecture, design, code, test plan, etc.)  assessment: verify/validate/review/debug  possible rework recycle of previous activities These can't be done totally in parallel with more applied people –different people can perform the different activities with limited parallelism, but downstream activities will always have to follow some of the upstream

University of Southern California Center for Software Engineering CSE USC 7 Lessons from Brooks in The Mythical Man-Month Sequential constraints imply tasks cannot be partitioned. –applying more people has no effect on schedule Men and months are interchangeable only when tasks can be partitioned with no communication among them.

University of Southern California Center for Software Engineering CSE USC 8 Internal Process Concurrence Internal process concurrence relationship shows how much work can be done based on the percent of work already done. The relationships represent the degree of sequentiality or concurrence of the tasks aggregated within a phase.

University of Southern California Center for Software Engineering CSE USC 9 Linear and Non-linear Internal Process Concurrence region of parallel work less parallel integration initial work on important segments; other segments have to wait until these are done The overarching segments of software must be completed before other parts can begin. A lockstep relationship.

University of Southern California Center for Software Engineering CSE USC 10 Internal Concurrence Examples Simple conversion task where tasks can be partitioned with no communication Complex system development where tasks are dependent due to required inter-task communication.

University of Southern California Center for Software Engineering CSE USC 11 External Process Concurrence External process concurrence relationships describe constraints on amount of work that can be done in a downstream phase based on the percent of work released by an upstream phase. See examples on following slides –More concurrent processes have curves near the upper left axes, and less concurrent processes have curves near the lower and right axes.

University of Southern California Center for Software Engineering CSE USC 12 External Concurrence Examples  The downstream phase can progress independently of the upstream phase.  The entire downstream work is available to be completed with none of the upstream work released. No inter-phase relationship Sequential inter-phase relationship  None of the downstream phase can occur until the upstream phase is totally complete.  Like a theoretical waterfall development process where no phase can start until the previous phase is completed and verified.  Same as a finish-stop relationship in a critical path network.

University of Southern California Center for Software Engineering CSE USC 13 External Concurrence Examples  The downstream phase must wait until a major portion of the upstream phase is completed, then it can be completed in its entirety.  Like a start-start relationship in a critical path network.  The two phases can be implemented completely in parallel.  The downstream phase can be completed as soon as the upstream phase is started. Parallel inter-phase relationship Delayed start inter-phase relationship

University of Southern California Center for Software Engineering CSE USC 14 External Concurrence Examples  The downstream phase can progress at the same speed as the upstream phase; thus they are in lockstep with each other.  This relationship is not available in PERT/CPM methods. Lockstep inter-phase relationship Delay with partially concurrent inter- phase relationship  The downstream phase has to wait until a certain percentage of upstream tasks have been released, and then can proceed at varying degrees of concurrence per the graph.  Representative of much software development.  This relationship is not available in PERT/CPM.

University of Southern California Center for Software Engineering CSE USC 15 Roles Have Different Mental Models Differing perceptions upstream and downstream (Ford- Sterman 97) Group visualization helps identify disparities to improve communication and reduce conflict.

University of Southern California Center for Software Engineering CSE USC 16 Example: Human Resources Portal Development from Scratch

University of Southern California Center for Software Engineering CSE USC 17 RAD Modeling Example One way to achieve RAD is by having base software architectures tuned to application domains available for instantiation, standard database connectors and reuse. The next figure contrasts the concurrence of the HR portal development using two different development approaches 1) from scratch and 2) with an existing HR base architecture.

University of Southern California Center for Software Engineering CSE USC 18 Architecture Approach Comparison Opportunity for increased task parallelism and quicker elaboration

University of Southern California Center for Software Engineering CSE USC 19 Rayleigh Manpower Distribution Rayleigh curve is a popular model of personnel loading Assumptions: –Only a small number of people are needed at the beginning of a project to carry out planning and specification. As the project progresses and more detailed work is required, the number of staff builds up to a peak. After implementation and unit testing is complete, the number of staff required starts to fall until the product is delivered. –The number of people working on a project is approximately proportional to the number of problems ready for solution at that time

University of Southern California Center for Software Engineering CSE USC 20 Rayleigh Formula A Rayleigh curve describes the rate of change of manpower effort per the following first order differential equation: where C(t) is the cumulative effort at time t, K is the total effort, and p(t) is a learning function. The learning function is linear and can be represented by where a is a positive number. The manpower rate of change represents the number of people involved in development at any time (staffing profile). The a parameter is an important determinant of the peak personnel loading called the manpower buildup parameter.

University of Southern California Center for Software Engineering CSE USC 21 Rayleigh Model a=2 a=.5 a=.125 a=.25

University of Southern California Center for Software Engineering CSE USC 22 Rayleigh Applicability Rayleigh curve was based on initial studies of hardware research and development –projects resemble traditional waterfall development for unprecedented systems Rayleigh staffing assumptions don’t hold well for COTS, reuse, architecture-first design patterns, 4th generation languages or staff-constrained situations However an “ideal” staffing curve is proportional to the number of problems ready for solution (from a product perspective).

University of Southern California Center for Software Engineering CSE USC 23 Process Concurrence Advantages Process concurrence can model more realistic situations than the Rayleigh curve and produce varying dynamic profiles Can be used to show when and why Rayleigh curve modeling doesn’t apply Process concurrence provides a way of modeling constraints on making work available, and the work available to perform is the same dynamic that drives the Rayleigh curve –since the staff level is proportional to the problems (or specifications) ready to implement

University of Southern California Center for Software Engineering CSE USC 24 External Concurrence Model the time profile of tasks ready to elaborate ~ “ideal” staffing curve shape

University of Southern California Center for Software Engineering CSE USC 25 Elaboration Availability Simulation Results flat staffing Rayleigh COTS pulse at front

University of Southern California Center for Software Engineering CSE USC 26 Additional Considerations Process concurrence curves can be more precisely matched to the software system types COTS by definition should exhibit very high concurrence Mixed strategies produce combined concurrence relationships E.g. COTS first then new development:

University of Southern California Center for Software Engineering CSE USC 27 Conclusions and Future Work Process concurrence provides a robust modeling framework –a method to characterize different approaches in terms of their ability to parallelize or accelerate activities Gives a detailed view of project dynamics and is relevant for planning and improvement purposes –a means to collaborate between stakeholders to achieve a shared planning vision Can be used to derive optimal staffing profiles for different project situations More empirical data needed on concurrence relationships from the field for a variety of projects