# A-level Computing/WJEC (Eduqas)/Component 2/The need for different types of software
## Types of software
### Closed source software

Closed source software is when the code is not publicly available, a user is granted a 'license' to use the software and cannot modify or redistribute the copy. It allows those who wrote the software to maintain their intellectual property (IP). This type of software typically costs a lot of money to make and companies don't want people copying it or selling it. There is not necessarily a guarantee of longevity, the software will eventually cease to exist with later versions and unlike with open-source, programmers cannot take a copy and continue development of the software.

### Open source software

Open source is software where anyone can download a copy and view the program code. It is based upon a free license or GPL (General Public License). Open-source software usually has a very relaxed license in terms of copyright, meaning it can be redistributed. It is free from commercial pressures and can integrate well with other software. It is well updated by the developers and as a result, has several versions.

### Bespoke software

Bespoke software is written specifically for one company and for one specific purpose.
* Tailored specifically to you. The software is built according to your requirements which ensures the software will deliver what you want.
* Flexible. Can change over time to meet your needs.
* No fees. You own the software and don't have to pay a license fee per user.
* No tie-in. You own the software so can move to another vendor if the current one disappears.
* Competitive. The software is built for you from the ground up, so will help you to work much more efficiently than comparable off-the-shelf software.
* Costs more initially. You have to pay the development costs to build the software.
* Takes a long time. It may take months or years if it is complex.

### Off-the-shelf software

Off-the-shelf software has been written for a specific purpose and is usually very complex to meet the needs of most people using the software.
* Cheap. Development costs are spread across the users, so you pay much less than you would if the same software was built from scratch.
* Immediately available. The software is already built so you just need to set it up and use it.
* Training costs lower. People may be already familiar with the software and you can use pre-existing training material.
* Community support if the software if popular, books/online communities to help you learn and resolve any issues with the software.
* Upgrades. These will be provided for free or at a reduced cost but with a comparable bespoke system you must pay for any upgrades.
* Compromising. The software has been built for a wide audience and as a result will not do everything exactly as you would like it too.
* Complicated. The software is trying to fit the needs of many people so it will be complex and hard to learn.
* You won't necessarily get the changes or features you want implemented, as you have no control about what the vendor does to the software.

## Safety related systems

The development of a safety related systems is a highly specialised field. The development of these is a highly specialised field because human life is at risk if the system fails (a fail safe should be included e.g. manual override) and the system is a mix of highly complex software and hardware, there are multiple inputs and the software needs to work in real-time.
* Saves cost once installed - no need for physical staff on site, so reduced salary.
* Not subject to fatal human error.
* Human workers less subject to dangerous working conditions.
* Operations carried out consistently and accurately.
* May not detect unlikely situations e.g. car on railway track.
* Could fail with potentially catastrophic results.
* Staff numbers will be cut.

## Industrial, technical and scientific
### Weather forecasting

Weather forecasting requires inputs from thousands of worldwide weather stations, this requires processing a huge amount of data by a very powerful computer. Data such as rainfall, temperature and wind speed will be used. Very complex calculations must be carried out quickly as weather forecasts are not useful if they are out of date. These inputs are put into a mathematical model and equations produced from atmospheric understanding such as fluid dynamics will be used.
The computer itself and the weather stations will be expensive, they must work at high altitude or in remote places. The system will need regular costly updates as weather patterns change over time and our knowledge of the weather mathematical model increases. Additionally, high capability graphics will be needed for visual representation of the weather, for example the forecast being displayed hour by hour on a TV weather forecasting program. This can be done using parallel processing using many cores or distributed computing where multiple computers share the processing load.

### Robotics

* Expensive to install but cheaper over a long period.
* Repeats the same action repeatedly, accurately.
* Can work without breaks.
* May be able to work in a unheated and unlit environment.
* May be involved in a process hazardous to human health.
* AI - quality checks every time, so quality improves.
* Human workers better at spotting impending problems.
* Redundancies of skilled workforce.
* Any jobs that remain are deskilled ("machine minders")
* Highly skilled jobs for system designers.
* Machinery may need to 'learn' from existing skilled human operators.

### Expert systems

An expert system contains a large database (or 'knowledge base') and a built-in set of facts and rules which allow the system to be an expert in a specific field. This expert system can be used to diagnose rare cases or complex issues with information that is inputted into the system.
There are three distinct parts to an expert system: the knowledge base, the inference engine (based upon the input, inferences of the problem are made) and user interface (allows the user to interact with the system).
Expert systems help those in the field with their work, for example a doctor reaching a diagnosis. The system will be more reliable with up-to-date information which will help with the process. Ultimately, the decision is left to the human expert in the field rather than the system.
There are 4 distinct steps in the operation of an expert system:
* The input stage, i.e. a sequence of questions on-screen.
* The processing stage, i.e. sufficient number of questions asked to reach a decision.
* The input is then processed based upon the rules.
* The output stage, the decision is output on-screen. The system comments on how the decision was reached, explaining its reasoning. Alternative solutions with probabilities are also shown.
* Would save experts time and could do more important things (e.g. a doctor could perform more surgeries).
* Gives more accurate decisions.
* Can store the knowledge of more than one person.
* A second opinion is provided by the expert system.
* Allows access to an expert that may not be available locally.
* Explains the decisions made so a user can evaluate the decision.
* An expert system can learn from experience and employees can learn from the system.
* Might cause experts to lose their jobs as they don't need to be present.
* There will be legal (who is responsible for a wrong decision?) and ethical (is it okay to let computers make decisions?) issues.
* Expert systems lead to a de-skilling of the workforce.

## Internet and Intranet

A search engine is a facility accessed over the Internet which can be used to search websites for a particular topic or phrase.