Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "University of Southern California Center for Software Engineering CSE USC 1 Software Schedule Analysis with Process Concurrence Ray Madachy"— Presentation transcript:

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

2 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

3 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

4 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

5 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)

6 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

7 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.

8 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.

9 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.

10 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.

11 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.

12 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.

13 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

14 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.

15 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.

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

17 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.

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

19 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

20 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.

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

22 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).

23 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

24 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

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

26 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:

27 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


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

Similar presentations


Ads by Google