1/24 impact of design decisions on software quality wiebe hordijk 12-10-2004
TRANSCRIPT
2/24
Goal of this talk
• Show you my research framework
• Show you the status of my PhD study
• Discuss research design ideas
4/24
Introduction
Job
daysPerWeek = 3title = “ICT Consultant”
Project
client = “Ministry of Foreign Affairs”interesting = true
CurrentAssignment
PhD study
daysPerWeek = 2startDate = 1-1-2004plannedEndDate = 1-1-2008
mutualBenefit
5/24
Overall goal
To investigate correlations between design decisions and software quality
To build better softwareTo build softwaremore predictably
Why?
TheoreticalFramework
EmpiricalResearch
Case studyResearch
How?
Form:
6/24
Example hypotheses
• Layered systems are more reusable than non-layered systems.
• Systems with a relational database are more reliable than systems with file storage.
• In the majority of systems above 500 function points, systems with a domain model have better changeability than systems with a transaction script.
7/24
Theoretical framework
• Why?
• Reusable Rationale Blocks
• Design Space outline
• Quality Attributes & Indicators
• Examples
8/24
Theoretical framework: Why
Research
Framework
Hyp. 1 Hyp. 2 Hyp. 3
Enables Refines
Web Site
Projects
Help Feedback
Problem P
Option O2
Quality Indicator QI A x
Option O1
Option O3
x x
x
x
x
x x
x
Hypothesis H1
Hypothesis H2 Quality Indicator QI B
Quality Indicator QI C
Support
Validity Context
Problem-specific evaluation
Reusable Rationale
Block
Scientific research
+
+
+
-
-
-
Sub-problems
Actual Context
Actual Problem
instance of
instance of
16/24
Related work
• Patterns
• SEI Reasoning Frameworks
• Other design space theories– QOC– DRL– IBIS
18/24
Criteria for research designs
• Construct validity, internal validity, external validity, reliability
• Conclusion must corroborate, reject or refine hypothesis
• Research must be feasible• Hypothesis must be:
– Non-trivial– Interesting to practitioners
19/24
Difficulties in this research
• Long chains of influence
• Many rival hypotheses
• Many variables
• Little data
• Finding data costs much effort
20/24
1: Reasoning Frameworks
• Described by SEI• Deduct system properties from component
properties• Example: Failure probability with n-version
majority voting:
21/24
Drawbacks of Reasoning Frameworks
• Only available for some attributes
• Do not start from design choices, but from component properties
22/24
2: Intermediate indicators« designProblem »Domain Logic Structure• «option» Domain Model• «option» Table Module• «option» Transaction Script
« qualityIndicator »Change EffortHypothesis
« intermediateIndicator »# Lines of Code changed
« intermediateIndicator »Analysis Effort
23/24
Intermediate Indicators for Reliability
• number of test cases/source lines of code (R1) ;
• number of test cases/number of requirements• (R2);• test lines of code/source lines of code (R3);• number of asserts/source lines of code (R4).• code coverage (C)• “Reliability = 0.669 + 1.586*R1 + 0.0513*R2 –
0.0290*R3 + 0.192*R4 – 0.0774*C”N. Nagappan, 2004
24/24
3: Rationale Harvesting
• Lots of consultants and system designers document rationale
• This rationale can be generalized into rationale blocks
• The support for this rationale must be documented
• This will only yield weak support