Chapter 31 Computer-Aided Software Engineering
Overview
This chapter discusses the use of computer-aided software engineering (CASE)
tools that can assist software engineering managers and practitioners with every
activity associated with the software development process. CASE tools can
automate management activities and can manage work products. CASE tools can
assist engineers with analysis, design, coding, and testing work. Software
engineering is hard work and tools that reduce the effort required to produce a
work product or accomplish a milestone have substantial benefits. CASE tools
assist the software engineer in producing high quality work products. Tools can
provide the software engineer with improved insight into the software product
and make decisions that lead to improved software quality. Tools complement
solid software engineering practices. A good software process framework must be
established and software quality must be emphasized before tools can be used
effectively.
Prerequisites to Software Tool Use
- Collection of useful tools that help in every step of building a product
- Organized layout that enables tools to be found quickly and used
efficiently
- Skilled craftsperson who understands how to use the tools
effectively
CASE Building Blocks
- 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)
- Operating system (database and object management services)
- Hardware platform
- Environmental architecture (hardware and system support)
CASE Tool Taxonomy
- 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 keyelements 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
- 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
- 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
- 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
- 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
- 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
- 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.
- 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 other externals)
- test management (assist in test planning, development, and control)
- cross-functional (tools that cross test tool category boundaries)
- 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
- 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
- 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
Integrated CASE Environments
- 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
- 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
Integration Architecture
- 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 management services - control behavior of tools inside environment
- CASE tools themselves
- 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
CASE Repository Functions
- 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
- Data-data integration - database management system allowing access to
related objects so functions can be achieved
- Methodology enforcement - the 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
Important DBMS Features Relevant to CASE Repositories
- Non-redundant data storage
- High-level access
- Data independence
- Transaction control
- Ad hoc data queries and reports
- Openness
- Multi-user support
Special Features of CASE Repositories
- Storage of sophisticated data structures (diagrams, documents, files,
simple variables, information model describing relationships and semantics of
data stored in repository)
- Integrity enforcement (business rules, policies, constraints, and
requirements on the information being entered into repository, triggers may be
used to check the validity of the design models in real time)
- 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, the characteristics of each project, and the organization's
general process for software development - phases, tasks, deliverables)
Software Configuration Management Features Relevant to CASE Repositories
- Versioning
- Dependency tracking and change management
- Requirements tracing
- Configuration management
- Audit trails