Case Tools
Case Tools
Case Tools
3.0 INTRODUCTION
Software Engineering is broadly associated with the development of quality software
with increasing use of software preparation standards and guidelines. Software is the
single most expensive item in a computer system as the cost of software during the
life time of a machine is equivalent to more than 95% of the total cost (including
hardware). Software Engineering requires a lot of data collection and information
generation. Since the computer itself is a very useful device as the information
processor, it may be a good idea to automate software engineering tasks. Computer
Aided Software Engineering (CASE) tools instill many software engineering tasks
with the help of information created using computer. CASE tools support software
engineering tasks and are available for different tasks of the Software Development
Life Cycle (SDLC). You have been introduced to CASE tools in Unit 10 of
MCS-014. This unit covers various aspects of these CASE tools and their
functionality for various phases of software development.
3.1 OBJECTIVES
After going through this unit, you should be able to:
define different kinds of CASE tools and the needs of the CASE tools;
describe the features of analysis, design, tools use in Software Engineering; and
identify software configuration management, and project management tool.
31
Advanced Software software development life cycle such as analysis, design, etc., including umbrella
Engineering
activities such as project management, configuration management etc. The CASE
tools in general, support standard software development methods such as Jackson
Structure programming or structured system analysis and design method. The CASE
tools follow a typical process for the development of the system, for example, for
developing data base application, CASE tools may support the following development
steps:
Creation of data flow and entity models
Establishing a relationship between requirements and models
Development of top-level design
Development of functional and process description
Development of test cases.
The CASE tools on the basis of the above specifications can help in automatically
generating data base tables, forms and reports, and user documentation.
Thus, the CASE tools –
support contemporary development of software systems, they may improve the
quality of the software
help in automating the software development life cycles by use of certain
standard methods
create an organsiation wide environment that minimizes repetitive work
help developers to concentrate more on top level and more creative problem-
solving tasks
support and improve the quality of documentation (Completeness and non-
ambiguity), testing process (provides automated checking), project management
and software maintenance.
Most of the CASE tools include one or more of the following types of tools:
Analysis tools
Repository to store all diagrams, forms, models and report definitions etc.
Diagramming tools
Screen and report generators
Code generators
Documentation generators
Reverse Engineering tools (that take source code as input and produce graphical
and textual representations of program design-level information)
Re-engineering tools (that take source code as the input analyse it and
interactively alters an existing system to improve quality and/or performance).
Some necessary features that must be supported by CASE tools in addition to the
above are:
Back up and
Recovery Prototyping
Tools
The
repository
Documentation tools Configuration
management
Analysis and
Integrated
Design Models
Screen designer CASE tool
Report designer
Code designer
Program editor
(Lower CASE tools)
Programmer’s
Source code
Tool kits
Compliers
Linkers
Interpreters
Debuggers
Machine
Instructions
33
Advanced Software 3.2.2 Need of CASE Tools
Engineering
The software development process is expensive and as the projects become more
complex in nature, the project implementations become more demanding and
expensive. The CASE tools provide the integrated homogenous environment for the
development of complex projects. They allow creating a shared repository of
information that can be utilised to minimise the software development time. The
CASE tools also provide the environment for monitoring and controlling projects such
that team leaders are able to manage the complex projects. Specifically, the CASE
tools are normally deployed to –
Reduce the cost as they automate many repetitive manual tasks.
Reduce development time of the project as they support standardisation and
avoid repetition and reuse.
Develop better quality complex projects as they provide greater consistency and
coordination.
Create good quality documentation
Create systems that are maintainable because of proper control of configuration
item that support traceability requirements.
But please note that CASE tools cannot do the following:
Complex functionality
Many project management problems are not amenable to automation. Hence,
CASE tools cannot be used in such cases.
35
Advanced Software Present CASE tools support Unified Model Language (UML).
Engineering
We will elaborate on the features of CASE tools for various stages of software
development process in coming sub-sections.
CASE and Web Engineering
CASE Tools are also very useful in the design, development and implementation of
web site development.
Web Engineering requires tools in many categories. They are:
Site content management tools
Site version control tools
Server management tool
Site optimisation tools
Web authoring and deployment tools
Site testing tools that include load and performance testing
Link checkers
Program checkers
Web security test tools.
A detailed discussion on these tools is beyond the scope of this unit. However, various
stages of development of a web project also follows the normal SDLC. These are
discussed in the subsequent sections.
One of the major risk factors that affect project schedule, budget and quality can be
defined as the ability to successfully elicit requirements to get a solution.
Statistically it has been seen that about 80% of rework in projects is due to
requirement defects.
How can a CASE tools help in effective Requirements Engineering (RE)
A good and effective requirements engineering tool needs to incorporate the best
practices of requirements definition and management.
The requirements Engineering approach should be highly iterative with the goal of
establishing managed and effective communication and collaboration.
Thus, a CASE tool must have the following features from the requirements
engineering viewpoint:
a dynamic, rich editing environment for team members to capture and manage
requirements
to create a centralised repository
to create task-driven workflow to do change management, and defect tracking.
But, what is a good process of Requirements Engineering for the CASE?
36
A simple four-step process for requirements engineering is given in Figure 3.3. Case Tools
Requirement
Elicitation
Requirements
Requirement Specification
Management Engineering
Validation
One of the major features supported by CASE tools for specification is that the design
and implementation should be traceable to requirements. A good way to do so is to
support a label or a tag to the requirements. In addition it should have the following
features:
37
Advanced Software What do we expect from the tool?
Engineering
It should allow development of a labeled requirements document that helps in
traceability of requirements.
It should allow both functional and non-functional requirements with related
quality attributes to be made.
We should be able to develop the associated models.
38
Validation of Requirements Case Tools
Most CASE Tools store requirement baselines, including type, status, priority and
change history of a software item. Such traceability may be bi-directional in nature.
Structured Chart.
Pogram Document Language (PDL).
Optimisation of ER and other models.
Flow charts.
Database design tools.
File design tools.
Some of functions that these diagrams tool support are simple but are very
communicative as far as representations of the information of the analysis and design
phases are concerned. CASE Tools also support standard representation of program
architecture; they also contain testing items related to the design and debugging.
Automatic support for maintenance is provided in case any of the requirements or
design items is modified using these diagrams. These CASE tools also support
39
Advanced Software error-checking stages. They allow checks for completeness and consistency of the
Engineering
required functional design types and consistency at various levels of cross referencing
among the documents consistency checking for these documents during the
requirements analysis and design phases.
Proper modeling helps in proper design architecture. All the CASE tools have strong
support for models. They also help in resolving conflicts and ambiguity among the
models and help in optimising them to create excellent design architecture and process
implementation.
But why do we need to model?
Can you understand code? If you understand it, then why would you call it code?
Models also help in better planning and reduction of risk as one can make top down
models, thus controlling complexity.
CASE tools provide continuously synchronized models and code, thus also help in
consistent understanding of information and documentation. It also helps other
software developers to understand the portions and relationships to portions other
team members are working on.
Help in management of source code through a more visual model.
40
Refactoring of the code allows a re-look and improvement of code, as modeling tools Case Tools
contains, thus are most continuously sychronised code and models suitable for
refactoring.
Modeling can help in creating good patterns including modeling patterns, language
specific patterns and basic patterns for common operations such as implementing
interfaces, etc.
Models also facilitate reverse engineering.
Given the task of maintaining software that was built by a team that has moved on to a
new project, there may be very little documentation available for the project.
The value of a modeling tool can be tremendous in such cases. The developer can take
the existing code, create models for it to understand the software. This can save a lot
of time for the developer.
A modeling tool should have been integrated with requirements tools, so that
architects see consistently unambiguous information.
Models: Flow models, state models, data models, UML document etc.
41
Advanced Software The CASE repository has two primary segments.
Engineering
1. Information repository
2. Data dictionary.
Information Repository includes information about an organisation’s business
information and its applications.
The CASE tools manage and control access to repository. Such information data can
also be stored in corporate database.
Data dictionary contains all the data definitions for all organisational applications,
along with cross-referencing if any.
Its entries have a standard definition, viz., element name and alias; textual description
of the element; related elements; element type and format; range of acceptable values
and other information unique to the proper processing of the element.
CASE Repository has additional advantages such that it assists the project
management tasks; aids in software reusability by enabling software modules in a
manner so that they can be used again.
Implementation tools and CASE
CASE tools provide the following features for implementation:
Diagramming tools enable visual representation of a system and its components
Allow representing process flows.
Help in implementing the data structures and program structures
Support automatic creation of system forms and reports.
Ready prototype generation.
Create of both technical and user documentation.
Create master templates used to verify documentation and its conformance to all
stages of the Software Development Life Cycle (SDLC).
Enable the automatic generation of program and database from the design
documents, diagrams, forms and reports stored in the repository.
Design: In design the prime focus of the quality starts with the testing of the
architecture of the software. CASE tools help in detecting, isolating and resolving
structure deficiency during the design process. On an average, a developer makes 100
to 150 errors for every thousand lines of code. Assuming only 5% of these errors are
43
Advanced Software serious, if software has ten thousand lines of code you may still have around 50
Engineering
serious coding errors in your system. One of the newer software development
processes called the Agile process helps in reducing such problems by asking the
developer to design their test items first before the coding.
A very good approach that is supported by CASE tools specially running time
development of C, C++, JAVA or .NET code is to provide a set of automatic run time
Language tools for development of reliable and high performance applications.
Testing: Functionality and performance testing is an integrated part of ensuring high
quality product. CASE support automated testing tools that help in testing the
software, thus, helping in improving the quality of testing. CASE tools enhance the
speed breadth and reliability of these design procedures. The design tools are very
important specifically in case of a web based system where scalability and reliability
are two major issues of design.
Deployment: After proper testing a software goes through the phase of deployment
where a system is made operational. A system failure should not result in a complete
failure of the software on restart. CASE tools also help in this particular place. In
addition, they support configuration management to help any kind of change thus to
be made in the software.
Quality is teamwork: It involves integration of workflow of various individuals. It
establishes a traceability and communication of information, all that can be achieved
by sharing workload documents keeping their configuration items.
44
This documents a software build and enables versions to be reproduced on Case Tools
demand
Configuration lookup scheme that enables only the changed files to be rebuilt.
Thus, entire application need not be rebuilt.
Dependency detection features even hidden dependencies, thus ensuring correct
behaviour of the software in partial rebuilding.
Ability for team members to share existing objects, thus saving time of the team
members.
Figure 3.8 shows a simple Configuration Management based rebuilding and
deployment process.
Approval Configuration
An SCM Completion status Test management
Environment Environment support for
automatic
deployment
Version Package
controlled ready for
software deployment
build
A software team involves designers, developers, and testers who work together for
delivering the best solution in the shortest time. Sometimes, these teams can be
geographically dispersed. Managing such a team may be a major change requests, and
task management.
The CASE tools help in effective management of teams and projects. Let us look into
some of the features of CASE in this respect:
Sharing and securing the project using the user name and passwords.
Allowing reading of project related documents
Allowing exclusive editing of documents
Linking the documents for sharing
Automatically communicative change requests to approver and all the persons
who are sharing the document.
You can read change requests for yourself and act on them accordingly.
Setting of revision labels so that versioning can be done.
Any addition or deletion of files from the repository is indicated.
Any updating of files in repository is automatically made available to users.
Conflicts among versions are reported and avoided
Differences among versions can be visualized.
45
Advanced Software The linked folder, topics, and change requests to an item can be created and
Engineering
these items if needed can be accessed.
It should have reporting capabilities of information
The project management tools provide the following benefits:
They allow control of projects through tasks so control complexity.
They allow tracking of project events and milestones.
The progress can be monitored using Gantt chart.
Web based project related information can be provided.
Automatic notifications and mails can be generated.
Some of the features that you should look into project management software are:
It should support drawing of schedules using PERT and Gantt chart.
It should be easy to use such that tasks can be entered easily, the links among
the tasks should be easily desirable.
Milestones and critical path should be highlighted.
It should support editing capabilities for adding/deleting/moving tasks.
Should map timeline information against a calendar.
Should allow marking of durations for each task graphically.
It should provide views tasks, resources, or resource usage by task.
Should be useable on network and should be able to share information through
network.
Check Your Progress 3
1) How do CASE tools support quality?
……………………………………………………………………………………
……………………………………………………………………………………
3.10 SUMMARY
This unit provides an introduction to CASE tools in action. The CASE tools are
primarily used to automate the stages of the Software Development Life Cycle. It
automates most of the tasks of software engineering such as requirements analysis,
modeling, designing, support for testing, and implementation, project management,
software configuration management, software quality management, etc. CASE tools
also help in traceability of requirements. They are useful tools for reverse engineering.
Presently, many CASE tools which integrate the complete Software Development Life
Cycle are available and can be deployed successfully in an organisation. These CASE
tools support standard methodology, provide flexibility of environment, strong
integration of various software development stages, reverse engineering, project
management, and configuration management under one single environment.
However, it is to be noted that all deployments of CASE have not succeeded.
46
Successful CASE tools are those which are simple to use support standard Case Tools
methodology, and reverse engineering and have a strong vendor support including
training.
3.11 SOLUTIONS/ANSWERS
Check Your Progress 1
1) CASE tools are needed for
Development of cost effective software
Minimisation of development time
Standardising the software development process
Avoiding repetition and maximising reuse
Development of better quality product
Collaborative developments etc.
2) CASE tools
Follow standard methodology
Allow integration of information
Allow traceability
Help improving of quality
Reduce cost
Support reverse engineering
Provide on-line help
Check for inconsistency of information
Provide tools for configuration management and project management.
47
Advanced Software the design phase they may point out any inconsistency, in the test phase they
Engineering
may point out the reliability of software, etc.
2) CASE tools control the baseline configuration items thus support a strict
change control such that any changes made during any life cycle phase results
in automatic flagging of the various documents of various stages of SDLC
affected by that change. They also help in version control.
3) No. They are only predictors of various failures to meet the schedule of the
project.
48