Welcome to Engineer Academy where we’re exploring an A to Z of Engineering – everything from acoustics to zoos.
In each episode, we spin the wheel to find out what type of engineering we’ll be exploring with the help of Engers, our engineering expert.
You can listen to the full series of the A to Z of Engineering here.
Let’s take a look at Software Engineering. You might not have heard much about software engineering but it’s behind everything from missions to the moon to the video games we play.
What is Software Engineering
It’s almost impossible to imagine a world without computers – not just the ones we use for schoolwork and to play games, but those behind the technology used in almost every field – from Space Rockets to Supermarket tills.
All of these are thanks to software engineering. So what’s so soft about it? Well, software is the name given to a field of engineering that designs and writes programs for computers and other electronic devices to make them carry out a specific set of instructions. Hardware is the stuff you can physically touch, like the keyboard, mouse and cables. There are around 3,000 companies in the UK producing software, employing a massive 400,000 people. So what do all those people do, and just how IS software developed?
Before any software engineer does anything, they need to have a clear idea of what they want the program to do. Is it to solve a problem, like making sure an online shop doesn’t show products that have sold out; or to improve a process – perhaps speeding up the way robots are used on a car production line; or is it just to take a cool story idea and make it into a video game?!
Once they know what the software needs to do, the next step is for the engineers to create a list of all the existing process elements so they can come up with a plan about how each talks to the other. That might be how an online shop talks to its storeroom; or for a video game, it’s important it knows how the consoles behave, how it’ll talk to the system’s memory to save progress and the type of graphics card to get the best visual experience.
After the design phase, each part of the software is coded. That just means instructions are written in a computer language telling the computer exactly what to do at each step and in what order. This stage is sometimes called implementation.
Next up is the critical part of the process – testing! This is vital to see if the program meets all the requirements. If there are bugs or mistakes in the code or the components don’t work together as they should, it’ll be back to the coding to make changes and fix errors.
Coding is at the heart of the process and in order to code, you need to know the right language to use. There are lots of different computer languages – some of the most common are Python, SQL, Java, C++ and Javascript. Scratch is a programme you might have used to code at school – it’s based on Javascript which is the most widely used language in the world because it’s easy to learn and can be put to work in almost any industry. With so many languages, you might be wondering how exactly computers understand them all? Let’s crack the code!
Coding is at the heart of the process and in order to code, you need to know the right language to use. There are lots of different computer languages – some of the most common are Python, SQL, Java, C++ and Javascript . Scratch is a programme you might have used to code at school – it’s based on Javascript which is the most widely used language in the world because it’s easy to learn and can be put to work in almost any industry. With so many languages, you might be wondering how exactly computers understand them all? Let’s crack the code!
A software programmer might have written a program in Javascript to make a character walk forward – it might say Character WalkForward 10 steps. Computers themselves don’t understand languages like Javascript. They operate using something called machine code which is a binary based system that carries out instructions using electronic switches being on or off. Machine code can understand what to do based on a series of steps – for example, to describe a character walking it might be Lift Character’s Left Foot Up, Lean Forward, Place Left Foot Down, Lift Right Foot up, Lean Forward, Place Right Foot Down.
As you can imagine, it would take a very long time to put together all the instructions for something complicated – so it’s over to a compiler – a tool which takes the Javascript and turns it into the binary based Machine Code which your computer can understand. It’s like using Google translate to communicate with someone who speaks a different language.
Some software designers use a wide range of languages, others might have a particular preference. There are different compilers for different languages and so it often doesn’t matter what language was used because at the end of the day it will be converted into machine code – and the process is completed!
And that’s our take on the letter S – it’s been SENSATIONAL!
If you would like to check out some other types of engineering, why not check out Structural, Safety, Supply or even Space engineering.
Join us again next time to spin the wheel and explore another letter in the A to Z of Engineering!
Engineer Academy: A to Z of Engineering.
Created with support from a Royal Academy of Engineering Ingenious Grant – and from CACI
Add a commentA to Z of Engineering
Engineering is all around us! We’re exploring an A to Z of everything engineering from acoustics to zoos.
More From A to Z of Engineering