University of Southern California Center for Software Engineering CSE USC 3/11/02 1 New System Dynamics Models Ray Madachy USC-CSE Annual.

Slides:



Advertisements
Similar presentations
Basic SDLC Models.
Advertisements

Metrics and Databases for Agile Software Development Projects David I. Heimann IEEE Boston Reliability Society April 14, 2010.
Lecture # 2 : Process Models
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
CS487 Software Engineering Omar Aldawud
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
Software Process Models
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Chapter 2 Process Models
Rational Unified Process
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Project management.
University of Southern California Center for Software Engineering CSE USC COSYSMO: Constructive Systems Engineering Cost Model Barry Boehm, USC CSE Annual.
University of Southern California Center for Systems and Software Engineering ©USC-CSSE1 3/18/08 (Systems and) Software Process Dynamics Ray Madachy USC.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
CS 501: Software Engineering
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
University of Southern California Center for Software Engineering CSE USC 1 Software Schedule Analysis with Process Concurrence Ray Madachy
1 SOFTWARE PRODUCTION. 2 DEVELOPMENT Product Creation Means: Methods & Heuristics Measure of Success: Quality f(Fitness of Use) MANAGEMENT Efficient &
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
Project planning. Software project management Informal definition of management – The art of getting work done through other people Software project management.
Creating a Calibration Measurement Monitoring System for Many, Ever-changing, Complex Instruments John Wilson Software QA Engineer Agilent Technologies,
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
Introduction to Computer Technology
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 5 Slide 1 Chapter 5 Project Management Modified by Randy K. Smith.
CSI315 Web Technology and Applications
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.
1 CMPT 275 Software Engineering Software life cycle.
RUP Fundamentals - Instructor Notes
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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Prescriptive Process Models
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
Chapter 4 프로세스 모델 Process Models
Fundamentals of Information Systems, Second Edition 1 Systems Development.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Introduction to Software Development (Software Engineering - I)
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Prototyping Rapid software development to validate requirements.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
Software Project Management (SEWPZG622) BITS-WIPRO Collaborative Programme: MS in Software Engineering SECOND SEMESTER /1/ "The content of this.
The COCOMO model An empirical model based on project experience. Well-documented, ‘independent’ model which is not tied to a specific software vendor.
Software Model Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Project management.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Advanced Software Engineering Dr. Cheng
Software Development.
Lecture 3 Prescriptive Process Models
V-Shaped SDLC Model Lecture-6.
Software Process Models
Introduction to Software Engineering
Software life cycle models
Software Process Models
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Chapter 2 Process Models
Presentation transcript:

University of Southern California Center for Software Engineering CSE USC 3/11/02 1 New System Dynamics Models Ray Madachy USC-CSE Annual Research Review March 11, 2002

University of Southern California Center for Software Engineering CSE USC 3/11/02 2 Introduction Brief review of past student projects from CS599 Software Process Modeling Software process concurrence modeling Upgraded Brooks’s Law model to include team partitioning

University of Southern California Center for Software Engineering CSE USC 3/11/02 3 CS599 Software Process Modeling Student Term Projects Previously reported at 2000 USC-CSE Research Review: –Dynamics of architecture development process in MBASE inception and elaboration phases –COTS glue code development and integration dynamics –Reuse and language-level effects in software development –CMM-based software process improvement strategies –Application of RAD techniques to pre-IPO Internet companies See supplementary slides at end for some highlights

University of Southern California Center for Software Engineering CSE USC 3/11/02 4 Process Concurrence Introduction Process concurrence: the degree to which work becomes available based on work already accomplished –represents an opportunity for parallel work –a framework for modeling constraint mechanics Increasing task parallelism is a primary RAD opportunity to decrease cycle time 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 3/11/02 5 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 3/11/02 6 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 3/11/02 7 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. initial work on important segments; other segments have to wait until these are done region of parallel work less parallel integration

University of Southern California Center for Software Engineering CSE USC 3/11/02 8 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 slide –More concurrent processes have curves near the upper left axes, and less concurrent processes have curves near the lower and right axes. Tasks can be considered to be the number of function points demonstrable in their phase-native form

University of Southern California Center for Software Engineering CSE USC 3/11/02 9 External Concurrence Examples 1 - a linear lockstep concurrence in the development of totally independent modules 2 - S-shaped concurrence for new, complex development where an architecture core is needed first 3 - highly leveraged instantiation like COTS with some glue code development 4 - a slow design buildup between phases

University of Southern California Center for Software Engineering CSE USC 3/11/02 10 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 two slides contrast 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 3/11/02 11 Example: Human Resources Portal Development from Scratch

University of Southern California Center for Software Engineering CSE USC 3/11/02 12 Architecture Approach Comparison Opportunity for increased task parallelism and quicker elaboration

University of Southern California Center for Software Engineering CSE USC 3/11/02 13 Rayleigh Curve 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 3/11/02 14 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 3/11/02 15 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 3/11/02 16 Simulation Results and Sample Lessons flat Rayleigh COTS pulse at front N/A Critical customer decision delays slow progress - e.g. can’t design until timing performance specs are known Early stakeholder concurrence enables RAD - e.g. decision on architectural framework or COTS package

University of Southern California Center for Software Engineering CSE USC 3/11/02 17 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 3/11/02 18 Process Concurrence Conclusions 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

University of Southern California Center for Software Engineering CSE USC 3/11/02 19 Brooks’s Law Model Refinement Initial Brooks’s Law model covered communication overhead and training losses (see supplement at end) –applied at Litton to supplement mid-project staffing decisions The initial model (like Abdel-Hamid’s) assumed a single team and calibrated the communication overhead for a maximum team size of 30 people Per Fred Brooks: “A model must account for the fact that the work must be repartitioned, a process I have often found to be nontrivial.” We now have several solutions that model the mechanics of team re-partitioning as the overall staff grows up to 100 people

University of Southern California Center for Software Engineering CSE USC 3/11/02 20 Partitioning Modeling Details Communication overhead is split into two components: intra-team overhead and inter-team overhead Partitioned team size is a parameter or variable function Results verified against: –normalized data on productivity as a function of team size from Conte, Dunsmore and Shen 1986 –normalized COCOMO productivity as function of team size

University of Southern California Center for Software Engineering CSE USC 3/11/02 21 References USC-CSE Web Sites rcf.usc.edu/~madachy/spd –available models and portions of forthcoming book: Madachy R, Boehm B, Software Process Dynamics, IEEE Computer Society Press, Washington, D.C. sunset.usc.edu/classes/cs599_99 –CS599 Software Process Modeling Course (includes final reports and other system dynamics links) Madachy R, Tutorial: Cost/Schedule/Process Modeling via System Dynamics, Proceedings of the 14th International Forum on COCOMO and Software Cost Modeling, Los Angeles, CA, October 1999

University of Southern California Center for Software Engineering CSE USC 3/11/02 22 Supplements CS599 Student Project Summaries Initial Brooks’s Law Model

University of Southern California Center for Software Engineering CSE USC 3/11/02 23 MBASE Architecting Modeling Goals Investigate the dynamics of architecture development during early MBASE lifecyle phases Identify nature of process concurrence in early MBASE phases Understand impact of collaboration and prototyping on lifecycle parameters

University of Southern California Center for Software Engineering CSE USC 3/11/02 24 MBASE Architecting Model Features Schedule as independent variable Contains iterative process structures Covers sequentiality and concurrency –phases: requirements and architecture/design –activities: initial completion, coordination, quality assurance, iteration Demand-based resource allocation External and internal precedence constraints Calibrated to CS577A data

University of Southern California Center for Software Engineering CSE USC 3/11/02 25 MBASE Architecting Causal Loop

University of Southern California Center for Software Engineering CSE USC 3/11/02 26 COTS Modeling Goals To understand glue code development and COTS integration process and their correlation To determine efficient starting points of glue code development and COTS integration To calibrate the component parameters from COCOTS To analyze the impact of new parameters such as ratio of new and updated COTS component and number of COTS component

University of Southern California Center for Software Engineering CSE USC 3/11/02 27 COTS Model Causal Loop

University of Southern California Center for Software Engineering CSE USC 3/11/02 28 Reuse and High Level Language Modeling Goals –investigate project reuse dynamics productivity and effort of individual phases –understand effects of different language levels Model features –rework included –learning curve formulations –increased training for higher level languages

University of Southern California Center for Software Engineering CSE USC 3/11/02 29 Reuse Model Causal Diagram

University of Southern California Center for Software Engineering CSE USC 3/11/02 30 CMM-Based Software Process Improvement Study Goal: to research and produce a system dynamics model for software process improvement based on the CMM model Provides insights into complex process behavior –help evaluate different approaches Support planning, tracking and prediction –reduce costs –reduce cycle time –reduce defects Based on the scenario of a Xerox S/W development group working from just assessed as a Level 2 organization moving towards achieving Level 3.

University of Southern California Center for Software Engineering CSE USC 3/11/02 31 Process Improvement Model Structure

University of Southern California Center for Software Engineering CSE USC 3/11/02 32 Internet RAD Modeling Goal: investigate dynamics of rapid Internet development Surveyed companies to determine major impact factors Model features –modified evolutionary delivery lifecycle with small teams for schedule minimization –outsourcing considerations –defect detection and elimination short term and long-term feedback –includes Internet preview and web-site personalization –model sectors: Specification and Design, Outsourcing, Development, Integration and Personalization, Human Resources

University of Southern California Center for Software Engineering CSE USC 3/11/02 33 Brooks’ Law Modeling Example “Adding manpower to a late software project makes it later” [Brooks 75]. We will test the law using a simple model based on the following assumptions: –new personnel require training by experienced personnel to come up to speed –more people on a project entail more communication overhead –experienced personnel are more productive then new personnel, on average.

University of Southern California Center for Software Engineering CSE USC 3/11/02 34 Model Diagram and Equations

University of Southern California Center for Software Engineering CSE USC 3/11/02 35 Model Output for Varying Additions Sensitivity of Software Development Rate to Varying Personnel Allocation Pulses (1: no extra hiring, 2: add 5 people on 100th day, 3: add 10 people on 100th day) Days Function points/day