Introduction
Computer software refers to the programs, operating system, drivers and coded instructions that tell the computer how to function, in contrast to the physical hardware from which a computer is built. It is simply all the code run on computer systems, as well as the data that the programs process. Computer software includes computer programs, libraries and related non-executable data, such as online documentation or digital media. Computer hardware and software require each other and neither can be practically used on their own.
At the lowest level, executable code consists of machine language instructions specific to an individual CPU (central processing unit). Today it is common that computers have several CPU cores contained on the main physical CPU so that several programs can be run simultaneously.
A machine language consists of groups of binary values signifying processor instructions that change the state of the computer. For example, an instruction may change the value stored in a particular storage location in the computer. This may or may not cause something to appear on the display of a computer. The processor carries out the instructions in the order they are provided, unless it is instructed to “jump” to a different instruction or is interrupted by the operating system.
The majority of software is written in high-level programming languages that are easier and more efficient for programmers to use because they are closer to natural languages than machine languages. High-level languages are translated into machine language using a compiler or an interpreter. Software may also be written in a low-level assembly language, which has strong correspondence to the computer’s machine language instructions and is translated into machine language using an assembler.
There are a variety of common programming languages: Python, Java & JavaScript, C++, C#, C and Ruby that can run on a variety of computer hardware platforms, including Apple Mac, PC (Windows) and Linux.
Software can be grouped into programs (also known as applications or apps, particularly on portable devices), operating systems, device drivers and utilities. There are also malicious programs such as viruses, ransomware, malware, keyloggers etc that are designed to disrupt a computer (or an entire network) or extract sensitive information.
The software industry has seen many changes over recent years, for example, the transition of new software rollouts delivered via physical media (floppy disks, CDs, DVDs and USB sticks), to online downloads. Often, a program may not even be installed on a local computer but be located in the cloud so that users log in with an account. Software licensing has evolved from a once-off user agreement to ongoing regular subscriptions.
At the bottom of this profile are brief details of a number of the experts that Expert Experts represents. Call our office to discuss your requirements and to obtain a recommendation that suits your needs and budget.
Expertise in Action
A software engineer is adept at designing, programming, customising, installing and debugging computer programs.
Experts are familiar with the peculiarities of each computer’s hardware architecture and operating platforms.
Software experts can specialise in security, particularly network security, where computers are connected to the internet and vulnerable to external attack.
Sample Reports
For some fields of expertise we have some sample sections of de-identified reports. Please contact our office if you are interested in a sample.
Cost
The overall cost of expert opinion depends on the services required. Some of the key factors that affect the cost of advice include:
- The need for a view or inspection of a location
- The quantity of documentary material to be reviewed
- Whether there are reports of other experts to be reviewed and commented on in detail
- Whether there is a need for conferences with the expert either in person or by telephone/Skype