Software Process Simulation Flashcards
Reasons for simulation
- Human abilities are unknowningly weak in some areas.
- Software development appears to be a complex system
- Software project managers are inevitably trained and assessed ‘on the job’
- The cost of simulation has plummeted in recent years
- Process improvement is recognized as a beneficial approach
- Other industries have reported very successful applications of management simulation
- Software projects are like many other businesses
- Good simulations can lead to good process automation
Generation of process alternatives
Input Parameters
Design
Coding
Test
Output Parameters
What is a system?
A collection of elements that operate together for a common purpose. It appears as a self-contained unit with a defined structure.
What is a model?
An idealized, simplified prepresentation of a real object, system, or other subset of reality, but still similar with respect to certain aspects. it supports the goal to better study certain properties of the actual subject.
What is a simulation?
Simulation of a system means to conduct experiments with a model, representing the real system also with respect to its dynamic behavior.
The simulation model can be manipulated in a way that often would be impossible, dangerous, too expensive, or too time consuming with the real system.
Simulation Modles
Computerized model that:
- Represents an abstraction of a (complex and) dynamic system
- Is represented and can be manipulated by a computer
Complexity may appear in form of:
- System uncertain and stochastic influences
- Dynamic (time dependent) system bejavior
- Feedback mechanisms
Simulating software processes helps to…
- Learn and improve
- Understand and train
- Forecast and plan
- Guide and control
Advantges of Simulation and Modeling
- Faster and less expensive compared to experiments with real systems (e.g. pilot projects)
- Focuses with respect to abstraction level and viewpoint
- Repeatable with change or hypothetical starting conditions and external influences
Disadvantages of Simulation and Modeling
- The validity of simulation results is difficult to judge (dependent on model validity, correct starting conditions, occurrence of external influences)
Limitations of Simulation and Modeling
- You can get dazzled by the precision of the numbers
- The illusion of control may be greater than the reality
- Noise in the system may suggest patterns that do not really exist
- Accurately quantifying non-numeric information can be difficult
What is Model Verification
- Checks the internal correctness (appropriateness) of the model
- Question: Has the model been constructed right?
- Requires expert knowledge about the modeling technique (role: modeling expert)
What is Model Validation?
- Checks the external correctness (appropriateness) of the model
- Question: Has the right model been constructed?
- Requires expert knowledge about the real system (role: system expert)
What is Model Scope?
- A phase or portion of th elife cycle (e.g. design phase, code inspection)
- A development project
- Multiple, concurrent projects (e.g. across a department or division)
- Product evolution
- Organizational strategy development
- Each of tehse categories can be subdivided according to
- Time span (short, medium, long)
- Breadth (less than one product/project team, one product/project team, multiple products/projects teams)
Continuous Simulation
- Ex. Water flow: If the water flow is treated as an aggregation, the flow can eb described a (time-) continuous way, i.e., by differential equations.
- A continuous simulation model represents a system for which the state variables change continuously over time.
Discrete Simulation
- Ex. Water flow: Is discrete if the characteristics and movements of individual molecules are important.
- A discrete simulation model is a model of a system which is represented by state variables that change instantaneously at certain points in time, i.e. when certain events.
Continuous Models Advantages
- Capture the stability or instability of feedback loops
- Impact factors like experience, fatigue schedule pressure, fatigure are easier to model.
Continuous Model Disadvantages
- Sequential activities in the process are only possible to model with additional mechanisms
- All items (e.g. modules, developers) are equal
- Distributions over properties of items are difficult to model.
Discrete Event Model Advantages
- Entities can contain unique values for attributes
- Usage of distributions for code complexity, programmer capability, size, # of defects, …
Discrete Event Model Disadvantages
- Continuous variables are only updated at the event times
- Computation errors may lead to instability in feedback loops
- Parallel activities are difficult to model.
System Dynamics
- The basic concept of System Dynamics is Systems Thinking (systems oriented / holistic / network oriented thinking)
- Systems Thinking is characterized by
- Thinking in cause-effect mechanisms instead of static correlations (white-box vs. black-box)
- Considering multi-casual conjunctions (no mono-casual thinking)
- Taking feedback into account
- Considering the dynamic (not only the static) complexity
- Considering reality to be a closed system.
- A graphic modeling language makes modeling easy
- Mature tool support is available at relative low costs
Simulations to support multi-criteria decision-making
In the tension between cost, time and quality; simulations help in mastering processes and process improvement.