Ready to Start Your Career?
February 2, 2017
Whatever happened to software that would write itself?
February 2, 2017
Age does have some benefits, though they are sometimes hard to appreciate among the aches and pains and general tendency for complaining about…well, getting older. In some respects, I was fortunate to begin my career in technology in 1980 just when things were getting interesting for that field. It would be more than a decade later before the 'WWW' and internet came online, but the foundation was being laid back then for both the hardware and software that would power the next generation of technologies.Behemoths such as IBM and DEC were leading the way. Mainframe computers still roamed the data centers and the first IBM PC was still under development and wouldn't be released for another two years. Software in those days was still something of a mystery and seemed to lag behind the strides being made on the hardware front. Compilers had been around for a few decades but aside from COBOL, FORTRAN, and several varieties of Basic, much of the programming for the first generation of microprocessors was done in assembly code. The advent of the PC along with the first Apple home computer would pave the way for broader use of higher-level languages such as C, Pascal, and Basic. It wouldn’t be long before these languages moved beyond creating trivial apps and computer games for hobbyists to becoming the backbone for building important applications for both the consumer and business markets.During the 80s and early 90s, the discipline of software development was anything but disciplined. Enough “spaghetti” code was created back then to overflow an entire chain of Mama Lucia’s. About as structured as most coding efforts got was scrawling out a flow chart and that was if you were really disciplined. Thankfully, a few pioneering individuals saw the need to impose some structure on the practice of software development and stepped in to fill the void.The word “structured” would become prominent during the 1980s. A new approach to software design emerged known as Structured Analysis and Structured Design (SA/SD). Blazing a trail for this concept were Ed Yourdon, Larry Constantine, and Tom DeMarco. The entire process otherwise known as the Software Development Life Cycle (SDLC) was broken out into a series of stages. Not too unlike the OSI model used in data communications. It was the first attempt to corral the process of software development into a defined methodology. The goal was standardization of approach eventually leading to a higher-quality (bug-free) product.A parallel concept emerged around SA/SD known as Computer-Aided Software Engineering (CASE). CASE had actually been around since the late 1960s, but it now had a development methodology to propel it forward. CASE had originally revolved around the mainframe, but with the decline of mainframes and the emergence of the PC, it shifted to a suite of tools based around programming languages. I recall the excitement about how CASE would eventually lead to software that would essentially write itself. The mid-1980s and early 1990s were indeed heady times in the field of software development.The support from CASE spans the entire SDLC and has three core components:
- Tools – support specific tasks within the SDLC ranging from analysis modeling to design on through to configuration and project management
- Workbenches – integrate two or more CASE tools to support software process activities. Examples are modern IDEs such as Eclipse and Microsoft’s Visual Studio.
- Environments – the whole “ball of wax” consisting of a collection of tools and workbenches to cover the entire SDLC.