Written by: Brian John Caddy, Executive Contributor
Executive Contributors at Brainz Magazine are handpicked and invited to contribute because of their knowledge and valuable insight within their area of expertise.
Have you ever wondered why things are designed the way they are? Have you ever wondered what goes into designing things?
These days everyone takes technology for granted. They carry around smartphones, tablets, smartwatches and every business is pushing the use of technology to manage their products. But how does this happen, and why do these things more often than not work? The answer is System Design and the engineering process that supports it.
What is System Design?
System Design, as the name suggests, is the design of a system. In this case a system is made up of a set of components, each of which carries out a part of the overall operation. For instance, for a phone, connecting to the internet, providing the interactive screen, storing information, or for a car, the steering wheel, the pedals, the engine. Each of these components will itself have undergone a design process.
The design process starts with a set of requirements that specify what the item should do. These requirements can later be turned into test statements that show that the final product does indeed do what it is supposed to do.
The design moves on from the requirements to specify how they are going to be achieved, for instance by designing/drawing some user screens, or building models/examples of activities or by identifying the information that is required for the activity to take place and understanding where that information is coming from as well as what information needs to be stored (persistent) and what information can be entered on a regular basis (non-persistent).
These mock-up designs and models are refined and combined until each of the component parts is fully designed. Once this is achieved the component can be developed and tested to ensure that it does what the models and designs say it does, and that it meets its requirements.
What about problems?
All systems will encounter problems no matter how well-designed it is. Not every possible action carried out by users can be tested or identified, and even then, not every situation can be tested. This is particularly true on mobile devices where connectivity to the internet cannot be guaranteed at all times, or additional touches on screens can happen. In these instances, the design tries to ensure that the software still functions, but fails in a graceful manner ‒ and reports the issue to the developers who can issue an update. Users today want everything quickly, so systems may undergo multiple updates during their lifetime to ‘fix’ these errors, and improve the functionality and user experience.
What if?
Now imagine your smartphone without any System Design taking place and no thought going into how the application might be used. You would very quickly stop using it and try something else. Imagine if each car manufacturer put pedals and stalks in different places, or made left and right-hand drive cars mirror each other; changing between them would become hard. Things are seamless and easy to move between because of the design process that has gone on. Yes, nothing is perfect and even well-established apps and systems have issues, but a lot of time and effort has gone into designing them so that they are successful ‒ and the user takes for granted the things they get to do.
Next time it doesn’t do quite what you want or work in the way you expect, this may be a failure in the design process.
Crosswires Consultancy Ltd. provides System and Software Engineering consultancy services supporting all stages of the system design process. Feel free to contact us for more information about how we could help you.
Brian John Caddy, Executive Contributor Brainz Magazine
Brian Caddy, a graduate of Swansea University, began his career in 1997 when he worked for an independent telecommunication company with whom he had collaborated for his university project for an ISDN (precursor to ADSL) router that won a technology award. Shifting to the defence industry he extended his skill set and became a computer systems engineer specialising in system integration requirements. As an IT Consultant Brian now provides Software and Systems Engineering Consultancy Services where he specialises in system design for constrained environments utilising traditional and agile approaches.