Kurt Wallnau                                                                                                                    defense
Kurt C. Wallnau                                                                           The defence

Predictability By Construction: Working the Architecture/Program Seam

 Main advisor: Ivica Crnkovic
 Co-advisors:   Magnus Larsson,  Hans Hansson
The opponent:   Clemens Szyperski
The committee: Philippe Kruchten, Bengt Jonsson, Raffaela Mirandola
Defense Mälardalen University, Room Alpha, Sept 30 2010, 14:00
Defense procedure
Documentation Comment
The final Manuscript, 2010-09-11

Contemporary software engineering practice overemphasizes the distinction of software design from
software implementation, and designer (“software architect”) from implementer (“computer programmer”).
In this contemporary meme, software architects are concerned with large-grained system structures, the
quality attributes that arise from these structures (security, availability, performance, etc.) and with tradeoffs
among quality attributes; programmers are concerned with low--level algorithms and data structures,
program functionality, and with satisfying architectural intent. However, software design and
implementation are not cleanly separable. While architect and programmer may have many different design
concerns, they also have many complementary concerns; their respective design practices must be better
integrated than is the case in contemporary practice.
The research reported here defines the Architecture/Program Seam (“the Seam”), a region of overlap in
software architecture and programming practice. The Seam emphasizes design concerns centered on
predictable runtime behaviour. For behaviour to be predictable it must be described by a computational
theory, and each such theory must provide objective evidence to demonstrate that theory predictions
correspond to system observations. The validity of a theory will likely depend on invariants that can be
expressed, and enforced, by means of design rules. A system that satisfies the design rules of a theory is then
regarded as having behaviour that is predictable by construction with respect to that theory.
The research reported here also introduces and defines prediction--enabled component technology (PECT) as a
foundation technology to support the Seam, and demonstrates a prototype PECT on industrial problems in
electric grid substation control, industrial robot control, and desktop streaming audio. The prototype PECT
extends a basic component technology of pure assembly (Pin) with theory extension points (reasoning
frameworks) that are used to achieve predictability by construction. Reasoning frameworks for real--time
performance and temporal--logic model checking are described, with statistical confidence intervals
providing evidence of predictive quality for the former, and code--embeddable proof certificates providing
evidence for the latter.
Finally, the research reported here defines the Seam itself as inducing a new kind of evolutionary design
problem, whose solutions require the integration of programming language theory, design theory,
specialized theories of system behaviour and deep systems expertise.