CASE Tool

4:46 AM / Posted by Alagan /

1.0      Introduction

·         CASE tool is an acronym for ‘Computer Aided Software engineering’ – the automation of step-by-step methodologies for software and systems development to reduce the amount of repetitive work the developer needs to do.

·         Computer-aided Software Engineering (CASE), in the field software engineering is the scientific application of a set of tools and methods to software which results in high-quality, defect-free, and maintainable software products.

·         It also refers to methods for the development of information systems together with automated tools that can be used in the software development process.

·         Generally, a CASE tool environment may be expected to provide the following:

  1. Automated graphics facilities for producing charts and diagrams in support of modeling activities
  2. Screen and report generators to assist in designing the dialogue/presentation of the proposed information systems
  3. Data dictionaries providing a central repository for all definitions used by the development team
  4. Reporting facilities ranging from project management statistics through to design inconsistencies
  5. Analysis and cross-referencing tools to ensure integration of model views
  6. Code generators and documentation generators utilising the deliverables of the modeling activities to develop working systems

 

2.0      How CASE tools try to increase quality and productivity

1.      Enforcing a standard development methodology and design principle

2.      Providing a central repository for all design components and making them available to all the design team

3.      By improving communications between the designers and end-users using graphical representations of the system design

4.      Automating tedious and error-prone analysis and design activities thus proving consistency between views

5.      By automating code generation (to a certain degree), testing and version/change control activities

 

3.0      Classification of CASE tools

·         CASE tools are often classified as upper CASE tools, lower CASE tools or Integrated CASE (I-CASE) tools. These terms refers refers to the functions supported by the tool

·         An upper CASE tool supports front-end activities that focus upon capturing analysis and design information in the early stages of systems development. These CASE tools support, specifically, the modelling activities vital to the analysios and design stages of a development project

·         Lower CASE tools support the back-end activities of a development project. By this we mean those activities concerning aspects of physical design, programming and implementation.

·         I-CASE is used to desribe a tool that combines elements of both Upper CASE and Lower CASE tools into a single integrated development support environment

 

 

 

 

Upper CASE tool

Modeling Features, Analysis tools, Cross referencing tools, Central Repository, Documenetation generators

 

 Logical

I-CASE tool

Modeling Features, Analysis tools, Cross referencing tools, Code generators, Testing, Screen/Report generators, Central Repository, Documentation generators

 

 

 

 

 

 

 

 

Lower CASE tool

Code generators, Testing Screen/Report generators, Central Repository, Documentation generators

 

Physical

 

·         CASE tools can be classified based on functionality. Some of these is listed below:

Ø       Management tools: PERT tools, estimation tools

Ø       Editing tools: Test editors, diagram editors, word processors

Ø       Configuration management tools: Version management system, change management systems

Ø       Prototyping tools: Very high-level languages, user interface generators

Ø       Method supports tools: Design editors, data dictionaries, code generators

Ø       Language processing tools: Compiler, Interpreters

Ø       Program analysis tools: Cross-reference generators, static analyzers, dynamic analyzers

Ø       Testing tools: Test data generators, file comparators

Ø       Debugging tools

Ø       Documentation tools

Ø       Re-engineering tools: Cross-reference system, program restructuring systems

 

·         Existing CASE Environments can be classified along 4 different dimensions :

  • Life-Cycle Support
  • Integration Dimension
  • Construction Dimension
  • Knowledge Based CASE dimension

4.0      CASE Workbenches

·         CASE workbenches are collections of integrated tools, which support a specific software life cycle stage.

·         CASE tools to support analysis & design, programming and testing are widely used in industry.

·         The integration mechanism can be either public or proprietary

Ø       Public: the users can add their own tools to a workbench. Such a workbench is an open system

Ø       Proprietary: the addition of third-party tools is usually impossible. Such a workbench is closed system

 

·         The advantages of open workbenches are as follows:

  1. New specialist tools can be added
  2. The outputs from tools can be used by other systems, for example, a configuration management system
  3. More complex tools can be gradually introduced
  4. Different tool vendors can be used

 

·         Programming Workbenches: Is a set of integrated tools to support the process of program development.

·         A typical programming workbench includes the following tools:

·         Language compiler

·         Structured editor: to create and edit source programs

·         Linker: to link object code components

·         Loader: to load an executable program into the computer memory

·         Cross-referencer: to produce a cross-reference listings of source programs

·         Static analyzer: to analyze source programs in order to find anomalies

·         Dynamic analyzer: to analyze how many times each statement of a source program has been executed when the program was run

·         Interactive degugger: to trace and control the execution of user program

 

·         Analysis & Design Workbenches: Typical components of an analysis & design workbench are:

·         Diagramming editors: Are used to create DFDs, ERDS charts etc. The editor is not just a drawing tool but understands the meaning of different symbols/objects. It captures information about these objects and saves this information in a central repository.

·         Checking facilities: Are used to ensure that models created by analysts/designers are internally consistent and complete and all models are consistent with one another (externally consistent)

·         Query language facilities: Is used to browse the repository and examine completed designs

·         Data dictionary facilities: Are used to maintain information about the objects used in various diagrams

·         Report generation facilities: Are used to automatically generate system documentation

·         Form generation tools: Are used to specify screen and document formats

·         Skeleton code generators: Are used to generate code or code segments automatically from the design stored in the central repository

·         Import/Export facilities: Allow the interchange of information with other development tools

 

·         Testing Workbenches: Testing workbenches are open collections of testing tools. A typical testing workbench consists of:

·         Test manager: to record testing

·         Test data generator: to generate test cases

·         Oracle: to generate predictions of expected results

·         File comparators: to compare results of program test

·         Report generator: to automatically generate system documentation

·         Dynamic analyzer: to analyze how many times each statement of a source program has been executed when the program was run. It is useful to produce an execution profile of the tested program to achieve the proper coverage for white box testing

·         Simulator: to simulate an environment (Eg; hardware, users) for tested programs. Simulators are very useful when testing real-time systems

 

5.0      Benefits of CASE tools

1.

Project Management and control is improved: CASE tools can aid the project management and control aspects of a development environment. Some CASE tools allow for integration with industry-standard project management methods (such as PRINCE). Others incorporate project management tools such as PERT charts and critical path analysis. By its very nature, a CASE tool provides the vehicle for managing more effectively the development activities of a project.

2.

System Quality is improved: CASE tools promote standards within a development environment. The use of graphical tools to specify the requirements of a system can also help remove the ambiguities that often lead to poorly defined systems. Therefore, if used correctly, a CASE tool can help improve the quality of the specification, the subsequent design and the eventual working system.

3.

Consistency checking is automated: Large amounts of information about a business area and its requirement are gathered during the analysis phase of an information systems development project. Using a manual system to record and cross reference this information is both time-consuming and inefficient. One of the advantages of using CASE tool is that all data definitions and other relevant information can be stored in a central repository that can then be used to cross check the consistency of the different views being modelled.

4.

Productivity is increased: One of the most obvious benefits of a CASE tool is that it may increase the productivity of the analysis team. If used properly, the CASE tool will provide a support environment enabling analysts to share information and resources, manage the project effectively and produce supporting documentation quickly.

5.

The maintenance effort is better supported: It has been argued that CASE tools help reduce the maintenance effort required to support the system once it is operational. CASE tools can be used to provide comprehensive and up-to-date documentation – this is obviously a critical requirement for any maintenance effort. CASE tools should result in better systems being developed in the first place.

6.0   Problems associated with CASE tools

1.

Need for organization - wide commitment: To be used effectively, CASE tools require the commitment of the organisation. Every member of the development team must adhere to the standards, rules and procedures laid down by the CASE  tool environment.

2.

Unrealistic expectations: CSE tools cannot replace experienced business/systems analysts and designers. They cannot automatically design a system nor can they ensure that the business requirements are met. Analysts and designers still need to understand the business environment and identify the system requirements. CASE tools can only support the analytical skills of the developers, not replace them.

3.

Long learning curve: CASE is technical software. It will take time for the development team to get use to flow and use it effectively for development work.

 

4.

Costs of CASE tools: CASE tools are complicated software packages and are, therefore, expensive to buy. In addition to the initial costs, there are many ‘soft’ costs that have to be considered. These ‘soft costs’ include integration of the new tool, customising the new tool, initial and on-going training of staff, hardware costs and consultancy provided by the CASE tool vendor.

 

  • Common CASE risks and associated controls include:
    • Inadequate Standardization : Linking CASE tools from different vendors (design tool from Company X, programming tool from Company Y) may be difficult if the products do not use standardized code structures and data classifications. File formats can be converted, but usually not economically. Controls include using tools from the same vendor, or using tools based on standard protocols and insisting on demonstrated compatibility. Additionally, if organizations obtain tools for only a portion of the development process, they should consider acquiring them from a vendor that has a full line of products to ensure future compatibility if they add more tools.
    • Unrealistic Expectations : Organizations often implement CASE technologies to reduce development costs. Implementing CASE strategies usually involves high start-up costs. Generally, management must be willing to accept a long-term payback period. Controls include requiring senior managers to define their purpose and strategies for implementing CASE technologies.
    • Quick Implementation : Implementing CASE technologies can involve a significant change from traditional development environments. Typically, organizations should not use CASE tools the first time on critical projects or projects with short deadlines because of the lengthy training process. Additionally, organizations should consider using the tools on smaller, less complex projects and gradually implementing the tools to allow more training time.
    • Weak Repository Controls : Failure to adequately control access to CASE repositories may result in security breaches or damage to the work documents, system designs, or code modules stored in the repository. Controls include protecting the repositories with appropriate access, version, and backup controls.

 

 

7.0      Example of CASE tools

·         SELECT Enterprise : SELECT Enterprise is described as ‘ a dedicated modeling toolset for building scaleable client/server applications’ . it provides integrated business process modeling, use case and object modeling based upon the UML development environment.

·         ORACLE Designer 2000 : ORACLE designer is one of the products offered by the ORACLE corporation. It is described as ‘a model-based development toolset utilising a multi-user, repository-based environment’ . The definitions of all model elements (Eg; entities, table definitions) are centrally stored in a repository, making them available to all members of the development team when and where they require them. Designer 2000 supports a number of complementary analysis techniques : process models, entity relationship diagrams, data flow diagrams etc.

·          Rational Rose : Rational Rose is a CASE toolset designed to support the UML development environment. The main benefits of rational Rose are described as multi-language support (C++, JAVA, VB, ADA), integrates with other industry standard environments and has a platform-independent development environment.

Labels:

1 comments:

Comment by Digvijay Chaudhary on January 26, 2018 at 10:27 PM

I found this blog really interesting. Contents over here are so informative. Hope you would also like to see Computer Aided Software Engineering (CASE)

Post a Comment