Case Tools
Case Tools
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.
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:
It should have Security of information. The information may be
visible/ changeable by authorised users only.
Version Control for various products
A utility to Import/Export information from various external
resources in a compatible fashion
The process of Backup and Recovery as it contains very precious
data.
On the basis of their activities, sometimes CASE tools are classified into the
following categories:
1. Upper CASE tools
2. Lower CASE tools
3. Integrated CASE tools.
Upper CASE: Upper CASE tools mainly focus on the analysis and design phases
of software development. They include tools for analysis modeling, reports and
forms generation.
Integrated CASE Tools: Integrated CASE tools help in providing linkages between
the lower and upper CASE tools. Thus creating a cohesive environment for
software development where programming by lower CASE tools may
automatically be generated for the design that has been developed in an upper
CASE tool.
The positioning of CASE tools in a Software Application development.
Need of CASE Tools
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.
Complex functionality
Many project management problems are not amenable to
automation. Hence, CASE tools cannot be used in such cases.
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.
The linked folder, topics, and change requests to an item can be
created and these items if needed can be accessed.
It should have reporting capabilities of information
Some of the features that you should look into project management software are:
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.
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.
Requirement Elicitation
A simple technique for requirements elicitation is to ask “WHY”.
CASE tools support a dynamic, yet intuitive, requirements capture and
management environment that supports content and its editing. Some of the
features available for requirement elicitation are:
Reusable requirements and design templates for various types of
system
Keeping track of important system attributes like performance and
security
It may also support a common vocabulary of user-defined terms
that can be automatically highlighted to be part of glossary.
Provide feature for the assessment of the quality of requirements
Separate glossary for ambiguous terms that can be flagged for
additional clarification.
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:
some of the models developed with the help of a sample CASE Tool.
Validation of Requirements
Managing Requirements
The requirements document should have visibility and help in controlling the
software delivery process. Some such features available in CASE tools are:
estimation of efforts and cost
specification of project schedule such as deadline, staff
requirements and other constraints
specification of quality parameters.
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.
In general, some CASE tools support the analysis and design phases of software
development. Some of the tools supported by the design tools are:
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 error-checking stages. They allow checks for completeness
and consistency of the 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.
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.
A State Model
CASE Repository
CASE Repository stores software system information. It includes analysis and
design specifications and helps in analysing these requirements and converting
them into program code and documentation. The following is the content of
CASE repository:
Data
Process
Models
Rules/ Constraints.
Models: Flow models, state models, data models, UML document etc.
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.
SOFTWARE TESTING
CASE tools may also support software testing. One of the basic issues of
testing is management, execution and reporting. Testing tools can help in
automated unit testing, functional regression testing, and performance testing. A
testing tool ensures the high visibility of test information, types of common
defects, and application readiness.
Quality in such tools is represented in all life cycle phases viz., Analysis/ Design
development, test and deployment. Quality is essential in all the life cycle
phases.
Analysis: A poor understanding of analysis requirements may lead to a poor
product. CASE tools help in reflecting the system requirements clearly,
accurately and in a simple way. CASE tools support the requirements analysis
and coverage also as we have modeling. CASE also helps in ambiguity resolution
of the requirements, thus making high quality requirements.
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 serious, if software has ten thousand lines of code you may still
have around 50 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.
Creation of configuration
This documents a software build and enables versions to be
reproduced on 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.