Anda di halaman 1dari 15

CHAPTER 4 ROLE AND UTILIZATION OF CASE TOOLS

SOFTWARE SYSTEM ENGINEERING (260CT)

Motivation

Definition Characteristics Types of CASE Benefits

Definition

Any computer-based tool for developing software. Tools that diagram and document software design. A tool which aids a software engineer to maintain and develop software.

THE OBJECTIVES OF CASE

Create development process standards Improve overall application quality Decrease design time and improve time to market Decrease required effort and time in application testing Encourage integration of development projects Improve effectiveness of project management activities Decrease required effort and time in application maintenance activities Promote organization wide reusable program code Improve portability of application across platform and operating environment

Characteristics

Graphics Interface for creating Diagrams Central Repository For storing and managing All metadata Highly Integrated Toolset Sharing a common user interface Modules to assist every phase of the lifecycle Prototyping Facilities Automatic code generation from analysis/design Definitions Support Development Lift Cycle Extensive Error Checking

Types of CASE
Upper Case: Front End Tools Planning Design Analysis

Lower Case: Back End Tools Prototyping Code Generation Schema Generation 4GLs

COMPONENT OF CASE TOOL


C e n t r a l Process Modeling Tools

Detailed Analysis Tools

R e p o s it o r y

Transformation Tools

Database/Application Design Tools

Application Generation Tools

Categories of CASE

Diagramming Tools Dictionaries Specification Validation Code and Schema Generation Documentation Generation Reverse Engineering

Benefits

Makes structured methods practical to perform Enforces engineering disciplines (Software Information) Improves Software Quality through Facilitating User Involvement Automated Checking Facilitates Prototyping Simplifies Program Maintenance Accelerates the development process Permits specific focus by developer and user Encourages Evolutionary and Incremental Development Enables Component Engineering (Re-use)

Traditional vs CASE

Emphasis on coding and testing Paper prototyping Paper Specification Manual Coding Manual Documentation Software Testing Code Maintenance

Emphasis on Analysis and Design Rapid/Iterative Prototyping Stored/Automated Specification Automate Code Generation Automated Error Checking Automate Test Case Generation Maintain Design Specification

POTENTIAL CASE TOOL COST CATEGORIES

Initial training and education cost Evaluation cost Costs of maintaining the model over time Upgrade costs of the tool Ongoing usage/maintenance fees Time lost waiting for the tool to do its job Time lost overusing the tool Migration costs to transport models to another tools

POTENTIAL CASE TOOL COST CATEGORIES


Increased effort to synchronize models with other artifacts such as source code Often, promotion of syntax over communication between developers Generated code that is often to simplistic or is cluttered with extraneous information required by the tool Poor user interface that often hamper the modeling effort

POTENTIAL CASE TOOL COST CATEGORIES

Inadequate integration with other tools, reducing productivity and/or requiring integration work Often, exclusion of nondevelopers from modeling efforts due to complexity of the tool

THE GOOD NEWS


Development process productivity and quality increases are reliazable Portability of new systems to other platform is greatly enhanced Analyst skill set will improve due to greater understanding of the process Time to delivery of new applications will decrease Conformity to development standards will increase

THE BAD NEWS


Case acquisation costs are extremly high Training of analyst and administrators is costly and time consuming Most organizations do not have clear standards for application development CASE tools can be viewed as a threat to job security CASE tools do not have a great reputation since early benefits are not realized