CASE (Computer-Aided Software Engineering) Tools • Similar to CAD tools that provides hardware support. • Software that is used to support software process activities. • Provides software process support by:– automating some process activities. – providing information about the software being developed. • Currently used in every phase/workflow of life cycle. Computer-Aided Software Engineering • Prerequisites to tool use: – Need a collection of useful tools that help in every step of building a product. – Need an organized layout that enables tools to be found quickly and used efficiently. – Need a skilled craftsperson who understands how to use the tools effectively 2 Why CASE tools are developed: CASE tools are designed to:enhance and upgrade the computing system adopted and used. . It is an important part of various business growth strategies. The CASE tools are developed for the following reasons: •Firstly Quick Installation. •Time Saving by reducing coding and testing time. •Enrich graphical techniques and data flow. •Optimum use of available information. •Enhanced analysis and design development. •Create and manipulate documentation. •Transfer the information between tools efficiently. •The speed during the system development increased. CASE tools are used to develop software that is high-quality, defectfree, and maintainable. Role of CASE tools: CASE tools play a major role in the following activities: • Project management • Data dictionary • Code generation • User interface design • Schema generation • Creation of meta-data for data warehouse • Reverse engineering • Re-engineering • Document generation • Version control • OO analysis and design • Software testing • Data modeling • Project scheduling • Cost estimation Positioning of CASE tool in a Software Development Application Characteristics of a successful CASE Tool: Standard methodology: A CASE tool must support a standard software development methodology and standard modeling techniques. Flexibility: The CASE tool must offer flexibility and the choice for the user of editors' development environments. Strong Integration: The CASE tools should be integrated to support all the stages. This implies that if a change is made at any stage, for example, in the model, it should get reflected in the code documentation. Integration with testing software: The CASE tools must provide interfaces for automatic testing tools that take care of regression and other kinds of testing software under the changing requirements. Support for reverse engineering: A CASE tools must be able to generate complex models from already generated code. On-line help: The CASE tools provide an online tutorial. CASE Tool Components • 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 – database and object management services • Hardware platform CASE DIAGRAM FOR ATM SYSTEM CASE tools: Automated Diagram Support Checks for syntactic correctness Data dictionary support Checks for consistency and completeness Navigation to linked diagrams Layering Requirements traceability Automatic report generation System simulation Performance analysis CASE tools: Advantages • Help standardization of notations and diagrams • Help communication between development team members • Automatically check the quality of the A&D models • Reduction of time and effort • Enhance reuse of models or models’ components • Improve software quality • Enforce discipline • Information is illustrated through diagrams that are typically easier to understand • Development information is centralized CASE tools: Disadvantages • 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 + training 3 Categories of CASE Tools • Tools • Workbenches • Environments CASE Tools • Upper-CASE tools (front-end tools) – Assist developer during requirements, analysis, and design workflows or activities • Lower-CASE tools (back-end tools) – Assist with implementation, testing, and maintenance workflows or activities • Integrated CASE tools (I-CASE) – provide support for the full life cycle WORKBENCHES • 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 ENVIRONMENT • 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 Taxonomy of CASE Tools Components of CASE Design Generator Analysis tool Drawing Tool Code Generator CASE repository Document Generator Database Generator Prototyping Tool Error-checking tool Security and Version Control Screen and Report Generator Components of CASE • CASE repository – Central component of any CASE tool – Also known as the information repository or data dictionary – 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 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 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 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 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 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 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