Software is a bunch of instructions which will be created to achieve a specific result. Software is mainly used for different digital systems like Computer, Laptop, Smartphone, Refrigerator, Car, etc. But most of the software is created for IT systems like Computers, Laptops, Smartphones, etc.
Sofware is one of the most complex human creation where it contains a lot of different components. But we will provide some of the most-used components. Software component provides parts of the software for different uses and functionalities.
- `Library` is existing software which can be used by other software for specific functions.
- `Code` is the text which is used to specify instructions for the software
- `Data` is the data used to read, write and change persistent or volatile data related to the software
- `DLL` is a file type which generally contains libraries and data
- `Files` are used to read, write and change data inside files
- `Database` is a structured and standard data container for the software
- `Driver` is a basic software which is used to consume system and hardware resources like network, memory, etc.
- `API` is a callable structured resource presentation of the software and service
- `GUI` is the user-friendly graphical representation of the software.
Software history is short as about 70 years where modern software history starts in the 1970s. Here will define important dates about the software.
- The software problem is defined by Alan Turing in 1935 with the name of `Decision problem`.
- Claud Shannon created the binary logic to program and develop software.
- The first reprogram able software is created in 1950 for the system/hardware called ENIAC
- The late 1950s the programming languages Fortran, COBOL and Basic are created.
- 1970 the C programming language created for the Unix Operating system software.
- 1980 the IBM Personal Computer (PC) is created which has changed the software landscape with its users.
- The most popular operating system software Windows is created by Microsoft.
- In 1990 open source software and an operating system called Linux is created by the Linux Torvalds.
- The 1990s and later a lot of software emerged for the PC architecture systems.
Software Usage Types
There is a lot of software created in the recent 30 years which has different user types. And new software types are also created according to user needs. Here we will provide some popular software usage categories and types.
- `Security & Privacy` software is used to secure the user and his data while protecting his privacy
- `Development` software is mainly used to create new software and tools
- `Backup & Sync` software is used to take backups for recovery or sync with other systems and platforms
- `Office & Productivity` software is used for office-related tasks like document writing, presentation, time and task tracking, etc
- `Gaming Software` is one of the most popular categories which contains a different type of games
- `Social &Communcation` is another popular category which contains social network apps with communication software
- `Web browser` provides software to surf on the web
- `File Management` software provides to manage file and directories in an easy and efficient way.
- `file Sharing` is used to share media, movie, music, photo files over the internet
- `Network & Admin` software is used by IT guys to manage IT systems network and operating systems
- `Education & Reference` software is used for educational purposes
- `Home & Family` software is designed for home usage
- `Audio & Music` software is mainly used to listening, editing, converting and creating music
- `Video & Movies` software is used to watch, edit and convert video files
- `Photos & Graphics`software is used to open, edit, create images and graphics
- `OS & Utility` software is used for operating systems and admin guys
- `Game` software is the games we play
- `Travel & Location`
- `Sport & Health`
- `Business & Commerce`
- `News & Books` software provides tools to read, follow news and books
- `CD/DVD Tool` software is to burn, edit CD/DVD media contents
- `Online Services`
- `System & Hardware` is used to get information and change settings of the hardware
Software License Types
Creating software requires time, work and it is an intellectual property of the creator which can be a person, a group or a corporate. So in order to use software we have to obey the software creator rules which is called as
Software License. Software license provides detailed usage for the users. There are some popular license types used by a lot of software.
- `Public Domain` software license is the most permissive license where anyone can modify and use the software without any restrictions.
- `Permissive License` is a bit restricted then Public Domain where it is also known as `Apache Style` or `BSD Style` license.
- `LGPL` is mainly used for open source libraries in other projects. If you copy or modify the library you should provide your software in similar terms of LGPL
- `Proprietary` is generally used for paid software and it is the most restrictive license. Microsoft, Adobe uses this type of licenses.
Software Download Sites
In the old times, the software was redistributed via Floppy Disk, CD ad DVD because of the software size and the lack of internet speeds. Also providing software with a physical entity is a good marketing technique for the companies. Currently, with the advance of internet access and speeds, a software download is provided via internet download. Even software producers provide downloads for their software there are also
Software Download Sites those acts as a hub for software.
File Hippo is new generation software download sites where it provides a popular software with their older versions.
Softpedia is another popular download site which provides a lot of different type of software.
SourceForge is a software download size where it focused on open-source and free software. It also provides some business services.
Software Architecture defines the requirements, components, and relations of the software with internal and external components. The software can be designed with a lot of detailed and complex architecture but in general, we can categorize software architectures like below.
- `Standalone Simple Software` will work on the system it installed and do not require any network or internet connection to work.
- `Client-Server Software` will work on the system and remote server where network or internet can be used to communicate with the server part of the software.
Sofware is created with a development effort. Software development is a technical process where software developers use programming languages, libraries, platforms in order to create, develop and maintain the software. Generally, Integrated Development Environments (IDE) is used for software development. Sofware development life cycle (SDLC) is the standard process for software development where it contains the following phases
- Deployment and maintenance
Software and Hardware Relation
Sofware is a bunch of instructions which is digital and needs some hardware to run. Hardware is used to run the software and provide different resources like memory, central processor, storage, network, etc. Every software requires physical hardware in order to run. Software is developed according to the Hardware it will run. Generally, hardware architectures like x86, 86_64, ARM is used for software development.