0% found this document useful (0 votes)
26 views42 pages

Iase Case Tools

The document discusses Computer Aided Software Engineering (CASE), highlighting its role in automating and streamlining software development processes. It outlines the building blocks of CASE, including environment architecture and integration frameworks, and categorizes various CASE tools based on their functions. Additionally, it emphasizes the benefits and challenges of Integrated CASE (I-CASE) environments in improving project control and coordination among software engineering teams.

Uploaded by

reykankp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views42 pages

Iase Case Tools

The document discusses Computer Aided Software Engineering (CASE), highlighting its role in automating and streamlining software development processes. It outlines the building blocks of CASE, including environment architecture and integration frameworks, and categorizes various CASE tools based on their functions. Additionally, it emphasizes the benefits and challenges of Integrated CASE (I-CASE) environments in improving project control and coordination among software engineering teams.

Uploaded by

reykankp
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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

Common questions

Powered by AI

The primary objectives of Business Process Engineering tools are to model business data objects, their relationships, and the flow of these data objects between different business areas within a company. These tools provide a 'meta-model' from which specific information systems are derived, focusing on how business information moves across organizational entities, rather than the requirements of a specific application .

Requirements tracing tools manage requirements systematically by isolating them from customer requests or specifications using a combination of text evaluation and database management. They categorize and store each requirement parsed from original proposals or specifications, providing a structured approach to track and manage the evolution of requirements throughout the software development lifecycle .

Integrated CASE environments enhance project management and software development by enabling smooth transfer of information between tools, reducing effort in umbrella activities like configuration management and quality assurance, and increasing project control through effective planning and monitoring. They improve coordination among team members, facilitate communication, ensure consistent software engineering information representation, and support tool and information integration across various hardware platforms and operating systems .

Process modeling and management tools aid organizations by providing a clear representation of key elements in a process, allowing for a better understanding and improvement of business processes. These tools offer links to process descriptions and other supportive tools that elucidate the required tasks, empowering organizations to analyze and optimize their operations effectively .

Prototyping CASE tools benefit UX designers and developers by allowing them to quickly create and share interactive and functional prototypes, enabling early testing of design concepts. Tools like Figma, InVision Studio, Adobe XD, and Framer offer flexible design elements, animations, and integrations that facilitate collaboration and iterative design processes, ultimately leading to more refined and user-oriented software products .

Dynamic analysis tools perform functions such as checking path coverage, testing specific variable values, and instrumenting the execution flow of software while it runs. They differ from static analysis tools, which analyze code without execution, focusing instead on code structure and logic to derive test cases. Dynamic tools provide insights into runtime behavior and potential runtime errors, whereas static tools assess code quality and correctness before execution .

The integration levels of CASE tools significantly impact their functionality and compatibility. At the low end, individual tools can offer data exchange capabilities, allowing for basic compatibility by using standard formats. Mid-level integration involves combining complementary tools to form synergies, such as coupling a design tool with a code generator. This approach, however, can be limited by closed architectures, restricting the addition of third-party tools. At the high end, an Integrated Project Support Environment (IPSE) ensures compatibility as tools adhere to IPSE standards, facilitating smooth information transfer, consistent interfaces, and robust project support .

The object management layer (OML) within the integration architecture of CASE environments plays a vital role by providing configuration management services. It enables the identification of configuration objects, performing version control, supporting change control, audits, and status accounting. The OML connects CASE tools with the shared repository, facilitating data tracking, changes, and integration services, thus ensuring cohesive and efficient project information management .

Developing and using I-CASE environments face challenges such as ensuring consistent representation of software engineering information, standardizing interfaces between tools, enabling homogeneous communication mechanisms, and accommodating different hardware platforms and operating systems. These environments have developed slower than anticipated, though they are gaining power and stability over time .

Metrics play a crucial role in managing software engineering processes by providing quantitative data to control and improve both the process and quality of software products. Management-oriented metrics, such as LOC/person-month and defects per function point, indicate productivity and quality. Technically oriented tools focus on metrics that reveal insights into design and code quality. These metrics help project managers make informed decisions, optimize resources, and improve overall efficiency and effectiveness .

You might also like