Definition/ Use |
Automated software engineering (also called knowledge-based software engineering) attempts to take process automation to its limits by assuming that process specifications can be used directly to develop software systems, and to configure development environments to support the production tasks at hand. The common approach is to seek to automate some form of the continuous transformation model /Bauer, 1976/, /Balzer, 1985a/. In turn, this implies an automated environment capable of recording the formalized development of operational specifications, successively transforming and refining these specifications into an implemented system, assimilating maintenance requests by incorporating the new/enhanced specifications into the current development derivation, then replaying the revised development toward implementation /Balzer, 1983/, /Balzer, 1985a/. However, current progress has been limited to demonstrating such mechanisms and specifications on software coding, maintenance, project communication and management tasks /Balzer, 1983/, /Balzer, 1985a/, /Sathi, 1985/, /Mi, 1990/, /Scacchi, 1997/, as well as to software component catalogs and formal models of software development processes /Ould, 1988/, /Wood M.,1988/, /Mi, 1996/. Last, recent research has shown how to combine different life cycle, product, and production process models within a process-driven framework that integrates both conventional and knowledge-based software engineering tools and environments /Garg, 1994/, /Scacchi, 1997/.
|