Advancing the SwE Profession � Measuring Software Entropy� and additional opportunities
Robert Ferguson�rwferguson@gmail.com�(412)512-9585�
Introduction
Information Systems Concept
We often call software “information systems”.
Why do we care about information systems and why is information important?
What is the benefit of “information?”
Making Decisions
Both these methods apply either a measure or a utility to compare alternatives.
Quality Function Deployment (QFD)
“House of Quality
Analytic Hierarchy Process (AHP)
A Useful Definition for “Information”
We need information whenever we are making a decision.
We have information to support the decision when we have data satisfying these conditions:
The software itself probably makes few decisions, �So, we need to see how the information supporting the decisions is created.
Finding the “Information” in Software
Encoding Examples
Decision Algorithms
Research Goal #1�Case Studies: Can we detect all such algorithms in our code?
The Directed Graph of Information
Research Goal #2�Case Studies: Graph Notation and Complexity
Entropy Background�No machine is perfect. Friction loses energy and creates heat.
Any change to information content will require revision to encoding or decision-making algorithms.
The rate of these changes can be anticipated.
External programs and sources of data change on a regular, periodic basis. We can use that frequency to predict the general need for maintenance.
Customer changes to program use and value cannot be perfectly predicted but can be externally observed by watching for changes to their business practices and customer base. We can plan for a rate of change and price our product to satisfy it.
The probability of failure is based on a planned “period of performance” – say one year.
The Measure of Entropy
Research Goal #3�Rich set of questions
Additional Benefits from Information
Conclusion