Assembler- translates assembly language to machine code. With assembly language, each instruction represents on machine code instruction, so it is an easier job to translate than high to low language, where one line can represent multiple instructions
Virtual machines
A virtual machine emulates the functionality of a physical machine.
Some uses include:
-Emulate an older OS
-Have a safe environment to test programs, mess around with settings and download dodgy files
-To translate high level language to intermediate code, which is compiled (alternative to interpreter)
Advantages:
-Easy to backup and duplicate
-Allows software to run on machines which would otherwise be incompatible
-Using it to translate to intermediate code avoids disadvantages of interpreter
But what is intermediate code? Source code is compiled into intermediate, which is still portable. The intermediate code is then interpreted by a VM to native machine code. This means that it is portable, and the source code is compiled, so essentially unreadable.
Software development
Feasibility study
- This judges whether a project is worth doing, as the negatives outweigh the benefits. The project can then be stopped before it wastes time and money, instead of starting it and giving up
- It could be economically feasible if it's over budget, or just costs too much for what it's worth
- It could not be legally feasible, like if a project breaks laws about data protection and privacy
- It could be not technically feasible if it is too ambitious for current hardware
Requirements Specification
- The requirements will be a set of instructions or functions the client wants the software to do
- This could sometimes be tricky if the customer has a clear idea but can't explain it well, but then the manufacturers will have to constantly re-work the software to the point it's frustrating
- After the Requirements Spec is made. It goes through acceptance testing. This is where the client signs off, and the developers confirm they are able to do it.
Testing
- Takes place continuously through the coding process, to check it works as planned
-Included destructive testing, where testers try to crash it, or behave unexpectedly
-When most big bugs are found, it goes through alpha testing, where other people from the same company who haven't seen the code test it
-Beta testing is when exterior? (other company) people test the code
-Acceptance testing also happens at the end, to make sure the software meets the requirements
Documentation
- Technical documentation describes the code, to allow future software engineers to read it easier
- User documentation tells the user how to use the software. This can often be in the form of a user manual
YOU ARE READING
Computer Science Reviews (A level)
Non-FictionComputing First published 4th December 2021 Finished 13th August 2022
Software
Start from the beginning
