You are on page 1of 28

CASE Tools

ABHA DWIVEDI

CASE background
To speed up the software system building process, a new concept of designing software is introduced in the '70s, called Computer Aided Software Engineering (CASE). This term is used for a new generation of tools that applies rigorous engineering principles to the development and analysis of software.

Why is CASE important?


CASE allows for rapid development of software because of the increasing speed of changing market-demands new products replace old ones much earlier than before, so the
development of new products has to go faster.

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

INTRODUCTION
Computer based programs to increase the productivity of analysts. Permit effective communication with users as well as development team. Supports one or more software engineering activities within software development process.

Example
For developing data base application CASE TOOLS may support the following development steps: Creation of data flow and entity models. Establishing relationship between Requirement and Models. Development top level Design. Development of functional and process Description. Development of test Case.

Definition of CASE
Computer-Aided Software Engineering (CASE) can be defined as the disciplined and structured engineering approach to software and systems engineering approach to software and systems development. It emphasizes structured methods, with defined and standardized procedures.

CASE TOOL
CASE tools substantially reduce or eliminate many of the design and development problems inherent in medium to large software projects. CASE tools allow the software designer to focus on the systems architecture rather than on the actual implementation.

Categories of CASE Tools


1. Upper CASE tools :support for the analysis and design 2. Lower CASE tools : support for construction and maintenance 3. Integrated CASE tools : providing linkages between the lower and upper CASE tools. Offer extensive life cycle coverage.

Building Blocks For CASE


CASE tools Integration Framework

Portability Services
Operating system Hardware Platform Environment Architecture

CASE Tool Components


Case tools
supports a specific engineering activity or complex.

Integration framework
specialized programs allowing CASE tools to communicate

Portability services
allow CASE tools and their integration framework to migrate across different operating systems and hardware platforms without significant adaptive maintenance

Operating system
Networking software database and object management services

Hardware platform Environment Architecture


built successful environment for SE that encompasses appropriate hardware and software system.

Classification of CASE Tools


Information Engineering Tools Project Planning Tools Risk Analysis Tools Requirements Tracing Tools Metrics and Management Tools Analysis and Design Tools Programming Tools

CASE Taxonomy - part 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

Risk analysis tools


help project managers build risk tables by providing detailed guidance in the identification and analysis of risks

CASE Taxonomy - part 2


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

CASE Taxonomy - part 3


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

CASE Taxonomy - part 4


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

CASE Taxonomy - part 5


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

CASE Taxonomy - part 6


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)

CASE Taxonomy - part 7


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

CASE Taxonomy - part 8


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

Scope of CASE tools


Programmers need to have:
Accurate, up-to-date versions of all project documents Online help information regarding the Operating system Editor Programming language Online programming standards Online manuals Editor manuals Programming manuals

General purpose tools E-mail systems Spreadsheets Word processors Coding tools Structure editors - understands the implementation language Pretty printers - part of structure editor that formats code for good visual appearance Online interface checkers - part of structure editor that checks full interface information (method names, # parms, parm types) sometimes with template generation when method name is typed

Impact of CASE technology


CASE technology has resulted in significant improvements in quality and productivity However, the scale of these improvements is less than was initially predicted by early technology developers Many software development problems such as management problems are not amenable to automation CASE systems are not integrated Adopters of CASE technology underestimated the training and process adaptation costs

Need of CASE Tools


Reduce the cost as they automate many repetitive manual tasks. Reduce development time of the project as they support standardization and avoid repetition and reuse. Develop better quality complex projects as they provide greater consistency and coordination. Create good quality documentation Create systems that are maintainable because of proper control of configuration item that support traceability requirements

DISADVANTAGES OF CASE TOOLS


Purchasing of CASE Tools is Not an Easy Task. Complex functionality Many project management problems are not amenable to automation. Hence, CASE tools cannot be used in such cases.

CASE SUPPORT IN SOFTWARE LIFE-CYCLE


Prototyping Support : to understand the requirements of complex software product. Structured Analysis and Design: Code Generation: Test CASE Generator:

CASE Repository Functions - part 2


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

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

CASE originated in the 1970s when computer companies were beginning to borrow ideas from the hardware manufacturing process and apply them to software development (which generally has been viewed as an insufficiently disciplined process). Some CASE tools supported the concepts of structured programming and similar organized development methods. More recently, CASE tools have had to encompass or accommodate visual programming tools and object oriented programming.

You might also like