Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Correct Architecture Refinement

Published: 01 April 1995 Publication History

Abstract

A method is presented for the stepwise refinement of an abstract architecture into a relatively correct lower level architecture that is intended to implement it. A refinement step involves the application of a predefined refinement pattern that provides a routine solution to a standard architectural design problem. A pattern contains an abstract architecture schema and a more detailed schema intended to implement it. The two schemas usually contain very different architectural concepts (from different architectural styles). Once a refinement pattern is proven correct, instances of it can be used without proof in developing specific architectures. Individual refinements are compositional, permitting incremental development and local reasoning. A special correctness criterion is defined for the domain of software architecture, as well as an accompanying proof technique. A useful syntactic form of correct composition is defined. The main points are illustrated by means of familiar architectures for a compiler. A prototype implementation of the method has been used successfully in a real application.

References

[1]
M. Abadi and L. Lamport, “Composing specifications,” ACM Trans. Programming Languages and Syst., vol. 15, no. 1, pp. 73–132, Jan. 1993.
[2]
——, “Conjoining specifications,” Digital Syst. Res. Cen., Palo Alto, CA, Tech. Rep. 118, Dec. 1993.
[3]
R. Allen and D. Garlan, “Formalizing architectural connection,” in Proc. Sixteenth Int. Conf. Software Eng., May 1994, pp. 71–80.
[4]
E. Brinksma, B. Jonsson and F. Orava, “Refining interfaces of communicating systems,” in TAPSOFT '91:, Lecture Notes in Computer Science 494, S. Abramsky and T. S. E. Maibaum, Eds. New York: Springer-Verlag, 1991, pp. 297–312.
[5]
M. Broy, “Compositional refinement of interactive systems,” Digital Syst. Res. Cen., Palo Alto, CA, Tech. Rep. no. 89, July 1992.
[6]
H. B. Enderton, A Mathematical Introduction to Logic. New York: Academic, 1972.
[7]
T. DeMarco, Structured Analysis and System Specification. New York: Yourdan, 1979.
[8]
D. Garlan, R. Allen, and J. Ockerbloom, “Exploiting style in architectural design environments,” in Proc. ACM SIGSOFT '94: Symp. Foundations of Software Eng., New Orleans, LA, Dec. 1994.
[9]
D. Garlan and M. Shaw, “An introduction to software architecture,” in Advances in Software Engineering and Knowledge Engineering, Vol. 1, V. Ambriola and G. Tortora, Eds., World Scientific Publishing Company, 1993.
[10]
S. L. Gerhart, “Knowledge about programs,” in Proc. Int. Conf. Software Reliability, Los Angeles, CA, Apr. 1975, pp. 88–95.
[11]
C. A. R. Hoare, Communicating Sequential Processes. Englewood Cliffs, NJ: Prentice-Hall, 1985.
[12]
——, “Proof of correctness of data representations,” Acta Informatica, vol. 1, no. 4, pp. 271–281, 1972.
[13]
M. A. Jackson, Principles of Program Design. New York: Academic, 1975.
[14]
D. Katiyar, D. C. Luckham and J. Mitchell, “A type system for prototyping languages,” in Proc. 21st ACM Symp. Principles of Programming Languages, Portland, OR, 1994.
[15]
D. C. Luckham, J. Vera, D. Bryan, L. Augustin, and F. Belz, “Partial orderings of event sets and their application to prototyping concurrent, timed systems,” J. Syst. Software, vol. 21, no. 3, pp. 253–265, June 1993.
[16]
G. R. McClain, Ed., Open Systems Interconnection Handbook. New York: McGraw-Hill, 1991.
[17]
M. Moriconi and D. F. Hare, “The PegaSys system: Pictures as formal documentation of large programs,” ACM Trans. Programming Languages and Syst., vol. 8, no. 4, pp. 524–546, Oct. 1986.
[18]
M. Moriconi and X. Qian, “Correctness and composition of software architectures,” in Proc. ACM SIGSOFT '94: Symp. Foundations of Software Eng., New Orleans, LA, Dec. 1994.
[19]
R. Reiter, “Deductive question-answering on relational databases,” in Logic and Data Bases, H. Gallaire and J Minker, Eds. New York: Plenum, 1978, pp. 149–177.
[20]
E. Yourdan and L. L. Constantine, Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Englewood Cliffs, NJ: Prentice-Hall, 1979.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 21, Issue 4
Special issue on software architecture
April 1995
101 pages
ISSN:0098-5589
Issue’s Table of Contents

Publisher

IEEE Press

Publication History

Published: 01 April 1995

Author Tags

  1. Software architecture
  2. composition
  3. formal methods
  4. hierarchy
  5. refinement patterns
  6. relative correctness
  7. stepwise refinement

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)FlexPDA: A Flexible Programming Framework for Deep Learning AcceleratorsJournal of Computer Science and Technology10.1007/s11390-021-1406-937:5(1200-1220)Online publication date: 1-Oct-2022
  • (2018)A template for formalising reliable Acme-based software architectureInternational Journal of Computer Applications in Technology10.1504/IJCAT.2018.09002757:1(14-27)Online publication date: 1-Jan-2018
  • (2017)A multi-scale modeling approach for systems of systems architecturesACM SIGAPP Applied Computing Review10.1145/3161534.316153617:3(17-26)Online publication date: 14-Nov-2017
  • (2016)Software architecture constraint reuse-by-compositionFuture Generation Computer Systems10.1016/j.future.2016.02.00661:C(37-53)Online publication date: 1-Aug-2016
  • (2015)Using Architecture to Reason about Information SecurityACM Transactions on Information and System Security10.1145/282994918:2(1-30)Online publication date: 9-Dec-2015
  • (2014)Generation and validation of traces between requirements and architecture based on formal trace semanticsJournal of Systems and Software10.5555/2747015.274718188:C(112-137)Online publication date: 1-Feb-2014
  • (2014)Towards a theory of architectural stylesProceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2635868.2661683(823-825)Online publication date: 11-Nov-2014
  • (2014)Verifying component and connector models against crosscutting structural viewsProceedings of the 36th International Conference on Software Engineering10.1145/2568225.2568237(95-105)Online publication date: 31-May-2014
  • (2013)A classification and rationalization of model-based software developmentSoftware and Systems Modeling (SoSyM)10.1007/s10270-013-0355-312:4(669-678)Online publication date: 1-Oct-2013
  • (2012)Enhancing architecture-implementation conformance with change management and support for behavioral mappingProceedings of the 34th International Conference on Software Engineering10.5555/2337223.2337297(628-638)Online publication date: 2-Jun-2012
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media