Contemporary software engineering practice overemphasizes the distinction of software design from software implementation, and designer (“software architect”) from implementor (“computer programmer”). In this contemporary meme, software architects are concerned with large-grained system structures, quality attributes that arise from these structures (security, availability, performance, etc.) and quality attribute tradeoff to satisfy conflicting stakeholder needs; programmers are concerned with low–level algorithms and data structures, program functionality, and with satisfying architectural intent. However, software is unique in that design and implementation are not cleanly separable. While architect and programmer may have many different design concerns, they also have many complementary and interacting concerns; their respective design practices must be well–integrated. Instead, contemporary architecture and programming practices are diverging. Architects are likely to regard programming as a routine production activity, while programmers are likely to regard architecture as a routine management activity; communication is hindered by a lack of shared vocabulary or appreciation of mutual concerns. Instead of effective integration, a gap has opened in software architecture and programming 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 achieving predictable runtime behavior. For a behavior to be predictable it must be described in a theory that must ultimately be consistent with basic theories of computation, and each such theory must have objective evidence to demonstrate that theory observations correspond to system observations. The validity of a theory will likely depend on invariants that can be expressed, and enforced, by means of theory–induced design rules. A system that satisfies the design rules of a theory is then regarded as having behavior that is predictable by construction with respect to that theory. Predictability by construction reduces uncertainty, and hence risk in design, and helps designers explain complex design decisions. The research reported here also defines prediction–enabled component technology (PECT) as a foundation technology to support the Seam, and demonstrates a prototype 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 have been developed, 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 behavior and deep systems expertise.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:mdh-10150 |
Date | January 2010 |
Creators | Wallnau, Kurt C. |
Publisher | Mälardalens högskola, Akademin för innovation, design och teknik, Västerås : Mälardalen University |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | English |
Type | Doctoral thesis, monograph, info:eu-repo/semantics/doctoralThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Relation | Mälardalen University Press Dissertations, 1651-4238 ; 85 |
Page generated in 0.0023 seconds