0% found this document useful (0 votes)
59 views

System Analysis and Design TCS10303

- Computer-aided software engineering (CASE) tools provide automated assistance for software development with the goals of reducing time/cost and improving quality. CASE tools support activities like requirements analysis, design, implementation, testing and maintenance. - CASE tools can be divided into categories like upper CASE for planning/analysis, lower CASE for implementation/testing, and integrated CASE for the entire software development lifecycle. They integrate information through a central repository. - CASE tools are used in various software development methodologies and by systems developers for various activities like requirements analysis, design, programming, testing and maintenance. They play an important role in helping complete tasks efficiently.

Uploaded by

Mohd Shafiq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

System Analysis and Design TCS10303

- Computer-aided software engineering (CASE) tools provide automated assistance for software development with the goals of reducing time/cost and improving quality. CASE tools support activities like requirements analysis, design, implementation, testing and maintenance. - CASE tools can be divided into categories like upper CASE for planning/analysis, lower CASE for implementation/testing, and integrated CASE for the entire software development lifecycle. They integrate information through a central repository. - CASE tools are used in various software development methodologies and by systems developers for various activities like requirements analysis, design, programming, testing and maintenance. They play an important role in helping complete tasks efficiently.

Uploaded by

Mohd Shafiq
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

SYSTEM ANALYSIS AND DESIGN

TCS10303

Introduction
Computer-Aided Software Engineering (CASE) technologies are tools that
provide automated assistance for software development. The goal of
introducing CASE tools is the reduction of the time and cost of
software development and the enhancement of the quality of the systems
developed. The interest in CASE tools and environments is based on
expectations about increasing productivity, improving product quality,
facilitating maintenance, and making software engineers' task less
odious and more enjoyable. CASE is the use of computer-based support
in the software development process; a CASE tool is a computer-based
product aimed at supporting one or more software engineering
activities within a software development process; a CASE environment
is a collection of CASE tools and other components together with an
integration approach that supports most or all of the interactions
that occur among the environment components, and between the users of
the environment and the environment itself.

DEFINITION
CASE (computer-aided software engineering)
CASE (computer-aided software engineering) is the use of a computerassisted method to organize and control the development of software,
especially on large, complex projects involving many software
components and people. Using CASE allows designers, code writers,
testers, planners, and managers to share a common view of where a
project stands at each stage of development. CASE helps ensure a
disciplined, check-pointed process. A CASE tool may portray progress
(or lack of it) graphically. It may also serve as a repository for or
be linked to document and program libraries containing the project's
business plans, design requirements, design specifications, detailed
code specifications, the code units, test cases and results, and
marketing and service plans. CASE originated in the 1970s when
computer companies were beginning to borrow ideas from the hardware
manufacturing process and apply them to software development (which
generally has been viewed as an insufficiently disciplined process).
Some CASE tools supported the concepts of structured programming and
similar organized development methods. More recently, CASE tools have
had to encompass or accommodate visual programming tools and objectoriented programming. In corporations, a CASE tool may be part of a
spectrum of processes designed to ensure quality in what is developed.
(Many companies have their processes audited and certified as being in
conformance with the ISO 9000 standard.)

SYSTEM ANALYSIS AND DESIGN

TCS10303

Components of CASE Tools


CASE tools can be broadly divided into the following parts based on
their use at a particular SDLC stage:

Central Repository - CASE tools require a central repository,


which can serve as a source of common, integrated and consistent
information. Central repository is a central place of storage
where product specifications, requirement documents, related
reports
and
diagrams,
other
useful
information
regarding
management is stored. Central repository also serves as data
dictionary.

Upper Case Tools - Upper CASE tools


analysis and design stages of SDLC.

Lower Case Tools - Lower CASE tools are used in implementation,


testing and maintenance.

Integrated Case Tools - Integrated CASE tools are helpful in all


the stages of SDLC, from Requirement gathering to Testing and
documentation.

are

used

in

planning,

CASE tools can be grouped together if they have similar functionality,


process activities and capability of getting integrated with other
tools.

SYSTEM ANALYSIS AND DESIGN

TCS10303

CASE Tools and its scope


CASE technology is the automation of step by step methodologies for
software and system development. CASE tools are characterized by the
stage or stages of software development life cycle on which they
focus. Since different tools covering different stages share common
information, it is required that they integrate through some central
repository system (data dictionary) to have a consistent view of such
information. In phases of software development life cycle integrated
through a central data dictionary. Case Tools are used in many ways in
our organizations. Case tools can be broadly classed into these
broader areas:
Requirement Analysis Tool
Structure Analysis Tool
Software Design Tool
Code Generation Tool
Test Case Generation Tool
Document Production Tool
Reverse Engineering Tool
While many organizations still use the SDLC methodology, it is often
supplemented with other methods. Many systems developers use the CASE
tools in various stages of the Software Development Life Cycle. They
mainly use it while developing the following methodologies:
Life Cycle
Object-oriented Approach
Rapid Applications Development (RAD)
Prototyping
Joint Applications Development (JAD)
The job of a systems developer may contain requirements analysis,
process design, data design, and programming among other activities.
But, not all systems developers do the same activities. One may spend
most of his or her time on analysis; another, on design. The various
activities that the system developers involve include Systems Analysis
(including feasibility studies and requirements definition), Systems
Design (including user interface, data, and process design),
Programming (or generating code),
Testing, Supervisory or other management tasks and Maintenance. CASE
tools play an important role in helping the system developers to
perform the task efficiently.

SYSTEM ANALYSIS AND DESIGN

TCS10303

Knowledge Representation and Processing


The system maintains multiple layers of knowledge and has the ability
of self-learning and self-improvement. Especially, the system can do
reasoning on incomplete information. Otherwise, the system cannot
'figure out' users' intentions and the interaction between a user and
a tool will not be able to continue in some cases. Each node can be
bound to a set of rules. Mixed knowledge representation is good for
reducing the size of the network, and thus speeding up the learning
process. In neural network, an output can always be derived from any
input, even if the input is incomplete. Selflearning is a natural and
standard process in a neural network.

Visual Integration of CASE Tools


Although a CASE shell is very useful for the creation and integration
of CASE tools, we believe it still is not simple and intuitive enough
for CASE users. We suggest to provide CASE users with more intuitive
means to describe the integration of CASE tools. A diagramming tool,
similar to DFD diagramming tool, might be useful for this purpose.
Pipe-filter, event-trigger and message passing models are all useful
means to realize the integration of CASE tools.

Work Flow Model


Basically, software project development is a team based activity. A
CASE tool should be able to support this feature. For this purpose, it
is necessary to model the work process, and the collaboration and
coordination among team members. We hope to represent all this
information through a work flow model. Currently, there are many ways
to model a work flow for team based collaborative software
development. However, most of them are too strict to change
dynamically (on the fly). We suggest using decentralized process
models, such as 'ViewPoint' (E), which can be described visually and
is also possible to cope with deviations during process enactment.

SYSTEM ANALYSIS AND DESIGN

TCS10303

Making a case for and against and CASE Tools


For

Against

Helps standardization of notations


and diagrams

Limitations in the flexibility of


documentation

Help communication between


development team members

May lead to restriction to the


tool's capabilities

Major danger: completeness and


Automatically check the quality of
syntactic correctness does NOT mean
the models
compliance with requirements
Reduction of time and effort

Costs associated with the use of


the tool: purchase + training

Enhance reuse of models or models'


components

Staff resistance to CASE tools

Case Tools Types

Now we briefly go through various CASE tools

Diagram tools

These tools are used to represent system components, data and control
flow among various software components and system structure in a
graphical form. For example, Flow Chart Maker tool for creating stateof-the-art flowcharts.

Process Modeling Tools

Process modeling is method to create software process model, which is


used to develop the software. Process modeling tools help the managers
to choose a process model or modify it as per the requirement of
software product. For example, EPF Composer

Project Management Tools

These tools are used for project planning, cost and effort estimation,
project scheduling and resource planning. Managers have to strictly
comply project execution with every mentioned step in software project
management. Project management tools help in storing and sharing
project information in real-time throughout the organization. For
example, Creative Pro Office, Trac Project, Basecamp.

SYSTEM ANALYSIS AND DESIGN

TCS10303

Documentation Tools

Documentation in a software project starts prior to the software


process, goes throughout all phases of SDLC and after the completion
of the project.Documentation tools generate documents for technical
users and end users. Technical users are mostly in-house professionals
of the development team who refer to system manual, reference manual,
training manual, installation manuals etc. The end user documents
describe the functioning and how-to of the system such as user manual.
For example, Doxygen, DrExplain, Adobe RoboHelp for documentation.

Analysis Tools

These tools help to gather requirements, automatically check for any


inconsistency, inaccuracy in the diagrams, data redundancies or
erroneous omissions. For example, Accept 360, Accompa, CaseComplete
for requirement analysis, Visible Analyst for total analysis.

Design Tools

These tools help software designers to design the block structure of


the software, which may further be broken down in smaller modules
using refinement techniques. These tools provides detailing of each
module and interconnections among modules. For example, Animated
Software Design

Configuration Management Tools

An instance of software is released under one version. Configuration


Management tools deal with
Version and revision management
Baseline configuration management
Change control management
CASE tools help in this by automatic tracking, version management and
release management. For example, Fossil, Git, Accu REV.

Change Control Tools

These tools are considered as a part of configuration management


tools. They deal with changes made to the software after its baseline
is fixed or when the software is first released. CASE tools automate
change tracking, file management, code management and more. It also
helps in enforcing change policy of the organization.

SYSTEM ANALYSIS AND DESIGN

TCS10303

Programming Tools

These tools consist of programming environments like IDE (Integrated


Development Environment), in-built modules library and simulation
tools. These tools provide comprehensive aid in building software
product and include features for simulation and testing. For example,
Cscope to search code in C, Eclipse.

Prototyping Tools

Software prototype is simulated version of the intended software


product. Prototype provides initial look and feel of the product and
simulates few aspect of actual product.

Prototyping CASE tools essentially come with graphical libraries. They


can create hardware independent user interfaces and design. These
tools help us to build rapid prototypes based on existing information.
In addition, they provide simulation of software prototype. For
example, Serena prototype composer, Mockup Builder.

Web Development Tools

These tools assist in designing web pages with all allied elements
like forms, text, script, graphic and so on. Web tools also provide
live preview of what is being developed and how will it look after
completion. For example, Fontello, Adobe Edge Inspect, Foundation 3,
Brackets.

Quality Assurance Tools

Quality assurance in a software organization is monitoring the


engineering process and methods adopted to develop the software
product in order to ensure conformance of quality as per organization
standards. QA tools consist of configuration and change control tools
and software testing tools. For example, SoapTest, AppsWatch, JMeter.

Maintenance Tools

Software maintenance includes modifications in the software product


after it is delivered. Automatic logging and error reporting
techniques, automatic error ticket generation and root because of
Analysis are few CASE tools, which help software organization in
maintenance phase of SDLC. For example, Bugzilla for defect tracking,
HP Quality Center.

SYSTEM ANALYSIS AND DESIGN

TCS10303

Advantages and Disadvantages of CASE Tools:

Characteristics of a successful CASE Tool:


A CASE tool must have the following characteristics in order to be
used efficiently:

A standard methodology: A CASE tool must support a standard


software development methodology and standard modeling
techniques. In the present scenario most of the CASE tools are
moving towards UML.

Flexibility: Flexibility in use of editors and other tools. The


CASE tool must offer flexibility and the choice for the user of
editors' development environments.

Strong Integration: The CASE tools should be integrated to


support all the stages. This implies that if a change is made at
any stage, for example, in the model, it should get reflected in
the code documentation and all related design and other
documents, thus providing a cohesive environment for software
development.

Integration with testing software: The CASE tools must provide


interfaces for automatic testing tools that take care of
regression and other kinds of testing software under the changing
requirements.

Support for reverse engineering: A CASE tools must be able to


generate complex models from already generated code.

On-line help: The CASE tools provide an online tutorial.

SYSTEM ANALYSIS AND DESIGN

TCS10303

Conclusion
It is concluded that CASE tools are a class of software that
automates many of the activities involved in SDLC phases.
For example, when establishing the functional requirements
of a proposed application, prototyping tools can be used to
develop graphic models of application screens to assist end
users to visualize how an application will look after
development.
Subsequently, system designers can use automated design
tools to transform the prototyped functional requirements
into detailed design documents. Programmers can then use
automated code generators to convert the design documents
into code.
Automated tools can be used collectively or individually.
For example, prototyping tools could be used to define
application requirements that get passed to design
technicians who convert the requirements into detailed
designs in a traditional manner using flowcharts and
narrative documents, without the assistance of automated
design software.
CASE tools can be used to increase productivity, decrease costs,
enhance project controls, and increase product quality.
Organizations can develop systems with appropriate functionality,
security, integrity, and reliability by using CASE tools.
Inadequate (poor) Standardization, Unrealistic Expectations are
limitations of CASE tools

You might also like