Computer Aided Software Engineering Computer Science Essay

Published: November 9, 2015 Words: 831

CASE is an acronym for Computer Aided Software Engineering. This is a category of software that permits teams of programmers to participate in development projects. In an analogy, CASE tools permit the development and maintenance of software, much like a mechanic who uses specialized tools to assemble and maintain a vehicle.

A plethora of CASE tools exist to support a multitude of development applications. The following examples are but several of many applications supported by CASE tools: two and three-dimensional graphics, animation and simulation, automated documentation, business modeling, data collection, data modeling, flow charting, object-oriented programming, real time modeling, and report generation. Editors, compilers, debuggers, code generators, and access control are but a few examples of CASE tools.

There are various levels of CASE tools. Upper CASE tools focus on activities associated with the early stages of systems development. Lower CASE tools focus on the later, implementation stages of systems development. Finally, integrated CASE tools, or I-CASE tools, provide links between the upper and lower packages. These links allow the lower CASE packages to generate a program code from the upper CASE-generated designs.

CASE systems offer tools that enable programmers to automate designated steps in a developmental process, and to electronically manage other steps of the project. Among the tools in the CASE system are those that allow the initial requirements in the development process to be summarized, flow diagrams detailing the sequential steps in a process to be constructed, various tasks in the developmental process to be scheduled, preparing documentation, and developing a program code that enables the development process to operate. Many CASE systems provide support for object-oriented programming, a type of programming in which programmers define both the data and the ways the data can be used. The data structure becomes an object that includes both data and functions. Furthermore, relationships can be programmed between different objects. A significant strength of object-oriented programming is that so-called modules, self-contained units of data and function, can be created. Modules are introduced or modified as necessary without a wholesale revision of the entire program.

CASE functions to link various classes of data. Developers then add underlying application logic using languages such as C++, Java, or Smalltalk. CASE tools also allow the developer to perform functions that go beyond the capabilities of any one programming tool and to graphically represent data. The repetoire of CASE tools allow for a blending of functions. There are several means by which CASE tools generate database codes. These are loosely described as push, pull, and push-pull (or round-trip engineering). The push method creates a method, attribute, or class, and then the code is regenerated. The code is compiled, tested, debugged, and edited

The larger a project, the more important it can be to use CASE tools. Software development is expensive and demands much of a programmer's time. CASE tools help alleviate some of the need for multiple programmers, and can reduce development time. The modular nature of CASE allows program developers to quickly become familiar with components introduced by programming colleagues, and to add to these modules. In a similar sense, management must be able to direct proceedings without the necessity of probing deeply into the programming language. CASE tools allow managers to understand, monitor and control the project that in its entirety would be too complex to manage.

Despite these advantages, software designers sometimes view the benefits of CASE tools as not worth the time, money or effort required to use them. CASE tools also store a project in a closed database, with the result that a project will exist in two forms: the database and the source code. This creates redundancy and, in the case of a database where size might be a limiting factor, a potential problem regarding the limit to the scalability of the project. Another disadvantage of CASE tools for some software designers concerns the linear order. One area must be completed before the developer is able to work with another area. A developer preference may be to skip from one area to another as circumstances and creative energies dictate.

Evolving graphics technologies are creating a need for more diversified CASE tools. A language called the Unified Modeling Language is attempting to address this need. An important adjunct to the UML is the CASE Data Interchange Format. This format helps specify how information is stored in a data repository, and allows design data to be transferred from one CASE tool to another.

With the variety of CASE tools to choose from, the choice often is one of how well the tool fits the task. Often, users will evaluate the CASE options based on certain criteria, including the following:

Methodology--the tool should suit the work style of the user.

Customization--the tools should be accessible to code changes and use with different programming languages.

Collaboration--the tool should allow the seamless involvement of different programmers.

User interface--the tool should be easy to use.

Performance--the tool should be fast and have a uniform response time.