Unit 6 Assignment 2 Chris Boardley P5 - Explain the role of software design principles and software structures in the IT systems development lifecycle. Overview. Software design principles and software structures are used to ensure that software is written as efficiently as possible, and to reduce the risk of having poorly designed software. SDPs and SS’s provide a guide and a structure around which the software can be written throughout the development lifecycle (illustrated on the right). Methodologies. There are many different methodologies that can provide a structure for the development lifecycle. Some examples; • Waterfall. • RAD. • Spiral. • Extreme. These can help to organise how the development lifecycle will be run. Software Design Principles. There are three main characteristics of a bad design that should be avoided. • Rigidity. Making the software rigid will make it hard to change as these changes will affect other parts of the system too much. • Fragility. When changes made to the software break other parts of the system then you will have to do impact analysis on the whole project which will take time and could cost money. • Immobility. When it is hard to reuse in other applications as it cannot be easily extricated. Basic Software Structures. • Sequence. A collection of statements that are performed in order one after another. • Selection. A decision or conditional statement that lets the program execute a set of code statements. • Iteration (Looping). Iteration algorithms make use of loops, doing something multiple times based on conditional statements. Some More Specific Software Structures. Procedural Structures. Object Oriented Structures. Procedural programming basically uses a set of computational steps (procedures) in order to accomplish a specific task. This is a fast process and because of it’s simplistic approach, it is often the paradigm used when teaching programming to beginners due to it’s relatively simple logic. Object orientated programming focuses on using objects rather than procedures in order to accomplish a task. This can be beneficial because it is modular, which allows separate objects to respond to the same instruction differently. Also, it allows the programmer to alter specific objects without altering the whole program. M1 – Explain the importance of the quality of code. The Importance Of Having Good Quality Code. Good quality code is important for a variety of different reasons. Here are a few examples; • Having good quality code will mean that less human interaction will be required which can reduce the risk of human error, and it will make a system easier to maintain. • If the quality of the code is high then the code will be easier to read and follow making any alterations or maintenance a lot faster and easier to perform. • High quality code will be a lot more professional which will result in the programmers/company reputation increasing. Key Characteristics Of High Quality Code. • Reliability. • Readability. • Robustness. • Usability. • Portability. • Maintainability. • Low Complexity. • Efficiency. D1 – Discuss the factors that can improve the readability of code. Some Factors That Can Improve The Readability Of Code. • Indentation. • Syntax Highlighting. • Naming conventions. • New Lines. • Comments. • Consistency.