[Reading] Royce: Managing the Development of Large Software systems
- Hamsa N
- Sep 29, 2015
- 2 min read
I remember always being reluctant about the documentation and processes when at my job in the IT. But this article by Royce just did the job of justifying all the reasons behind the processes and the documentation.
All of it to be performed along with the pressure of the time crunch, else the project is just like a "Big Ball of Mud" (Foote, Big Ball of Mud). The overall process to be followed for development of a very large software system is in short the diagram below.

Royce describes the stages in which we arrive at this particular process starting from the basic Waterfall model.
The final process has the below additional steps added to the waterfall model:
Step 1: Program design comes first
Preliminary program design phase between requirement and analysis phase. This step begins with the design process, with program designers, rather than analysts or programmers. Design, define and allocate data processing models, even if it is an early stage. And write an overview document.
Step 2: Document the design
The design has to documented as a means for,
- Designers to communicate with interfacing designers, management and customers, and it is a tangible evidence of completion.
- Document serves as specifications and design in the early phase
- Good documentation is of great value during the testing phase, operational phase and for redesign after the initial operations.
Step 3 : Do it twice
Simulate the entire process, meaning the entire process miniaturised, to a time scale being a small portion of the overall effort. Simulation helps answer questions such as timing, storage with precision.
Step 4: Plan, control and monitor testing
- With good documentation, a person who is not a designer can perform the step.
- Code has to be visually scanned and analysed for errors by a second party.
- Test every logic path, exhaustively
- Finally, software to be turned over for checkout purposes, after all the initial tests and fixes.
Step 5: Involve the customer
Customer being involved in a formal way makes for an assured commitment before final delivery.
Reference: "Managing the Development of a Large Software System", Royce

Comments