What is Computer-Aided Software Engineering (CASE)?
"CASE tools do not ensure that anyone can write a good computer system, but they enable experienced software developers to do an even better job." - Lynne S.
Software design is usually completed with at least some assistance from Computer-Aided Software Engineering tools, or CASE tools. CASE is basically the use of computer-based support by developers to develop and maintain software, especially on larger scale, or for more complex projects. While it may sound perplexing because being a software developer does involve writing code. But the fact is that systems have become more and more complex. CASE tools enable software engineers to step back from the actual complexities of code when looking at the larger picture and design of their larger projects. From the development, system design, coding, through to the testing and maintenance, these computerized tools can be used throughout the life-cycle of software to ensure that the finished product is of high quality, with minimal defect, and in the most time-efficient and cost-effective manner possible. Utilizing CASE tools help make this possible for software developers.
A Little CASE History
The term CASE dates back to the early 1980s, when it was created by a corporation that developed the first tools to evaluate software. Computer companies began to utilize ideas from hardware manufacturing and apply them toward the development of software. Ultimately the goal is to create software that will cost the company the least while still becoming the best product possible and meeting customer demands.
Case tools can be classified into Upper CASE tools, and Lower CASE tools. The upper case tools focus on the beginning stages of system development, such as planning, objective, and goals. The information necessary is gathered, and through upper CASE tools, is then presented in an organized way. Lower CASE tools focus on later parts of system development, such as designing, coding, testing the software for defects and functionality, implementation and maintaining the software. These latter stages are often not what we think of when we think of software design, but testing and maintaining in fact play a huge role in software development.
CASE in Education
Many software engineering jobs will require knowledge of various CASE tools, so familiarity with what CASE entails and the tools themselves is important if you are pursuing a career in software engineering. If you are interested in CASE tools, you are probably already studying software engineering or something related, such as information systems or mathematics. There are some courses and tutorials at the undergraduate and graduate level that focus specifically on CASE. Many software engineering programs will at least entail CASE tools in the coursework, which would grant you a head start toward expertise in using them. Rather than extensive training in using them, they may give examples, a background, and the benefits of using them. If you are already a software engineer, consider expanding your knowledge of CASE tools through continuing education to broaden your job prospects. There are many different types of CASE tools, all of which can serve different purposes, so it may be a good idea for software engineers to become familiar with the variety and the benefits of each. Additionally, CASE tools are continually being developed, becoming more readily available, affordable, and more capable. Continuing education can help you keep on top of these developments.
The Future of CASE Tools
As software engineering becomes more and more complex, and businesses seeking to be as cost-efficient as possible, the need for CASE tool knowledge, complex in itself, will continue to be important. Many studies have been done on the use of CASE tools, and the results point to their benefit but with the importance of correct use by a strong software developer. In other words, they do not ensure that anyone can write a good computer system, but they enable experienced software developers to do an even better job. So, if you are interested or already working in software engineering, consider extending your educational path to cover CASE tools, and you will likely become even more marketable as a software engineer.