Over the past several years, software architecture representation and analysis has become an active area of research. However, most approaches to software architecture representation and analysis have been informal. We postulate that through formality, the term "architecture" can be precisely defined and important properties of systems, such as semantic compatibility between connected entities, can be investigated with precision. In this paper, we use category theory and algebraic specifications to develop a formal definition of architecture and show how architecture theory can be used in the construction of software specifications.
The Knowledge-Based Software Assistant (KBSA) program was initiated in 1984 following the publication of the Rome Laboratory technical report, "Report on a Knowledge-Based Software Assistant." This report described a new paradigm of software development where the tedious and mundane tasks of system development were automated. We have striven to implement and improve the paradigm described in that report. Specifically, we have concentrated on the definition and implementation of an integrated suite of tools designed to support the management, development, and evolution of complex software-intensive systems. This paper describes the KBSA paradigm through an exploration of four of its key facets: Project Management, Requirements Acquisition, Specification Elaboration, and Formal Development.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.