Case Tools

Since the early days of writing software, there has been an awareness of the need for automated tools to help the software developer. Initially the focus was on program support tools such as document production, translators, compilers, assemblers and so on. As computers became more powerful and the software that ran on them grew larger and more complex, powerful tools with increased functionality were therefore required.

Learning Intentions and Success Criteria

Learning Intentions

Success Criteria

In this tutorial I am going to learn :
  • how to ...
By the end of the tutorial I will be able to :
  • ...

Upper-Case Tools

During the initial stages of the system development, analysts are required to determine system requirements, and analyse this information to design the most effective system possible. This task is usually accomplished by an analyst using graphical methods such as data flow diagramming and structure charting techniques. Manual completion of these tasks makes it very tedious to have to redraw some of the diagrams each time a change is made to the system, for example. However small the change that is made to one diagram, this will probably require many changes to be made throughout all the existing documentation.

Computerised CASE tools would allow for these types of changes to be made automatically, very quickly and accurately. Information shared throughout the flowcharts and documentation stages would then be checked against each other to ensure that there is agreement.

In order to overcome discrepancies with producing and maintaining proper documentation, many firms rely on automated data dictionaries. These data processing system products are specifically designed to hold, maintain, and organise analytical information; they come equipped with flexible facilities for producing a wide variety of reports on the dictionary contents.

A Data dictionary is an automated tool for collecting and organising the detailed information about system components. Data dictionaries maintain facilities to document data elements, records, programs, systems, files, users, and other system components. A dictionary will also have facilities to cross-reference all system components to each other and contain details of:
  • systems environment;
  • audit trails;
  • reports;
  • forms;
  • functions;
  • processes.

By using upper CASE tools developers can now be much more productive in the analysis and design stages of the development compared to using conventional paper and pen methods.

One of the ultimate goals of upper CASE tools is to refine the requirements analysis and design specification process to such an extent that most of the application code, around 75%, could be generated automatically. This would be a further enhancement to give analysts and designers more time in the initial stages of the development.

Lower-Case Tools

Lower CASE tools focus on the architecture of the system and its implementation and maintenance. These tools are also effective in helping with the generation of the program code and are referred to as code generators.
A code generator is a tool that enables automatic generation of program code directly from analysis and design specifications including design documents, structure diagrams and reports. Generating code this way ensures that all the code is produced with identical naming conventions, documentation etc. No two developers could make that guarantee!

Code generators also produce a high quality of code that is easy to maintain and is portable to different hardware platforms. They also have the feature that they are able to interact with the upper CASE tools. Information produced by the upper CASE tools can be accessed using the code generators to aid in the development of the code.

A further enhancement is the use of document generators.
A document generator is a CASE tool that generates technical documentation from source code comments. If this were to be done manually then problems would exist by different programmers using differing formats for their comments. However by using a CASE code generator the comments will automatically conform to a standard format.

Advantages of Case Tools

  1. Increased SpeedCASE Tools provide automation and reduce the time to complete many tasks, especially those involving Diagramming and associated specifications at the design stage.

  2. Increased accuracyCASE Tools can provide ongoing debugging and error checking which is vital for early defect removal. Less effort and time are consumed if corrections are made at an early stage of the development process such as the design stage.

  3. Reduced costs and maintenanceAs a result of better design, better analysis and automatic code generation, automatic testing and debugging, overall systems quality improves. There is also better documentation. Thus, the net effort and cost involved with maintenance is reduced. Also, more resources can be devoted to new systems development.

  4. Better DocumentationBy using CASE Tools, vast amounts of documentation are produced along the way. Most tools have provision for comments and notes on systems development and maintenance. An important aspect of this is the CASE Repository or encyclopaedia. This takes the form of a developers' relational database which is regularly updated with information relating to software development projects. Such information could include specifications, codes and definitions that can be re-generated to form multiple diagrams.

  5. Better communicationBy using a set of CASE tools, information generated from one tool can be passed to other tools which, in turn, will use the information to complete its task, and then pass the new information back to the system to be used by other tools. This allows for important information to be passed efficiently and effectively between planning tools. Results of one stage should be available to another resulting in 'forward' integration.

Exam Questions

Embed Document here


  • Please make a list of essential key-points here


  • upload files here