This page is dedicated to software design.
| Title | Author(s) | Notes |
|---|---|---|
| Death by UML Fever | Alex E. Bell | A humourous look at the overuse of UML by software teams. The moral of the story is "Use UML where appropriate and something else where it is not". |
| Design by Contract: The Lessons of Ariane | Jean-Marc Jézéquel, Bertrand Meyer | This case study is about a software failure that caused the Arianne 5 rocket to destroy itself on its maiden flight. This was a failure caused by software re-use. ESA's accident report is also available. |
| Realizing quality improvement through test driven development: results and experiences of four industrial teams | Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie Williams | This report documents the results of a case study into four projects that used TDD during development. Three projects at Microsoft and one at IBM were included in the case study. The report concludes that TDD does improve the quality of the delivered software and a reduction in the defect density when the software is released. It also showed that the development time increased; however this was offset by reduced integration testing. |
| Toward Design Simplicity | Rebecca J. Wirfs-Brock | A philosophical look at design simplicity. |
| Up-front Design | Rebecca J. Wirfs-Brock | This article discusses the need for doing software design "up front" in a project. Wirfs-Brock argues that there are times when doing some design up front is beneficial to the project. Typically this occurs when the team is entering "uncharted waters". In other words, when the risk of not doing it is too high. Whilst Wirfs-Brock argues that it can be beneficial, she is NOT arguing that it be applied to every project, nor for that matter is she arguing that the whole design be done first. She is arguing that it should be considered and applied judiciously to help the project succeed. Up front design is not for all teams or situations; however to blindly label it as unnecessary is unwise. There are valid reasons for and against up front design. Sound engineering judgment is required to decide whether to use the technique. Up front design can be a risk mitigation strategy and worth considering. |
| Words matter. talk about people: not customers, not consumers, not users | Donald A. Norman | This article postulates that the software we produce is a direct reflection of the way we view the people who will use our systems. In particular, focussing on our business' perspective is not the most appropriate method for catering for the software users' needs. The author contends that: Hotels that are hotel-centered will not treat their guests as well as hotels that are guest-centered. Or, to generalize, companies that are company-centered still don't get it: They continue to lack empathy and understanding of their customers' point of view. |
| Title | Author(s) | Notes |
|---|---|---|
| Design by Contract: The Lessons of Ariane | Jean-Marc Jézéquel, Bertrand Meyer | This case study is about a software failure that caused the Arianne 5 rocket to destroy itself on its maiden flight. This was a failure caused by software re-use. ESA's accident report is also available. |
| Realizing quality improvement through test driven development: results and experiences of four industrial teams | Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie Williams | This report documents the results of a case study into four projects that used TDD during development. Three projects at Microsoft and one at IBM were included in the case study. The report concludes that TDD does improve the quality of the delivered software and a reduction in the defect density when the software is released. It also showed that the development time increased; however this was offset by reduced integration testing. |