As you are probably aware, the term 'CASE' is used in the Information Technology arena as an
acronym for Computer-Aided Software Engineering. Case tools can be described as any
computer-based product which is aimed at supporting one or
more software engineering activities within a software development process. This definition
describes not only the technical aspects of a software project, but the managerial and
administrative aspects as well. In order to further analyze this topic, I want to give you
a brief history of CASE tools.
The History of Case Tools
Case tools began in the early 1970's as a simple word processor which was used in creating
documentation. However, since this initial development, "they have become the focus of researchers
and practitioners as a potential means for easing the software development and maintenance
burden which is threatening to overwhelm information systems (IS) departments".[4].
"The initial development of case tools focused primarily on tools which would be used for program
support such as translators, compilers, assemblers, macro processors, and linkers and
loaders."[7]. As technology increased and software grew more complex, the range
of support tools that were needed expanded as well. They now included diagramming tools (such as
E-R diagrams and data flow diagrams), program editors, debuggers, code analyzers and print
utilities, such as report and documentation generators (for technical personnel as well as
users).
Adding to the maintenance burden placed on IS departments is the fact that programmers have
had varying techniques and methodologies which has made it difficult to maintain and debug
software programs. In addition to these difficulties, it has
also been a challenge to integrate various systems. This led to the idea that software
development needed more of an engineering-type discipline.
This would involve coming up with common development techniques, standard methodologies, and
automated tools[14].
Another one of the major issues that sparked the development of CASE tools was the need to increase the
speed of the development of systems. Many times the system was getting ready to be implemented and
the business needs had changed since the project began. By supporting quicker installation,
companies could compete more effectively since their new systems matched their business needs.
However, "even though the software industry has searched for the "silver bullet" in
application developement productivity for over four decades, the field continues to have
many highly visible examles of software development failures"[1]. Many software development
projects fall behind schedule and many are never even completed. This can cause serious
finanacial
and operational problems. For example, a few years ago when there was a new international
airport opening in Denver, Colorado, there was a software problem that was used for the automation
of the baggage-handling system. This project was delayed for over a year and this was at a
cost of more than a million dollars a day.
The latest developments in the CASE tool arena include the following:
The late 1980's and throughout the 1990's, there has been a focus on the use of CASE tools in
searching for the answer to problems in systems development. This has led to the recent
development in the following areas of the CASE tool product lines:
Object-oriented development tools: these help to create reusable code that can be inserted
into many different applications. Among the object-oriented languages are C++ and Java, which has
become very popular in web development activities. With the vast increase in web development and
usage, the demand for these types of tools will continue to increase.
Visual devlopment tools: These tools allow the developer to quickly build user interfaces, reports
and other features into new and existing systems. Then, they can also see the results of their
efforts instantly.
Artificial Intelligence: this is a new developing CASE tool which allows the user to give
a request to the system, which are processed by intelligent agents that reside on the computer.
These systems are still currently in the development phase.
The Advantages of Case Tools
Recent trends show a significant decrease in the costs associated with purchasing hardware, while
the cost of software
continues to rise. The software industry is currently estimated to be at approximately $2.7
trillion and still
growing. This trend reflects the labor intensive nature of software development. Small errors
in program logic can cause great losses in time and productivity for a developer as well as a
user. CASE tools can play an important part in resolving problems during application development
and maintenance. They can help an organization to establish a single design
philosophy, which can be hard to acheive with so many people and departments involved in various
projects. If used properly and under the proper set of conditions, case tools:
Ensure consistency, completeness and conformance to standards.
Encourage an interactive, workstation environment.
Can speed up the development process (by helping to generate code).
Allow precision to be replicated.
Can reduce costs, especially in the maintenance phase.
Can increase productivity.
Can make structured techniques practical.
Case tools are used by analysts, software engineers, programmers, etc. during all phases of the
system development life cycle which includes the following: the preliminary investigation,
analysis, design, implementation and finally, installation. CASE tools can be divided into two
main categories:
1) Front-End CASE tools (or Upper CASE tools) - these deal primarily with the investigation,
analysis, and design phases of the system development life cycle. In order to determine system
requirements, an analyst utilizes data flow diagrams, data dictionaries, process specifications,
documentation, and structure charts. If any changes were to be made, this would be too time
consuming to ensure that all the changes were made on manual diagrams. Using computerized
CASE tools let's the analyst make these changes quickly and accurately. Information is shared
throughout the flowcharts and documentation can be checked to ensure they all match.
Other uses of CASE tools in the design phase include the use of prototype screens, reports and
interfaces. As we have studied in class, these prototypes can then be given to the end-users
and management to get both positive and negative feedback. This can also help to reduce
development time and encourage open communication with your client.
2) Back-End CASE tools (or Lower CASE tools) - these deal primarily with the implementation and
installation of the system development life cycle. They are most often used to facilitate the
generation of program code. Fourth generation programming languages and code generators help
significantly to reduce the cost and programmer time needed to produce code needed to run the
system. Another benefit is that the code generators produce code which is of high quality, but
most importantly, it is easily transferable between various hardware platforms. Code generators
are able to then interact with the Upper CASE tools and information stored by those tools is
used to generate code.
Overall, the greatest benefit of using CASE tools is usually seen in the Back-End of the system
development life cycle during the construction of the system, testing, implementation and maintaining
the new system.
Disadvantages of using CASE tools
While there are many advantages to utilizing case tools, there are many disadvantages as well.
If the tools are not utilized under the proper set of conditions within an organization, they
may actually hinder the performance of the project. These conditions can include:
Training of staff on the use of that particular tool(s) and the application development
processes. In general, if the staff was trained in the specific use of the tool that was to be
utilized in the development process and they received more application development training,
delays in the project schedule were less likely and end-user satisfaction was more likely. In
many instances, the vendor of the CASE tool or a contractor provides tool-specific training and
this may only require a few days of training.
The use of structured development methods. In research completed by IBM, they found that
"for teams with well-structured processes, the use of tools enhanced the process and improved
performance."[1] For teams with less formalized processes, the tools created problems.
The project size. Some CASE tools are not always compatible with other CASE tools and
cannot share information back and forth easily. The project size is determined by the number
of function points that a project contains. Larger projects tend to require more coordination
and management especially when CASE tools are used.
The team interactions. Group coordination plays a key role in any development project, whether
tools are involved or not. Sharing of information and the attempts at working together can
greatly effect the coordination of the team effort.
Staff resistance to CASE tools. Many IT professionals view the use of case tools as
something that only a junior level programmer would use. Some feel that anyone who knows what they are doing would
not need to utilize a case tool. Many also view CASE tools as a threat to their jobs. If these tools
are able to generate code, will this eliminate the need for as many application programmers within
an organization? Also, many developers think that there is too much expectation place on the
value of using case and are less willing to use the tools. A classic line that I found in one
of my sources, summed up an emplyee's possible reaction to the use of case tools as follows:
"Sometimes employee's have tools that they don't want foisted upon them by Dilbertesque managers"
[20]. Any of these types of opinions or emotions would
need to be dealt with and resolved prior to using these tools in the development process.
The level of quality of the initial application design.
In addition to the above conditions, if an organization has adopted a CASE tool
they may consider eliminating the use of the tool when "the tool cannot achieve a satisfactory
level of CASE adoption goals, it cannot meet the critical conditions of evaluation criteria, or
it has not demonstrated a reasonable probability of success in wider scale tool usage".[3]
One of the major hindrances to a company to start utilizing CASE tools is the cost. While the
market for CASE tools is beginning to reach a mature level, the costs of these products is starting
to see a decline. According to our text, integrated CASE environments range in price from less
than $5,000 per analyst to more than $50,000 per analyst. When you factor in the cost of
training the analyst to utilize the tool as well as the initial cash outlay and continued
maintenance, the costs must be carefully
analyzed in comparison to the benefits, possibly by completing a feasibility study. This effort
should include the technical and economic factors, a competitor analysis, a technical analysis,
your current CASE use, and potential tools, etc.
Choosing a CASE tool
When choosing a CASE tool for your particular organization, there are many factors that must
be considered:
The selection process itself - there are thousands of CASE tools available and the evaluation
and selection of a case tool could take a considerable amount of time. You will first need to
determine what criteria should be used in making the selection. Once this is done, then a careful
analysis of the various tools available will need to be completed.
Examine if the expectations that you have set for the CASE tool are reasonable. Make sure
you understand what the purpose of the tool is. You will need to know the level of expertise
of you IT staff and make sure that the use of the tool is compatible with their skill level.
If not, you will need to determine training needs and if the CASE tool vendor provides this
training and at what additional cost.
Finally, know the current and future
needs of your organization. A recent report showed that "one year after introduction, 70% of the
CASE tools are never used, 25% are used by only one group, and 5% are widely used, but not to
capacity"[16]. By considering the future needs of your organization, you may find that CASE tools
are not a feasible solution or they may in fact be exactly what you need in order to meet these
future objectives.
Some examples of CASE tools.
While there are too many CASE tools to provide a list of all the products available, the following
is a small example of some of the tools that are currently available and their uses:
ASCENT is a CASE tool which was designed for use by computing students. It contains a full
data dictionary support as well as many development methodologies (ie. OOAD, SSADM, Yourdon, and
Gane & Sarson). It also support diagram development including dataflow diagrams, E-R diagrams,
state transition diagrams, OOAD diagrams, Pert Charts, and Structure Design Charts.
StructureBuilder is a Java programming component/application building tool that helps the
programmer understand the structure of a Java program and keeps the object design in lock-step
with the code.
Cool:Gen is another CASE which uses structured methods to develop business objects and
models from which it generates both mainframe and client/server applications. It is capable of
being used to design and construct software components, deliver Web-enabled applications, and
wrap legacy software for inclusion in new systems. This tool has been utilized locally by
the State of Missouri Highway Patrol. While working on a recent project for Missouri's criminal
justice agencies, the Highway Patrol was able to reuse a COOL:Gen model which was built by the FBI. The
specifications are stored in a repository which allows the application specification to be
shared and reused. This allows them to speed up the development process which saves both money
and time. This gave them the ability to share components across several agencies and has saved the state at
least 15 months of development time". [8]
If you are interested in research on additional CASE tools, there is a lot of product information
on the internet.
Who Utilizes Case Tools?
In addition to the above example for the State of Missouri, another
example of an organization that was able to benefit from the use of Case tools includes
the South Florida Water Management District. This district is responsible for overseeing a vast
network of canals, pumps, gates, culverts, and other structures stretching over 16 counties in
Florida. They ensure the water quality for over 5 million people who live in this area and manage
flood control.
Over a year ago, the CIO of the district felt that through the use of information technology,
the district should be able to acheive greater efficiencies. They developed a task team
made up of various groups within the organization including legal, accounting, MIS, etc to
find out where the problem areas were. The highest priority problem was found to be that of
their contract purchasing process. Their old system was being overloaded and kept falling
behind. "Fewer than half of the contract requests - both competitive and non-competitive -
coming in could be approved in the same year, and it was often an all-day job just to determine
the status of any particular contract in the pipeline at any given time." [9]
The district's information systems audit manager began looking into process-management software
as a possible solution to the difficulties that they were experiencing with contract management.
The CASE tool that they began utilizing was called Process Charter by a company called Scitor.
He flowcharted the entire contracting process across each department that was involved, from
accepting a contract in until the time it is sent out. This included budget, purchasing,
competition, risk management, legal, governing board, supplier diversity, and others.
By viewing the flowchart, key people in the organization were now able to understand the entire process
that a contract goes through. By using the Process Charter model, they have greatly reduced
their costs and time of processing a contract. The greatest benefit of this CASE tool for the
district was increased productivity and insight into its operations. Many of their projects
go across so many departments that this gives management a clearer picture of all the
resources involved in each project activity in a spreedsheet form with an accompanying flowchart.
This product also allows them to run simulations of the processes to get a good sense of what
they need in order to acheive their goals.
Conclusion:
There is a wide variety of case tools on the market by software vendors. For a company considering
investing in such technology, they must be cautious in their expectations of utilizing this
technology. "A comprehensive set of technical, managerial, organizational, and cultural factors
should be considered in order to successfully introduce CASE technology into an organization".[3]
There must be the correct "fit" within an organization in order for CASE tool
technology to provide a positive benefit to the company and improve the application development
process. Factors to be considered include things such as employee training, employee attitude
toward the use of CASE tools, project size, the development process itself (structured vs.
unstructured), cost-benefit analysis of the product, etc. It must ultimately be determined
if CASE will actually help an organization to meet its business objectives.
While it is possible for CASE tools to
increase the consistency of a project, increase productivity, reduce costs, allow for the
replication of processes, etc., the successful use of a CASE tool is still dependent on the above
listed factors. An organization should be cautious when shopping for the 'correct' tool which will
meet the needs of the organization and provide the most benefit.