CASE tools• CASE tools stand for Computer Aided Software Engineering tools.• As the name implies they are computer based programs to increase the productivity of analysts
CASE tools• Computer-aided software engineering (CASE) – Software to support software development and evolution processes [Sommerville]. – Automated software tool used by systems analysts to develop information systems [Hoffer et al].
CASE tools• They permit effective communication with users as well as other members of the development team.• They integrate the development done during each phase of a system life cycle and also assist in correctly assessing the effects and cost of changes so that maintenance cost can be estimated.
Purpose of CASE isto facilitate a singledesign philosophywithin anorganization.
The Outlook for CASE • Functionality is increasing • Cost is decreasing • Extend life of existing systems • Reverse Engineering Tools – Automated tools that read program source code as input and create graphical and textual representations of program design-level information • Reengineering Tools – Automated software that reads program source code, analyzes it and automatically or interactively alters an existing system to improve quality and/or performance
CASE tools• CASE Classification [Sommerville] – Functional perspective • Tools are classified according to their specific function. – Process perspective • Tools are classified according to process activities that are supported. – Integration perspective • Tools are classified according to their organisation into integrated units.
FunctionalTool classification perspective Re-eng ineering tools Testing tools Debugg ing tools Prog ram analy sis tools Language-processing tools Method suppor t tools Prototy ping tools Configuration m anagem ent tools Change m anagem ent tools Docum entation tools Editing tools Planning toolsProcess perspective Specification Design Im plem entation Verification and V alidation
CASE integration• Tools – Support individual CASE process tasks such technolo g y as design consistency checking, text editing, etc. Wor kbenches Environments Tools• Workbenches – Support a process phase such as specification or File Integ rated Process-centr ed Editors Compilers design, Normally compar ators en vironments en vironments include a number of integrated tools.• Environments Analy sis and – Support all or a Pro gramming T esting design substantial part of an entire software process. Normally include several Multi-method Single-method General-purpose Langua ge-specific integrated workbenches workbenches workbenches workbenches workbenches.
Components of CASE• Upper CASE – CASE tools designed to support the information planning and the project identification and selection, project initiation and planning, analysis and design phases of the SDLC• Lower CASE – CASE tools designed to support the implementation and maintenance phases of the SDLC
Components of CASE• Cross life-cycle CASE – CASE tools designed to support activities that occur across multiple phases of the SDLC• Integrated CASE (I-CASE) – Automated systems development environment that provides numerous tools to create diagrams, forms and reports, and code generation facilities, by using the central repository
Forces For and AgainstCASE Adoption • Resisting forces: • Driving forces: – High purchase cost – Short development – High training cost time – Low organizational – Improved productivity confidence in IS – Improved system department (time & quality budget) – Improved worker skills – Lack of standards – Improved portability – Perceived threat to job – Improved security management
Following types of tools areavailable:• System requirements specification documentation tool• Data flow diagramming tool• System flow chart generation tool• Data dictionary creation• Formatting and checking structured English process logic• Decision table checking• Screen design for data inputting• Form design for outputs.• E-R diagramming• Data base normalization given the dependency information
When are tools used• Tools are used throughout the system development phase.
Building Blocks for CASE CASE Tools Integration Framework Portability Services Operating System Hardware Platform Environment Architecture 18
CASE Building Blocks - 1• CASE tools• Integration framework – specialized programs allowing CASE tools to communicate with one another• Portability services – allow CASE tools and their integration framework to migrate across different operating systems and hardware platforms without significant adaptive maintenance 19
CASE Building Blocks - 2• Operating system – database and object management services• Hardware platform• Environmental architecture – hardware and system support 20
A Taxonomy of CASE Tools business systems planning project management support CASE analysis and design Database programming integration &testing prototyping/simulation tools re–engineering framework 21
CASE Tool Taxonomy - 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 22
CASE Tool Taxonomy - 2• Risk analysis tools – help project managers build risk tables by providing detailed guidance in the identification and analysis of risks• Requirements tracing tools – provide systematic database-like approach to tracking requirement status beginning with specification 23
CASE Tool Taxonomy - 3• 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 24
CASE Tool Taxonomy - 4• 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 25
CASE Tool Taxonomy - 5• Database management tools – RDMS and OODMS serve as the foundation for the establishment of the CASE repository• 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 26
CASE Tool Taxonomy - 6• 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• Interface design and development tools – toolkits of interface components, often part environment with a GUI to allow rapid prototyping of user interface designs 27
CASE Tool Taxonomy - 7 • 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 • Web development tools – assist with the generation of web page text, graphics, forms, scripts, applets, etc. 28
CASE Tool Taxonomy - 8 • 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 – cross-functional tools 29
CASE Tool Taxonomy - 9 • 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 30
CASE Tool Taxonomy - 10 • Test management tools – coordinate regression testing, compare actual and expected output, conduct batch testing, and serve as generic test drivers • Client/server testing tools – exercise the GUI and network communications requirements for the client and server 31
CASE Tool Taxonomy - 11 • 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 32
SYSTEM FLOWCHART AND ER-DIAGRAMGENERATION TOOL• Name of the tool: SMARTDRAW• URL: http://www.smartdraw.com.• Requirements to use the tool: PC running Windows 95, 98 or NT. The latest versions of Internet Explorer or Netscape Navigator, and about 20MB of free space.
SMARTDRAW• What the tool does: Smartdraw is a perfect suite for drawing all kinds of diagrams and charts: Flowcharts, Organizational charts, Gantt charts, Network diagrams, ER-diagrams etc.
DATA FLOW DIAGRAM TOOL• Name of the tool: IBMS/DFD• URL: http://viu.eng.rpi.edu• Requirements to use the tool: The following installation instructions assume that the user uses a PC running Windows 95, 98 or NT. Additionally, the instructions assume the use of the latest versions of Internet Explorer or Netscape Navigator.
Name of the tool: IBMS/DFD• What the tool does: The tool helps the users draw a standard data flow diagram (a• process-oriented model of information systems) for systems analysis.
TOOL TO CONVERT DECISION TABLE TOSTRUCTURED ENGLISH• Name of the tool: COPE• URL: This is a free tool and should be worked online at• http://www.cs.adelaide.edeu.au/users/dwyer/exam ples.html• What the tool does: Cope is a program that converts decision tables to Cobol source statements
IV. SYSTEM REQUIREMENTSSPECIFICATION DOCUMENTATION TOOL• Name of the tool: ARM• URL: The tool can be downloaded without cost at• http://sw-assurance.gsfc.nasa.gov/disciplines/quality/index.php
ARM• What the tool does: ARM or Automated Requirement Measurement tool aids in writing the System Requirements Specifications right.• The user writes the SRS in a text file, the ARM tool scans this file that contains the requirement specifications and gives a report file with the same prefix name as the user’s source file and adds an extension of “.arm”.• This report file contains a category called INCOMPLETE that indicate the words and phrases that are not fully developed.
ARM• Requirements to use the tool : PC running Windows 95, 98 or NT. The latest versions of Internet Explorer or Netscape Navigator, and about 8MB of free space.
A TOOL FOR SCREEN DESIGN ANDDATA INPUTTING• Name of the tool: Visual Basic• URL:http://www.microsoft.com/downloads/details. aspx?FamilyID=bf9a24f9-b5c5- 48f4-8edd-cdf2d29a79d5&displaylang=en• What the tool does: This tool is used to create the graphical user interface (GUI) to describe the appearance and location of interface elements, you simply add prebuilt objects into place on screen.
A TOOL FOR DESIGNING AND MANIPULATINGDECISION TABLES• Name of the tool: Prologa V.5• URL: http://www.econ.kuleuven.ac.be/prologa• What the tool does: The purpose of the tool is to allow the decision maker to construct and manipulate (systems of) decision tables.
Prologa V.5• In this construction process, the features available are automatic table contraction, automatic table optimization, (automatic) decomposition and composition of tables, verification and validation of tables and between tables, visual development, and rule based specification.
Evaluation of Reverse EngineeringCapabilities• Basic reverse engineering steps (in general) – Decompilation of executables to get the source code – Analysis of software components to produce the models• Evaluation of CASE tools capable of source code analysis – Analysis of application Bank, described in Rational Application Developer V6 Programming Guide, available at ftp://www.redbooks.ibm.com/redbooks/SG246449 /6449code.zip
Candidate Tools Operating Supported Tool URL License systems languages AmaterasUML Microsoft Eclipse plugin http://amateras.source.jp free Windows Linux Java 1.2.2 Mac OS X Microsoft Windows ArgoUML 0.24 http://argouml.tigris.org free Java Linux Mac OS X IBM Rational http://www-306.ibm.com/software/ Microsoft Software awdtools/architect/swarchitect/index. comm Windows Java Architect 7.0 html Linux Microsoft JGrasp 1.8.6 http://www.jgrasp.org/ free Windows Java Mac OS X C++ Microsoft Visio http://office.microsoft.com/en- Microsoft comm C# 2007 us/visio/default.aspx Windows Visual Basic Microsoft Windows Linux NetBeans 5.5 http://www.netbeans.org/ free Java Mac OS X Solaris Java Microsoft StarUML 5.0 http://staruml.sourceforge.net/en free C++ Windows C# VisualParadigm Java for UML 6.0 Microsoft C++ http://www.visual-paradigm.com comm Enterprise Windows Ada Edition PHP
Examples of CASE Tools• With Class - object-oriented design and code generation• Eiffelbench - object-oriented programming and debugging• Oracle Designer/2000 - integrated CASE environment 48
With Class• Design objects - identifying attributes and operations• Specifying relationships• Diagramming for various methodologies• Code generation for various languages 49
Eiffelbench• Based on Eiffel language (an object-oriented language)• For development and debugging of program• Consists of tools such as: – Project Tool – System Tool – Class Tool – Feature Tool – Object Tool 50
Oracle Designer/2000• Repository Administration• Process Modeler• Entity Relationship Diagrammer• Function Hierarchy Diagrammer• Dataflow Diagrammer• System Designer• Utilities 51
CASE Workbenches• Set of tools which supports a particular phase of the software process e.g. design• Advantage - tools can work together to provide more comprehensive support• Common services can be implemented and called by all the tools• Integration possible through shared files, shared repository, or shared data structures 52