Today, to aid in the development of the 5-phases, CASE tools (i.e. Computer-aided Software Engineering tools) are used. In researching for these lectures, I found the following definition of CASE tools.
Definition of CASE tools:
CASE tools are computerized software development tools that support the developer when performing one or more of the phases of the software life cycle and/or support software maintenance.
In these lecture notes two different CASE tools will be used: Microsoft Visio 2003 © and Microsoft Visual Studio .NET 2005 ©.
CASE tools are subdivided into several categories. Two of the categories are: "classic" and "real". Computer compilers are examples of "classic" CASE tools. CASE tools that can be used in several of the phases are called "real". Both Visio and Visual Studio .NET can be considered "real" CASE tools using this definition. Some of the new testing tools on the market can be considered "real" as well because they can be involved in several of the 5-phases.
Another categorization of CASE tools are "upper" and "lower". By the term: "upper" CASE tools is meant those tools that support the first two phases while the "lower" CASE tools support the last three phases. In terms of these categories, Visio is considered an "upper" CASE tool while Visual Studio .NET is considered to be a "lower" CASE tool.
Both Visio and Visual Studio .NET have a greater capacity as CASE tools than will be studied in this course. It is recommended that you try to go beyond their minimal introduction and study both of these CASE tools more in depth.
Many students do not like to use the power of these tools until they are forced to. However you will find that in general, once you learn how to use them, they will save considerable amounts of time. For example in the Galin book listed below, he provided data on a programming job that required 110 days for the 5-phases to develop the software using traditional non-CASE tool methods. When the same program was created using CASE tools, only 61 days were required. He claimed that if advanced CASE tools had been used then there would have been an even greater reduction in time spent on development of the program.
The following graphic attempts to illustrate how traditional programming compares to using CASE tools. This graphic is from the Galin book p 301.
Note: In the graphic above, Repository means the collection of the documentation from all phases of the software development.
Note: In the graphic above, notice the different categories of the development team. Your goal as a future member of a software development team is to determine which of these jobs you are the best at and which you want to work on.
The above discussion is a modification of the topic from the following book which I highly recommend that you read:
Galin, Daniel; Software Quality Assurance: From theory to implementation; Addison Wesley, 2004. p 298 – 304.