System Analysis & Design: Tools
"CASE tools offer many benefits for developers
building large-scale systems. As spiraling user
requirements continue to drive system complexity to
new levels, the CASE tools enable us to abstract away
from the entanglement of source code, to a level where
architecture and design become more apparent and
easier to understand and modify.
The larger a project, the more important it is to use
CASE technology.
CASE tools coupled with methodologies give us a way
of representing systems too complex to comprehend in
their underlying source code or schema-based form.
1
Object modeling CASE tools will probably
have to continue to support multiple
methodologies into the foreseeable future.
Even when the UML achieves its expected
market penetration, other methodologies will
probably continue to have strong followers,
who will keep various notations and
methodologies in active use.
2
CASE Tools
Computer-Aided Systems Engineering
To support each phase of the system development life cycle
with a set of laborsaving tools.
CASE tools are programs (software) that automate or
support one or more phases of a systems development life
cycle.
Intended to accelerate the process of developing systems and to
improve the quality of the resulting systems..
CASE is not a methodology or an alternative to methodologies.
CASE is an enabling technology that supports a methodology’s
preferred strategies, techniques, and deliverables.
3
Why CASE?
1. Increasing costs of software development due to the
extreme intensive labor required.
2. System development is often conducted in an ad hoc
fashion.
3. Avoid simple human errors in software development.
4. CASE offers an important opportunity to alleviate the
problems of application development and maintenance
that can have catastrophic consequences.
4
CASE Tool Classification
Upper-CASE describes tools that automate or support the
‘upper’ or earliest phases of systems development
Lower-CASE describes tools that automate or support the
‘lower’ or later phases of systems development
I-CASE (integrative case) support the entire SDLC
5
CASE Objectives
Create development process standards
Improve overall application quality
Decrease design time and improve time to market
Decrease required effort and time in application testing
Encourage integration of development projects
Improve effectiveness of project management activities
Decrease required effort and time in application
maintenance activities
Promote organization-wide reusable program code
Improve portability of applications across platforms and
operating environments
6
The Good and Bad News about CASE
Development process CASE acquisition costs are
productivity and quality extremely high
increases are realizable Training of analysts and
Portability of new systems to administrators is costly and
other platforms is greatly time-consuming
enhanced Most organizations do not have
Analyst skill set will improve clear standards for application
due to greater understanding of development
the process CASE tools can be viewed as a
Time to delivery of new threat to job security
applications will decrease CASE tools do not have a great
Conformity to development reputation due to early benefits
standards will increase not being realized
7
CASE Tool Repository
Heart of CASE
tool is the central
repository
Stores all the Central Repository
information to
analyze, create,
Project Detailed Analysis
design and Documentation Findings Logical
Model Diagrams
modify an Data
application from Element
Specifications
Reusable
Form
and
feasibility to Code
Libraries General
Project
Report
Layouts
implementation Program
Source
Information
and
and maintenance Object
Code
8
CASE Tool Components
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
9
Modeling and Diagramming Tools
Support logical model development (data and process)
Process Modeler
can be used to develop a diagram which illustrates the activities
within an organization system and the sequence in which they take
place.
Function Hierarchy Diagrammer
facilitates the modeling of the hierarchies of all the functions that
are performed by a business and can assist in identifying which
parts of the business are currently, or can be automated.
Data Flow Diagramming Tools
Entity Relationship Diagramming Tools
Not just drawing packages!
10
Prototyping and Transformation Tools
Enable the rapid conversion of analysis requirements into
default database and application designs.
Application transformers
The application transformers create a first-cut application design
based on an existing database design and on the functions and
business rules placed in the repository during detailed analysis.
Database Transformers
The database transformer creates and maintains database designs
based on entity models recorded in the central repository.
Reverse-engineering
Form and Report Generators
Automate the activities necessary for the analyst to design how
the various users will interact with the system.
11
Documentation and Code Generators
The documentation generators generate phase-specific
documentation from the data in the central repository.
Code generators produce high-level code from the various
diagrams, models, forms, reports, and data definitions
contained with the central repository.
Reverse Engineering and Reengineering
Reverse engineering function allows for the generation of
design specifications and models from existing program code
and data structures.
Reengineering functions are advanced reverse engineering
modules that provide a certain level of automation to the
redesign process and make recommendations as to the “logic”
of a program.
12
RAD: Rapid Application Development
RAD promises the ability to develop and deploy a system
more quickly while maintaining quality and reducing
development costs.
a series of iterative work sessions intended to create a prototype.
Primary RAD application development techniques
Use of iterative prototypes, CASE, and JAD sessions
Adopt timeboxed approach to development
imposing an immovable deadline on the completion of a task,
activity, stage, or system by strictly controlling functionality
Major differences between the traditional SDLC and RAD
The imposition of timeboxes in RAD
The upfront, and often labor intensive, activities of the SDLC are
condensed through parallel actions, the use of JAD, and intensive
iterative prototyping. 13
RAD vs. SDLC
Preliminary Requirement
Investigation Planning RAD
Life Cycle
Analysis
Logical User Design
Design
Physical
Design
Construction
Implementation
Traditional Maintenance Cutover
SDLC
14
RAD Activities and Deliverables
Requirements User
Planning Design Construction Cutover
Model and Model and Complete Install
Primary Activity prototype prototype application application
requirements design development
Define data Plan and design Develop data Implement
Data requirements data conversion conversion conversion plan
Conversion modules
Design Conduct user
Testing application test testing
plan
Define training Design training Produce training Conduct end-
End-user requirements plan materials user training
Training
15
RAD Pros and Cons
Time savings in overall project Focus on time to delivery and project
phases are realizable. cost may result in lower system
functionality and overall quality.
RAD reduces overall project costs
and human resource requirements.
RAD leaves little time to focus on
the overall business environment and
Works well with development efforts the expected changes both near and
where time is of the essence. far term.
System design changes can be Less consistency and integration
affected much more rapidly than with with other organizational systems.
the traditional SDLC approach. Documentation quality and
The user perspective is represented in conformity to existing development
the final system with regard to both standards is often decreased.
functionality and interface. System scalability becomes more
Creates a strong sense of ownership difficult.
among all project stakeholders. Requires an extremely high
commitment of human resources
during the early stages.
16