Title: CASE Tools
1CASE Tools
- CIS 375
- Bruce R. Maxim
- UM-Dearborn
2CASE 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
3CASE Tools
- Upper CASE
- requirements
- specification
- planning
- design
- Lower CASE
- implementation
- integration
- maintenance
4CASE Building Blocks - 1
- CASE tools
- Integration framework
- specialized programs allowing CASE tools to
communicate with one another - Portability services
- allow CASE tools and their integration framework
to migrate across different operating systems and
hardware platforms without significant adaptive
maintenance
5CASE Building Blocks - 2
- Operating system
- database and object management services
- Hardware platform
- Environmental architecture
- hardware and system support
6CASE 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 - Project planning tools
- used for cost and effort estimation, and project
scheduling
7CASE Tool Taxonomy - 2
- Risk analysis tools
- help project managers build risk tables by
providing detailed guidance in the identification
and analysis of risks - Requirements tracing tools
- provide systematic database-like approach to
tracking requirement status beginning with
specification
8CASE Tool Taxonomy - 3
- 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 - Documentation tools
- provide opportunities for improved productivity
by reducing the amount of time needed to produce
work products
9CASE Tool Taxonomy - 4
- System software tools
- network system software, object management
services, distributed component support, and
communications software - 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
10CASE Tool Taxonomy - 5
- Database management tools
- RDMS and OODMS serve as the foundation for the
establishment of the CASE repository - Software configuration management tools
- uses the CASE repository to assist with all SCM
tasks (identification, version control, change
control, auditing, status accounting) - Analysis and design tools
- enable the software engineer to create analysis
and design models of the system to be built,
perform consistency checking between models
11CASE Tool Taxonomy - 6
- 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 - Interface design and development tools
- toolkits of interface components, often part
environment with a GUI to allow rapid prototyping
of user interface designs
12CASE Tool Taxonomy - 7
- Prototyping tools
- enable rapid definition of screen layouts, data
design, and report generation - Programming tools
- compilers, editors, debuggers, OO programming
environments, fourth generation languages,
graphical programming environments, applications
generators, and database query generators - Web development tools
- assist with the generation of web page text,
graphics, forms, scripts, applets, etc.
13CASE Tool Taxonomy - 8
- 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
14CASE Tool Taxonomy - 9
- 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
15CASE Tool Taxonomy - 10
- 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
16CASE Tool Taxonomy - 11
- Reengineering tools
- 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
17The next 17 slides come from Sommervilles book
18Requirements validation
- Concerned with demonstrating that the
requirements define the system that the customer
really wants - Requirements error costs are high so validation
is very important - Fixing a requirements error after delivery may
cost up to 100 times the cost of fixing an
implementation error
19Requirements validation techniques
- Requirements reviews
- Systematic manual analysis of the requirements
- Prototyping
- Using an executable model of the system to check
requirements. - Test-case generation
- Developing tests for requirements to check
testability - Automated consistency analysis
- Checking the consistency of a structured
requirements description
20Automated consistency checking
21Requirements management
- Requirements management is the process of
managing changing requirements during the
requirements engineering process and system
development - Requirements are inevitably incomplete and
inconsistent - New requirements emerge during the process as
business needs change and a better understanding
of the system is developed - Different viewpoints have different requirements
and these are often contradictory
22Requirements Change
- The priority of requirements from different
viewpoints changes during the development process - System customers may specify requirements from a
business perspective that conflict with end-user
requirements - The business and technical environment of the
system changes during its development
23Requirements evolution
24Requirements Management Planning
- During the requirements engineering process, you
have to plan - Requirements identification
- How requirements are individually identified
- A change management process
- Process followed when analysing a requirements
change - Traceability policies
- Amount of information about requirements
relationships that is maintained - CASE tool support
- Tool support required to manage requirements
change
25Traceability
- Traceability is concerned with the relationships
between requirements, their sources and the
system design - Source traceability
- Links from requirements to stakeholders who
proposed these requirements - Requirements traceability
- Links between dependent requirements
- Design traceability
- Links from the requirements to the design
26CASE tool support
- Requirements storage
- Requirements should be managed in a secure,
managed data store - Change management
- The process of change management is a workflow
process whose stages can be defined and
information flow between these stages partially
automated - Traceability management
- Automated retrieval of the links between
requirements
27Requirements Change Management
- Should apply to all proposed changes to the
requirements - Principal stages
- Problem analysis.
- Discuss requirements problem and propose change
- Change analysis and costing.
- Assess effects of change on other requirements
- Change implementation.
- Modify requirements document and other documents
to reflect change
28CASE Workbenches
- A coherent set of tools that is designed to
support related software process activities such
as analysis, design or testing - Analysis and design workbenches support system
modelling during both requirements engineering
and system design - These workbenches may support a specific design
method or may provide support for a creating
several different types of system models
29An analysis and design workbench
30Analysis workbench components
- Diagram editors
- Model analysis and checking tools
- Repository and associated query language
- Data dictionary
- Report definition and generation tools
- Forms definition tools
- Import/export translators
- Code generation tools
31Testing Workbenches
- Testing is an expensive process phase.
- Testing workbenches provide a range of tools to
reduce the time required and total testing costs - Most testing workbenches are open systems because
testing needs are organization-specific - Difficult to integrate testing with closed design
and analysis workbenches
32Testing Workbench
33Testing Workbench Adaptation
- Scripts may be developed for user interface
simulators and patterns for test data generators - Test outputs may have to be prepared manually for
comparison - Special-purpose file comparators may be developed
34Integrated 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
35Integrated 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
36Integration 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
37Integration 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
38CASE Repository Functions - 1
- Data integrity
- includes functions to validate entries to the
repository and ensure consistency among related
objects - Information sharing
- provides mechanism for sharing information among
multiple developers and multiple tools, controls
modification of information - Data-tool integration
- establishes shared data model and performs
configuration management functions
39CASE Repository Functions - 2
- Data-data integration
- database management system allowing access to
related objects so functions can be achieved - Methodology enforcement
- E-R model used to define steps needed to be
conducted to build the repository contents - Document standardization
- definition of objects in the database leads
directly to a standard approach for creation of
engineering documents
40CASE Repository Content Summary
- Problem to be solved.
- Problem domain.
- Emerging solution.
- Rules pertaining to software process methodology.
- Project plan.
- Organizational content.
41DBMS Features Needed for CASE Repositories
- Non-redundant data storage
- High-level access
- Data independence
- Transaction control
- Ad hoc data queries and reports
- Openness
- Multi-user support
42CASE Repository Features - 1
- Storage of sophisticated data structures
- diagrams
- documents
- files
- simple variables
- information model describing relationships and
semantics of data stored in repository
43CASE Repository Features - 2
- 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
44CASE Repository Features - 3
- Semantic-rich tool interface
- repository meta-model contains semantics that
enable a variety of tools to interpret meaning of
data stored in the repository - Process/project management
- contains information about the software
application - characteristics of each project
- organization's general process for software
development - phases, tasks, deliverables
45Configuration Management Features Need by CASE
Tools
- Versioning
- Dependency tracking and change management
- Requirements tracing
- Configuration management
- Audit trails
46The next 3 slides come from Sommervilles book
47CASE tools for Configuration Management
- Configuration management processes are
standardized and involve applying pre-defined
procedures - Large amounts of data must be managed
- CASE tool support for configuration management is
essential - Mature CASE tools to support configuration
management are available ranging from stand-alone
tools to integrated workbenches
48Change Management Tools
- Change management is a procedural process so it
can be modelled and integrated with a version
management system - Change management tools
- Form editor to support processing the change
request forms - Workflow system to define who does what and to
automate information transfer - Change database that manages change proposals and
is linked to a VM system
49Version Management Tools
- Version and release identification
- Systems assign identifiers automatically when a
new version is submitted to the system - Storage management.
- System stores the differences between versions
rather than all the version code - Change history recording
- Record reasons for version creation
- Independent development
- Only one version at a time may be checked out for
change. Parallel working on different versions