System Analysis and Desing Ignou Bca Sem 3
System Analysis and Desing Ignou Bca Sem 3
10.0 INTRODUCTION
Revolutionary changes are occurring in the traditional process of software system
development. The normal SDLC process is often seen as inflexible and time
consuming and expensive. Keeping in view of these limitations of SDLC process, the
Computer Aided Software Engineering process has emerged to help organizations to
develop systems and software. CASE involves using software packages called CASE
tools to perform and automate many activities of system development life cycle. The
CASE tools are helpful in business planning, project management, user interface
design, database design and programming. Use of CASE tools makes computer-aided
software development possible. In today’s scenario where quick product delivery
could be challenging task for the software vendor, CASE tools have come as helping
hand to assist organization manage the software development process and automate
certain processes of these activities. It is noteworthy that some capabilities of CASE
are found in almost every modern software development tool. Some automatically
design the user interface, few can auto generate codes, etc. It is difficult to imagine the
life of a programmer without CASE tools.
10.1 OBJECTIVES
After going through this unit, you should be able to:
• know the role of CASE tools and their use by the organizations;
• know various components of CASE tools;
• explain Visual CASE tools and know about some such commercial tools;
• describe the sophisticated CASE tools; and
• describe Object Oriented CASE tools with their utility in development of
software.
39
More Design Issues
and CASE Tools 10.2 USE OF CASE TOOLS BY ORGANIZATIONS
CASE stands for Computer Aided Software Engineering
Although, ideally a CASE tool should support all the activities of software
engineering process starts from requirements analysis to designing, coding, testing,
implementation and documentation, in reality, CASE tools often support one activity
or at least a group of related activities.
Large-scale use of computers has necessitated its maximum and efficient use and
development of software for various activities of any organization. A software
development effort can be viewed as a significant effort to design appropriate
solutions, test and implement the solutions and finally documenting the solutions. In
view of this, a wide range of support tools began to emerge to help the development
team.
40
CASE Tools for
10.2.3 Role of CASE Tools Systems
Development
CASE tools play a major role in the following activities:
• Project management
• Data dictionary
• Code generation
• User interface design
• Schema generation
• Creation of meta-data for data warehouse
• Reverse engineering
• Re-engineering
• Document generation
• Version control
• OO analysis and design
• Software testing
• Data modeling
• Project scheduling
• Cost estimation
• Complex functionality
• Many project management problems are not amenable to automation. Hence,
CASE tools can’t be used in such cases.
41
More Design Issues
and CASE Tools 10.3 COMPONENTS OF CASE
The activity that can be automated, whether partially or fully, depends on the CASE
tools that are used. Most of the CASE tools generate a working model or prototype,
which makes development process faster and easier.
Design
Toolset
All case tools are based on prototyping which is particularly useful when the user
requirements are difficult to define. Large systems use traditional SDLC approach but
part of the system can be prototyped. The prototype is then repeatedly refined till it
becomes acceptable.
42
CASE Tools for
10.3.2 Classification of CASE Tools Systems
Development
Figure 10.2 depicts various types of CASE tools.
Although CASE tools can be classified depending on the functionalities, these can be
broadly classified into five generic categories:
• Development tools: These tools are interactive in nature. They are used for
design support and code generation.
• Front-end tools: They support activities early in the life cycle of a software
development process (planning, analysis and design). Examples are data flow
diagram, data structure diagram, ER diagram, prototyping tools, etc.
• Back-end tools: They support activities later in the life cycle of a software
development process (Implementation and maintenance). Examples are program
flow chart, program editor, debugger, code generators etc.
• Horizontal tools: These tools are not specific to a particular life cycle step but are
common across a number of life cycle steps e.g., Documentation tool.
• Vertical tools: These tools are specific to a life cycle.
Project Management
Analysis
Design CASE
Repository
Programming
Prototyping
Integration
and Testing
Re-engineering
Forward engineering is the process of generation of skeleton code out of the models.
First step is to create the model for a system, then generate the relevant code for the
model and then allow modification of this code in tune with the requirements.
Re-engineering means “restructuring and rewriting the legacy system or part of it
without changing its original functionality”. Re-engineering efforts make the software
up-to-date to current technology and hence easy to maintain. The new system
becomes restructured and re-documented. Re-engineering tools read program source
code and interactively change and existing system to improve quality performance or
maintainability.
43
More Design Issues
and CASE Tools
Design Model
Code
44
CASE Tools for
Systems
10.4.2 CASE environment Development
The earlier generation of CASE tool developers concentrated to a large extent on the
automation of isolated tasks of system development process, such as document
production, version control of source code, and design method support. Need of
integrating these tools to support a common development environment was felt to
support the activity effectively. A typical CASE environment consists of a number of
CASE tools and related components for supporting most or all phases of system
development life cycle that operates on a common hardware and software platform.
CASE environment is not just a random amalgamation of CASE tools, it provides
proper interaction between the CASE tools. One should concentrate less on which
components should be chosen, and much more on how the selected components can
be made to work together effectively. Figure 10.4 depicts typical CASE environment.
CASE Tools
Integration Framework
Operating System
Hardware Platform
Figure 10.4 : CASE environment
The key to CASE tools is integration. Tools are more effective if they are integrated
to work together. Integration could be data integration, user interface integration or
activity integration.
Rational Rose is one of the most widely used CASE tools by the software
community. The teams responsible for software development are finding that
modeling using CASE tools are becoming increasingly important for the software
development process. Software developed using model driven technique such as
Rational Rose offer a range of products to suit different activities of software
development process.
45
More Design Issues
and CASE Tools
The following are some of the tasks that can be performed by using CASE tools:
• UML modeling
• Code generation/construction for Visual C++, Visual Basic, C++, Ada, JAVA
• Database design
• Fully executable codes for C, C++,etc. across platforms
• Component testing.
Another CASE tool is Enterprise Architect (Parx System). This is an object oriented
CASE tool for the entire software development life cycle. Its features are:
1. Create graphics, such as class diagrams, message diagrams, state diagrams etc.
2. Create text specifications such as system specification, class specification and
relationship specification.
3. Generate source code.
4. Repository of models.
An object oriented CASE tool has the capabilities of drawing class diagrams and state
diagrams. Specification tools create text reports.
CASE tools
The class diagram is core to object-oriented design. It describes the types of objects
in the system and the static relationships between them. The core element of the class
diagram is the class. In an object-oriented system, classes are used to represent
entities within the system. Entities are often related to real world objects.
47
More Design Issues
and CASE Tools
Figure 10.7 depicts the class diagram for a typical Banking application.
Contact Name
Address
City Attributes
Pin
Country
Operations
read( )
print( )
Most of the object oriented CASE tools assist in documenting as well as in object
oriented analysis and design. Object oriented CASE tools have capability to import
graphics from other tools. The system requirement is given shape in sketches with
pencil and a paper. Then, it is used by the drawing tools and text editor available to
create system diagram, class diagram and other diagrams. Document processor does it
all to create a model document from these models. Figure 10.9 depicts the process to
create a model document.
CASE Tool
Rough sketch Drawing tool
System Document Model
with pencil
requirements processor documentation
and paper Text editor
48
CASE Tools for
Systems
10.4.6 Creating an executable prototype using object oriented Development
CASE tools
Most of the object oriented CASE tools greatly assist in creating executable
prototypes based on design specifications. The diagram below shows how CASE tools
are used to create executable codes. System requirements are prepared in text and
diagrams by pencil and paper. Design specifications like class specifications, system
diagrams and various text specifications are then generated using tools available in
CASE. From this, design specification codes are generated using code generation
tools. Most of the CASE tools support generation of C++ code whereas some may
support other languages as well. The source code generated might require updation
with formulas, expression, etc. CASE tools also create updated diagrams based on
updated source code. Figure 10.10 depicts the process to create an executable
prototype using a CASE tool.
Diagram and
specifications
Rough Generate
System sketch CASE code Programming Executable
requirements with Tool environment prototype
Pencil
and
paper Reverse
engineering
Sequence diagrams are an excellent way to document usage scenarios and to both
capture required objects early in analysis and to verify object usage later in design.
Sequence diagrams show the flow of messages from one object to another, and as
such correspond to the methods and events supported by a class/object.
Figure 10.11 shows an example of a sequence diagram, with the user or actor on the
left initiating a flow of events and messages that correspond to the Use Case scenario.
The messages that pass between objects will become class operations in the final
model.
49
More Design Issues
and CASE Tools Check Your Progress 4
10.5 SUMMARY
Changes are occurring in traditional way of system development. Organizations use
CASE tools to improve integration and development activities. The tools also help
standardize the development process. Computer Aided Software Engineering (CASE)
automates part of system development process. A CASE tool provides iterative and
interactive tools for various activities like user interface design and code generation.
Modern CASE tools are aimed at supporting the entire activity of system
development. Hence, CASE tools, known as I-CASE (Integrated CASE) has evolved.
CASE tools are classified as front-end tools or back-end tools depending on which
part of SDLC process they automate. Front-end tools automate initial part of SDLC
process whereas back-end tools automate process that come later in SDLC life cycle.
1. Reverse engineering
2. Sequence diagrams
Reference Websites
http://www.sei.cmu.edu/legacy/case/case_whatis.html
http://www.rational.com/product
50
CASE Tools for
Systems
Development
51