Title :
Architecture-directed refinement
Author :
Roman, Gruia-Catalin ; Wilcox, C. Donald
Author_Institution :
Dept. of Comput. Sci., Washington Univ., St. Louis, MO, USA
fDate :
4/1/1994 12:00:00 AM
Abstract :
As critical computer systems continue to grow in complexity, the task of showing that they execute correctly becomes more difficult. For this reason, research in software engineering has turned to formal methods, i.e., rigorous approaches to demonstrating the correctness of software systems. Unfortunately, the formal methods currently used in the design of concurrent systems do not provide any mechanisms for specifying and reasoning about the mapping of software to hardware. As a result, architectural constraints, even though they play an important role in the design process, are left out of the formal framework. We show how to state architectural constraints in a formal notation, how to prove that programs are allocated correctly to the underlying architecture, and how to factor architectural considerations into a program derivation process which uses a mixture of specification and program refinements. The approach is illustrated by the derivation of two related programs that solve the same problem but are designed to work on distinct architectures
Keywords :
formal specification; parallel architectures; parallel programming; architectural constraints; architecture-directed refinement; concurrent systems; correctness; design process; formal methods; program derivation process; program refinements; software engineering; specification; Computer architecture; Concrete; Concurrent computing; Control systems; Formal specifications; Hardware; Process design; Software systems; Software testing; System testing;
Journal_Title :
Software Engineering, IEEE Transactions on