Computer-aided software engineering

Computer-aided software engineering (CASE) is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products. It also refers to methods for the development of information systems together with automated tools that can be used in the software development process. BUILDING BLOCKS FOR CASE The building blocks for CASE are illustrated in Figure

FIGURE - CASE Building Blocks 1. Environment Architecture. The environment architecture, composed of the hardware platform and operating system support including networking and database management software, lays the groundwork for CASE but the CASE environment itself demands other building blocks. 2. Portability Services. A set of portability services provides a bridge between CASE tools and their integration framework and the environment architecture. These portability services allow the CASE tools and their integration framework to migrate across different hardware platforms and operating systems without significant adaptive maintenance. 3. Integration Framework. It is a collection of specialized programs that enables individual CASE tools to communicate with one another and to create a project database.

4. Case Tools. Case tools are used to assist software-engineering activities (such as analysis modeling, code generation, etc.) by either communicating with other tools, the project database (integrated CASE environment), or as point solutions.

Workbenches and environments are generally built as collections of tools.[5] Types of tools are:             Business process engineering tools Process modeling and management tools Project planning tools Risk analysis tools Project management tools Requirement tracing tools Metrics management tools Documentation tools System software tools Quality assurance tools Database management tools Software configuration management tools . Automated tools can be used collectively. when establishing the functional requirements of a proposed application. 2. Supporting software Alfonso Fuggetta classified CASE into 3 categories:[4] 1. or individually. 3. without the assistance of automated design software. as mentioned. For example. Tools can therefore be either stand alone products or components of workbenches and environments. For example. Programmers can then use automated code generators to convert the design documents into code.4. Subsequently. ]Tools CASE tools are a class of software that automate many of the activities involved in various life cycle phases. prototyping tools could be used to define application requirements that get passed to design technicians who convert the requirements into detailed designs in a traditional manner using flowcharts and narrative documents. Environments support (a large part of) the software process. system designers can use automated design tools to transform the prototyped functional requirements into detailed design documents. Workbenches support only one or a few activities. prototyping tools can be used to develop graphic models of application screens to assist end users to visualize how an application will look after development. Tools support only specific tasks in the software process.

2.can be separated into three different categories. 3. 7. 8. Business planning and modeling Analysis and design User-interface development Programming Verification and validation Maintenance and reverse engineering Configuration management Project management Environments .also known as I-CASE support analysis. design and coding phases Workbenches Workbenches integrate several CASE tools into one application to support specific software-process activities. Hence they achieve:   a homogeneous and consistent interface (presentation integration). easy invocation of tools and tool chains (control integration). CASE workbenches can be further classified into following 8 classes: [4] 1.support analysis and design phases Lower . depending on where in the development process they are most involved in:    Upper . 4.           Analysis and design tools Interface design and development tools prototyping tools programming tools Web development tools Integration and testing tools Static analysis tools Dynamic analysis tools Test management tools Client/Server testing tools Re-engineering tools Real CASE tools . 5. 6.support coding phase Integrated .

CASE environments are classified based on the focus/basis of integration [4] 1. . code storage. compilers. to a database software product. test software. and definitions of other organizational and system components. Identify the components within a comprehensive CASE repository. translation tools. 3. A data dictionary is the repository of all data definitions for all organizational applications. CASE applied. might normally involve:    [ Modeling business / real-world processes and data flow Development of data models in the form of entity-relationship diagrams Development of process and function descriptions What is a CASE repository? Identify three advantages of a CASE repository. and with using design information to create parts (or all) of the software product. A CASE repository is a centralized database that contains all diagrams. are most frequently thought of as CASE tools. from project management software through tools for business and functional analysis.An environment is a collection of CASE tools and workbenches that supports the software process. arguably. A data dictionary and an information repository are the components within a CASE repository. and so on. be described as CASE. An information repository refers to automated tools used to manage and control access to organizational business information and application portfolio as components within a comprehensive repository. Specific tool integration. for instance. system design. form and report definitions. data definitions. data structure. The repository provides a set of mechanisms and structures to achieve seamless data-to-tool and data-to-data integration. Toolkits Language-centered Integrated Fourth generation Process-centered Applications All aspects of the software development life cycle can be supported by software tools. 2. tools that are concerned with analysis and design. However. and so the use of tools from across the spectrum can. project management. 5. and reusability are three advantages. process flows and logic. 4.

upper CASE.Define CASE. CASE can be defined as software tools that provide automated support for some portion of the systems development process. and design phases of the systems development life cycle. provides analysis. Lower CASE tools support the implementation and maintenance phases of the systems development life cycle. project initiation and planning. reporting. lower CASE. and I-CASE. I-CASE refers to an automated systems development environment that provides numerous tools to create diagrams. and seamlessly shares and integrates data across and between tools. . Upper CASE tools are designed to support the information planning and the project identification and selection. and reports. Cross life-cycle CASE tools are designed to support activities that occur across multiple phases of the systems development life cycle. forms. cross life-cycle CASE. and code generation facilities. analysis.