Software Engineering Assignment: [Individual Hand-In] ‘No Silver Bullet’ by Fred Brooks
In mythology, a ‘silver bullet’ is the only thing that can kill a werewolf. This well-known idea from fiction has become a more widely-used metaphor through the common saying, ‘there is no silver bullet’. Though interpretations may vary, the general concept is that there is no singular solution for doing something. In fact, there is a paper called ‘No Silver Bullet: Essence and Accidents of Software Engineering’, written by Fred Brooks, that focuses on this very concept.
Brooks, F. (1987) ‘No silver bullet: Essence and accidents of software engineering’. Computer, 20(4), pp.10-19. [Online]. Available from:http://people.eecs.ku.edu/~saiedian/Teaching/Sp08/816/Papers/Background-Papers/no-silver-bullet.pdf, (Accessed: 16 April 2014).
Within this paper, up through a section titled ‘Past Breakthroughs Solved Accidental Difficulties’, it discusses the properties of a software system that makes it difficult to build: Complexity, conformity, changeability and invisibility. In this Hand-In Assignment, consider the following scenario in the context of Brooks’ paper:
Simpletown is a very small town of 1,000 people and is growing. The city government wants to install a traffic light on the main street. It approaches an IT company to build software to operate the traffic lights.The city gives the following specifications:
Specification:Operate a traffic light. The green light should stay on for 40 seconds. Then the yellow light should stay on for 20 seconds. Then the red light should stay on for 60 seconds.The number of seconds may change in the future.
Algorithm: For the specification above, the IT company writes the following algorithm:
OperateTrafficLight(X, Y, Z):
· Loop forever:
· Send signal to turn on green light.
·Wait for X seconds.
· Send signal to turn off green light.
· Send signal to turn on yellow light.
·Wait for Y seconds.
· Send signal to turn off yellow light.
· Send signal to turn on red light.
·Wait for Z seconds.
· Send signal to turn off red light.
· And the following OnStart procedure to call the function above:
· OperateTrafficLight(40, 20, 60).
Testing: The IT company writes the following about its test plan to ensure program reliability: The algorithm is straightforward and its correctness can be inferred by someone reading the algorithm. A nonprogrammer staff member inspects the algorithm and signs off on its correctness. Any future revision of software will be tested the same way.
To prepare for this Assignment:
· Review your Weekly Learning Resources with a focus on software development processes.
· Read the paper ‘No Silver Bullet: Essence and Accidents of Software Engineering’, at least up through the section titled ‘Past Breakthroughs Solved Accidental Difficulties’.
· Reflect on the properties of a software system that makes it difficult to build (complexity, conformity, changeability and invisibility).
· Carefully review the given scenario and identify missing complexities and opportunities for changeability.
To complete this Assignment:
Submit a 2-3 paragraph paper in which you address the following:
· Analyse complexities missing from the specification, algorithm or test plan in the Simpletown scenario.
· Classify each missing complexity with one of the three noted sections (specification, algorithm, testing).
· Explain the missing complexity, why it is a problem, and suggest a solution.
· Identify improvements Simpletown could request in the future.
· Evaluate the changeability of the Simpletown scenario and plan.
· Determine whether or not the software in the Simpletown scenario could gracefully accommodate a change request.
· Identify which of the three sections (specification, algorithm, testing) require modifications; if any.
· Fully state and justify any choices, assumptions or claims that you make using the suggested Learning Resources for this Week and/or your own research.
Your document should have 2-3 paragraphs (not including the list of works cited), but it is the quality of the answer that matters, not the number of words. Cite and reference all sources use the Harvard Liverpool Referencing System.