CASE Tools & Applications (5718) Credit Hours: 3(3-0) Lecture 1 Course Introduction CASE tools are the software engineering tools that permit collaborative software development and maintenance. Almost all the phases of the software development life cycle are supported by them such as analysis; design, etc., including umbrella activities such as project management, configuration management etc. Standard software development Course Prerequisite: (Software Engineering) Course Learning Outcomes A comprehensive study and use of computer-aided software development tools for data modeling, process modeling and UI modeling; evolution and reuse of software components in domain analysis; and the creation of large-scale information systems. At the end of the course the students will be able to provide an overview of CASE Tools and their types. Use CASE Tools for data modeling, process modeling, and UI modeling. Textbook: Principles of CASE Tool Integration by Alan W. Brown, Oxford University Press, USA; 1stEdition, ISBN-10: 0195094786 Overview CASE stands for Computer Aided Software Engineering. It means, development and maintenance of software projects with help of various automated software tools. CASE is a term covering a whole range of tools and methods that SUPPORT SOFTWARE SYSTEM DEVELOPMENT. CASE Tools CASE tools are set of software application programs, which are used to automate SDLC activities. CASE tools are used by software project managers, analysts and engineers to develop software system. There are number of CASE tools available to simplify various stages of Software Development Life Cycle such as Analysis tools, Design tools, Project management tools, Database Management tools, Documentation tools are to name a few. Use of CASE tools accelerates the development of project to produce desired result and helps to uncover flaws before moving ahead with next stage in software development. CASE Tools In other words, 1. Software that is used to support software process activities . 2. Provides software process support by - automating some process activities - providing information about the software being developed Reasons for using CASE tools The primary reasons for employing a CASE tool are: to extend productivity to assist turn out higher quality code at a lower price CASE environment Although individual CASE tools square measure helpful, the true power of a toolset is often completed only this set of tools square measure integrated into a typical framework or setting. CASE tools square measure characterized by the stage or stages of package development life cycle that they focus on. Since totally different tools covering different stages share common data, it’s needed that they integrate through some central repository to possess an even read of data related to the package development artifacts. This central repository is sometimes information lexicon containing the definition of all composite and elementary data things. Through the central repository, all the CASE tools in a very CASE setting share common data among themselves. Therefore a CASE setting facilities the automation of the stepwise methodologies for package development. A schematic illustration of a CASE setting is shown in the next slide diagram: Components of CASE Tools CASE tools can be broadly divided into the following parts based on their use at a particular SDLC stage: Central Repository CASE tools require a central repository, which can serve as a source of common, integrated and consistent information. Central repository is a central place of storage where product specifications, requirement documents, related reports and diagrams, other useful information regarding management is stored. Central repository also serves as data dictionary. Report Generator 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 Diagramming Tool 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. Analysis tools Generate reports that help identify possible inconsistencies, redundancies and omissions. Generally focus on diagram completeness and consistency. data structures and usage. 5. Documentation Tool 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. 6. Code Generation Tool Create code for the custom feature in object model. Code Generation Tool helps in: Connect to the Repository. Select the Object Model. Select the custom features to generate code for. Define properties for each custom feature. Specify the output of the project. Layers of CASE Tools Components of CASE Tools Upper Case Tools - Upper CASE tools are used in planning, analysis and design stages of SDLC. Lower Case Tools - Lower CASE tools are used in implementation, testing and maintenance. Integrated Case Tools - Integrated CASE tools are helpful in all the stages of SDLC, from Requirement gathering to Testing and documentation. Data Dictionaries Data Dictionary is the major component in the structured analysis model of the system. It lists all the data items appearing in DFD. A data dictionary in Software Engineering means a file or a set of files that includes a database’s metadata (hold records about other objects in the database), like data ownership, relationships of the data to another object, and some other data. Example a data dictionary entry: GrossPay = regular pay + overtime pay Case Tools is used to maintain data dictionary as it captures the data items appearing in a DFD automatically to generate the data dictionary. Components of Data Dictionary n Software Engineering, the data dictionary contains the following information: Name of the item: It can be your choice. Aliases: It represents another name. Description: Description of what the actual text is all about. Related data items: with other data items. Range of values: It will represent all possible answers. Features of Data Dictionary It helps in designing test cases and designing the software. It is very important for creating an order list from a subset of the items list. It is very important for creating an order list from a complete items list. The data dictionary is also important to find the specific data item object from the list. Uses of Data Dictionary Used for creating the ordered list of data items Used for creating the ordered list of a subset of the data items Used for Designing and testing software in Software Engineering Used for finding data items from a description in Software Engineering Importance of Data Dictionary It provides developers with standard terminology for all data. It provides developers to use different terms to refer to the same data. It provides definitions for different data Query handling is facilitated if a data dictionary is used in RDMS. CASE Tools The application of a set of tools and methods to a software system with the desired end result of high-quality, defect-free, and maintainable software products. Purpose of CASE Tools: To make it simpler to enact a single design philosophy with the goal to speed up the development process. To automate mundane tasks. To promote a central location for referencing system development activities and documents. To get accuracy and increase the speed of the tasks. CASE Tools USES 1. Increasing costs of software development due to the extreme intensive labor required. 2. Avoid simple human errors in software development. 3. CASE offers an important opportunity to alleviate the problems of application development and maintenance. Advantages of the CASE approach It provides better documentation. It improves accuracy. It provides intangible benefits. It reduces lifetime maintenance. It is an opportunity to non-programmers. It impacts the style of working of the company. It reduces the drudgery in software engineer’s work. It increases the speed of processing. It is easy to program software. Disadvantages of the CASE approach Cost: Using a case tool is very costly. Most firms engaged in software development on a small scale do not invest in CASE tools because they think that the benefit of CASE is justifiable only in the development of large systems. Learning Curve: In most cases, programmers’ productivity may fall in the initial phase of implementation, because users need time to learn the technology. Many consultants offer training and on-site services that can be important to accelerate the learning curve and to the development and use of the CASE tools. Tool Mix: It is important to build an appropriate selection tool mix to urge cost advantage CASE integration and data integration across all platforms is extremely important.