Chapter No. 6


CASE

TOOLS
                1
Study Resources
• Reference Books
1. Analysis and design of information systems: James
   A. Senn. Page no. 525, 260
2. Software Engineering : Summerville. Page No. 272
3. Modern systems analysis and design: Jeffrey
   Hoffer. Page no .19-21
4. Software Engineering : W S Jawadekar. Page No.
   96, 99, 120


                                                       2
6.1.   Introduction to CASE tools
• What are CASE tools
• Is a catchall term to describe virtually any software
  development tool.


• typically used to refer to software development tools that
  use diagrammatic representations of software design.




                                                           3
Computer Aided Software
           Engineering
•What is a CASE Environment?
  – CASE is the use of computer-based support in the
    software development process.
•What is a CASE Tool?
  – A CASE tool is a computer-based product aimed at
    supporting one or more software engineering
    activities within a software development process.
  – A set of tools to (optimally) assist in each step of
    software development.
                                                      4
Purpose of CASE Tools
• Provides software engineers and programmers with software
  based tools that help with some combination of:
   – specifying requirements

   – designing software to meet the requirements

   – generate code automatically

   – support documentation efforts

• A central repository to input, store, revise, and output work
  done on a project.
• Provide ‘leverage’ (Control).
                                                                  5
Purpose of CASE Tools
• Supply basic functionality, do routine tasks automatically
   – Be able to support editing of code in the particular programming
      language, supply refactoring tools.

• Enhance productivity
   – Generate code pieces automatically.

• Increase software quality
• Intuitive use (easy to use and understand)
• Integration with other tools
   – For example, code editor works with code repository.

                                                                   6
Purpose of CASE Tools
To reinforce and support an engineering approach to software
development and evolution by providing computer based
assistance, which translates to low-defect solutions and enhanced
productivity.
A CASE tool is any computer based system that may be used
during the software development process.
A Computer Aided Software Engineering (CASE) tool is any
computer based tool for software planning, development and
evolution. This definition includes all examples of computer-
based support for the managerial, administrative, or technical
aspects of any part of a software development project.

                                                              7
Purpose of CASE Tools
“ ... to automate the entire software life cycle process with a set of
integrated tools” -McClure (1989)



“CASE tools are used to facilitate greater standardisation of work
procedures and adherence with design discipline” -Orlikowski (1988)


“CASE tools are important because they speed development, automate
tedious tasks, and enforce standards and procedures.”



                                                                   8
System Development Items Stored in the CASE
               Repository




                                              9
CASE Tool Architecture
                                                     INPUTS:                         CASE Tool
                                                     models,                          Facilities
                                                   descriptions                  (on a workstation)
                           OUTPUTS:                    and
                            reports,                prototypes
                           problems,
                              and
                            analyses




                                        Graphics                   Description                        Prototyping
                                                           links                      links
                                         Tools                       Tools                               Tools
Repository
  Server

                                         House-
                            imported                                                                    Quality
                                         keeping
                              and                                                                     Management
                                          Tools
                            exported                                                                     Tools
                           knowledge
             check-out/
              check in                    Data
                                                                     Local                             Decision
             knowledge                   Sharing
                                                                   Repository                          Support
                                          Tools
                                                                   (on a LAN                            Tools
                                                                    Server)
                                       Security and
                                                                                                      Inquiry and
                                         Version
                                                                                                       Reporting
                                         Control
                                                                                                         Tools
                                          Tools

       CENTRAL
      REPOSITORY                                       Design        Code             Document
                                                      Generators   Generators           Tools



                                                                                                                  10
The Relationship between CASE Tools and the
      Systems Development Life Cycle




                                              11
Why CASE Tools Are Popular
• Support the need to develop and revise documentation.

• Support the need to trace requirements to design, and
  requirements to test.
• Reduce systems development time.

• Produce more easily maintained code.

• Support the needs of IS professionals.

• Support the SDLC.


                                                          12
Capabilities of CASE Tools
• Support graphics with drawing aids.

• Create and maintain data model and process specification
   entries.
• Create documentation.

• Verify that rules are followed.

• Consistency checking.

• Create portions of computer programs.

• Allows IS developers to focus on important issues by freeing
   them from “mechanics” issues.

                                                                 13
Organizational Benefits
•   Improved quality of systems
•   Faster development of systems
•   Ease and improve testing
•   Improve quality and completeness of documentation
•   Improves integration of development activities via common methodologies
•   Standardize development
•   Improve project management
•   Promote reusability of modules and documentation
•   Simplify maintenance
•   Improve software portability

                                                                          14
Scope of CASE Technology
•   Business Systems Planning
     – Provide a ‘meta-model’ from which specific systems are derived. The focus is not
        on the requirements of specific applications but rather on building a model of
        the business itself. Business information is modelled as it ‘flows’ through the
        different organisation units in a company.
•   Project Management
     – Tools which focus on:
     • software project effort and cost estimation
     • project scheduling
     • requirements tracing
•   Support
     – Broad selection of tools applicable over the entire development process such as
       Desk top publishing tools.
•   Integration and Testing
     – Tools such as Static Analysis tools, Dynamic Analysers


                                                                                   15
Scope of CASE Technology
•   Analysis and Design
     – Enable a software engineer to create models which describe a system
       which is being built.
     • Methodology Tools: Such tools support one or more software
       development methodology and provide consistency and quality checking
       on the constructed models.
     • Prototyping and Simulation Tools: Provide a means for creating
       functional and behavioural models of a system. Some also provide code
       generation facilities.
     – Interface Design and Development Tools: Toolkits of program
       components such as buttons and windows and interface prototyping
       tools.
•   Programming
     – Tools such as compilers, debuggers, linkers and environments which
       integrate these tools.
                                                                          16
Scope of CASE Technology
•   Prototyping
     – A broad range of tools which is applicable to many tools in other
       categories. These tools allow the developer to build scratch systems of
       differing functionality and performance. This can range from tools which
       allow mock-ups of users interfaces to be developed to tools which
       generate source code.
•   Maintenance
     – These tools aid in the maintenance of software.
     • Reverse engineering tools which try to extract analysis and design
       models corresponding to source code.
     • Code restructuring tools.
     • Re-engineering tools which perform a combination of reverse
       engineering and restructuring.
•   Framework
     – Tools that provide an environment which supports the integration of
       other CASE tools.

                                                                           17
Benefits from CASE tools
        Better quality of produced systems

        Better communication between developers

        Better productivity of developers

        Formalized design methodology

Better maintenance of the product

etter project management                                           Source:
                                                                   CASE RESEARCH CORP.

        Other



                5      10       15      20       25      30   35      40
                                             % answers
                                                                                  18
Cost distribution during SI lifecycle
                                                           Traditional
  cost                                                      “ad hoc”
                                                            methods



                         Methods
                         based on
                        CASE tools




 Planning   Analysis   Design   Programming   Deployment   Maintenance
                                                                              time
                                                                         19
Why CASE tools are (sometimes) inefficient?
Sources of difficulties:


   Too high expectations: CASE tools are only tools - they are not able to
   learn from experience and to think. “A fool with a tool is still a fool.” A
   CASE tool is able to reduce the cost of the software production at most
   on 30-50%.
   People tend to treat CASE tools as code generators. A CASE tool is used
   only as a “very high level programming language”, without proper
   documentation of the analysis and design phases.
   No analysis and design methodology.
   Bad organization of software development processes, lack of order, lack
   of a plan, lack of good estimations and measures, lack of monitoring,
   etc.
   Underestimating other costs induced by a CASE tool: education,
   deployment, organizational changes, improvement of discipline, etc.
   Effects of CASE tools usually appear after some time.
                                                                          20
6.2.   Types & Names of CASE tools
Project Management Tools

1. Green UML
2. ESS-Model
3. Gather Space
4. MS - Project



                                     21
Executive Support System




                           22
6.2. Types & Names of CASE tools
Analysis tools

1. Meta-Boss
2. UML CASE Tools
3. DMS Software Reengineering Toolkit




                                        23
6.2. Types & Names of CASE tools
Design tools

1. Magic Draw
2. ArchE – Is an Architecture Expert Design
   Assignment
3. ER Studio




                                          24
Conclusion
A CASE tool makes it possible to improve software production processes, but

not in auto-magical way: it requires good project organization, well defined

project goals, and a disciplined methodology

CASE tools are sometimes expensive. There are two kinds of costs:

  (1) the cost of software and installation

  (2) education and changes in software manufacturing routines.

The ultimate benefit depends on good integration of a CASE tool with the

assumed A&D methodology, project management, software construction

routines and documentation standards.



                                                                       25

6 chap

  • 1.
  • 2.
    Study Resources • ReferenceBooks 1. Analysis and design of information systems: James A. Senn. Page no. 525, 260 2. Software Engineering : Summerville. Page No. 272 3. Modern systems analysis and design: Jeffrey Hoffer. Page no .19-21 4. Software Engineering : W S Jawadekar. Page No. 96, 99, 120 2
  • 3.
    6.1. Introduction to CASE tools • What are CASE tools • Is a catchall term to describe virtually any software development tool. • typically used to refer to software development tools that use diagrammatic representations of software design. 3
  • 4.
    Computer Aided Software Engineering •What is a CASE Environment? – CASE is the use of computer-based support in the software development process. •What is a CASE Tool? – A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process. – A set of tools to (optimally) assist in each step of software development. 4
  • 5.
    Purpose of CASETools • Provides software engineers and programmers with software based tools that help with some combination of: – specifying requirements – designing software to meet the requirements – generate code automatically – support documentation efforts • A central repository to input, store, revise, and output work done on a project. • Provide ‘leverage’ (Control). 5
  • 6.
    Purpose of CASETools • Supply basic functionality, do routine tasks automatically – Be able to support editing of code in the particular programming language, supply refactoring tools. • Enhance productivity – Generate code pieces automatically. • Increase software quality • Intuitive use (easy to use and understand) • Integration with other tools – For example, code editor works with code repository. 6
  • 7.
    Purpose of CASETools To reinforce and support an engineering approach to software development and evolution by providing computer based assistance, which translates to low-defect solutions and enhanced productivity. A CASE tool is any computer based system that may be used during the software development process. A Computer Aided Software Engineering (CASE) tool is any computer based tool for software planning, development and evolution. This definition includes all examples of computer- based support for the managerial, administrative, or technical aspects of any part of a software development project. 7
  • 8.
    Purpose of CASETools “ ... to automate the entire software life cycle process with a set of integrated tools” -McClure (1989) “CASE tools are used to facilitate greater standardisation of work procedures and adherence with design discipline” -Orlikowski (1988) “CASE tools are important because they speed development, automate tedious tasks, and enforce standards and procedures.” 8
  • 9.
    System Development ItemsStored in the CASE Repository 9
  • 10.
    CASE Tool Architecture INPUTS: CASE Tool models, Facilities descriptions (on a workstation) OUTPUTS: and reports, prototypes problems, and analyses Graphics Description Prototyping links links Tools Tools Tools Repository Server House- imported Quality keeping and Management Tools exported Tools knowledge check-out/ check in Data Local Decision knowledge Sharing Repository Support Tools (on a LAN Tools Server) Security and Inquiry and Version Reporting Control Tools Tools CENTRAL REPOSITORY Design Code Document Generators Generators Tools 10
  • 11.
    The Relationship betweenCASE Tools and the Systems Development Life Cycle 11
  • 12.
    Why CASE ToolsAre Popular • Support the need to develop and revise documentation. • Support the need to trace requirements to design, and requirements to test. • Reduce systems development time. • Produce more easily maintained code. • Support the needs of IS professionals. • Support the SDLC. 12
  • 13.
    Capabilities of CASETools • Support graphics with drawing aids. • Create and maintain data model and process specification entries. • Create documentation. • Verify that rules are followed. • Consistency checking. • Create portions of computer programs. • Allows IS developers to focus on important issues by freeing them from “mechanics” issues. 13
  • 14.
    Organizational Benefits • Improved quality of systems • Faster development of systems • Ease and improve testing • Improve quality and completeness of documentation • Improves integration of development activities via common methodologies • Standardize development • Improve project management • Promote reusability of modules and documentation • Simplify maintenance • Improve software portability 14
  • 15.
    Scope of CASETechnology • Business Systems Planning – Provide a ‘meta-model’ from which specific systems are derived. The focus is not on the requirements of specific applications but rather on building a model of the business itself. Business information is modelled as it ‘flows’ through the different organisation units in a company. • Project Management – Tools which focus on: • software project effort and cost estimation • project scheduling • requirements tracing • Support – Broad selection of tools applicable over the entire development process such as Desk top publishing tools. • Integration and Testing – Tools such as Static Analysis tools, Dynamic Analysers 15
  • 16.
    Scope of CASETechnology • Analysis and Design – Enable a software engineer to create models which describe a system which is being built. • Methodology Tools: Such tools support one or more software development methodology and provide consistency and quality checking on the constructed models. • Prototyping and Simulation Tools: Provide a means for creating functional and behavioural models of a system. Some also provide code generation facilities. – Interface Design and Development Tools: Toolkits of program components such as buttons and windows and interface prototyping tools. • Programming – Tools such as compilers, debuggers, linkers and environments which integrate these tools. 16
  • 17.
    Scope of CASETechnology • Prototyping – A broad range of tools which is applicable to many tools in other categories. These tools allow the developer to build scratch systems of differing functionality and performance. This can range from tools which allow mock-ups of users interfaces to be developed to tools which generate source code. • Maintenance – These tools aid in the maintenance of software. • Reverse engineering tools which try to extract analysis and design models corresponding to source code. • Code restructuring tools. • Re-engineering tools which perform a combination of reverse engineering and restructuring. • Framework – Tools that provide an environment which supports the integration of other CASE tools. 17
  • 18.
    Benefits from CASEtools Better quality of produced systems Better communication between developers Better productivity of developers Formalized design methodology Better maintenance of the product etter project management Source: CASE RESEARCH CORP. Other 5 10 15 20 25 30 35 40 % answers 18
  • 19.
    Cost distribution duringSI lifecycle Traditional cost “ad hoc” methods Methods based on CASE tools Planning Analysis Design Programming Deployment Maintenance time 19
  • 20.
    Why CASE toolsare (sometimes) inefficient? Sources of difficulties: Too high expectations: CASE tools are only tools - they are not able to learn from experience and to think. “A fool with a tool is still a fool.” A CASE tool is able to reduce the cost of the software production at most on 30-50%. People tend to treat CASE tools as code generators. A CASE tool is used only as a “very high level programming language”, without proper documentation of the analysis and design phases. No analysis and design methodology. Bad organization of software development processes, lack of order, lack of a plan, lack of good estimations and measures, lack of monitoring, etc. Underestimating other costs induced by a CASE tool: education, deployment, organizational changes, improvement of discipline, etc. Effects of CASE tools usually appear after some time. 20
  • 21.
    6.2. Types & Names of CASE tools Project Management Tools 1. Green UML 2. ESS-Model 3. Gather Space 4. MS - Project 21
  • 22.
  • 23.
    6.2. Types &Names of CASE tools Analysis tools 1. Meta-Boss 2. UML CASE Tools 3. DMS Software Reengineering Toolkit 23
  • 24.
    6.2. Types &Names of CASE tools Design tools 1. Magic Draw 2. ArchE – Is an Architecture Expert Design Assignment 3. ER Studio 24
  • 25.
    Conclusion A CASE toolmakes it possible to improve software production processes, but not in auto-magical way: it requires good project organization, well defined project goals, and a disciplined methodology CASE tools are sometimes expensive. There are two kinds of costs: (1) the cost of software and installation (2) education and changes in software manufacturing routines. The ultimate benefit depends on good integration of a CASE tool with the assumed A&D methodology, project management, software construction routines and documentation standards. 25