You are required to read and agree to the below before accessing a full-text version of an article in the IDE article repository.

The full-text document you are about to access is subject to national and international copyright laws. In most cases (but not necessarily all) the consequence is that personal use is allowed given that the copyright owner is duly acknowledged and respected. All other use (typically) require an explicit permission (often in writing) by the copyright owner.

For the reports in this repository we specifically note that

  • the use of articles under IEEE copyright is governed by the IEEE copyright policy (available at http://www.ieee.org/web/publications/rights/copyrightpolicy.html)
  • the use of articles under ACM copyright is governed by the ACM copyright policy (available at http://www.acm.org/pubs/copyright_policy/)
  • technical reports and other articles issued by M‰lardalen University is free for personal use. For other use, the explicit consent of the authors is required
  • in other cases, please contact the copyright owner for detailed information

By accepting I agree to acknowledge and respect the rights of the copyright owner of the document I am about to access.

If you are in doubt, feel free to contact webmaster@ide.mdh.se

Predictability By Construction: Working the Architecture/Program Seam

Fulltext:


Authors:


Publication Type:

Doctoral Thesis


Abstract

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.

Bibtex

@phdthesis{Wallnau1969,
author = {Kurt Wallnau},
title = {Predictability By Construction: Working the Architecture/Program Seam},
number = {85},
month = {September},
year = {2010},
school = {M{\\"{a}}lardalen University},
url = {http://www.es.mdh.se/publications/1969-}
}