There are CASE tools that assist software development process at every stage. They simplify, speed up and integrate the software development process. They aid prompt, accurate and successful completion of software projects. In fact CASE tools are indispensable for large software projects. However, CASE tools are expensive and require huge memory and CPU processing capacity. Still CASE tools are very helpful in software development.
Order custom essay CASE tools that assist software development process with free plagiarism report
Case tools stands for Computer-Aided Software Engineering tools. In particular these are computer based products that assist software development. There are several types of CASE tools, some of these are specific to a domain or life-cycle called vertical Case tools whereas others are common across life-cycle steps or domains and are called horizontal Case tools (Baumeister. H & Marchesi. M 2005). In addition, there is a classification of tools in accordance to the precedence of use, the front end CASE tools are used in the early part of the life cycle of a software project, for example design support tools . In contrast back end CASE tools are used in the later part of the life cycle of software development like test support tools and compilers. In addition, those tools that are interactive in nature like design support tools are called CASE tools and those that are not interactive in nature such as compilers are called software development tools (Morris. E, Carney. D, Smith. D & Brown. A 1994).
The CASE tools are in fact software programs that comprise of automated tools that aid documentation, modeling, synthesis and analysis of software. These tools aid programmers. These tools aid the maintenance, operation, enlargement and removal of software.
The development of CASE tools has been strongly supported by the development of hardware with large memories. Personal computers and workstations not only have fast processors but also well developed bit-mapped graphics display that makes it relatively easy to show diagrams, graphs and charts. Further, the development of software has strongly been supported by extensive research in software design methods. Structured programming methods have facilitated the development of automated tools that can be used methodically be used in software development. The tools can easily be used to produce artifacts that can easily be incorporated into the software. Today there are many CASE tools that not only generate code but also generate systems analysis and design techniques such as user documentation, program specifications, entity relationships diagram, and database schema (Schach. S 2005).
The need for CASE tools emerged because of several reasons. First, there was the need for a large number of people to interact during software development. The CASE tools provide facilities for people to cooperate in the software development process interact in a controlled manner and systematize the thinking of teams on the development process (Tahvanainen. V & Lyytinen. K 1992). Moreover, the software that is developed now necessitates continuous up gradation and augmentation. In other words this means that the software must support the adding of new functions and features. For this not only should multiple copies of artifacts be available but there should also be well documented records of the design and testing process of the software. Finally, the most important need for CASE tools emerged because of the size of the software systems, the need for detailed documentation of the manner in which the system functions, elaborate software designs to provide solutions, implementation of that solution and the need to test the software and establish its precise processing.
Initially the use of CASE tools began with the use of disparate tools that were used at different stages of the software project lifecycle like design method support, version control of source code and document production. However, soon there emerged the need to integrate the processes that were crucial to projects. There was a need to integrate version control, documentation, coding, and design. The design of the software must be closely intertwined with the resultant source code. What has happened is that the CASE tools are provided to software developers as a part of an environment that has a common software and hardware platform. In fact the progress, control and support of the project is done through interactions in such an environment. Different personnel, like administrators, tool integrators and software developers interact with several CASE tools. In fact CASE tools and other components combine to form a CASE environment.
In such an environment some typical tools include configuration management tools, re factoring tools, model transforming tools, data modeling tools and compilers. Tools are now available that address every aspect of software development like testing, translation, code storage, system design and even business analysis. Software modeling techniques developed by researchers is given the credit for the development of CASE tools. In particular Jackson Structured Programming has been believed to have inspired the development of CASE tools (Storr. A & Jarvis. D, 1996).
Originally the word CASE was devised by Nastec Corporation, Michigan in 1982 whose vice president was Albert F. Case Jr., the CASE tool that they devised was called GraphiText and this system used hyperlinks for the first time in documents. After GraphiText came DesignAid and this tool had the capability of evaluating system design and software diagrams. This tool also provided a facility to build a data dictionary. This tool was later expanded. Another CASE tool that entered the market at that time was Excelerator from Cambridge Technologies. This tool was launched on IBM PC/AT platform. This platform had several drawbacks. It did not facilitate networking nor did it support centralized database. Yet Excelerator flourished on this platform. Then there was a burst of competition from Texas Instruments, Knowledge Ware, and Arthur Andersen. However, when the mainframe became outdate in the 1990 AD/Cycle and Big CASE tools became outdated and most of the companies that were producing CASE tools were taken over by Computer Associates (Larman. C, 2004).
Some of the important functions of CASE tools of today are that they help the testing of code before it can be deployed. Further, CASE tools help in converting the system design into code. In addition, the case tools of today help convert software requirements into design specifications. Currently, apart from helping the documentation of software, the CASE tools also help translation of basic user needs into software requirements. The process of developing the laws of CASE tools is an evolving process.
The case tools bring certain benefits to the software development process. The most important benefit is that non programmers can do tasks that only advanced programmers were capable of. This is especially important because of server bases that are located at the client’s premises and an increased movement towards object oriented technology. Another important benefit of CASE tools is that documentation is very comprehensive and helpful for maintenance and development. From the cost-benefit perspective the use of CASE tools leads to lower maintenance costs. The reason is that CASE tools allows reengineering that is less time consuming, more efficient, and less expensive. In addition, the CASE tools not only help design well but also do improved analysis. The lower cost is also attributed to the facility of automatic code generation, quick testing and debugging. In this context another benefit of CASE tools is that there is greater precision especially in the debugging and error checking phase of software development. Finally, the most important benefit of CASE tools is that these tools have been instrumental in reducing the time of project completion.
In using CASE tools there is need for caution. The CASE tools are costly and are avoided by small software developing firms. If CASE tools are used then additional costs are also incurred in hardware, software, consulting and training. The costs should be balanced against the benefits of using the CASE tools. Caution should also be exercised because using CASE tools take some time before expertise is developed. Often outside consultants can be hired to train CASE tools users but this means extra costs for the project. Finally, cautiousness should be exercised in selecting CASE tools. There is a need for CASE integration and data integration across all platforms. In case of large organizations and large projects integration across all platforms should be maintained. This may not be possible for small software developers. CASE systems contain several CASE tools and because of the large quantities of data they use, they require a large amount of disk space and CPU capacity (Peckham. J, 2003). Often the use of CASE tools requires several powerful servers and high memory disk arrays.
However, there are some distinct rewards that CASE tools provide which makes them indispensable for software development today. First, CASE tools provide reasonable means of reducing programming time (Morris. E, Carney. D, Smith. D & Brown. A 1994),. You cannot reduce programming time by increasing the number of programmer. Second, in large projects intra programmer communication reduces productivity. Using CASE tools reduces the need for such communication and increases programmer productivity and decreases the time taken for programming. CASE tools increase programmer productivity in large projects because with the increase in size of programs there is an increasingly high level of difficulty that programmers face. In a complex architecture, where data structures are difficult to comprehend and code is difficult to read, CASE tools are almost indispensable (Schach. S 2005),.
There are different types of CASE tools that are available. One type of CASE tools are for Systems Planning. Consider the CASE tool ADQ Planning Workbench by Knowledgeware. This is an upper case tool. This begins with the company’s business plan, the strategies that it has followed in the past, the present policies and the future strategies of the business. The tactics and strategies that need to be implemented, networks and databases to be set up and the applications that need to written around these specifications (Larman. C, 2004). Even though information can be entered in the form of matrices, pictures and descriptions, the matrices are considered vital. CASE tools can perform analysis on different matrices to trace logical clusters of planning information, functions and data. CASE tools help set priorities in the development of software; develop information systems, networks and databases.
There are several CASE tools for systems analysis and design. Some examples are ADW analysis, design, and Rapid Application Development (RAD) Workbenches and Systems Architect by Popkin Software. These tools help lay out the scope of the software project and help set up boundaries. In addition, these systems help marshal the available information, specify the user’s requirements and set up the prototype requirements for the objective of making well considered decisions. In the next stage these tools help design the software that will meet the user’s requirements. The CASE tools also help modeling the requirements for the project for the objective of detection, unearthing and confirmation (Fowler. M & Scott. K, 2003).
In the lower case there are CASE tools for the purpose of Systems Designs and implementation. There are tools for code generation, tools for component generation and workbenches for programmers. Consider Micro Focus Cobol/2 Workbench, this workstation supports the development of code that is compatible with COBOL standards on mainframes. Even though this workbench is PC based it facilitates COBOL coding , compiling, testing, and debugging. The facilities provided by this Workbench are much greater than that provided by any other COBOL compiler. Let us consider another PC based CASE tool, the Bachman Database Administrator Workbench. This is used for the purpose of designing mainframe databases for IS. In addition, it also provides facilities for fine tuning the database and even redesigning it. This comes is different versions for different DBMS. The Bachman Database Administrator Workbench generator is an example of component generator.
There are some tools that can be used for linking upper case tools and lower case tools. These are the reverse engineering tools. What these do is to examine the current databases and programs code and help create higher versions of the code. Usually reverse engineering CASE tools are used with Systems Support CASE tools. The system support CASE tools support reengineering to house changes. Systems Support CASE tools also help the developers restructure the outdated codes and even the current code and makes them more maintainable. In addition, CASE tools for system support help integrate new technology, redevelop systems and recover information (Tahvanainen. V & Lyytinen. K 1992). The system support CASE tools also have helped in determining if maintenance cost of a system exceeds the benefits. Cost estimation CASE tools have a special role to play in large software projects. CASE tools like Hyperanalyst not only allows the project manager to estimate the size of the project but also the cost and the time that will be incurred in developing the software and implementing it.
CASE tools essentially help improve the productivity of software development. However, there are other technologies that also serve a similar purpose. For example, artificial intelligence or object oriented languages can also help accomplish a similar purpose. However, even if these technologies develop, CASE tools will remain the substratum for their development and growth. CASE tools can be used across different languages to achieve its goals. It has been seen in practice that CASE tools can mechanize and simplify any type of system development or software project. These tools can be adapted to almost any environment.
CASE tools are typically used by large teams of engineers to determine the specifications of the software. CASE tools automate documentation, code stubs and writing of frameworks. For example, CASE tools sold by Rational Software uses UML or Unified Modeling Language. UML is easily available and this allows software engineers to quickly convert system specifications into documented code (Fowler. M & Scott. K, 2003).
Another way of classifying CASE tools is to describe them as build tools and hybrids. The build tools are used in large projects for building and releasing of software packages. This is a difficult task if three to five different versions of the software are released at the same time and the software is used on two or three hardware platforms. An important function of these tools is to keep a record of different objects, executable files and sources. These are crucial to provide distribution and support to software. Hybrids are CASE tools like SourceForge and Collab.NET. The hybrids use ready made tools and mix them with Internet services to create a distributed system that can handle several types of sources.
To sum, CASE tools are software programs that assist programmers, project managers and software engineers in almost every stage of the software development process. CASE tools help in specifying the business process, ascertaining the need for systems, the planning for the software project, systems analysis, code production, documentation, maintenance and support of systems.
Baumeister. H & Marchesi. M (2005) Extreme Programming and Agile Processes in Software Engineering, Springer
Fowler. M & Scott. K, (2003), UML Distilled: A Brief Guide to the Standard Object Modeling Language, Addison-Wesley Professional.
Larman. C, (2004), Agile and Iterative Development: A Manager’s Guide, Addison-Wesley Professional.
Morris. E, Carney. D, Smith. D & Brown. A (1994), Principles of Case Tool Integration, Oxford University Press US.
Peckham. J, (2003), Practicing Software Engineering in the 21st Century, Idea Group Inc. (IGI).
Schach. S (2005), Object-Oriented and Classical Software Engineering, McGraw-Hill Professional.
Storr. A & Jarvis. D, (1996) Software Engineering for Manufacturing System: Methods and Case-tools, Springer.
Tahvanainen. V & Lyytinen. K (1992) Next Generation Case Tools, IOS Press.
Did you know that we have over 70,000 essays on 3,000 topics in our database?