Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Experiment No.

10
PART A
(PART A: TO BE REFFERED BY STUDENTS)

A.1 Aim: Study of a CASE Tool

A.2 Prerequisite: Software development tools.

A.3 Outcome:
CASE Tools and their functionalities

A.4 Theory:
What is a CASE Tool?
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.What are the significance of CASE Tools.

When the term CASE is used, it is important to clarify what is being discussed. Most
classifications of CASE tools start by considering whether the tool is upper CASE, lower
CASE, or integrated CASE [3]. An upper CASE tool (front end CASE) provides support
for the early stages in the systems development life cycle such as requirements analysis

1
and design. A lower CASE tool (back end CASE) provides support for the later stages in
the life cycle such as code generation and testing. Integrated CASE tools support both the
early and later stages. Further classifications usually list which functionalities the tool
supports,such as data flow diagrams, entity relationships data models, etc. provides a
different type of model of CASE functionality that helps organize CASE tools. CASE
Tools offer an excellent array of features that support the development and business
community through its Automated Diagram Support feature. The various popular features
that aid the development community are listed below:

• Checks for syntactic correctness


• Data dictionary support
• Checks for consistency and completeness
• Navigation to linked diagrams
• Layering
• Requirements traceability
• Automatic report generation
• System simulation
• Performance analysis

CASE technology is the automation of systematic 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 developmentlife 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

2
• Test Case Generation Tool
• Document Production Tool
• Reverse Engineering Tool

Different CASE Tools.


There are many different types of CASE tools. They can be summarized as follows:
• Diagramming tools
• Report generators
• Analysis tools
• Documentation generators
• Code generators
• Repository of data
Procedure:
1) Find out the various CASE tools and their usage.
2) Compare and contrast the different CASE tools.

A.5 Task to be completed in PART B


Details of various CASE Tools and their functionalities.

3
PART B
Roll No. N109 Name: Atharva Verma
Program : MBA TECH computer engg Division:E
Batch:E2 Date of Experiment:
Date of Submission: Grade :

B.1 Tasks given in PART A to be completed here

1) Find out the various CASE tools and their usage.


1) CASE (Computer-Aided Software Engineering) tools are software applications that assist in the development and
maintenance of software systems. They provide support for various stages of the software development life cycle
(SDLC) and help automate tasks, improve productivity, and enhance the quality of software. Here are some
commonly used CASE tools and their usage:

a) Requirements Management Tools: These tools help in capturing, organizing, and managing software
requirements. They facilitate collaboration among stakeholders and ensure that requirements are properly
documented and tracked throughout the development process. Examples include IBM Rational DOORS, Jama
Connect, and JIRA.

b) Modeling Tools: These tools enable the creation of visual models that represent different aspects of a software
system, such as its structure, behavior, and interactions. They help in understanding and communicating complex
system designs. Examples include Enterprise Architect, Visual Paradigm, and Lucidchart.

c) Code Generation Tools: These tools automatically generate source code from high-level models or
specifications. They can significantly speed up the development process and ensure consistency between the design
and implementation. Examples include Rational Rose, CodeSmith, and Eclipse Modeling Framework.

d) Testing Tools: These tools assist in the creation, execution, and management of software tests. They help in
identifying defects and verifying that the software meets the specified requirements. Examples include Selenium,
JUnit, and HP LoadRunner.

e) Configuration Management Tools: These tools help in managing changes to software artifacts, such as source
code, documents, and configuration files. They provide version control, change tracking, and collaboration features.
Examples include Git, Subversion, and Perforce.

4
2) When comparing and contrasting different CASE tools, several factors can be considered:

a) Functionality: Different CASE tools offer varying levels of functionality and support for different stages of the
SDLC. Some tools may focus on specific areas, such as requirements management or testing, while others provide a
broader range of features. It's important to assess the specific needs of a project and choose a tool that aligns with
those requirements.

b) Ease of Use: The usability of a CASE tool can greatly impact productivity. Some tools have intuitive interfaces
and provide user-friendly features, while others may have a steeper learning curve. Evaluating the ease of use can
help determine how quickly team members can adopt and effectively utilize the tool.

c) Integration: Integration capabilities are crucial for seamless collaboration and data exchange between different
tools. Some CASE tools offer built-in integrations with popular development environments, project management
tools, and version control systems. Assessing the integration options can help ensure compatibility with existing
tools and workflows.

d) Cost: CASE tools can vary significantly in terms of pricing models, ranging from open-source options to
commercial licenses. It's important to consider the budget constraints and evaluate the cost-effectiveness of the tool
in relation to its features and benefits.

e) Support and Community: The availability of support resources, such as documentation, tutorials, and user
communities, can greatly assist in learning and troubleshooting. Considering the level of support and the size of the
user community can provide insights into the tool's reliability and future development.

Ultimately, the choice of a CASE tool depends on the specific needs and constraints of a project. It's advisable to
evaluate multiple tools, conduct trials, and gather feedback from the development team before making a decision.

Details of various CASE Tools and their functionalities


1) IBM Rational DOORS: This requirements management tool helps in capturing, organizing, and managing
software requirements. It allows stakeholders to collaborate, track changes, and ensure traceability throughout the
development process.

5
2) Enterprise Architect: This modeling tool supports various modeling languages (e.g., UML, BPMN) and helps in
creating visual models of software systems. It enables system design, analysis, and documentation, and supports
code generation and reverse engineering.

3) Selenium: This testing tool is widely used for automating web browsers. It allows testers to create and execute
automated tests across different browsers and platforms, helping in identifying defects and ensuring software
quality.

4) Git: This configuration management tool is a distributed version control system. It helps in managing changes to
source code, facilitating collaboration among developers, and ensuring version control and code integrity.

5) JIRA: This project management tool provides features for issue tracking, project planning, and agile
development. It helps in managing software development projects, tracking tasks, and facilitating collaboration
among team members.

6) Rational Rose: This code generation tool supports various programming languages and helps in automatically
generating source code from high-level models. It ensures consistency between design and implementation, saving
time and effort.

7) CodeSmith: This code generation tool allows developers to generate code snippets, templates, and entire classes
or files. It helps in automating repetitive coding tasks and improving productivity.

8) Selenium: This testing tool is widely used for automating web browsers. It allows testers to create and execute
automated tests across different browsers and platforms, helping in identifying defects and ensuring software
quality.

9) Visual Paradigm: This modeling tool supports various modeling languages and provides features for system
design, analysis, and documentation. It helps in creating visual models and diagrams to communicate and
understand complex software systems.

10) HP LoadRunner: This testing tool helps in load testing and performance testing of software applications. It
simulates user behavior and measures system performance under different load conditions, helping in identifying
performance bottlenecks.

6
These are just a few examples of CASE tools and their functionalities. There are many more tools available in the
market, each with its own set of features and capabilities. It's important to evaluate the specific requirements of a
project and choose the appropriate tool accordingly.

B.2 Observations and Learning:


Observations:

1. There are various CASE tools available for different stages of the software development life cycle (SDLC),
such as requirements management, modeling, code generation, testing, and configuration management.

2. Each CASE tool has its own set of functionalities and features, catering to specific needs and requirements.

3. The usability and ease of integration of CASE tools can vary, impacting productivity and collaboration.

4. The cost of CASE tools can vary, ranging from open-source options to commercial licenses.

5. Support and community resources play a crucial role in learning and troubleshooting with CASE tools.

Learning:

1. Understanding the different stages of the SDLC and the corresponding CASE tools can help in selecting the
right tool for each phase.

2. Assessing the usability and integration capabilities of CASE tools can contribute to smoother collaboration
and increased productivity.

3. Considering the cost-effectiveness of a CASE tool in relation to its features and benefits is important for
budget planning.

4. Leveraging support resources and engaging with the user community can aid in learning and
troubleshooting with CASE tools.

5. Regularly evaluating and updating the toolset based on project requirements and advancements in the field
can lead to continuous improvement in software development processes.

B.3 Conclusion:
CASE tools are valuable assets in software development, providing automation, productivity
enhancements, and quality improvements. The choice of a CASE tool should be based on the
specific needs of a project, considering factors such as functionality, ease of use, integration
capabilities, cost, and support resources. Evaluating multiple tools, conducting trials, and
gathering feedback from the development team can help make an informed decision.

7
******************************************************************

You might also like