In information technology, a computer-aided system engineering (CASE) tool is software that assists with software development. The main purpose of using a CASE tool is to produce error-free, easy to maintain program code. It also allows users to develop software systems more quickly than would be possible without the use of such a tool.
CASE tools can be used throughout the information system development cycle, in areas as diverse as project management, business requirements analysis, system analysis and design, programming, and quality assurance. Though a CASE tool can be used in any of the development phases, the tools are most commonly used in the system design and computer programming phases. These tools began to be developed in the 1970s, building off trends from hardware manufacturing processes. Software development methodologies were not well-defined at that times, and CASE tools added structure and rigor to the software development process.
A CASE tool often allows developers to program visually as well as use Object Oriented Programming (OOP) methods. A Unified Markup Language (UML) design tool is an example of a CASE tool. System design documents and program code may be generated by the tool as part of the visual design, thus reducing development time and increasing accuracy of the documents and code.
Using a CASE tool for software development offers a number of benefits, particularly when implemented for each phase of the development cycle. Overall, the tools support structured system design and computer programming by using an organized methodology, which enhances reuse of design and code. With a full implementation of CASE tools, business requirements for the system are documented and traced, making it is easy to verify that each requirement of the system was implemented and tested. The finished system should have fewer programming errors. Though some phases of the development cycle may take longer, such as requirements analysis, the overall process should be faster than developing without the tools.
Several trends highlight the need for software development teams to gain these benefits. Computer applications are becoming increasingly complex, and so they are more difficult to understand and manage. More software development teams are dispersed geographically, and members may be working in different time zones and for different companies. High system development costs and a need for reduced time-to-market add pressure to the development process. With this mix of challenges, implementation of a CASE tool has become increasingly critical to a successful software development process.