Integrated Approach to
Software Engineering
Computer Aided Software
Engineering
Dr Annushree Bablani
Computer Aided Software Engineering
(CASE)
● Use of specialized software tools and techniques to
automate and streamline various stages of software
development.
● These tools assist in tasks such as designing, coding,
testing, debugging, and maintenance
Background
● CASE was initially developed to enhance the quality and
maintainability of software.
● It draws inspiration from Computer-Aided Design (CAD)
tools used for designing hardware products.
● The goal is to create high-quality, defect-free software by
providing a disciplined approach throughout the
development process.
Building Blocks for Case
● Computer aided software engineering can be as simple as
a single tool that supports a specific software engineering
activity or as complex as a complete "environment" that
encompasses tools, a database, people, hardware, a
network, operating systems, standards, and myriad other
components.
Building Blocks for Case
● Each building block forms a foundation for the next, with
tools sitting at the top of the heap.
● Successful environments for software engineering are
built on an environment architecture that encompasses
appropriate hardware and systems software.
● The environment architecture must consider the human
work patterns that are applied during the software
engineering process.
Building Blocks for Case
● The environment architecture, composed of the
hardware platform and system support (including
networking software, database management, and object
management services), lays the groundwork for CASE.
● A set of portability services provides a bridge between
CASE tools and their integration framework and the
environment architecture.
Building Blocks for Case
● The integration framework is a collection of specialized
programs that enables individual CASE tools to
communicate with one another, to create a project
database, and to exhibit the same look and feel to the
end-user (the software engineer).
● Portability services allow CASE tools and their
integration framework to migrate across different
hardware platforms and operating systems without
significant adaptive maintenance.
Building Blocks for Case-The relative levels
of CASE integration
The relative levels of CASE
integration
● At the low end of the integration spectrum is the
individual (point solution) tool. When individual tools
provide facilities for data exchange (most do), the
integration level is improve slightly. Such tools produce
output in a standard format that should be compatible
with other tools that can read the format.
● In some cases, the builders of complementary CASE tools
work together to form a bridge between the tools (e.g., an
analysis and design tool that is coupled with a code
generator).
The relative levels of CASE
integration
● Using this approach, the synergy between the tools can
produce end products that would be difficult to create
using either tool separately.
● Single-source integration occurs when a single CASE
tools vendor integrates a number of different tools and
sells them as a package.
● Although this approach is quite effective, the closed
architecture of most single-source environments
precludes easy addition of tools from other vendors.
The relative levels of CASE
integration
● At the high end of the integration spectrum is the
integrated project support environment (IPSE).
● Standards for each of the building blocks described
previously have been created.
● CASE tool vendors use IPSE standards to build tools that
will be compatible with the IPSE and therefore
compatible with one another.
Taxonomy of Case Tools
● CASE tools can be classified by function, by their role as
instruments for managers or technical people, by their
use in the various steps of the software engineering
process, by the environment architecture (hardware and
software) that supports them, or even by their origin or
cost .
Taxonomy of Case Tools
● Business process engineering tools
○ Provides a "meta-model" from which specific information systems
are derived.
○ Rather than focusing on the requirements of a specific application,
business information is modeled as it moves between various
organizational entities within a company.
○ The primary objective for tools in this category is to represent
business data objects, their relationships, and how these data
objects flow between different business areas within a company.
Taxonomy of Case Tools
● Process modeling and management tools.
○ If an organization works to improve a business (or software)
process, it must first understand it.
○ Process modeling tools (also called process technology tools) are
used to represent the key elements of a process so that it can be
better understood.
○ Provide links to
■ Process descriptions that help those involved in the process
to understand the work tasks that are required to perform it.
■ Other tools that provide support to defined process activities.
Taxonomy of Case Tools
● Project planning tools :Tools in this category focus on
two primary areas:
○ Software project effort and cost estimation: Estimation tools compute
estimated effort, project duration, and recommended number of
people for a project.
○ Project scheduling: Project scheduling tools enable the manager to
define all project tasks (the work breakdown structure), create a
task network (usually using graphical input), represent task
interdependencies, and model the amount of parallelism possible
for the project.
Taxonomy of Case Tools
● Risk analysis tools. Identifying potential risks and
developing a plan to mitigate, monitor, and manage them
is of paramount importance in large projects.
● Project management tools. The project schedule and
project plan must be tracked and monitored on a
continuing basis.
○ A manager should use tools to collect metrics that will ultimately
provide an indication of software product quality.
Taxonomy of Case Tools
● Requirements tracing tools. The objective of
requirements tracing tools is to provide a systematic
approach to the isolation of requirements, beginning with
the customer request for proposal or specification.
○ The typical requirements tracing tool combines human interactive
text evaluation with a database management system that stores and
categorizes each system requirement that is "parsed" from the
original RFP or specification.
Taxonomy of Case Tools
● Metrics and management tools. Software metrics improve a
manager's ability to control and coordinate the software
engineering process and a practitioner's ability to improve the
quality of the software that is produced.
● Management-oriented tools capture project specific metrics
(e.g., LOC/person-month, defects per function point) that
provide an overall indication of productivity or quality.
● Technically oriented tools determine technical metrics that
provide greater insight into the quality of design or code.
Taxonomy of Case Tools
● Documentation tools. Document production and
desktop publishing tools support nearly every aspect of
software engineering and represent a substantial
"leverage" opportunity for all software developers.
● System software tools. Must accommodate high-quality
network system software, object management services,
distributed component support, electronic mail, bulletin
boards, and other communication capabilities.
Taxonomy of Case Tools
● Software configuration management tools. Software
configuration management lies at the kernel of every
CASE environment. Tools can assist in all five major SCM
tasks—identification, version control, change control,
auditing, and status accounting.
● Interface design and development tools. A tool kit of
software components (classes) such as menus, buttons,
window structures, icons, scrolling mechanisms, device
drivers, and so forth.
Taxonomy of Case Tools
● Prototyping tools. CASE prototyping tools enable the
creation of a data design, coupled with both screen and
report layouts. Many analysis and design tools have
extensions that provide a prototyping option. PRO/SIM
tools generate skeleton Ada and C source code for
engineering (real-time) applications.
Taxonomy of Case Tools
● Integration and testing tools.
● Software Quality Engineering defines the following testing
tools categories:
○ Data acquisition—tools that acquire data to be used during testing.
○ Static measurement—tools that analyze source code without executing
test cases.
○ Dynamic measurement—tools that analyze source code during execution.
○ Simulation—tools that simulate function of hardware or other externals.
○ Test management—tools that assist in the planning, development, and
control of testing.
○ Cross-functional tools—tools that cross the bounds of the preceding
categories.
Taxonomy of Case Tools
● Static analysis tools. Static testing tools assist the
software engineer in deriving test cases.
● Three different types of static testing tools are used in
the industry:
○ code based testing tools, specialized testing languages, and
requirements-based testing tools. Code-based testing tools accept
source code (or PDL) as input and perform a number of analyses
that result in the generation of test cases.
Taxonomy of Case Tools
● Dynamic analysis tools. Dynamic testing tools interact
with an executing program, checking path coverage,
testing assertions about the value of specific variables,
and otherwise instrumenting the execution flow of the
program.
● Dynamic tools can be either intrusive or nonintrusive.
○ An intrusive tool changes the software to be tested by inserting
probes (extra instructions) that perform the activities just
mentioned.
○ Nonintrusive testing tools use a separate hardware processor that
runs in parallel with the processor containing the program that is
being tested.
Taxonomy of Case Tools
● Test management tools. Test management tools are used
to control and coordinate software testing for each of the
major testing steps.
● Tools in this category 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
Taxonomy of Case Tools
● Reengineering tools. Some popular reverse
engineering tools include:
○ IDA Pro: A powerful disassembler and debugger.
○ CFF Explorer: Analyzes PE (Portable Executable) files.
○ API Monitor: Monitors API calls during runtime.
○ WinHex: A hex editor and disk editor.
○ Hiew: A file viewer and editor.
○ Fiddler: Inspects and modifies web traffic
Taxonomy of Case Tools
● Quality assurance tools.
● Database management tools.
● Analysis and design tools.
● Programming tools.
● Web development tools.
● Client/server testing tools.
Some notable SCM tools:
● Auvik: A cloud-based network management tool that provides
real-time network mapping, inventory, automated config backup,
and network monitoring. Offers visibility and control over network
devices. Useful for managing networks remotely.
● IBM Rational ClearCase: A commercial tool for version control and
software configuration management. Supports parallel
development, branching, and merging. Widely used in large
enterprises.
● Puppet: An open-source configuration management tool.
Automates software provisioning, configuration, and deployment.
Supports declarative language for defining system state.
Some notable SCM tools:
● Ansible: Another popular open-source tool for configuration
management.: Uses YAML-based playbooks to define
infrastructure as code. Suitable for automating repetitive tasks
● Jenkins: An open-source automation server. Integrates with
version control systems and facilitates continuous integration
and delivery. Widely used for building, testing, and deploying
software
● Chef: An automation platform that manages infrastructure as
code. Defines system configurations using Ruby-based scripts
(recipes). Supports both on-premises and cloud environments
Prototyping Case Tools
● Figma: Figma is an all-in-one tool that makes collaboration and
accessibility easy for UX designers, developers, and anyone else on a team
with a browser-based, cloud-hosted platform. It offers flexible styles for
consistent design elements and useful plugins for tasks like illustrating
user flows and creating animations.
● InVision Studio: InVision Studio has a well-established reputation and is
favored by many designers. It allows designers to create functional
prototypes quickly and share them with others. Features include vector
drawing, repeatable components, animations, and dynamic visual effects.
● Adobe XD: Adobe XD provides a vector-based system for creating
prototypes. It offers tools for interactions, transitions, and dynamic
functionality. Integration with other Adobe apps like Illustrator and
Photoshop is a plus.
Prototyping Case Tools
● Sketch: Sketch, primarily for macOS, is widely used for UI/UX
design. It offers an intuitive interface, symbols, and plugins.
Popular among designers working on Apple platforms.
● Framer: Framer is known for its powerful prototyping
capabilities. Designers can create interactive and animated
prototypes. Ideal for pushing the boundaries of design and
interaction.
● ProtoPie: ProtoPie focuses on creating realistic and
interactive prototypes. It supports complex interactions,
sensors, and device-specific behaviors. Great for designing
mobile app interactions.
Integrated Case Environments
● The benefits of integrated CASE (I-CASE) include
○ smooth transfer of information (models, programs, documents,
data) from one tool to another and one software engineering step to
the next;
○ a reduction in the effort required to perform umbrella activities
such as software configuration management, quality assurance, and
document production;
○ an increase in project control that is achieved through better
planning, monitoring, and communication;
○ improved coordination among staff members who are working on a
large software project.
Integrated Case Environments
● I-CASE Challenges.
● Integration demands
○ consistent representations of software engineering information,
○ standardized interfaces between tools,
○ a homogeneous mechanism for communication between the
software engineer
○ an effective approach to enable I-CASE movement among various
hardware platforms and operating systems.
● I-CASE environments have emerged more slowly than
originally expected.
○ Integrated environments do exist and are becoming more powerful
as the years pass.
Integrated Case Environments
● To define integration in the context of the software
engineering process, it is necessary to establish a set of
requirements for I-CASE
● An integrated CASE environment should
○ Provide a mechanism for sharing software engineering information
among all tools contained in the environment.
○ Enable a change to one item of information to be tracked to other
related information items.
○ Provide version control and overall configuration management for
all software engineering information.
Integrated Case Environments
○ Allow direct, nonsequential access to any tool contained in the
environment.
○ Establish automated support for the software process model that
has been chosen, integrating CASE tools and software configuration
items (SCIs) into a standard work breakdown structure.
○ Enable the 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 that can be used to
improve the process and the product.
The Integration Architecture
● A software engineering team uses CASE tools,
corresponding methods, and a process framework to create
a pool of software engineering information.
● The integration framework facilitates transfer of
information into and out of the pool. The following
architectural components must exist:
○ a database must be created (to store the information);
○ an object management system must be built (to manage changes to the
information);
○ a tools control mechanism must be constructed (to coordinate the use
of CASE tools); a
○ user interface must provide a consistent pathway between actions
made by the user and the tools contained in the environment.
The Integration Architecture
The Integration Architecture
● The user interface layer incorporates a standardized
interface tool kit with a common presentation protocol.
○ The interface tool kit contains software for human/computer
interface management and a library of display objects.
○ The presentation protocol is the set of guidelines that gives all CASE
tools the same look and feel.
○ Screen layout conventions, menu names and organization, icons,
object names, the use of the keyboard and mouse, and the
mechanism for tools access are all defined as part of the
presentation protocol.
The Integration Architecture
● The tools layer incorporates a set of tools management
services with the CASE tools themselves.
○ Tools management services (TMS) control the behavior of tools
within the environment. If multitasking is used during the execution
of one or more tools, TMS performs multitask synchronization and
communication, coordinates the flow of information from the
repository and object management system into the tools,
accomplishes security and auditing functions, and collects metrics
on tool usage.
The Integration Architecture
● The object management layer (OML) performs
○ The configuration management functions .
○ Every CASE tool is "plugged into" the object management layer.
○ The OML provides integration services—a set of standard modules
that couple tools with the repository.
○ The OML provides configuration management services by enabling
the identification of all configuration objects, performing version
control, and providing support for change control, audits, and status
accounting.
The Integration Architecture
● The shared repository layer is the CASE database and
the access control functions that enable the object
management layer to interact with the database.
● Data integration is achieved by the object management
and shared repository layers