Title: Impact of design decisions on software quality
1Impact of design decisions on software quality
Wiebe Hordijk 12-10-2004
2Goal of this talk
- Show you my research framework
- Show you the status of my PhD study
- Discuss research design ideas
3Agenda
- Introduction
- Overall goal
- Theoretical framework
- Related work
- Research designs
4Introduction
Job
PhD study
daysPerWeek 3 title ICT Consultant
mutualBenefit
daysPerWeek 2 startDate 1-1-2004 plannedEndDat
e 1-1-2008
CurrentAssignment
Project
client Ministry of Foreign Affairs interesting
true
5Overall goal
To build software more predictably
To build better software
Why?
To investigate correlations between design
decisions and software quality
How?
Theoretical Framework
Empirical Research
Case study Research
Form
6Example 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.
7Theoretical framework
- Why?
- Reusable Rationale Blocks
- Design Space outline
- Quality Attributes Indicators
- Examples
8Theoretical framework Why
Refines
Enables
Research
Hyp. 1
Hyp. 2
Hyp. 3
Framework
Web Site
Help
Feedback
Projects
9(No Transcript)
10Quality Attributes
11Quality Indicator example
12Design Space outline example
13Effects Table example Data Storage
14Example Sorting Algorithm
15Framework Class Diagram
16Related work
- Patterns
- SEI Reasoning Frameworks
- Other design space theories
- QOC
- DRL
- IBIS
17Research designs
- Criteria
- Difficulties
- Possible solutions
- Examples
18Criteria 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
19Difficulties in this research
- Long chains of influence
- Many rival hypotheses
- Many variables
- Little data
- Finding data costs much effort
201 Reasoning Frameworks
- Described by SEI
- Deduct system properties from component
properties - Example Failure probability with n-version
majority voting
21Drawbacks of Reasoning Frameworks
- Only available for some attributes
- Do not start from design choices, but from
component properties
222 Intermediate indicators
- designProblem
- Domain Logic Structure
- option Domain Model
- option Table Module
- option Transaction Script
intermediateIndicator Analysis Effort
intermediateIndicator Lines of Code changed
qualityIndicator Change Effort
Hypothesis
23Intermediate 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.586R1 0.0513R2
0.0290R3 0.192R4 0.0774C
N. Nagappan, 2004
243 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
25Thank you!
Impact of design decisions on software quality
Wiebe Hordijk 12-10-2004