Every computer science student must have had this one question comes in their mind, i.e. “how software is built and what is the development process involved in it? Here is your answer.
But before we jump to the software development scene, we need to understand the way computers functions. This was, of course, one of the first topics we studied at school and that old school definition summarises how computers work. Since all software runs of computer and smart electronic devices, it is important to understand the flow of input, processing, and output in a computer system.
By definition, a computer is an electronic device that takes raw data as input, processes it via meaningful logic in the CPU and shows output to the end-user.
For instance, while you do simple calculations using a calculator on your Personal Computer, the calculator is the software that, the numbers and operations you enter through the computer act as the raw data and instructions, and the computer process the data to show output to the calculator screen. So we require a particularly designed software to help the computer perform certain desired tasks.
Software is a set of instructions, called a program, for a computer to perform specific tasks. A computer program the collection of meaning codes understandable by human. But the computer works in binary code, so the codes go through a compiler to convert it into binary codes.
Since writing large codes and logics in the form of binary is tedious, near impossible and not fool-proof, computer engineers came up with numerous programming languages like C, C++, JAVA, Python, etc. which make use of libraries executable by respective compilers that convert the high-level languages to low-level machine languages.
Execution of functions on a computer is based on meaningful codes or programs, and developers can make necessary changes it using these programs. This is the reason computers are also called programmable machines.
How software is built?
As discussed before, any program put together by the use of one or more programming languages (Source code) is converted into an executable file using suitable compilers.
Simple programs can have as few as 5 lines of code and commercial software can go up to 20,000 lines of code. Not only this, software development consumes a reasonable amount of time and may involve hundreds of developers contributing at the same time. A large software may include hundreds or even thousands of additional files. One concept that allows product managers to manage one software development project is revision control.
How does revision control work?
The source code for the software is hosted on a server where each contributing developers update their copy of these files on their personal development console. The server stores an extensive list of changes made by all the contributing developers. The servers act as the buffer for the revisions and the changes can be undone or redone before the software is working as expected again.
Despite all efforts, software always encounters few unsolved issues or incomplete functionalities termed as a bug. The users of the software and testers bring forward the bugs in the software and software developers continue to fix these bugs to further improve the software. Bugs are one of the reasons software gets updated to their newer versions periodically.
The software can be created in two different ways: Proprietary, and Open-source.
1. Proprietary – These software are primarily owned by individuals or a technology firm and are marketed for paid users only. The proprietors don’t release the source codes of these software. Only the software are released followed by their updates, sold separately.
2. Open source – The software is free and anyone can access the source code. Open-source software owners get money through donations.
Types of Software:
Software that functions for systems or computers is termed as System software. For instance, Operating Systems, Drives for third party integrations, and Firmware like the keyboard or TV remote, etc.
Application software is designed to work for users. For instance, Microsoft Office or your favourite internet browser.