2. 2
Computer Aided Software
Engineering (CASE)
CASE tools help in
software development
and maintenance.
CASE is a much talked about
topic in software industries.
3. 3
CASE and Its Scope
CASE tool is a generic term:
denotes any form of automated
support for software
engineering.
In a more restrictive sense:
a CASE tool automates some
software development activity.
4. 4
CASE and Its Scope
Some CASE tools assist in phase-
related tasks:
specification, structured analysis,
design, coding, testing, etc.
Other tools help non-phase
activities:
project management and
configuration management.
5. 5
Objectives of CASE
To increase productivity
To help produce better
quality software at lower
cost.
6. 6
CASE Environment
Although individual CASE
tools are useful:
true power of a tool set can be
realized only when:
all CASE tools are integrated
together.
7. 7
CASE Environment
Tools covering different stages
of life cycle share information
(data):
they should integrate through
some central repository (store)
consistent view of development
information.
8. 8
CASE Environment
The central repository is the
data dictionary:
contains definition of all
composite and elementary
data items.
through this repository all
CASE tools share information.
9. 9
Programming Environment
A CASE environment helps:
automate step-by-step
methodologies.
In contrast to CASE environment:
a programming environment
denotes tools supporting coding
phase alone.
10. 10
Schematic representation of
architecture of CASE environment
Central
Repository
Consistency
-
checker
Project
Manageme
nt
Testing
Structured
Design
Structured
Analysis
Configurati
on
Manageme
nt
Document
Generation
Coding
Support
11. 11
Benefits of CASE
A key benefit of using CASE
environment:
cost saving through all
developmental phases.
Studies carried out to measure
the impact of CASE usage:
cost saving between 30% to 40%.
12. 12
Benefits of CASE
Use of CASE tools leads to
improvements in quality:
becomes easy to iterate through
different software development
phases.
chances of human error is reduced.
CASE tools help produce higher
quality and consistent documents.
13. 13
Benefits of CASE
Data relating to a software
product are maintained in a
central repository:
redundancy in the stored data is
reduced.
chances of inconsistent
documentation is reduced.
14. 14
Benefits of CASE
CASE tools take drudgery out
from software engineers’ work:
engineers need not manually
check balancing of the DFDs
easily draw diagrams and
produce documentation, etc.
15. 15
Benefits of CASE
CASE tools lead to cost saving in
software maintenance effort:
traceability and consistency checks,
systematic information capture
during various development phases.
16. 16
Benefits of CASE
Introduction of a CASE
environment:
impacts the style of
working of engineers.
makes them oriented
towards structured and
orderly approach.
17. 17
Prototyping Support
Prototyping CASE tool:
often used in graphical
user interface (GUI)
development,
supports creating a GUI
using a graphics editor.
18. 18
Prototyping Support
The user should be allowed to
define:
data entry forms, menus and
controls.
It should integrate with the data
dictionary of a CASE environment.
19. 19
Structured Analysis and
Design
A CASE tool should:
support some standard structured
analysis and design technique.
support easy creation of analysis and
design diagrams.
should provide easy navigation
through different levels of design and
analysis diagrams.
20. 20
Structured Analysis and
Design
The tool must support
completeness and consistency
checking.
The tool should disallow
inconsistent operations:
but, it is difficult to implement
such a feature.
21. 21
Code Generation
As far as code generation is
concerned:
expectations from a CASE tool is low.
The CASE tool should support:
generation of module skeletons in
one or more popular languages.
Another reasonable requirement is
traceability from source code to
design.
22. 22
Code Generation
It should automatically
generate header information:
copyright messages,
brief description of the module,
author name and date of
creation, etc.
23. 23
Code Generation
The tool should generate data
records or structures automatically:
using data dictionary definitions.
It should generate database tables
for relational database
management systems.
24. 24
Code Generation
The tool should generate code
for user interface from the
prototype:
for X window and MS window
based applications.
25. 25
Testing Support
Static and dynamic program
analysis of programs.
It should generate test reports
in ASCII format:
which can be directly imported
into the test plan document.
26. 26
Desirable Features
The tool should work satisfactorily
when many users work simultaneously.
The tool should support windowing
interface:
Enable the users to see more than one
diagram at a time.
Facilitate navigation and switching from one
part to the other.
27. 27
Documentation Support
The deliverable documents:
should be able to incorporate text
and diagrams from the central
repository.
help in producing up-to-date
documentation.
28. 28
Desirable Features
The CASE tool should integrate
with commercially available desk-top
publishing packages.
It should be possible to export text,
graphics, tables, data dictionary
reports:
to DTP packages in standard formats
such as PostScript.
29. 29
Project Management
It should support collecting,
storing, and analyzing information
on the software project's progress:
such as the estimated task duration,
scheduled and actual task start,
completion date, dates and results of
the reviews, etc.
30. 30
External Interface
The tool should allow exchange of
information for reusability of design.
The information exported by the tool
should preferably be in ASCII format.
The data dictionary should provide
a programming interface to access
information.
31. 31
Reverse Engineering Support
The tool should support:
generating structure chart,
DFD, and data dictionary
from source code.
should populate the data
dictionary from source code.
32. 32
Data Dictionary Interface
Data dictionary interface should provide
viewing and updating the data definitions.
print facility to obtain hard copy of the
viewed screens.
analysis reports like cross-referencing,
impact analysis, etc.
it should support a query language.
33. 33
Tutorial and Help
Successful use of CASE tools:
depends on the users’ capability
to effectively use all supported
features.
For the first time users:
a computer animated tutorial is
very important.
34. 34
Tutorial and Help
The tutorial should not be limited to
teaching the user interface part
only:
The tutorial should logically classify
and cover all techniques and facilities.
The tutorial should be supported by
proper documentation and animation.
35. 35
Towards Next Generation
CASE Tool
An important feature of next
generation CASE tools:
be able to support any methodology.
Necessity of a CASE administrator
for every organization:
who would tailor the CASE environment
to a particular methodology.
37. 37
The user should be allowed to:
integrate many different tools
into one environment.
It is highly unlikely that any one
vendor will be able to deliver a
total solution.
Towards Next Generation
CASE Tool
38. 38
A preferred tool would support
tune up:
user would act as a system
integrator.
This is possible only if some data
dictionary standard emerges.
Towards Next Generation
CASE Tool
39. 39
Customization Support
The user should be allowed to define new
types of objects and connections.
This facility may be used to build some
special methodologies.
Ideally it should be possible to specify the
rules of a methodology to a rule engine:
for carrying out the necessary consistency
checks.