TermPaper_Ankitha_Garapati

advertisement
CASE
FOR SOFTWARE PROCESS
AUTOMATION
BY
ANKITHA CHOWDARY GARAPATI
ABSTRACT:
Computer Aided Software Engineering is a technique to help with one or more phases of
the software development cycle which involves analysis, design, implementation and
maintenance of software. CASE is the use of computer-based support in the software
development process. They provide all kinds of computer-based support for any of the
managerial, administrative, or technical aspects of any part of a software project. The
CASE approach to building and maintaining systems involves software tools and training
for the developers who will use them.
CASE provides the engineer with the ability to automate the manual activities and to
improve engineering insight. Also CASE tools ensure that quality is designed before the
product is built. Although benefits can be derived from individual CASE tools that
address specific software engineering activities, the real power of CASE can be achieved
only through integration.
INTRODUCTION:
Nowadays everything has to go faster. Because of the increasing speed of changing
market-demands new products replace old ones much earlier than before, so the
development of new products has to go faster. Thus the production lines have to be
developed faster, too. To speed up the software system building process, a new concept
of designing software is introduced in the '70s, called Computer Aided Software
Engineering (CASE).
Since the early days of writing software, there has been an awareness of the need for
automated tools to help the software developer. Initially the concentration was on
program support tools such as translators, compilers, assemblers, macro processors, and
linkers and loaders. However, as computers became more powerful and the software that
ran on them grew larger and more complex, the range of support tools began to expand.
In particular, the use of interactive time-sharing systems for software development
encouraged the development of program editors, debuggers, code analyzers, and
program-pretty printers.
As computers became more reliable and greater in use, the need for a broader notion of
software development became apparent. Software development came to be viewed as:


A large-scale activity involving significant effort to establish requirements, design
an appropriate solution, implement that solution, test the solution and document
the functionality of the final system.
A long-term process producing software that requires enhancement through out its
lifetime. The implications of this are that the structure of the software must enable
new functionality to be added easily, and detailed records of the requirements,
design, implementation, and testing of the system must be kept to aid maintainers
of the software. In addition, multiple versions of all artifacts produced during a
project must be maintained to facilitate group development of software systems.

A group activity involving interaction among a number of people during each
stage of its life. Groups of people must be able to cooperate, in a controlled
manner, and have consistent views of the state of the project.
This view "programming in the large" resulted in a wide range of support tools being
developed. Initially, the tools were not very sophisticated in their support. However
research in the area of software development processes gave rise to a number of software
design methods that could be used as the basis for software development.
CASE BUILDING BLOCKS
Computer Aided Software Engineering can be as simple as a single tool that supports a
specific software engineering activity or as complex as a complete environment that
encompasses tools, databases, people, hardware, a network, operating systems, standards,
and number of other components.
The following are the building blocks for CASE:
CASE Tools
Integration Framework
Portability Services
Operating System
Hardware
Environment Architecture
Each building block forms a basis for the next. The environment architecture with
hardware platform and operating system support including networking and database
management lays the ground work for CASE. Portability services provide a bridge
between CASE tools and their integration framework and environment architecture. The
integration frame work enables individual CASE tools to communicate with one another.
Portability Services allow CASE tools to migrate across various hardware platforms and
operating systems without much adaptive maintenance. However CASE can also be a
point solution to assist in a particular software engineering activity without using all of
these building blocks.
TAXONOMY:
Various attempts have been made to make finer-grained distinctions between different
classes of CASE tools along a number of dimensions. The most common distinctions are:



Tools that are interactive in nature (such as a design method support tool) and
those that are not (such as a compiler). The former class sometimes called CASE
tools, while the latter class called development tools.
Tools that support activities early in the life cycle of a soft ware project (such as
requirements and design support tools) and those that are used later in the life
cycle (such as compilers and test support tools). The former class sometimes
called front-end CASE tools, and the latter are called back-end CASE tools.
Tools that are specific to a particular life-cycle step or domain (such as a
requirements tool or a coding tool) and those that are common across a number of
life-cycle steps or domains (such as a documentation tool or a configuration
management tool). The former class sometimes called vertical CASE tools, while
the latter class are called horizontal CASE tools.
But these distinctions are problematic. It is difficult to give a simple and consistent
definition of `interactive' that is meaningful. For example, some classes of compilers
prompt the user for information. In the second and third cases, there is an assumption
about the methods and approaches in use (e.g., object-oriented software development, or
prototype-oriented development), hence broadly a CASE tool is a computer-based
product aimed at supporting one or more software engineering activities within a
software development process.
CASE tools can also be classified by function in terms of
 Their role as instruments for managers or technical people
 Their use in various steps of the software development process
 The environment architecture i.e. hardware and software that supports the CASE
tools
 Origin
 Cost
Information Engineering Tools:
Information engineering Tools provide a meta model from which specific information
systems are derived. These CASE tools model business information rather than focusing
on the requirements of a specific application. They represent the business data objects,
their relationships and the data object flow between different business areas.
Process Modeling And Management Tools:
These tools represent the key elements in a process. They provide links to process
descriptions that helps to understand the work tasks that are required to perform the
process.
Project Planning Tools:
They lay emphasis on project effort, cost estimation and project scheduling. Estimated
effort, project duration etc are computed by the estimation tools. Project Scheduling tools
define all project tasks as a work breakdown structure, modeling task network, task
interdependencies etc.
Risk Analysis Tools:
Risk analysis tools identify potential risks and plan to mitigate, monitor and manage the
risks, which is of greater importance in large projects. They enable a project manager to
build a risk table by identifying and analyzing the risks.
Project Management Tools:
The project schedule and the project plan is tracked and monitored on a continuing basis.
Also the manager should use tools to collect metrics that will ultimately indicate the
software product quality. They are extensions to project planning tools.
Requirements Tracing Tools:
Sometimes when developing a large system, the final product may fail to meet customer
specified requirements. These tools provide a systematic approach to the isolation of
requirements, beginning with customer RFP.
Metrics And Management Tools:
These tools focus on process, project and product characteristics. They capture project
specific metrics like LOC/person-month, defects per function point etc that provide an
overall indication of product quality.
Documentation Tools:
Documentation tools provide an opportunity to improve productivity as organizations
spend a substantial amount of time developing documents. These document production
and desktop publishing tools support every aspect of software engineering.
Quality Assurance Tools:
The quality assurance tools audit source code to determine compliance with language
standards. They also extract technical metrics to project the quality of the software being
built.
Database Management Tools:
This establishes a project database and given emphasis on configuration objects these
database management tools for CASE may evolve from relational database management
systems to object oriented database management systems.
Software Configuration Management Tools:
The major tasks here are identification, version control, change control, auditing and
status accounting. Software configuration management is the kernel of the CASE
environment.
Analysis and Design tools:
They enable the software engineer to create models of the system to be built with
representation of data, function and behavior and characterization of data, architectural,
procedural and interface design.
PRO/SIM tools:
Prototyping and Simulation tools help predict the behavior of a real time system prior to
the time it is built. It allows the customer gain insight into in to its function, operation and
response prior to actual implementation.
Interface Design and development Tools:
These are like a toolkit of program components such as menus, buttons, icons, scrolling
mechanisms, window structures, device drivers etc. Also there are interface prototyping
tools that enable rapid on screen creation of sophisticated user interfaces.
Programming Tools:
These encompass compliers, editors and debuggers that are available to support most
conventional programming languages.
Integration and Testing tools:
There are different categories of tools under this like data acquisition tools that acquire
data to be used during testing, Static Measurement tools that analyze source code without
executing test cases, Dynamic Measurement tools that analyze the source code during
execution, Simulation tools which simulate functions of hardware or other externals, Test
management tools that assist in planning, development and control of testing etc.
Reengineering Tools:
Reverse engineering to specification tools take source code as input and generate
structured analysis and design models. Code restructuring and analysis tools analyze
program syntax, generate a control graph, and automatically generate a structured
program.
CASE ENVIRONMENT:
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. The CASE tools provide an environment that will help automate the software
process.
The first generation of CASE tool developers concentrated to a large extent on the
automation of isolated tasks such as document production, version control of source code,
and design method support. While successes have been achieved in supporting such
specific tasks, the need for these `islands of automation' to be connected has been clearly
recognized by many first generation CASE tool users. The tools that support the
individual tasks of design, coding, documentation, and version control must be integrated
if they are to support this kind of scenario effectively. A typical CASE environment
consists of a number of CASE tools operating on a common hardware and software
platform.
Software developers, tool integrators, and system administrators interact with multiple
CASE tools and environment components that form the software and hardware platform
of the CASE environment. We can define a CASE environment by emphasizing the
importance of these interactions: The critical part is that the interactions among
environment components are supported within the environment. Not only concentrating
on the selection of CASE tools and components when assembling a CASE environment,
there is also need to support the interactions among those components.
INTEGRATION:
Benefits can be derived from individual CASE tools that address specific software
engineering activities, but the real power of CASE can be achieved only through
integration. The integrated CASE environment ( I-CASE) enables
 Smooth transfer of information from one tool to another and from one software
engineering step to the next.
 Allow direct access to any tool contained in the environment.
 A change to one item of information to be tracked to other related information
items.
 Collect both management and technical metrics that can be used to improve the
process and the product.
 Reduction in the effort required to perform umbrella activities such as software
configuration management, quality assurance and document production.
 Increase in project control through better planning, monitoring and
communication.
 Improved coordination and support communication among staff members
working on a large software project.
Integration demands standardized interfaces between tools, consistent representation of
information, homogeneous mechanism for communication, and an effective approach to
enable the I-CASE to move along various hardware platforms and operating systems.
Each of the building blocks of a CASE architecture must fit together in a seamless
fashion. Tools are integrated so that software engineering information is available to each
tool that needs it.
INTEGRATION ARCHITECTURE:
A pool of software engineering information is created by using CASE tools,
corresponding methods, and a process framework. The integration framework facilitates
flow of information into and out of the pool. To accomplish this the architectural
components required are: a database system to store the information, a tools control
mechanism to control coordinate the use of CASE tools and user interface. These
components are represented as layers.
USER INTERFACE LAYER
Interface Toolkit and Presentation Protocol
Tools Management Services
CASE
TOOL
TOOLS LAYER
OBJECT MANAGEMENT LAYER
Integration and configuration management services
SHARED REPOSITORY LAYER
CASE Database and access control functions
“Architectural Model for the integration Framework”
The User Interface Layer provides a standard interface toolkit with human computer
interface management and display objects. They provide a communication between the
interface and the CASE tools. Presentation Protocol is the set of guidelines that give all
CASE tools the same look and feel. The Tools Layer incorporates set of tool management
services with the CASE tools themselves which control the behavior of tools within the
environment. The Object Management Layer (OML) performs the configuration
management functions. This provides the mechanism for tools integration. It works in
conjunction with the CASE repository to provide Integration services. The Shared
Repository Layer is the CASE database and the access control functions enable
interaction with the database.
REPOSITORY:
Two types of mechanisms have been used in CASE software to store design information:
1. A dictionary, which contains names and descriptions of data items, processes, etc.
2. A repository, which contains this dictionary information and a complete coded
representation of plans, models and designs, with tools for cross-checking,
correlation analysis and validation.
The heart of a well-designed I-CASE system is a repository, which is used as a
knowledge base to store information about the organization, its structure, enterprise
model, functions, procedures, data models etc. The meaning represented by diagrams and
their detail windows is stored in the repository. The repository steadily accumulates
information relating to the planning, analysis, design, construction and maintenance of
systems. In other words: The repository is the heart of a CASE system.
Role of Repository in I-CASE:
The CASE repository is referred to as a software bus. Information moves through it,
passing from tool to tool as the software process progresses. The repository for an ICASE environment is the set of mechanisms and data structures that performs the
following functions
 Data Integrity which includes functions to validate entries to the repository,
ensure consistency
 Data tool Integration establishes a data model which is accessed by all tools in
the I-CASE environment and controls access to data
 Information Sharing is for sharing information among the developers and controls
multi user access to data and locks or unlocks the objects
 Data-data Integration relates data objects to achieve other functions.
 Document standardization is to create standard software engineering documents
by definition of objects in the database.
CONCLUSION:
Computer aided software engineering span every step in the software process and in
those umbrella activities that are applied throughout the process. CASE combines a set of
building blocks that begin at the hardware and operating system level and end with
individual tools.
The tools developed right now are evolutional products out of earlier tools. The first
tools, developed in the mid '70s, were mainly introduced to automate the production and
to maintain structured diagrams. When this automation covers the complete life-cycle
process, it is Integrated Computer Aided Software Engineering (I-CASE).The
introduction of integrated CASE (I-CASE) products was an important step because ICASE products are capable of being used to generate entire applications from design
specifications. Recently, CASE tools have entered a third phase: the introduction of new
methodologies based on capabilities of I-CASE tools. These new methodologies utilize
Rapid Prototyping techniques to develop applications faster, at lower cost and higher
quality. A lot of time and money can be saved using Rapid Prototyping.
Hence these set of tools is necessary to automate each phase of the life-cycle process and
tie the application development more closely to the strategic operations of the business. A
lot of different tools have been developed over the years and are being developed right
now which provides the engineer with the ability to automate the manual activities and to
improve engineering insight.
REFERENCES:









Software Engineering – A Practitioner’s Approach ROGER S. PRESSMAN
FOURTH EDITION
Forte, G., “Integrated CASE: A Definition,” CASE Outlook
Sharon, D., “Tools that bind; Creating Integrated Environments,” IEEE Software
CASE: The potential and the pitfalls, QED Information Sciences, Inc.,
CASE Environment and Integration
http://www.sei.cmu.edu/legacy/case/case.html
Introduction of computer Aided Software Engineering for Real Time Applications
Volume 64 Issue 4 Guebels, P Hublet, C Jassens
CASE tool Compendium
http://www.rspa.com/spi/CASE.html
Dynamics of software development , Jim McCarthy, Dennis Gilbert
Software Project survival guide, Steve McConnell
Download