Principles of Software Engineering
Objective:
The purpose of this assignment is to enable students to demonstrate their ability to interpret a set of laws that are part of the principles of software engineering, to evaluate principles of software engineering aspects within an industry in relation to the various elements covered, to apply them to cases drawn from technical and academic literature and to communicate the key issues through a written academic report.
Individual Assignment
The Laws of Software Engineering.
Consider the following four laws given in the prescribed text:
Glass
Requirement deficiencies are the prime source of project failures.
Parnas
Only what is hidden can be changed without risk.
Boehm
Prototyping (significantly) reduces requirements and design errors, especially for user interfaces.
Conway
A system reflects the organizational structure that built it.
1. Describe each law in your own words. Define the terms in each law and explain the law clearly and thoroughly. Illustrate your explanation with practical examples - with at least one example for each law from software engineering.
2. Describe the method of software development called Test Driven Development (TDD). List three advantages and three shortcomings of this method. Describe clearly, and illustrate with examples, how these four laws could be applied to TDD.
3. The following diagram is from the text. Clearly and thoroughly explain the relationship between observation, law and theory. Illustrate your answer with examples - with at least one from software engineering.
4. Outline and describe the Scientific Method. Compare and contrast the diagram above with the Scientific Method.
5. Explain, in detail, how you might set up an experiment to test the hypothesis that Computer Science and Engineering students have fewer faults in their program code compared with Electrical Engineering students. Describe your experiment in detail from preparation to the final analysis of results. Should your experiment be repeated? If so, by whom and how many times? If not, why not? Discuss.
6. Additional Item
Discuss whether the Scientific Method is an accurate description of how Science actually progresses in reality. In other words, is the Scientific Method an accurate description of how discoveries are made and knowledge advanced? If not, what then, is the role of Experimentation?
Your support material must be compiled from reliable sources such as the academic resources in Federation University library which might include, but not limited to: the main library collection, library databases and the BONUS+ collection as well as any reputable online resources (you should confirm this with your tutor).