Computer-aided software engineering (CASE) is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products.It also refers to methods for the development of information systems together with automated tools that can be used in the software development process.
•Requirements – Surveying tools, analyzing tools
•Designing – Modelling tools
•Development – Code editors, frameworks, libraries, plugins, compilers
•Testing – test automation tools, quality assurance tools
•Implementation – VMs, containers/dockers, servers •Maintenance – bug trackers, analytical tools
CASE classified into 3 categories…
- Tasks: support only specific tasks in the software process.
- Workbenches: support only one or a few activities.
- Environments: support (a large part of) the software process.
Tools
CASE tools support specific tasks in the software development life-cycle. They can be divided into the following categories:
- Business and Analysis modeling. Graphical modeling tools. E.g., E/R modeling, object modeling, etc.
- Development. Design and construction phases of the life-cycle. Debugging environments. E.g.,GNU Debugger.
- Verification and validation. Analyze code and specifications for correctness, performance, etc.
- Configuration management. Control the check-in and check-out of repository objects and files.
- Metrics and measurement. Analyze code for complexity, molecularity performance, etc.
- Project management. Manage project plans, task assignments, scheduling.
Workbenches
Workbenches integrate two or more CASE tools and support specific software-process activities. Hence they achieve:
a homogeneous and consistent interface (presentation integration).
seamless integration of tools and tool chains (control and data integration).
An example workbench is Microsoft’s Visual Basic programming environment. It incorporates several development tools: a GUI builder, smart code editor, debugger, etc.
Environments
An environment is a collection of CASE tools or workbenches that attempts to support the complete software process. This contrasts with tools that focus on one specific task or a specific part of the life-cycle. CASE environments are classified by Fuggetta as follows:
- Tool-kits
- Fourth generation
- Language-centered
- Integrated
- Process-centered
In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench.
