Vous êtes sur la page 1sur 69

Chapter 6.

CASE Tool

[it-23] Software engineering

Rahul P Pune.
• CASE (Computer Aides Software Engineering)
:technologies are tools that provide the assistance to the
developer in the development of software.
Or
• CASE tools are programs (software) that automate or
support one or more phases of a systems development life
cycle.

4/12/2019 Software Engineering MCA II 2


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.
CASE versus Traditional Systems
Development
• Traditional Systems • CASE-Based Systems
Development Development
1. Emphasis on analysis and
1. Emphasis on coding and design
testing
2. Rapid interactive prototyping
2. Paper-based 3. Automated code generation
specifications
4. Automated documentation
3. Manual coding of generation
programs 5. Automated design checking
4. Manual documenting 6. Maintain design specifications
5. Intensive software testing
6. Maintain code and
documentation

4.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
CASE Tools

• Upper CASE • Lower CASE


– requirements – implementation
– specification – integration
– planning – maintenance
– design

6
(a) Upper Case Tools
• Diagramming tools: Diagramming tools enable system
process, data, and control structures to be represented
graphically. They strongly support analysis and
documentation of application requirements.

• Form and report generator tools: They support the


creation of system forms and reports in order to show
how systems will “look and feel” to users.

• Analysis tools: Analysis tools enable automatic checking


for incomplete, inconsistent, or incorrect specifications
in diagrams, forms, and reports.

4/12/2019 Software Engineering MCA II 7


(b) Lower CASE or Back-end Tools
• (b) Lower CASE or Back-end Tools. These CASE tools
are designed to support the implementation and
maintenance phases of the SDLC. All generator,
translation, and testing tools are back-end tools. The
general types of lower CASE tools are:
• Code Generators: Code generators automate the
preparation of computer software. Code generation is not
yet perfect. Thus, the best generator will produce
approximately 75 % of the source code for an application.
Hand-coding is still necessary.

4/12/2019 Software Engineering MCA II 8


(c) Cross life-cycle CASE or
Integrated Tools
• . These CASE tools are used to support activities that
occur across multiple phases of the SDLC. While such
tools include both front-end and back-end capabilities,
they also facilitate design, management, and maintenance
of code. In addition, they provide an efficient environment
for the creation, storage, manipulation, and
documentation of systems.

4/12/2019 Software Engineering MCA II 9


(d) Reverse-engineering Tools
• (d) Reverse-engineering Tools. These tools build
bridges from lower CASE tools to upper CASE tools. They
help in the process of analyzing existing applications and
perform and database code to create higher level
representations of the code.

4/12/2019 Software Engineering MCA II 10


CASE Tool Repository
• Heart of CASE
tool is the
central
repository
Central Repository
• Stores all the
information to
analyze, create,
design and Project
Documentation
Detailed
Analysis Logical
modify an Findings Model
Diagrams
application Data
Element
from feasibility Specifications
Reusable
Form
and

to Code
Libraries General
Project
Report
Layouts

implementatio Program
Source
Information

n and and
Object
maintenance Code
CASE Tool Architecture
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
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!
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.
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.

4/12/2019 Software Engineering MCA II 18


Project Management Tools(PMT)
Project planning tools
used for
- Cost Scheduling
- Showing task interdependence
- Parallelism activities - WBS
- Uses CPM method (Slippage on delivery date)
- Risk analysis tools
– help project managers build risk tables by providing detailed
guidance in the identification and analysis of risks
– Identifying and analysis of potential risk
– Counter manage risk
– Taking risk up to feasible level

19
Project Management Tools(PMT)
• Requirements tracing tools
– provide systematic database-like approach to tracking
requirement status beginning with specification
– In Large projects

• Metrics and management tools


– management oriented tools capture project specific
metrics that provide an overall indication of
productivity or quality, technically oriented metrics
determine metrics that provide greater insight into the
quality of design or code
– 3 P’s Product, Process, Project
Project Management Tools(PMT)
• Cost Estimation tool:
– Size of Project using
– LOC,FPA
– Estimated effort on Project duration, number of
peoples require
• Software configuration management tools
– uses the CASE repository to assist with all SCM
tasks (identification, version control, change
control, auditing, status accounting)
Project Management Tools(PMT)
• Documentation tools
– provide opportunities for improved productivity by
reducing the amount of time needed to produce work
products
• Quality assurance tools
– metrics tools that audit source code to determine
compliance with language standards or tools that
extract metrics to project the quality of software being
built
• Database management tools
– RDBMS and OODBMS serve as the foundation for the
establishment of the CASE repository

4/12/2019 Software Engineering MCA II 22


Project Management Tools(PMT)
• Software Estimation - including size, effort, cost and schedule
• Work Breakdown Structure - the most efficient way to manage
work allocations and execution
• Defect Manager - allows monitoring and reporting of software
defects for improved quality
• Change Manager - enables management of requested changes
• Timesheet - for enhanced information needed for effective
project management
• Software Metrics - including Productivity, Defect (Quality),
Change (Requirements Stability), Effort, and Schedule Metrics
Analysis and Design Tool
 Analysis and design tools SA/SD Tool:
enable the software engineer to create analysis
and design models of the system to be built,
perform consistency checking between models
- SA/SD Approach
- Building more complex
- Starting from Requirement; finish with
Architectural design
Analysis and Design Tool
• PRO/SIM tools
– prototyping and simulation tools provide software
engineers with ability to predict the behavior of
real-time systems before they are built and the
creation of interface mockups for customer review
– PRO/SIM tools also useful for
– For creation of functional and behavioral model of the system
– Specifying project performance characteristics of each system
elements
– Defining input/output data characteristics
– Modeling , interfacing and interconnectivity among system
elements
– Code generation and formal verification of system specification
Analysis and Design Tool
• Interface Design and development tool: These tools form a
toolkit for interface menus, buttons, icons, scroll bars,
messages, icons allow rapid prototyping of user interface
design.
• Prototyping tool: Screen and report layouts for interactive
application
• Analysis and Design Engine:
- Rule based architecture
- Provide analysis and design method
- Building appropriate graphical notation, entering
rules which govern semantics of symbol and developing an
interface
4/12/2019 Software Engineering MCA II 26
CASE Tool Taxonomy - 1
• Business process engineering tools
– represent business data objects, their relationships, and
flow of the data objects between company business
areas
• Process modeling and management tools
– represent key elements of processes and provide links
to other tools that provide support to defined process
activities

27
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.
Prototyping and Transformation
Tools
• Paper prototyping: initial stage of prototyping
• Screen painter: Define screen layout for interaction. Also
generate source code to create screen and report layouts.
• PRO/SIM tools: generate analysis and design source code
for real time systems.

4/12/2019 Software Engineering MCA II 29


Programming tools
• Programming tools
– compilers, editors, debuggers, OO programming
environments, fourth generation languages, graphical
programming environments, applications generators, and
database query generators
• Conventional coding tools: These tools include compilers, editors
and debuggers which were the only option in olden days. Still used
• Object oriented Programming Tools: 3rd generational features such
as mouse, windows, pull down menus
Object can be reused in current project
• 4th generation coding tools: Code automatically generate from
design diagram ex. Class diagram.
• Database query generator: for query processing. Used with DDL
and DML
4/12/2019 Software Engineering MCA II 30
Integration and testing tools

• Integration and testing tools


– data acquisition
• get data for testing
– static measurement
• analyze source code without using test cases
– dynamic measurement
• analyze source code during execution
– simulation
• simulate function of hardware and external devices
– test management
– cross-functional tools
31
Integration and testing tools

• Test management tools


– coordinate regression testing, compare
actual and expected output, conduct batch
testing, and serve as generic test drivers
• Client/server testing tools
– exercise the GUI and network
communications requirements for the client
and server

32
Maintenance Tool

• Maintenance Tool
• Static analysis tools
– code-based testing tools, specialized testing languages,
requirements-based testing tools
• Dynamic analysis tools
– intrusive tools modify source code by inserting probes
to check path coverage, assertions, or execution flow
– non-intrusive tools use a separate hardware processor
running in parallel with processor containing the
program being tested
33
Maintenance Tool
• Reengineering tools
– Data reengineering tools: Modify online database.
– reverse engineering to specification tools
• generate analysis and design models from source
code, where used lists, and other design information
– code restructuring and analysis tools
• analyze program syntax, generate control flow
graph, and automatically generates a structured
program
– on-line system reengineering tools
• used to modify on-line DBMS

4/12/2019 Software Engineering MCA II 34


CASE SUPPORT IN SOFTWARE
LIFE-CYCLE
• There are various types of support that CASE
provides during the different phases of a software
life-cycle.
1. Prototyping Support. The prototyping is useful
to understand the requirements of complex
software products, to market new ideas and so on.
The prototyping CASE tools requirements are as
follows:
 Define user interaction
 Define the system control flow
 Store and retrieve data required by the system
 Incorporate some processing logic
4/12/2019 Software Engineering MCA II 35
CASE SUPPORT IN SOFTWARE
LIFE-CYCLE
A few features that are supported by prototyping tools include:
 Developing the graphical user interface (GUI). The user should
be allowed to define all data entry forms, menus, and control.
 They integrate well with the data dictionary of a CASE
environment.
 They should be able to integrate with the external user-defined
modules
 written in high-level languages.
 The user should be able to define the sequence of states
through which a created prototype can run.
 The prototype should support a mock-up run of the actual
system and management of the input and output data.

4/12/2019 Software Engineering MCA II 36


CASE SUPPORT IN SOFTWARE

LIFE-CYCLE
2. Structured Analysis and Design. A CASE tool should support
one or more of the structured analysis and design techniques.
• It should also support making of the fairly complex diagrams and
preferably through a hierarchy of levels.(Ex: DFD Levels)
• The tool must also check the incompleteness, inconsistencies, and
anomalies across the design and analysis through all levels of analysis
hierarchy.
• Analysis and design tools enable a software engineer to create models
of the system to be built. The models contain a representation of data,
function, and behavior (at the analysis level) and characterizations of
data, architectural, component-level, and interface design. By
performing consistency and validity checking on the models, analysis
and design tools provide a software

4/12/2019 Software Engineering MCA II 37


CASE SUPPORT IN SOFTWARE
LIFE-CYCLE
• engineer with some degree of insight into the analysis
representation and help to eliminate errors before they
propagate into the design, or worse, into the
implementation itself.

4/12/2019 Software Engineering MCA II 38


CASE SUPPORT IN SOFTWARE
LIFE-CYCLE
• 3. Code Generation. A support expected from a CASE tool
during the code generation
phase includes the following:
 The CASE tool should support generation of module skeletons
or templates in one or more popular programming languages.
 The tool should generate records, structures, and class
definitions automatically from the contents of the data
dictionary in one or more popular programming languages.
 It should be able to generate database tables for a relational
database management system.
 The tools should generate code for the user interface from
prototype definitions for X-Windows and Windows-based
applications.

4/12/2019 Software Engineering MCA II 39


CASE SUPPORT IN SOFTWARE
LIFE-CYCLE
• 4. Test CASE Generator. The CASE tool for the test case
generator should have the following features:
• It should support both design and requirement testing.
• It should generate test set reports in ASCII format, which
can be directly imported into the test plan document.

4/12/2019 Software Engineering MCA II 40


CASE SUPPORT IN SOFTWARE
LIFE-CYCLE
• In the testing phase, test-management tools are used to
control and coordinate software testing for each of the
major testing steps. Testing tools manage and coordinate
regression testing, perform comparisons that ascertain
differences between actual and expected output, and
conduct batch testing of programs with interactive
human/computer interfaces. In addition to the functions
noted, many test-management tools also serve as generic
test drivers. A test driver reads one or more test cases from
a testing file, formats the test data to conform to the needs
of the software being tested, and then invokes the software
to be tested.

4/12/2019 Software Engineering MCA II 41


i-Case Tool Framework CASE
Tools

42
CASE Tools

• Computer-Aided Software Engineering


• Prerequisites to tool use
– Need a collection of useful tools that help in
every step of building a product
– Need an organized layout that enables tools
to be found quickly and used efficiently
– Need a skilled craftsperson who understands
how to use the tools effectively

43
i-Case Environment

4/12/2019 Software Engineering MCA II 44


i-Case Environment
1. Environment Architecture. The environment
architecture, composed of the hardware platform and
operating system support including networking and
database management software, lays the groundwork for
CASE but the CASE environment itself demands other
building blocks.
2. Portability Services. A set of portability services
provides a bridge between CASE tools and their
integration framework and the environment architecture.
These portability services allow the CASE tools and their
integration framework to migrate across different
hardware platforms and operating systems without
significant adaptive maintenance.
4/12/2019 Software Engineering MCA II 45
i-Case Environment
3. Integration Framework. It is a collection of
specialized programs that enables individual CASE
tools to communicate with one another and to create a
project database.

4. Case Tools. Case tools are used to assist software-


engineering activities (such as analysis modeling, code
generation, etc.) by either communicating with other
tools, the project database (integrated CASE
environment), or as point solutions.

4/12/2019 Software Engineering MCA II 46


The next 17 slides come from
Sommerville’s book

47
An analysis and design workbench
Structured Report
Data
diagramming generation
dictionary
tools facilities

Central Query
Code
generator information language
repository facilities

Forms Design, analysis


and checking Import/export
creation
tools facilities
tools

48
Integrated CASE Environments -1
• Provide mechanism for sharing
information among all tools contained in
the environment
• Enable changes to items to be tracked to
other information items
• Provide version control and overall
configuration management
• Allow direct access to any tool contained
in the environment
49
Integrated CASE Environments -2
• Establish automated support for the chosen
software process model, integrating CASE tools and
SCI's into a standard work break down structure
• Enable users of each tool to experience a consistent
look and feel at the human-computer interface
• Support communication among software engineers
• Collect both management and technical metrics to
improve the process and the product

50
Integrated Framework

4/12/2019 Software Engineering MCA II 51


Integration Architecture - 1
• User Interface Layer
– interface toolkit
• contains software for UI management and library of
display objects
– common presentation protocol
• guidelines that give all CASE tools the same look and
feel (icons, mouse behavior, menu names, object
names)
• Tools Layer
– tools management services
• control behavior of tools inside environment
– CASE tools themselves

52
Integration Architecture - 2
• Object management layer (OML)
– performs the configuration management
function, working with the CASE repository
OML provides integration services
• Shared repository layer
– CASE database and access control functions
enabling the OML to interact with the database

53
CASE Repository Functions - 1
1. Data integrity
– includes functions to validate entries to the repository
and ensure consistency among related objects
2. Information sharing
– provides mechanism for sharing information among
multiple developers and multiple tools, controls
modification of information
3. Data-tool integration
– establishes shared data model and performs
configuration management functions

54
CASE Repository Functions - 2
4. Data-data integration
– database management system allowing access to
related objects so functions can be achieved
5. Methodology enforcement
– E-R model used to define steps needed to be
conducted to build the repository contents
6. Document standardization
– definition of objects in the database leads directly to a
standard approach for creation of engineering
documents

55
CASE Repository Content Summary

1. Problem to be solved.
2. Problem domain.
3. Emerging solution.
4. Rules pertaining to software process
methodology.
5. Project plan.
6. Organizational content.

56
DBMS Features Needed for CASE
Repositories
1. Non-redundant data storage
2. High-level access
3. Data independence
4. Transaction control
5. Ad hoc data queries and reports
6. Openness
7. Multi-user support

57
CASE Repository Features - 2
8) Integrity enforcement
business rules policies, constraints requirements
on the information being entered into
repository, triggers may be used to check the
validity of the design models in real time

58
CASE Repository Features - 3
9) Semantic-rich tool interface
– repository meta-model contains semantics that enable
a variety of tools to interpret meaning of data stored
in the repository
10) Process/project management
– contains information about the software application
– characteristics of each project
– organization's general process for software
development - phases, tasks, deliverables

59
11) Version: Some old soft wares may require for
comparison
12) Dependency tracking and change
management: Checks integrity whenever
changes occurs
13) Requirement tracking: Forward tracking and
backward tracking
14) Configuration management:
15) Audit Trail: Who, when, why changes done in
repository.

4/12/2019 Software Engineering MCA II 60


List of CASE Tools

4/12/2019 Software Engineering MCA II 61


The Good and Bad News about
CASE
• Good News • Bad News
• 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
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
Benefits of CASE
• Easing revision of application: Central
repository and internal generation
• Support of system prototyping: Quickly alter
GUI. Alternatively can produce procedural
code and data files.
• Code generation: Consistent and standard
program . Facilitates reuse of SW
• Improved ability to meet user requirement:
Using prototype, screen layouts, GUI SW
develops in less time period.
• Support iterative development process:
4/12/2019 Software Engineering MCA II 64
major benefits of using CASE tools
• The major benefits of using CASE tools include the following:
1. Improved productivity
2. Better documentation
3. Improved accuracy
4. Intangible benefits
5. Improved quality
6. Reduced lifetime maintenance
7. Opportunity to non-programmers
8. Reduced cost of software
9. Produce high-quality and consistent documents

4/12/2019 Software Engineering MCA II 65


major benefits of using CASE tools
10. Impact on the style of a working of company
11. Reduce the drudgery(hardWork)of software
engineer’s
12. Increase speed of processing
13. Easy to program software
14. Improved coordination among staff
members who are working on a large software
project
15. An increase in project control through better
planning, monitoring, and communication

4/12/2019 Software Engineering MCA II 66


DISADVANTAGES OF CASE
TOOLS
• 1. Purchasing of CASE Tools is Not an Easy Task.
The cost of CASE tools is very high. For this reason
small software development firms do not invest in
• CASE tools.
• 2. Learning Curve. In general, programmer
productivity may fall in the initial phase of
implementation as users need time to learn this
technology.
• 3. Tool Mix. It is important to make proper
selection of CASE tools to get
• maximum benefits from the tools, as the wrong
selection may lead to the wrong results.

4/12/2019 Software Engineering MCA II 67


Factors affecting using CASE tool
1. Cost:
2. Time Limitation:
3. Training: As new tool very expensive to train
4. Lack of Concern: Lack of interest
5. Technical limitations: Require hardware or software
requirements to use CASE tool
6. Technology transfer and insertion
7. Environment: Oppose as new technology
8. Selection of Case tool: Consult to show how they can
effectively use
9. One tool donot support all needs of project effectively.

4/12/2019 Software Engineering MCA II 68


Weakness of CASE
• Absence of standard levels of methodology
used
• Conflicting use of diagram
• Limited function
• Human task remain critical

4/12/2019 Software Engineering MCA II 69

Vous aimerez peut-être aussi