A Computer Aided Software Engineering Information Technology Essay

Published: November 30, 2015 Words: 2680

CASE Computer Aided Software Engineering technology is tools that give the assistance to the software developer in the development of software. It can be consider as a workshop tool of software engineering. Main function of a CASE tool is to decrease the development time and increase the quality of software and also to develop easy maintainable software. Computer aided software engineering (CASE) can used for the automated development of computer code and also for analysis, design, and maintenance.

CASE has two key ideas of development

promote computer assistance in software development and or software maintenance processes

Use an engineering approach to software development and or maintenance process.

1.2 - History of CASE

From the beginning development of software, software engineer have been in search of for a tools that will helpful for them in the modeling of system. The first approach to case is by the project ISDOS at University of Michigan. The goal of project is to use computer systems to help analysts in difficult process of analyzing requirements and developing systems.

The main start of CASE tools start in 1980's, when documentation, diagrams and design tools were introduce in this field. In same decade automated analysis design check, automated code generation and linking design utilities were introduce. In same decade importance of CASE tools was considered for the large scale system and CASE establish as an industry. Now a dyas there are lot of CASE tools even more than one CASE toils for same problem. Now tools are available that help developers to analyze, design and for the documentation of the software. Even CASE tools are available for deployment and maintenance of the software. Tools like Erwin, Rational Rose has create there importance in the market due to their qualities and reliability. In last ten years CASE tools has emerged as an interactive technology and has gained good position in the software development fields. They are still in the process of improvement like the other fields of the world, because every human created thing in this world has always room for improvement.

As the term CASE the first software that do a software engineering work was originally made by Software Company called Nastec Corporation in 1982. it was called GraphiText, which also was the first microcomputer based system to use hyperlinks to cross reference text strings in documents an early predecessor of today's web page link. Ater GraphiText's come DesignAid, it was the first microprocessor based tool to logically assess software and system design diagrams and build a data dictionary. The next in line was Excelerator from Index Technology. The 1990s was the golden age for CASE tools. At the time IBM had proposed AD/Cycle, which was a group of software vendors working with IBM's using IBM DB2 in mainframe and OS/2.

1.3 - Building Block of CASE

CASE can be as simple as a single tool that supports a specific software engineering activity or as complex as a complete supportive environment that have tools, a database, people, hardware, a network, operating systems, standards, and many other parts.

Figure 1.1 - CASE building blocks

Each block forms a foundation for the next block, like that each one depending on the block down.

Figure 1.2 Integration options in CASE

1.4 - Classification CASE Tools

CASE tools are a type of software that automates many of the activities involved in various life cycle phases. CASE tools can be classified by its function, by their task as instruments for development of software, by their use of the software engineering process, by the hardware and software architecture that supports them and by their origin or cost.

Business process engineering tools - These tools provide a "meta-model" from which specific information systems are derived. The goal of these tools are to represent business data objects, their relationships, and how these data objects flow between different business areas within a company.

Process modeling and management tools - Process modeling tools are used to represent the key elements of a process so that it can be better understood. This can also provide links to process descriptions that help in develop the process to understand the work tasks that are required to perform it. Process management tools provide links to other tools that provide assistance to defined process activities.

Project planning tools - This tools focus on two primary areas Software project effort and cost estimation and project scheduling. Estimation tools calculate estimated effort, project duration, and recommended number of participant for a project. Project scheduling tools allows the manager to define all project tasks, create a task network, represent task interdependencies, and model the amount of parallelism possible for the project.

Risk analysis tools - This tools use to identifying possible risks and developing a plan to mitigate, monitor, and manage them. . Risk analysis tools enable a project manager to build a risk table by providing detailed guidance in the identification and analysis of risks of the process.

Project management tools - these tools track and monitor project scheduling and project plan. These tools are often extensions to project planning tools.

Requirements tracing tools - The objective of these tools are to provide a systematic approach to the isolation of requirements, beginning with the customer request for proposal or specification.

Metrics and management tools - These tools are used to improve a manager's ability to control and coordinate the software engineering process and a maker's ability to improve the quality of the software that is produced. The metrics and measurement tools focus on process and product characteristics.

Documentation tools - These tools support every aspect of software engineering and represent a substantial opportunity for all software developers. Most software development organizations spend a considerable amount of time developing documents, and in many cases the documentation process itself is quite inefficient. Documentation tools provide an important opportunity to improve productivity.

System software tools - CASE must give high-quality network system software, object management services, distributed component support, electronic mail, bulletin boards, and other communication capabilities. For this system software tools give a help.

Quality assurance tools - Must be focus on providing quality assurance. This is actually metrics tools that audit source code to check reliability with language standards.

Database management tools - This tools serve as a foundation for establishment of a CASE database that also known as project data base. Database management tools for CASE are developing from relational database management systems to object oriented database management systems.

Software configuration management tools - Software configuration management is the center of every CASE environment. These tools can assist in all five major Software configuration management tasks like identification, version control, change control, auditing, and status accounting.

Analysis and design tools - These tools allows a software engineer to create models of the system to be built. The models hold a representation of data, function, and behavior and characterizations of data, architectural, component level, and interface design of the system.

Prototyping and Simulation tools - Prototyping and simulation tools provide the software engineer with the ability to predict the behavior of a real time system before it is built or finish.

Prototyping tools - CASE prototyping tools allow the making of a data design, coupled with both screen and report layouts. Many analysis and design tools have additional functions that provide a prototyping option.

Programming tools - The programming tools comes with the compilers, editors, and debuggers that are available to support mos programming languages. And also object oriented programming environments, fourth generation languages, graphical programming environments, application generators, and database query languages enable these functions.

Web development tools - This is use develop web based application. These include tools that help in the generation of text, graphics, forms, scripts, applets, and other elements of a Web page.

Integration and testing tools - These tools are used to test the project for fault.

Static analysis tools - Static testing tools help the software engineer in deriving test cases. There are three different types of static testing tools are used in the analyzing, code based testing tools, specialized testing languages, and requirements based testing tools.

Dynamic analysis tools - Dynamic analysis tools work with an executing program, checking path coverage, testing assertions about the value of specific variables, and check the execution flow of the program.

Test management tools - Test management tools are used to control and coordinate software testing for each of the major testing steps.

Client/server testing tools - These tools used to testing system in network environment.

Reengineering tools - These tools are conducting maintains activates. These tools are limited to specific programming languages and require some degree of interaction with the software engineer.

1.5 - Integrated Case Environments

All the usage and benefits comes from individual CASE tools that separately address software engineering activities but real work comes only through integration. The benefits of integrated CASE (I-CASE) include.

Smooth transfer of information from one tool to another and one software engineering life cycle.

A decrease in the effort required to perform join activities such as software configuration management, quality assurance, and document production

An increase in project control that is achieved through better planning, monitoring, and communication.

Improved coordination among staff members who are working on a large software project.

Figure 1.3 - Architectural

model for the

integration

framework

1.5 - Advantage of CASE

Using CASE tools in the System Development Life Cycle (SLDC) provides number advantages for developers.

They provides better perceptive of system.

Facilitates communication among team members.

Tools are more effective for large scale systems and immense projects.

Provide visibility of processes and logic to developers.

Improve quality and productivity of software.

Reduce the time for error correction and maintenance.

Provide clear readability and maintainability of the system.

CASE provides Centralized Repository to the system.

Providing Code Re-usability.

Providing Documentation facility.

Developments stranded are inbuilt to environment.

1.6 - Disadvantage of CASE

CASE is not being used as it was expected; there are many factors that affect the use of CASE tools.

Cost of implementation is high, for that most companies unwilling to use it.

Training of the staff using CASE tools expensive and time consuming.

Lack of Concern to use tools

Technical Limitations.

Technology Transfer and Insertion

Environment

1.7 - Use of CASE Tools

The idea of using CASE is to reduce the cost and time required for the system development and the focus is on the quality of the end product. CASE is not being used as it was being expected by the developers. Most of the software companies are unwilling to adopt the CASE tools. The CASE is not being used in many companies. The reasons for rejection included cost, lack of measurable returns, and unrealistic expectations. Organizations that used CASE tools and found that large numbers of their systems developers were not using CASE tools. Some organization using CASE tools but its developers are not willing to use it as tool for easy work. And who using CASE using tools most them use basic function of CASE tools not the higher functions.

1.8 - Conclusion

CASE combines a set of building blocks that begin at the hardware and operating system software level and end with individual tools. It has being seen that CASE tools plays an important role in Software Development and getting its path in software development industry slowly. But CASE tools are still in growth and there are different ideas about CASE.CASE tools are not being used as they are expected to. Though, there are many new CASE tools available in the use and this integrated CASE tools provides significant help and support for developers and programmers throughout SDLC in design and development activities but CASE tools have never been good choice for the majority of developers. And where CASE is used, the developers are using only minimal required functionality of the tools.

Question 02.

What strategy would you advise to organizations intend to implement CASE? Outline some basic steps needed to successfully implement CASE? Based on your understanding, write a short report.

2.1 - Software Development Strategy

A software development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing or making an information system. For conduct this work there are several tools and method are used.

Figure 2.1 - Software Project

Stakeholders - people or organizations involved in the outcome of a software project

Customer - who is investing for the system to build

Developer - who builds the system

Users - who use the system

Software development methodology framework acts as a base for every development and applying approaches to develop and maintain software. Several software development approaches have been used since the beginning of software engineering.

Waterfall model - a linear framework

Prototyping model - an iterative framework

Spiral model: a combined linear-iterative framework

Fourth Generation Techniques - automated design

Figure 2.2 - development approaches

2.1 - Implementation of CASE

There are several software development methodologies that are use in developing software, if you intend to use CASE tool as a strategy.

Steps that are followed before intend to implement CASE

Conduct a technology impact report to study and determine how the basic business of the organization should change to maximize the opportunities gain by this technological change

Evaluate how the organization should be re model to take advantage of new technology

Find a program for replacing the old systems with the most effective new technology

Select a development methodology that suit your organization

Select a CASE-tool appropriate to organization

Establish of reusability scheme

Attempt for an environment of open interconnectivity and software portability across the entire enterprise

Manage interoperate network links to most trading partners

Plan how to provide all the added knowledge to workers

Decide the changes in management structure required to take full advantage of innovative systems, architectures, methodologies and tools

Tool must not be selected due to its advance features, because most of the advance feature may concern organization don't use in their project. And organizations pay more money for what they don't have to use in the end. There are a lot of tools available so you should be careful and try to choose an appropriate tool. It is also a fear that an organization must choose a appropriate CASE tool that suite there organization, but most of the time management do the selection not considering ideas of developer. that leading to wastage of the system. Before selecting any new technology, people who uses them must be consulted because they can better selection, that how they can effectively use the CASE tool. As there are many tools for same problem in the market tool selection is a big concern as well.

The Basic Steps needs to successfully implement CASE tools

Cost - CASE tools are not cheaper. But most organizations are not required all tools in inside a case tools Eg: Visual Studio had VB,C++,J++,C #.But if one organization want to work with C# they can use it without getting other tools. This will helps to reduce their cost plans for CASE tool

Environment - Work with most OS without changing or if it required additional tools(Like JAVA, Frame work, Direct X) it must be provided or else it must be downloaded and installed when main software installation is on going

Time Limitation - There is always a time limit for every software project for development.

Training - Training of the staff who is using the tools is big concern

Selection of CASE Tool - selecting appropriate CASE tool that suite there organization,

Easy and low cost future updating plans - updating of software should be easy and provide support to it

Easy working Environment - Working Environment should be flexible

Support for additional software - Availability of support to other development tools

Supports for early developed applications - If current CASE is going new environment then it must have a ability to work with early applications.

Allow reverse-engineering - allows reverse engineering of existing code into the tool for analysis and jump-starting a design. Allow synchronization between the code and the model.