Software
From Halbeeg, the open encyclopedia · Af-Soomaali
146 languages

Software (sometimes called barnaamij or nidaam-farsamo in Somali) is the collection of instructions and data that tells a computer what to do. It is the intangible part of a computing system, distinct from hardware, which consists of physical components such as processors, memory, and storage.
Software is written in programming languages such as C, Java, Python, or JavaScript. The code written by a programmer is called source code. It is then converted into a form the machine can understand, either all at once through a compiler that translates the entire program, or line by line through an interpreter that executes it sequentially.
Types of software
Software is generally divided into system software and application software. System software includes operating systems such as Linux, Windows, and Android, which manage the computer's resources. Application software comprises programs for specific tasks, such as word processors, web browsers, and mobile applications. There is also firmware, which is software embedded in devices and works closely with hardware.
Software engineering
Software engineering is the disciplined science of planning, building, testing, and maintaining programs. The typical cycle begins with gathering requirements, followed by design, code writing, testing, and maintenance. Various methodologies are used, such as the waterfall approach with sequential steps and agile methods based on short repeated cycles.
Licensing and rights
Software is typically protected by copyright and license terms. Proprietary software keeps its source code closed and does not permit inspection or modification. Free and open-source software, by contrast, allow the code to be read, modified, and redistributed under specified conditions; examples include GPL and MIT licenses. Projects like the Linux kernel demonstrate collaboration in development involving a wide community.