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.