Thursday, January 8, 2015

2015 Terminology - Waterfall SDLC

The Waterfall model encourages to complete each phrase before moving on to the next. 
The first Waterfall model is described in the Royce's paper. [1]


The different phrases are as followed:
  1. Requirement Specification (deliverable is Product Requirements document) 
  2. Design (deliverable is Software Architecture)
  3. Construction (deliverable is Software)
  4. Integration
  5. Testing and Debugging
  6. Installation
  7. Maintenance
Given the following steps among the the Design, Coding and Testing phrases, in building large scale software system.
to design the program before beginning analysis and coding, to document it completely, and to build a pilot model are all aimed at uncovering and solving problems before entering the test phase. [1]
The goal is to identify issues in early phrase than later phrase, in order to reduce cost in the software development cycle.
McConnell shows that a bug found in the early stages (such as requirements specification or design) is cheaper in money, effort, and time to fix than the same bug found later on in the process.[2]
However, it is arguably that the 21 century software system is fairly different from the software system in 1970. The difference includes but not limited to the cost and architecture of hardware resource, the cost of skillful software engineers, the time span of SDLC, and the usability of system functionalities.

The Cost and architecture of hardware resource in the past is high:
1980 – The world's first gigabyte-capacity disk drive (2.52 GB), the IBM 3380, was the size of a refrigerator, weighed 249 kg, and had a price tag of 40,000 USD which is 114,491 USD in present day terms. [3]
The Cost of software engineer in the past is high:
1985 - computer programmer salary ranged from 20,000 USD to 40,000 USD. [4]
The timespan of a complete SDLC software system is typical around 3 years in the past. System is large, documentation is created with typewriter in paper form, not electronic form. 
"... a real-time airborne weapons system with approximately 100,000 delivered source lines of assembler code. The development was started in the early 1960s and delivered almost three years later. The system included both radar and weapons software. ... First, the software amounted to 50 boxes of punched cards implementing a single component. System development processes and standards did not exist. Modern software methods beginning with structured programming were not created until years later. There were no tools to manage source code or other development and test products. Documentation was created with a typewriter. The development team was approximately 35 engineers, of whom 20 were referred to as programmers. ... [5]
The usability of system functionalities in the past encompasses a number of aerospace software system development. [6] Besides, only large corporation or government have sufficient fundings for system development. 

As the raising demand of smaller software for small corporation in the 20 century, faster and simpler solutions are in needs. New methodologies, such as Aspects, Agile, Experimental, and Model Driven, and Software Product Lines, become available. 

Please continue to read posts about SDLC.

Reference
  1. Royce, Winston. "Managing the Development of Large Software Systems".
  2. McConnell (1996), p. 72, estimates that "...a requirements defect that is left undetected until construction or maintenance will cost 50 to 200 times as much to fix as it would have cost to fix at requirements time". McConnell, Steve (1996). Rapid Development: Taming Wild Software Schedules. Microsoft Press. ISBN 1-55615-900-5.
  3. Consumer Price Index (estimate) 1800–2014. Federal Reserve Bank of Minneapolis. Retrieved February 27, 2014.
  4. Carl Prieser. Occupational salary levels for white-collar workers, 1985. 
  5. Jensen, Randall W. Improving Software Development Productivity: Effective Leadership and Quantitative Methods in Software Management. Sep 5, 2014 by Prentice Hall. ISBN-10: 0-13-356267-0.
  6. Long, L.G., and R.H. Lucas, “Cost Estimating Relationships for Software Development,”Aerospace Report No. TOR-96(8504)-3 (El Segundo, CA: Aerospace Corporation, May 22, 1996).

No comments:

Post a Comment