Skip to main content

CASE, CASE environment and CASE tools

Short answer

CASE supports software activities with tools: Upper CASE for analysis/design, Lower CASE for coding/testing, and Integrated CASE sharing data via a repository. A CASE environment integrates tools in a layered architecture—user interface, tools, object management, and shared repository—to enforce methods, ensure consistency, and boost productivity.

Explain Computer Aided Software Engineering (CASE), CASE environment and CASE tools?

Computer Aided Software Engineering (CASE)

CASE is the use of computer-based tools to support software development and maintenance activities, such as requirements analysis, modelling, design, coding, testing, project management and documentation. CASE tools automate routine work, enforce methods and standards, and keep all project information consistent.

CASE support is often grouped by life-cycle phase:

  • Upper CASE (front-end): supports early phases such as requirements, analysis and design (for example UML modelling tools).
  • Lower CASE (back-end): supports later phases such as coding, testing, debugging and maintenance (compilers, debuggers, test tools).
  • Integrated CASE (I-CASE): covers the whole life cycle and shares information between tools through a common repository.

Benefits: higher productivity, better quality, consistent documentation, easier maintenance and reuse, and better communication in the team.

CASE environment

A CASE environment is a collection of CASE tools, integrated so that they share information and work together, usually around a central repository. Using isolated tools is like having separate machines in a workshop; an integrated environment lets the output of one tool (for example a design model) flow directly into another (for example a code generator or documentation tool).

Building blocks of a CASE environment (Pressman):

  1. Environment architecture: the hardware platform and operating system (including network and database support).
  2. Portability services: a layer that lets tools move to different platforms without big changes.
  3. Integration framework: programs that let individual tools communicate, share data and present a common look and feel.
  4. CASE tools: the individual tools that do the actual work.

Integration architecture (layered model)

+------------------------------------------+
| User interface layer                     |
| (common look and feel, interface toolkit)|
+------------------------------------------+
| Tools layer                              |
| (CASE tools + tools management services) |
+------------------------------------------+
| Object management layer                  |
| (integration, configuration management)  |
+------------------------------------------+
| Shared repository layer                  |
| (CASE database, access control)          |
+------------------------------------------+
  • User interface layer: gives all tools the same style of menus and commands.
  • Tools layer: holds the tools and the services that control how they run and interact.
  • Object management layer: maps tools to the data model and provides configuration management of shared objects.
  • Shared repository layer: the CASE database that stores all models, documents, code and their relationships.

The repository is the heart of the environment. It provides data integrity, information sharing, data-tool integration, data-data integration (relationships between objects) and enforcement of methods.

Types of environments (Sommerville, Fuggetta's classification):

  • Tools: support individual process tasks, such as checking design consistency or compiling a program.
  • Workbenches: support a process phase, such as analysis and design or testing, using a set of integrated tools.
  • Environments: support all or a large part of the software process, combining several workbenches. Process-centred environments also include a model of the software process to guide users.

CASE tools

CASE tools can be classified by function (Pressman's taxonomy):

CategoryPurposeExample
Business process engineeringModel business information flowARIS
Process modelling and managementModel and manage the software processProcess modelling tools
Project planningEstimate effort, cost, scheduleMS Project
Risk analysisBuild a risk table and planRisk management tools
Requirements tracingTrace requirements to design and codeIBM DOORS
Metrics and managementCollect process and product metricsSonarQube
DocumentationProduce and manage documentsDoxygen
Quality assuranceCheck compliance with standardsStatic analysers
Configuration managementVersion and change controlGit, Jira
Analysis and designBuild analysis and design modelsStarUML, Enterprise Architect
Interface design and prototypingBuild UI prototypesFigma
ProgrammingEditors, compilers, debuggersEclipse, VS Code
TestingStatic, dynamic and test managementJUnit, Selenium
Re-engineeringReverse engineering and restructuringCode analysers

Example: in a hospital management project, the team writes requirements in a requirements tool, draws class diagrams in StarUML, generates code skeletons from them, stores code in Git, tracks bugs in Jira and runs automated tests with JUnit. When these tools share data through one repository, they form a CASE environment.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Software Engineering chapter 10 questions →