Skip to content
UoL CS Notes

Introduction to CASE Tools

COMP285 Lectures

Computer-aided software engineering is the application of computer-assisted tools and methods in software development to ensure a high-quality and defect-free software.

Why Tools are Used

Software tools are used for the following reasons:

  • Productivity Cost
  • Accuracy
  • Quality
  • Safety

When CASE is used properly:

  • You will become a better software engineer.
  • You will work better with others.
  • Your code will be tested more.
  • You will do things you wouldn’t normally bother to do.
    • Refactoring code.
  • Your life in software engineering will be slightly less stressful.

CASE tools can be:

  • General Purpose:
    • Build and test tools.
      • Language agnostic.
  • Specialist:
    • Load testing
    • DoS tool
      • Low Orbit Ion Cannon

Evolution of CASE

  1. Machine Language
    • No real CASE.
  2. Assembly Language
    • Still no checks
    • All abstraction in the programmer’s head.
  3. High Level Language Compilers
    • Abstractions are part of the language.
    • Code is capable of:
      • Being structured.
      • Being tested as part of compilation.
  4. Interpreters

    Programs can be:

    • Source Code Based
      • Fast turnaround time.
      • No pre-compile check.
      • Only checks running code.
    • Intermediary Code Based
      • Slower turnaround time.
      • Supports pre-compile checks.
      • Allow for multiple languages to be converted to the same intermediate language.

CASE Tools

Programming Tools

  1. Machine Language
  2. Assembler
  3. Compiler
  4. Interpreter
  • IDEs
    • Editing tools.
  • Refactoring
  • Tool Integration

Testing & Debugging Tools

  • Debuggers
    • Generally focused on specific programming languages.
  • Logic Analysers
  • Profiler
    • View where time is spend running your code.
  • Logger
  • Testing Framework
  • Stress & Security Testers

Management Process & Collaboration Tools

  • Project Scheduler
  • Bug Management
  • Document source code version control.
  • Wikis
  • Cost estimation tools.

Design Development Tools

  • UML Editors
  • Code Generators
  • Reverse Engineering
  • Database ORM Tools
    • Allow you to test on database object data.