CSIS3600 Systems Analysis and Design

advertisement
CSIS3600 Systems Analysis and
Design
Class 6 - CASE Tools
CASE Tools
The term Computer Aided Software Engineering
(CASE) was born as a result of the need to provide
structure to systems development efforts. (Many IS
professionals thought that the software development
process needed an engineering ‘flavor’ that would
help to establish the use of common techniques,
standard methodologies and automated tools).
CASE Tools
The earliest commercial CASE tools date back to
1982. These tools were heavily focused on
supporting diagramming. By 1985, CASE became
big in software engineering circles. By 1990, it was
reported that there were over 470 CASE tool vendors
with an estimated market of $4.8 billion with growth
expected to exceed $13 billion by the end of the
decade.
Need for CASE
 Computer technology is expanding rapidly.
 Software applications are proliferating.
 New applications are emerging and there exists a
need to maintain what is already in place. (More
efficient ways to develop software applications are
required.)
• Software development methodologies began to
appear and formalized training and education was
initiated for following a methodology for software
development.
Some Trivia
Software Trivia: It is estimated that there are, today, almost 500
programming languages in active use representing billions and
billions of lines of code. Conservative estimates put the number
of lines of COBOL in use at over 200 billion. Languages such as
C, Basic, Pascal, Ada, Fortran, PL/1 and Jovial add another 200
billion lines to the COBOL total. A host of other languages
including Algol, APL, CHILL, CMS2, CORAL, Forth, Lisp,
Modula, Mumps, Prolog, Ratfor, and RPG, to name a few,
account for the remainder. Even niche programming languages
such as Natural account for over 10 billion lines of code in
support of enterprise computing. This estimate doesn't even
account for new programming environments such as Java.
Sample Lines of Code
What about Linux?
Why CASE
The purpose of CASE is:
 to make it simpler to enact a single design
philosophy with the goal to speed up the
development process.
 to automate mundane tasks.
• to promote a central location for referencing
system development activities and
documents.
What is CASE
• CASE is a collection of tools used to support the
software development process.
• CASE tools support a wide variety of activities as
identified in the SDLC.
• Cross life cycle tools support those activities that
occur across multiple phases of the SDLC.
Examples are project management, time estimates
and creating documentation.
Components of CASE
A CASE environment contains a collection of
tools. Not all environments provide all tools.
CASE tools are divided into
• Upper CASE
• Lower CASE
• Cross Life Cycle CASE
Components of CASE
 Upper CASE is focused in supporting project
identification and selection, project initiation,
project planning, analysis and design.
 Lower CASE provides support for the
implementation and maintenance phases.
 Cross Life Cycle CASE supports activities that
occur across multiple phases of the SDLC.
Diagramming Tools
• Diagramming Tools provide the means for representing the
system visually. They are used to show data flow, process
flows, entity-relationships, etc.
• The diagramming tool provides a graphical tool set that can
be used to draw the diagrams and most CASE tools even
generate the database schema (separate tables defined in the
database to store data) directly from the relationship
diagrams.
• Diagramming capabilities are considered the most
fundamental and indispensable component of a CASE
environment.
Sample Diagramming Tool - DataFlow
Sample Diagramming Tool – Entity Relationship
Form and Report Generator Tools
• Form and Report Generator Tools provide
automated tools for designing forms and
developing report formats.
• These help to provide end users with
prototypes of how the system will ‘look and
feel.’
Sample Form and Report Generator Tool
Analysis Tools
• Analysis Tools generate reports that help to
identify possible inconsistencies, redundancies
and omissions in diagrams, forms and reports
previously created.
• They help to insure that the data needed is entered
into the system, flows through the system and can
be reported out when needed.
• These tools also check for such things as
redundancy, missing elements, incorrect flow of
data, etc.
Repository
• The Repository provides a centralized database that
contains all diagrams, reports, forms, data structures and
other definitions of the system.
• It serves as the nucleus of the system development
environment and is paramount to the integration of the
tools used at various stages of the SDLC.
• The repository can serve as the ‘library of all information’
related to the system development project thereby
providing means for facilitating project management and
project sharing.
Repository
• Further, repositories provide a vehicle for reusability
because known development work is located in a common
place facilitating reuse of resources for similar project.
Sample Repository Reports Screen
Documentation Generator Tools
• Documentation Generator Tools provide
support for the generation of standard
reports that can be maintained and shared
throughout the development process.
• Enough said about documentation … we all
know how important it is but how it often
slips through without being completed.
Code Generators
• Code Generators automated systems that
produce high-level program source code
from diagrams and forms.
(CASE generated source code often has to be
edited by programmers.)
CASE Usage Within the SDLC
SDLC Phase
Key Activities
CASE Tool Usage
Project
identification and
selection
Display and
structure high-level
organizational
information
Diagramming and
matrix tools to
create and structure
information
Project initiation
and planning
Develop project
scope and
feasibility
Repository and
documentation
generators to
develop project
plans
CASE Usage Within the SDLC
SDLC Phase
Key Activities
CASE Tool Usage
Analysis
Determine and
structure system
requirements
Diagramming to create
process, logic and data
models
Design
Create new
system designs
Form and report
generators to prototype
designs; analysis and
documentation
generators to define
specifications
CASE Usage Within the SDLC
SDLC Phase
Implementation
Maintenance
Key Activities
CASE Tool Usage
Translate designs
Code generators
into an information and analyzers,
system
form and report
generators;
documentation
generators to
develop system and
user documentation
Evolve information All tools are used
systems
(repeat life cycle)
CASE and the SDLC
Greatest Benefits of CASE
 The big benefits to using CASE come in the late
stages of the SDLC – system construction, testing,
maintenance.
 CASE often lengths the time to completion of the
early stages of the SDLC by 40% according to
some estimates.
 This is because the design must be fully completed
before using such automated tools as code
generators, etc.
Neat Features of CASE
 Reverse Engineering – automated tools that read
program source code as input and create graphical
and textual representations of program designlevel information.
• Reengineering – Automated tools that read
program source code as input, perform an analysis
of the program’s data and logic, and then
automatically or interactively alter an existing
system.
Constraining Factors of CASE
 Start-up costs can be high – prices range from
$5000 per analyst to $50,000
 Year cost estimate - $5,000-$15,000 per year per
analyst
 Learning curve is high – Many CASE applications
are complex, with many sophisticated tools
 CASE software dictates a way of doing things
• CASE tools cannot easily share information
between tools
What is the use of CASE?
 Many organizations use varying tools or aspects of
CASE.
 Most widely used features are the diagramming
tools
 Next commonly used is the repository
 Provides integration of documentation
– Promotes consistency when changes are made
Emerging Tools for Object
Oriented Design
Object Oriented Design is an extremely
important area of development and CASE
tools for Object Oriented Design are emerging
and maturing.
Tools for OOAD
• You are probably familiar with visual development
tools. These tools are extremely powerful. They
allow users to create new user interfaces, reports
and other features in a fraction of the time
previously required. Common visual development
tools include PowerBuilder by Powersoft, Delphi
by Borland International, Visio (now owned by
Microsoft) and Visual Basic by Microsoft.
CASE Tool Resources
• On-line resources for CASE tools:
• Directory of CASE TOOLS:
http://www.qucis.queensu.ca/SoftwareEngineering/tools.html
• CASE Tools Listing and other CASE References:
http://www.itmweb.com/case.htm
• These sites will allow you to download an evaluation
(beware Rational is 51MB!! – you might prefer to try the
demos!)
http://www.rational.com/products/rose/index.jtmpl
• http://www.visible.com
Unified Modeling Language
• Unified Modeling Language (UML) is an object
oriented modeling language.
• UML is the culmination of the work of the three
leading experts in the field - Grady Booch, Ivar
Jacobson and James Rumbaugh. UML combined
the best from ER diagrams, business modeling
(workflow), object modeling and component
modeling.
• Will be used in group projects
UML Notation
UML notation is useful for graphically depicting
object oriented analysis and design models.
 Models system requirements
 Facilitates design decisions
 Promotes communications among key players involved
in the development effort
 Integrates system views in a complete and consistent
fashion
 Employs a simple notation set
UML Example
U
M
L
S
Y
M
B
O
L
S
Helpful tools for Diagramming
• RFFLow
– easy to use
– no limit time but number of symbols you can use is limited
• RFFLow - demo copy available at www.rff.com
– Tutorial is available at http://www.rff.com/tutorial.htm
– Samples are available at http://www.rff.com/samples.htm
– Limited version available for demo (disallows new
objects on a model after about 20 have been used)
• Smartdraw
– easy to use
– great collection of symbols
– 30 day free trial
– available at www.smartdraw.com
Diagramming CASE Tool for
OOAD
• Poseidon
• http://www.gentleware.com/
• http://www.gentleware.com/products/downl
oad.php3
– You must have the Java sdk installed on your
machine
• http://java.sun.com/j2se/1.4.1/download.html
• Download the install anywhere version
Poseidon
• Great tool to experiment with
• Community edition (the free one!)
automatically generates C++ and HTML
code
• Beware of its quirks!
Quote of the Week
"…despite 50 years of progress, the software
industry remains years – perhaps decades
– short of the mature engineering
discipline needed to meet the demands of
an information age society." Scientific
American, Sept 94
Download