Abstract
This paper presents a practical approach to architecture-based design of computer based systems. The approach is discussed in relation to other existing methods of performing discovery, abstraction, refinement and evolution of systems? architectures. It has also been shown that this approach can be supported by formal methods of refinement. The approach assists the designer in maintaining a strict focus of reasoning about the architecture and its qualities.