3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 1 February...
-
Upload
crystal-lang -
Category
Documents
-
view
213 -
download
0
Transcript of 3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 1 February...
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 1 February 11-23, 2002
Lecture 5:
Introduction to Computer Aided Software Engineering (CASE) Tools
Prof. Kazimierz Subieta Polish-Japanese Institute of Information Technology
Institute of Computer Science, Warsaw, [email protected]
http://www.ipipan.waw.pl/~subieta
System Engineering and Databases
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 2 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
Acknowledgment: The material has been compiled from many Internet sources. It has no commercial purpose.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 3 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 4 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 computer-based support for the managerial, administrative, or technical aspects of any part of a software development project.
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 5 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.”
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 6 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
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 7 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.
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 8 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.
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 9 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
Other
% answers5 10 15 20 25 30 35 40
Source:CASE RESEARCH CORP.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 10 February 11-23, 2002
Cost distribution during SI lifecycle
Methods based on
CASE tools
Traditional“ad hoc”methods
Planning Analysis Design Programming Deployment Maintenance time
cost
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 11 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
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 12 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 13 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 14 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.
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 15 February 11-23, 2002
Which CASE tool
should we choose?
EasyCASE
HOOD Toolset
Stood
TurboCASE
Bachman/Analyst
BOCS
EiffelCase
HOMSuite
I-CASE OMT
ILOG KADS Tool
LOV/Object Object
MacAnalyst/MacDesigner
ObjectCraft
ObjecteeringObjecTime
ObjectModeler
ObjecToolObjectOry
ObjectTeamOEW
OMTool
OOSD
Prosa/om
Rational Rose
S-CASE
Select/OMT
SES/Objectbench
System Architect
VIEWS-SF
With Class
001
Excelerator II
GraphTalk
MetaEdit
Object Maker
Paradigm Plus
Toolbuilder
BridgePoint
Ptech
OMW
Playground
VSF
Object Domain
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 16 February 11-23, 2002
Many-environmental CASE tools
Programmingenvironmentfor Java
Programmingenvironmentfor C++
Programmingenvironmentfor Ada
Programmingenvironmentfor Smalltalk
Lower-CASEfor the Java environment
Lower-CASEfor the Ada environment
Lower-CASEfor the Smalltalkenvironment
Lower-CASEfor the C++ environment
Universal Upper-CASE
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 17 February 11-23, 2002
CASE Tool Architecture
CENTRAL REPOSITORY
Local Repository (on a LAN
Server)Security and
Version Control
Tools
Inquiry and Reporting
Tools
Data Sharing Tools
House- keeping Tools
Graphics Tools
Decision Support
Tools
Quality Management
Tools
Design Generators
Code Generators
Document Tools
INPUTS: models,
descriptions and
prototypesOUTPUTS:
reports, problems,
and analyses
imported and
exported knowledgecheck-out/
check in knowledge
Repository Server
CASE Tool Facilities
(on a workstation)
Description Tools
Prototyping Tools
links links
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 18 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 19 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 20 February 11-23, 2002
Group work
Integrated model
Group A v 1
Group A v 2
Group D v 1
Group D v 2
Group C
Project BProject A Integrated project
Group B
Collaboratinggroups
Creating, updating
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 21 February 11-23, 2002
Versioning: frozen documents
Analysis Phase
System Design Phase
Object Design Phase
Implementation Phase
System A v 1.0 (frozen)
System A v 1.0 (frozen)
System A v 1.0 (unfrozen)
System A v 1.0 (unfrozen)
Models Documents
Models Documents
Models Documents
Source, Scripts Documents
System B v 1.0 (frozen)
System B v 2.0 (frozen)
System B1 v 1.0 (frozen)
System B2 v 1.0 (frozen)
System B1 v 1.0 (frozen)
System B1 v 1.1 (unfrozen)System B1 v 2.0
(unfrozen)
System B1A v 1.0 (unfrozen)
System B1B v 1.0 (unfrozen)
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 22 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.”
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 23 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 meta-data 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.”
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 24 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 25 February 11-23, 2002
Why Aren’t CASE Tools Used?
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
Organisation Perspective ...
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 26 February 11-23, 2002
Why Aren’t CASE Tools Used?
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
CASE Tool Perspective ...
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 27 February 11-23, 2002
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.
Why CASE tools are (sometimes) inefficient?
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 28 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
Lack of acceptation of the client
% answers2 4 6 8 10 12 14 16
Source:CASE RESEARCH CORP.
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 29 February 11-23, 2002
Future of CASE tools ...
AllowCustomisation of
Existing Methodologies
Support Complete Software
Development Life Cycle
Support Specification of
New Object Oriented
Methodologies
Utilise ModernHuman Computer
Interaction Techniques
Exhibit IntelligentBehaviour
Support CurrentMethodologies
Support Design
PatternsAllow
Migration Between
Methodologies
SupportRe-use of
Methodology Descriptions
SupportRe-use of Software Assets
© Mehandjiska, 2000
3rd Country Training, K.Subieta: System Engineering and Databases. Lecture 5, Slide 30 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.