3rd Country Training Program
Download
Report
Transcript 3rd Country Training Program
System Engineering and Databases
Lecture 5:
Introduction to Computer Aided
Software Engineering (CASE) Tools
Prof. Kazimierz Subieta
Polish-Japanese Institute of Information Technology
Institute of Computer Science, Warsaw, Poland
[email protected]
http://www.ipipan.waw.pl/~subieta
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 1
February 11-23, 2002
Content
Objectives and scope of CASE
technology
Benefits from CASE tools
Kinds of CASE tools
CASE tool architecture
Editors of diagrams
Data Repository/Dictionary
Group work and versioning
CASE Interchange Formats
Evaluation of CASE tools
Why aren’t CASE tools used?
Future of CASE tools
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 2
Acknowledgment: The material has been
compiled from many Internet sources.
It has no commercial purpose.
February 11-23, 2002
CASE Technology
The term CASE covers various tools used during software
development: compilers, debuggers, text editors, scheduling tools,
version control tools, diagram editors, code generators, etc.
CASE tools support processes of software production.
CASE tools are focused on analysis and design phases and on
direct use of their results in the implementation phase.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 3
February 11-23, 2002
Objectives of CASE Technology
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 computerbased support for the managerial, administrative, or technical
aspects of any part of a software development project.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 4
© Mehandjiska, 2000
February 11-23, 2002
Objectives of CASE Technology
“ ... 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.”
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 5
© Mehandjiska, 2000
February 11-23, 2002
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
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 6
© Mehandjiska, 2000
February 11-23, 2002
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 (such as SD/SD or Coad and Yourdons OOA/OOD) 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.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 7
© Mehandjiska, 2000
February 11-23, 2002
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.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 8
© Mehandjiska, 2000
February 11-23, 2002
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
Better project management
Source:
CASE RESEARCH CORP.
Other
5
10
15
20
25
30
35
40
% answers
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 9
February 11-23, 2002
Cost distribution during SI lifecycle
Traditional
“ad hoc”
methods
cost
Methods
based on
CASE tools
Planning Analysis
Design
Programming
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 10
Deployment
Maintenance
time
February 11-23, 2002
Kinds of CASE tools
CASE tools have been categorised in many different ways.
CASE tools have been classified in terms of functionality, their
relation to the software development life-cycle and the level of
inter-tool integration that they support
Some Examples:
– Editors, Documentation Generators
– Compilers, Debuggers, Code Generators
– Configuration Management, Release Management, Project
Management, Scheduling
– Requirements Tracing, Change Management (CM)
– Defect Tracking, Collaboration tools, Access Control
– Reverse Engineering, Metric Analysers
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 11
© Mehandjiska, 2000
February 11-23, 2002
Kinds of CASE tools
Upper-CASE: support for early phases of software development, in
particular the analysis phase. Independent from implementation
environments.
Lower-CASE: support for design and implementation phases.
Closely coupled with an implementation environment.
Many vendors describe offered CASE tools as Integrated -CASE
(I-CASE). They combine Lower-CASE i Upper-CASE.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 12
February 11-23, 2002
Kinds of CASE tools
Universal CASE tools support various methodologies and
notations (ER, OMT, Caod/Yourdon, Booch, UML, etc.)
There are also tools coupled with particular products (for instance,
ORACLE Designer 2000)
Some CASE tools combine elements of known methodologies with
own ideas. Frequently omit some elements of methodologies.
Many tools are used mainly as specialized graphic/documentation
editors
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 13
February 11-23, 2002
Methodology Dependent CASE Tools
support a single object-orientated software engineering
methodology.
often older tools that typically support a single phase of the
software life-cycle. Examples of tools in this category
include ObjecTool (supports Coad and Yourdon),
ShowCASE (supports Booch’91), Objectory (supports
Jacobson), OEW (supports Martin and Odell) (Innovative
Software, 1998) and early versions of Rational Rose
(supports Booch’91 and Booch’94) (Rational, 1998).
May support more than a single phase of the software
development life-cycle, if the methodology they implement
provides such support.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 14
© Mehandjiska, 2000
February 11-23, 2002
Object Maker
EasyCASE
OEW
Select/OMT
Toolbuilder
Object Domain
LOV/Object Object
ObjectOry
Stood
001
OOSD
Bachman/Analyst
GraphTalk
Ptech
HOOD Toolset
S-CASE OMTool
ILOG KADS Tool
ObjectTeam
VIEWS-SF
I-CASE OMT
BridgePoint
With Class
BOCS
Which CASE tool
should we
choose?
Paradigm Plus
ObjecTime
EiffelCase
SES/Objectbench
Objecteering
Prosa/om
ObjecTool
HOMSuite
OMW
Rational Rose
MetaEdit
VSF
Excelerator II MacAnalyst/MacDesigner ObjectModeler TurboCASE
System Architect
ObjectCraft
Playground
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 15
© Mehandjiska, 2000
February 11-23, 2002
Many-environmental CASE tools
Programming
environment
for Java
Programming
environment
for C++
Lower-CASE
for the Java
environment
Lower-CASE
for the C++
environment
Universal
Upper-CASE
Lower-CASE
for the Ada
environment
Programming
environment
for Ada
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 16
Lower-CASE
for the Smalltalk
environment
Programming
environment
for Smalltalk
February 11-23, 2002
CASE Tool Architecture
INPUTS:
models,
descriptions
and
prototypes
OUTPUTS:
reports,
problems,
and
analyses
Graphics
Tools
links
CASE Tool
Facilities
(on a workstation)
Description
Tools
links
Prototyping
Tools
Repository
Server
check-out/
check in
knowledge
imported
and
exported
knowledge
Housekeeping
Tools
Quality
Management
Tools
Data
Sharing
Tools
Decision
Support
Tools
Local
Repository
(on a LAN
Server)
Security and
Version
Control
Tools
CENTRAL
REPOSITORY
Inquiry and
Reporting
Tools
Design
Generators
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 17
Code
Generators
Document
Tools
February 11-23, 2002
Editors of Diagrams
Editing, storing and maintaining various diagrams used in user requirements,
analysis and design phases.
Editing links between symbols and diagrams and navigation in a network of
interrelated diagrams.
Printing diagrams.
Evaluation of diagram editors:
Easy of learning and use: they should support conceptual work without substantial
overhead devoted to the editor itself (learning, manipulation, bugs, pitfalls, etc.)
Control of amount of information to be printed (various scales).
Quality and formatting options of printed information.
Detecting incorrect constructs and statements “on-the-fly”.
Checking consistency of information from different diagrams.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 18
February 11-23, 2002
Data Repository/Dictionary
A database storing formalized information on the project and a collection of
utilities for maintaining, browsing, reporting, etc.
Basic functions of the data repository/dictionary:
Input of specification of models, diagrams, forms and other information related
to the project
Retrieval of information in proper forms
In many CASE tools the repository is available as a regular database, thus can be
served by standard API-s, for example, Visual Basic, SQL, ODBC, etc. This
makes it possible various proprietary extensions
Sometimes the user is allowed to make own changes/extensions to the repository
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 19
February 11-23, 2002
Group work
Integrated model
Group B
Group D v 1
Group D v 2
Group A v 1
Group A v 2
Group C
Creating, updating
Collaborating
groups
Project A
Integrated project
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 20
Project B
February 11-23, 2002
Versioning: frozen documents
Project A
Project B
Analysis Phase
System B v 1.0 (frozen)
System B v 2.0 (frozen)
System A v 1.0 (frozen)
Models
Documents
System Design Phase
System A v 1.0 (frozen)
Models
Documents
Object Design Phase
System A v 1.0 (unfrozen)
Models
Documents
System B1 v 1.0
(frozen)
System B2 v 1.0
(frozen)
System B1 v 1.0
System B1 v 1.1
(frozen)
(unfrozen)
System B1 v 2.0
(unfrozen)
Implementation Phase
System A v 1.0 (unfrozen)
Source, Scripts
Documents
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 21
System B1A v 1.0
(unfrozen)
System B1B v 1.0
(unfrozen)
February 11-23, 2002
The Case Date Interchange Format
(CDIF) family of standards
“CDIF has been developed to define the structure and content
of a transfer that may be used to exchange data between two
CASE tools. The fundamental objectives of the CDIF
Family of Standards are: to provide a precise, unambiguous
definition of information to be transferred; to define a
transfer that may be read and understood directly (i.e.,
without interpretation by a computer); to provide the
importer with sufficient information to enable the importer
to reproduce the transferred data consistent with the
original sense.”
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 22
© Mehandjiska, 2000
February 11-23, 2002
MetaData Interchange Format Standard
(MDC, 1998)
“To enable full-scale enterprise data management, different
IT tools must be able to freely and easily access, update, and
share meta-data. The only viable mechanism to enable
disparate tools from different vendors to exchange metadata is a common meta-data interchange specification with
guidelines to which the different vendors’ tools can comply.
… The MetaData Interchange Specification initiative brings
industry vendors and users together to address a variety of
problems and issues regarding the exchange, sharing, and
management of meta-data.”
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 23
© Mehandjiska, 2000
February 11-23, 2002
Evaluation of CASE tools
Criteria:
• Offered functions and their compatibility with needs of the company
• Cost
• Reliability
• Opinions on the vendor and on the dealer
• Availability of experts familiar with the tool
• Level of integration with the assumed programming environment
• Stable work in many environments
• Cost of training
• Cost of changes of hardware/software induced by the tool
Currently object-oriented tools are the most popular (even if a
target database is relational). The cost of a tool alone is usually
reasonable, but other costs (education, installation, changes of
routines, etc.) can be high. For these reasons simple tools are
frequently as efficient as very complex tools.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 24
February 11-23, 2002
Why Aren’t CASE Tools Used?
Organisation Perspective ...
Insufficient management commitment
Absence of a CASE strategy
80% of SE companies do not follow a well
defined SE process
Organisations often use ‘in-house’ techniques
Demands a large investment of time, cost and
effort
High learning curves and limited training
A culture shock for many organisations
Resistance by system developers
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 25
© Mehandjiska, 2000
February 11-23, 2002
Why Aren’t CASE Tools Used?
CASE Tool Perspective ...
Inappropriate or unsophisticated tools
Methodology specific
Limited support for the SDLC
Lack Flexibility
Lack of Intelligence
Only simple replacement of ‘pen and paper’
Poor Usability
No support for re-use of software assets
Lack of standards
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 26
© Mehandjiska, 2000
February 11-23, 2002
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.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 27
February 11-23, 2002
Problems in using CASE tools
Poor cooperation with the project management
Poor experience with CASE tools
Lack of integration with implemention tools
Poor organization of design and implemention processes
Lack of evidence that CASE tools can help in software production
Lack of design methodology
Incompatibility with current design routines
Reluctance to changes
Source:
CASE RESEARCH CORP.
Lack of acceptation of the client
2
4
6
8
10
12
14
16
% answers
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 28
February 11-23, 2002
Future of CASE tools ...
Utilise Modern
Human Computer
Interaction Techniques
Support Design
Patterns
Support Specification
of New Object
Oriented
Methodologies
Exhibit Intelligent
Support Current
Behaviour
Methodologies
Support
Support
Allow
Re-use of
Re-use of
Migration
Methodology
Software Assets
Between
Descriptions
Methodologies
Support Complete
Allow
Software
Customisation of
Development Life
Existing Methodologies
Cycle
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 29
© Mehandjiska, 2000
February 11-23, 2002
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.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 30
February 11-23, 2002