Presentation is loading. Please wait.

Presentation is loading. Please wait.

CASE (Computer-Aided Software Engineering) Tools

Similar presentations


Presentation on theme: "CASE (Computer-Aided Software Engineering) Tools"— Presentation transcript:

1 CASE (Computer-Aided Software Engineering) Tools
Software that is used to support software development and evolution processes Provides software process support by automating some process activities providing information about the software being developed Currently used in every phase of the software life cycle Computer AIDED Software Engineering Not automated; still takes human intervention; ASSISTS the human Software that automates all or part of the development process Software tool that assists in some aspect of the production of software Software that helps carry out much of the dredge work associated with software development (e.g., documentation creation and organization) Organizations use CASE tools to: Improve the quality of the system Increase speed of design and development Ease and improve the testing process Improve integration of development activities Improve quality and completeness of documentation Improve management of the project Simplify program maintenance Promote reusability

2 CASE tools Upper CASE tools: support for the analysis and design
(front-end tools) Assist developer during requirements, analysis, and design activities Lower CASE tools: support for construction and maintenance (back-end tools) Assist with implementation, testing, and maintenance activities Nowadays… Integrated CASE tools (I-CASE) Offer extensive support for the full life cycle

3 Computer-aided software engineering
Activity automation Graphical editors for system model development; Data dictionary to manage design entities; Graphical UI builder for user interface construction; Debuggers to support program fault finding; Automated translators to generate new versions of a program.

4 CASE tools: Automated Diagram Support
Checks for syntactic correctness Data dictionary support Checks for consistency and completeness Navigation to linked diagrams Requirements traceability Automatic report generation System simulation Performance analysis

5 CASE tools: Software construction and maintenance
Code generators …Generate code from the design model… Think of the advantages! …may also generate database schemata… Maintenance tools Reverse Engineering Analysis of program code

6 CASE Tools Benefits Improve software quality Enforce discipline
Help standardize notations and diagrams Help communication between development team members Information is illustrated through diagrams that are typically easier to understand Development information is centralized CASE tools Should not be considered a silver bullet for project development Advanced CASE tools are complex applications that require significant training and experience to achieve real benefits Often CASE serves only as a glorified diagramming tool that supports the practices of behavioral and structural modeling Has been shown to be a helpful way to support the communication and sharing of project diagrams and technical specifications (as long as it is used by trained developers who have applied CASE on past projects) 2) Enforce discipline By helping with the standardization of notations and diagrams

7 CASE Tools Benefits Reduction of time and effort
Tasks are much faster to complete and alter Enhance reuse of models or models’ components Can reduce maintenance costs CASE tools Should not be considered a silver bullet for project development Advanced CASE tools are complex applications that require significant training and experience to achieve real benefits Often CASE serves only as a glorified diagramming tool that supports the practices of behavioral and structural modeling Has been shown to be a helpful way to support the communication and sharing of project diagrams and technical specifications (as long as it is used by trained developers who have applied CASE on past projects)

8 CASE Tools Problems Limitations in flexibility of documentation
May lead to restriction to the tool’s capabilities Major danger: completeness and syntactic correctness does NOT mean compliance with requirements Costs associated with the use of the tool Purchase price Training Limitations in flexibility of documentation Documentation templates provided may not match organization’s templates 3) Costs Purchase price is between $5,000 and $15,000 per year to provide CASE tools to one systems analyst Training => Very complex tools

9 Case technology Case technology has led to significant improvements in the software process. However, these are not the order of magnitude improvements that were once predicted Software engineering requires creative thought - this is not readily automated; Software engineering is a team activity and, for large projects, much time is spent in team interactions. CASE technology does not really support these.

10 3 Categories of CASE Tools
Workbenches Environments Your environment is the one you program in for a project.  You may have both DB2 and Oracle databases on your workbench but only use DB2 for this project Tools include IDE's, DB, drawing tools, Rational Rose, etc.  A tool might be on a workbench or included in an IDE, for example you can get a free refactoring tool and pattern search tool and plug it into Eclipse (an IDE).  An example of a general tool is the word processor, text editor, spreadsheet used in software development. Definitions from Software Engineering, 7th Edition: CASE Computer-aided software engineering. The process of developing software using automated support. CASE tool A software tool, such as a design editor or a program debugger, used to support an activity in the software development process. CASE workbench An integrated set of CASE tools that work together to support a major process activity such as software design or configuration management.

11 3 Categories of CASE Tools
Support individual process tasks Examples: Checking the consistency of a design Compiling a program Comparing test results Software Tool A product that assists in just one aspect of the production of software

12 3 Categories of CASE Tools
Workbenches Collection of tools that together support: Process workflows (requirements, design, etc.) One or two activities where an activity is a related collection of tasks Commercial examples: PowerBuilder Software Through Pictures Software Architect Workbenches The activities may cross phase boundaries (e.g., support analysis and design tasks) Generally support some development method Commercial examples given support: Data dictionary Consistency checker Screen generator Report generator

13 3 Categories of CASE Tools
Environments Support the complete software process, or at least, a large portion of the software process Normally include several different workbenches which are integrated in some way

14 categorization of CASE Tools
Tool versus workbench versus environment

15 Components of CASE CASE repository Document Generator Design Analysis
tool Code Drawing Tool Error-checking tool Security and Version Control Screen and Report Generator Prototyping Database Generator

16 Components of CASE CASE repository Central component of any CASE tool
Also known as the information repository or data dictionary CASE repository Stores the diagrams and other project information Keeps track of how the diagrams fit together

17 Project Documentation Detailed Analysis Findings
CASE Tool Repository Central Repository Project Documentation Form and Report Layouts Logical Model Diagrams Program Source Object Code Detailed Analysis Findings General Project Information Data Element Specifications Reusable Libraries

18 Components of CASE CASE repository Centralized database
Allows easy sharing of information between tools and SDLC activities Used to store graphical diagrams and prototype forms and reports during analysis and design workflows Provides wealth of information to project manager and allows control over project Facilitates reusability

19 Components of CASE CASE repository acts as: Information repository
Combines information about organization’s business information and application portfolio Provides automated tools to manage and control access Data dictionary Used to manage and control access to information repository Facilities for recording, storing and processing resources Useful for cross-referencing

20 Components of CASE Diagramming tools
Allow you to represent a system and its components visually Allows higher level processes to be easily decomposed Can examine processes or data models at high or low level Diagramming tools Allow you to draw DFDs, ERDs, use case diagrams, case diagrams Allows you to use stepwise refinement in building models (work from high level to low level)

21 Components of CASE Screen and report generators Used to
Create, modify and test prototypes of computer displays and reports Identify which data items to display or collect for each screen or report Some tools have templates

22 Components of CASE Analysis tools
Generate reports that help identify possible inconsistencies, redundancies and omissions Generally focus on diagram completeness and consistency data structures and usage Analysis tools Types of analyses depend on methodology used and features of CASE environment

23 Components of CASE CASE documentation generator tools
Create standard reports based on contents of repository Need textual descriptions of needs, solutions, trade-offs, diagrams of data and processes, prototype forms and reports, program specifications and user documentation High-quality documentation leads to 80% reduction in system maintenance effort in comparison to average quality documentation Case documentation generator tools Provide a method of managing documentation Allow creation of master templates

24 CASE classification Classification helps us understand the different types of CASE tools and their support for process activities. Functional perspective Tools are classified according to their specific function. Process perspective Tools are classified according to process activities that are supported.

25 Functional tool classification

26 Activity-based tool classification

27 CASE Tools 27 Some CASE tools will automatically generate code from designs stored in the repository. Example: Rational Rose and others; often based on a design model and parameters supplied…. Some CASE tools provide for ‘reverse engineering’ These are used to recover and/or replicate design documents from running, well-established (legacy) software systems. These tools may create completed updated repository and design documents based on the code.

28 Tools to Software Product Quality
Contribution of CASE Tools to Software Product Quality 28 Simply stated, CASE tools can significantly contribute to a reduction of errors in each development phase. Consider some of the tools you use Cause of software errors Extent of contribution to quality 1. Faulty requirements definition Almost none 2. Client-developer communication failures 3. Deliberate deviations from software requirements High 4. Logical design errors 5. Coding errors Very high 6. Non-compliance with coding and documentation instructions 7. Shortcomings in the testing process 8. User interface and procedural errors Limited 9. Documentation errors

29 Great contribution in discovering
29 Note that most of the contributions are not addressing faulty requirements definition – (this likely with poor requirements management) are the most frequent causes of software failures. But most of the contributions are in traceability based on data in the repository and tracing tools. Great contribution in discovering design errors coding errors testing documentation!

30 Contribution of CASE tools to Software Maintenance Quality
30 To Corrective Maintenance: (Errors)     * CASE-generated updated documentation enables easier and more reliable identification of software failure causes. * Cross-referenced queries enable better anticipation effects of proposed correction. * Correction by means of lower CASE or integrated CASE tools provides automated coding and documentation of corrections.

31 Contribution of CASE tools to Software Maintenance Quality
31 Contribution of CASE tools to Software Maintenance Quality To adaptive maintenance: Full and updated documentation by CASE tools enables thorough examination of possible software adaptations for new applications.

32 Contribution of CASE tools to Software Maintenance Quality
32 Contribution of CASE tools to Software Maintenance Quality To perfective maintenance: * Use of the repository assures consistency of new applications and improvements with existing software systems. * Cross-referenced repository queries enable better planning of changes and additions. * Changes and additions carried out by means of lower CASE or integrated CASE tools enable automated coding and documentation of the changes and additions.

33 Contribution of CASE Tools for Improved Project Management
33 Contribution of CASE Tools for Improved Project Management There is little question that projects supported by CASE tools can have dramatic positive impacts on Project Management. CASE tools can reduce the project budgets and development time But from a quality perspective, we are interested in improvements in budget control and timetables. CASE tools can significantly contribute from deviations of budget and schedule from a plan and the reduction of high error rates and shorter correction cycles when needed..


Download ppt "CASE (Computer-Aided Software Engineering) Tools"

Similar presentations


Ads by Google