Context
Definition strategic Software Engineering (foundation, rigorous, empirical)
“SE is to manage risk”
“Is a certain SE technique X valuable/effective in a given development environment”
Reduce project-inherent risk to minimum while preserving value
Keep risk from spiraling out of control
Definition of risk and value
Risk is probability of loss
Value is probability of gain (utility units)
Framework for risk-value estimation (order of magnitude)
Risk reduction activities: QA, prototyping, planning using experience
Topics of interest:
SE process model, COTS, product lines (development without/with/for reuse)
Software development is the interaction of a set of stochastic processes (process variables have stochastic properties/probability distribution)
Overall goals
Establish basic principles and definition of key terms
Come up with models to formulate hypotheses for SE outcomes
What is the best you can do (even with absolute certainty? (effect of uncertainty, empirical baselines?)
Set goals for empirical studies in a systematic way which maximizes the usefulness of empirical results for SE.
Model on technical view of software development: techniques and how much, how long; effects on software attributes such as quality, schedule, effort (what else?)
Simulation with empirical data for parameter calibration and what-if scenarios
Translate model into decision rules
E.g., Parnas principle of information hiding for maximal flexibility: how much is enough/too much?
E.g., maximize reusability: estimate the upper limit for the likely number of new features in a system version
[Constraints/assumptions: Iterative development (product parts not 100% finished), configuration constraints for development process]
First steps
Merit of strategic planning: Defect rework schedule; sorting method -> value achieved from different strategies
Identify highest risk (instead of a random risky item) and deal with the highest risk items first
Application of quality assurance (inspection) for this end:
Estimate impact of systematic defect reduction (ideal) and based on empirical data (from inspection)
Current work
Simulation model and example cases as follow-up to ICSE paper
Paper structure:
Introduction
Model theory background (SE and other fields)
Our model and simulation strategy
Simulation results (what-if, empirical data?)
Discussion of results: Use in real projects, limitations
Prototype with Excel
Results
Further work
References
Schaum “Outline on feedback and control systems” (Dan)
Zendler A. 2001. A Preliminary Software Engineering Theory as Investigated by Published Experiments. Empirical Software Engineering: An International Journal 6: 161-180.
Lebague (what was that?)
Options for work, for which
the scope is not clear enough in current work
Different perspectives
e.g. flexibility of architecture: #of options vs. cost)
internal view
external view, scope of risk, fair games
Empirical data:
CeBase?
Models: MBase,
CoCoMo II, CoQualMo?
Quality of Service: Dynamic planning, ROI, robustness, variation, uncertainty of processes.
Domain-specific Software Engineering: Simplifiers and complicators, roles (project management, developers, QA): what is hard to do?
Often different technical/economic/people goals on project level (MBase, USC) and organizational level (Experience factory, FC-MD)
Is Martingale Theory (regarding processes without history) applicable somewhere in this context? -> calculate expected values.
Collaborators:
·
Dan Port
·
Stefan Biffl
· Michael Halling
· Rick Kazman (check)
ToDo:
· Common workspace on web (Dan) for exchanging data
· Literatur research -> related work (Terms: Strategic Software Engineering, Simulation, <what else>)
· Model consolidation
· Parameter calibration, probability distributions
· Monte Carlo simulation
· Extract case study cases from data (5 to 10 cases)