2. Study Resources
• Reference Books
1. Analysis and design of information systems: James
A. Senn. Page no. 525, 260
2. Software Engineering : Summerville. Page No. 272
3. Modern systems analysis and design: Jeffrey
Hoffer. Page no .19-21
4. Software Engineering : W S Jawadekar. Page No.
96, 99, 120
2
3. 6.1. Introduction to CASE tools
• What are CASE tools
• Is a catchall term to describe virtually any software
development tool.
• typically used to refer to software development tools that
use diagrammatic representations of software design.
3
4. Computer Aided Software
Engineering
•What is a CASE Environment?
– CASE is the use of computer-based support in the
software development process.
•What is a CASE Tool?
– A CASE tool is a computer-based product aimed at
supporting one or more software engineering
activities within a software development process.
– A set of tools to (optimally) assist in each step of
software development.
4
5. Purpose of CASE Tools
• Provides software engineers and programmers with software
based tools that help with some combination of:
– specifying requirements
– designing software to meet the requirements
– generate code automatically
– support documentation efforts
• A central repository to input, store, revise, and output work
done on a project.
• Provide ‘leverage’ (Control).
5
6. Purpose of CASE Tools
• Supply basic functionality, do routine tasks automatically
– Be able to support editing of code in the particular programming
language, supply refactoring tools.
• Enhance productivity
– Generate code pieces automatically.
• Increase software quality
• Intuitive use (easy to use and understand)
• Integration with other tools
– For example, code editor works with code repository.
6
7. Purpose of CASE Tools
To reinforce and support an engineering approach to software
development and evolution by providing computer based
assistance, which translates to low-defect solutions and enhanced
productivity.
A CASE tool is any computer based system that may be used
during the software development process.
A Computer Aided Software Engineering (CASE) tool is any
computer based tool for software planning, development and
evolution. This definition includes all examples of computer-
based support for the managerial, administrative, or technical
aspects of any part of a software development project.
7
8. Purpose of CASE Tools
“ ... to automate the entire software life cycle process with a set of
integrated tools” -McClure (1989)
“CASE tools are used to facilitate greater standardisation of work
procedures and adherence with design discipline” -Orlikowski (1988)
“CASE tools are important because they speed development, automate
tedious tasks, and enforce standards and procedures.”
8
10. CASE Tool Architecture
INPUTS: CASE Tool
models, Facilities
descriptions (on a workstation)
OUTPUTS: and
reports, prototypes
problems,
and
analyses
Graphics Description Prototyping
links links
Tools Tools Tools
Repository
Server
House-
imported Quality
keeping
and Management
Tools
exported Tools
knowledge
check-out/
check in Data
Local Decision
knowledge Sharing
Repository Support
Tools
(on a LAN Tools
Server)
Security and
Inquiry and
Version
Reporting
Control
Tools
Tools
CENTRAL
REPOSITORY Design Code Document
Generators Generators Tools
10
12. Why CASE Tools Are Popular
• Support the need to develop and revise documentation.
• Support the need to trace requirements to design, and
requirements to test.
• Reduce systems development time.
• Produce more easily maintained code.
• Support the needs of IS professionals.
• Support the SDLC.
12
13. Capabilities of CASE Tools
• Support graphics with drawing aids.
• Create and maintain data model and process specification
entries.
• Create documentation.
• Verify that rules are followed.
• Consistency checking.
• Create portions of computer programs.
• Allows IS developers to focus on important issues by freeing
them from “mechanics” issues.
13
14. Organizational Benefits
• Improved quality of systems
• Faster development of systems
• Ease and improve testing
• Improve quality and completeness of documentation
• Improves integration of development activities via common methodologies
• Standardize development
• Improve project management
• Promote reusability of modules and documentation
• Simplify maintenance
• Improve software portability
14
15. Scope of CASE Technology
• Business Systems Planning
– Provide a ‘meta-model’ from which specific systems are derived. The focus is not
on the requirements of specific applications but rather on building a model of
the business itself. Business information is modelled as it ‘flows’ through the
different organisation units in a company.
• Project Management
– Tools which focus on:
• software project effort and cost estimation
• project scheduling
• requirements tracing
• Support
– Broad selection of tools applicable over the entire development process such as
Desk top publishing tools.
• Integration and Testing
– Tools such as Static Analysis tools, Dynamic Analysers
15
16. Scope of CASE Technology
• Analysis and Design
– Enable a software engineer to create models which describe a system
which is being built.
• Methodology Tools: Such tools support one or more software
development methodology and provide consistency and quality checking
on the constructed models.
• Prototyping and Simulation Tools: Provide a means for creating
functional and behavioural models of a system. Some also provide code
generation facilities.
– Interface Design and Development Tools: Toolkits of program
components such as buttons and windows and interface prototyping
tools.
• Programming
– Tools such as compilers, debuggers, linkers and environments which
integrate these tools.
16
17. Scope of CASE Technology
• Prototyping
– A broad range of tools which is applicable to many tools in other
categories. These tools allow the developer to build scratch systems of
differing functionality and performance. This can range from tools which
allow mock-ups of users interfaces to be developed to tools which
generate source code.
• Maintenance
– These tools aid in the maintenance of software.
• Reverse engineering tools which try to extract analysis and design
models corresponding to source code.
• Code restructuring tools.
• Re-engineering tools which perform a combination of reverse
engineering and restructuring.
• Framework
– Tools that provide an environment which supports the integration of
other CASE tools.
17
18. Benefits from CASE tools
Better quality of produced systems
Better communication between developers
Better productivity of developers
Formalized design methodology
Better maintenance of the product
etter project management Source:
CASE RESEARCH CORP.
Other
5 10 15 20 25 30 35 40
% answers
18
19. Cost distribution during SI lifecycle
Traditional
cost “ad hoc”
methods
Methods
based on
CASE tools
Planning Analysis Design Programming Deployment Maintenance
time
19
20. Why CASE tools are (sometimes) inefficient?
Sources of difficulties:
Too high expectations: CASE tools are only tools - they are not able to
learn from experience and to think. “A fool with a tool is still a fool.” A
CASE tool is able to reduce the cost of the software production at most
on 30-50%.
People tend to treat CASE tools as code generators. A CASE tool is used
only as a “very high level programming language”, without proper
documentation of the analysis and design phases.
No analysis and design methodology.
Bad organization of software development processes, lack of order, lack
of a plan, lack of good estimations and measures, lack of monitoring,
etc.
Underestimating other costs induced by a CASE tool: education,
deployment, organizational changes, improvement of discipline, etc.
Effects of CASE tools usually appear after some time.
20
21. 6.2. Types & Names of CASE tools
Project Management Tools
1. Green UML
2. ESS-Model
3. Gather Space
4. MS - Project
21
23. 6.2. Types & Names of CASE tools
Analysis tools
1. Meta-Boss
2. UML CASE Tools
3. DMS Software Reengineering Toolkit
23
24. 6.2. Types & Names of CASE tools
Design tools
1. Magic Draw
2. ArchE – Is an Architecture Expert Design
Assignment
3. ER Studio
24
25. Conclusion
A CASE tool makes it possible to improve software production processes, but
not in auto-magical way: it requires good project organization, well defined
project goals, and a disciplined methodology
CASE tools are sometimes expensive. There are two kinds of costs:
(1) the cost of software and installation
(2) education and changes in software manufacturing routines.
The ultimate benefit depends on good integration of a CASE tool with the
assumed A&D methodology, project management, software construction
routines and documentation standards.
25