Although benefits can be derived from individual CASE tools that address separate software engineering activities, the real power of CASE c...
Although benefits can be derived from individual CASE tools that address separate software engineering activities, the real power of CASE can be achieved only through integration. The benefits of integrated CASE (I-CASE) include (1) smooth transfer of information (models, programs, documents, data) from one tool to another and one software engineering step to the next; (2) a reduction in the effort required to perform umbrella activities such as software configuration management, quality assurance, and document production; (3) an increase in project control that is achieved through better planning, monitoring, and communication; and (4) improved coordination among staff members who are working on a large software project.
But I-CASE also poses significant challenges. Integration demands consistent representations of software engineering information, standardized interfaces between tools, a homogeneous mechanism for communication between the software engineer and each tool, and an effective approach that will enable I-CASE to move among various hardware platforms and operating systems. Comprehensive I-CASE environments have emerged more slowly than originally expected. However, integrated environments do exist and are becoming more powerful as the years pass.
The term integration implies both combination and closure. I-CASE combines a variety of different tools and a spectrum of information in a way that enables closure of communication among tools, between people, and across the software process. Tools are integrated so that software engineering information is available to each tool that needs it; usage is integrated so that a common look and feel is provided for all tools; a development philosophy is integrated, implying a standardized software engineering approach that applies modern practice and proven methods.
To define integration in the context of the software engineering process, it is necessary to establish a set of requirements for I-CASE: An integrated CASE environment should
• Provide a mechanism for sharing software engineering information among all tools contained in the environment.
• Enable a change to one item of information to be tracked to other related information items.
• Provide version control and overall configuration management for all software engineering information.
• Allow direct, nonsequential access to any tool contained in the environment.
• Establish automated support for the software process model that has been chosen, integrating CASE tools and software configuration items (SCIs) into a standard work breakdown structure.
• Enable the users of each tool to experience a consistent look and feel at the human/computer interface.
• Support communication among software engineers.
• Collect both management and technical metrics that can be used to improve the process and the product.
• Enable a change to one item of information to be tracked to other related information items.
• Provide version control and overall configuration management for all software engineering information.
• Allow direct, nonsequential access to any tool contained in the environment.
• Establish automated support for the software process model that has been chosen, integrating CASE tools and software configuration items (SCIs) into a standard work breakdown structure.
• Enable the users of each tool to experience a consistent look and feel at the human/computer interface.
• Support communication among software engineers.
• Collect both management and technical metrics that can be used to improve the process and the product.
To achieve these requirements, each of the building blocks of a CASE architecture must fit together in a seamless fashion. The foundation building blocks— environment architecture, hardware platform, and operating system—must be "joined" through a set of portability services to an integration framework that achieves these requirements.