Software Design
Software design is both the process of defining software solutions before their implementation as well as the documents that are produced as the result of this process. Software design will be an important part of the MSc project that you will undertake if you are not doing a placement year.
- For an overview of various methodologies for the whole software development process see
Wikipedia Contributors: Software development: Methodologies. Wikipedia, The Free Encyclopedia, 26 May 2023, https://en.wikipedia.org/wiki/Software_development_process#Methodologies Links to an external site. [accessed 2023-06-21]
- If the software you are developing has a graphical user interface (most but not all applications do), then we expect that you provide sketches or wireframes as part of the design. For more information see
Balsamiq Studios: Introduction to User Interface Design Through Wireframes. Balsamiq Studios, https://balsamiq.com/learn/courses/intro-to-ui-design/ Links to an external site. [accessed 2023-06-21]
- For high-level code design, the Unified Modeling Language (UML) is most commonly used. For more information, see
Visual Paradigm: What is Unified Modeling Language (UML)? Visual Paradigm, 2022, https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-uml/ Links to an external site. [accessed 2023-06-21].
- For low-level code design, that is, at the level of individual functions, pseudocode and flowchars will be useful. For a very short introduction to both see
Codeacademy Team: Pseudocode and Flowcharts. Codeacademy, 2023, https://www.codecademy.com/article/pseudocode-and-flowcharts Links to an external site. [accessed 2023-06-21].
For detailed syntax for pseudocode seeAQA: Notes and Guidance: Pseudo-code. AQA, 2023, https://filestore.aqa.org.uk/resources/computing/AQA-8525-NG-PC.PDF Links to an external site. [accessed 2023-06-21].