DocumentCode
780618
Title
Correct architecture refinement
Author
Moriconi, Mark ; Qian, Xiaolei ; Riemenschneider, R.A.
Author_Institution
Comput. Sci. Lab., SRI Int., Menlo Park, CA, USA
Volume
21
Issue
4
fYear
1995
fDate
4/1/1995 12:00:00 AM
Firstpage
356
Lastpage
372
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
Keywords
program compilers; program verification; software engineering; abstract architecture schema; architectural styles; compiler; compositional refinements; correct architecture refinement; correct composition; correctness criterion; formal methods; hierarchy; incremental development; local reasoning; predefined refinement pattern; proof technique; relatively correct lower-level architecture; software architecture; standard architectural design problem; stepwise refinement; syntactic form; Application software; Computer architecture; Computer science; Concrete; Data engineering; Integrated circuit synthesis; Prototypes; Software architecture; Software prototyping; Software systems;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/32.385972
Filename
385972
Link To Document