Define computer software. What is software

And the program documents necessary for the operation of these programs.

Also - a set of programs, procedures and rules, as well as documentation related to the operation data processing systems.

Software is one of the types of software computing system, along with technical (hardware), mathematical, informational, linguistic, organizational and methodological support

Software classification

Software classification

Software is usually divided into systemic , applied Andinstrumental, and by the method of distribution and use onproprietary/closed, open And free . Free software can be distributed, installed and used on any computer at home, in offices, schools, universities, as well as commercial and government institutions without restrictions.

System softwareis a set of programs that provide effective management of componentscomputer system, such as CPU , RAM, I/O devices, network hardware, acting as a “cross-layer interface” with hardware on one side and user applications on the other. Unlikeapplication software, the system does not solve specific application problems, but only ensures the operation of other programs, manages the hardware resources of the computer system, etc.

OS

operating system- a set of system programs that expands the capabilities of a computer system, as well as providing management of its resources, loading and execution of application programs, and interaction with users. In most computing systems, the OS is the main, most important (and sometimes the only) part of the system software.

Operating system concept

There are two groups of OS definitions: “a set of programs that control hardware” and “a set of programs that control other programs.” Both of them have their own precise technical meaning, which, however, becomes clear only with a more detailed consideration of the question of why operating systems are needed at all.

There are computing applications for which operating systems are unnecessary. For example, built-inmicrocomputersare found today in many household appliances, cars (sometimes a dozen in each), cell phones, etc. Often such a computer constantly runs only one program, which starts when turned on. And simple game consoles - which are also specialized microcomputers - can do without an OS, launching, when turned on, a program recorded on a “cartridge” inserted into the device or CD . However, some microcomputers and game consoles still run their own special operating systems. In most cases, these are UNIX-like systems (the latter is especially true for programmable switching equipment: firewalls, routers).

OS Basic Ideas

The predecessor of the OS should be considered utility programs ( loaders and monitors), as well as libraries of frequently used subroutines , which began to be developed with the advent of universal1st generation computers(late 1940s ). Utilities minimized the operator's physical manipulation of the equipment, and libraries made it possible to avoid repeated programming of the same actions (carrying out operations I/O , calculations of mathematical functions, etc.).

In the 1950s - 60s the main ideas that determine the functionality of the OS were formed and implemented: batch mode, time sharing and multitasking, separation of powers, real time, file structures andfile systems.

OS features

Main functions (simple OS):

§ Loading applications into RAM and executing them.

§ Standardized access to peripheral devices (I/O devices).

§ RAM management (distribution between processes,virtual memory).

§ Controlling access to data on non-volatile media (such as hard drive, CD etc.), organized in one or anotherfile system.

§ User interface.

§ Network operations, protocol stack support.

Additional functions:

§ Parallel or pseudo-parallel execution of tasks (multitasking).

§ Interaction between processes: data exchange, mutual synchronization.

§ Protecting the system itself, as well as user data and programs, from actions of users (malicious or unknowing) or applications.

§ Differentiation of access rights and multi-user operating mode ( authentication, authorization).

Built-in programs

Built-in programs or firmware - These are programs “hardwired” into digital electronic devices.

Utilities

Utilities utility or tool) - programs designed to solve a narrow range of auxiliary tasks.

Sometimes utilities are assigned to a classservice software.

Utilities are used for:

§ Monitoring sensor indicators and equipment performance - monitoring processor and video adapter temperatures; reading S.M.A. R.T. hard drives;

§ Managing equipment parameters - limiting the maximum rotation speed of the CD drive; changing the fan rotation speed.

§ Monitoring indicators - checking referential integrity; correctness of data recording.

§ Expanded capabilities - formatting and/or re-partitioning the disk while saving data, deleting without the possibility of recovery.

Types of utilities

§ Disk Utilities

¨ Defragmenters

¨ Checking the disk - searching for disks that were incorrectly recorded or damaged in various ways files and disk sections and their subsequent removal for efficient use of disk space.

¨ Disk Cleanup - deleting temporary files, unnecessary files, emptying the Recycle Bin.

¨ Disk partitioning is the division of a disk into logical disks, which can have different file systems and be perceived by the operating system as several different disks.

¨ Backup- creating backup copies of entire disks and individual files, as well as restoring from these copies.

¨ Disk compression - compression of information on disks to increase the capacity of hard drives.

§ Registry utilities

§ Equipment monitoring utilities

§ Equipment tests

§ assemblers - computer programs that convert a program in the form of source text intoassembly language V machine commands in object code form.

§ translators - programs or technical means that broadcast the program.

§ compilers - Programs that translate program text in a high-level language into an equivalent program in machine language.

§ interpreters - Programs (sometimes hardware) that analyze commands or program statements and immediately execute them

§ linkers (link editors) - programs that perform composition - take one or more object modules as input and assemble an executable module from them.

§ preprocessors source codes are computer programs that take input and produce input for another program, such as a compiler.

§ Debugger is a development environment module or a separate application designed to find errors in a program.

§ text editors- computer programs designed to create and modify text files, as well as view them on the screen, print them, search for text fragments, etc.

§ specializedsource editors- text editors for creating and editing program source code. A dedicated source editor can be a standalone application, or built into an integrated development environment (IDE).

§ routine libraries- collections of routines or objects used to develop software.

§ GUI editors

Database management systems

A database management system (DBMS) is a specialized program (usually a set of programs) designed to organize and maintain a database.

Since database management systems are not an essential component of a computing system, they are often not classified as system software. Often, DBMSs perform only a service function during the operation of other types of programs (web servers, application servers), so they cannot always be classified as application software. Therefore, a DBMS is sometimes referred to as middleware ( middleware)

Basic functions of the DBMS

§ data management in external memory (on disks);

§ data management inrandom access memoryusing disk cache;

§ change logging, backup And database recovery after failures;

§ support for database languages ​​(data definition language, data manipulation language).

Classification of DBMS by method of access to the database

§ File server

In file server DBMSs, data files are located centrally on file server . The DBMS kernel is located on each client computer. Data is accessed via a local network. Synchronization of reads and updates is carried out using file locks. The advantage of this architecture is the low CPU load on the server, but the disadvantage is the high load on the local network.

At the moment, file server DBMSs are considered obsolete.

Examples: Microsoft Access, Paradox , dBase .

§ Client-server

Such DBMSs consist of a client part (which is part of the application program) and a server

Examples: Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, Oracle, PostgreSQL, MySQL, Linter, MDBS.

§ Built-in

Embedded DBMS - library , which allows you to store large amounts of data on a local machine in a unified way.

Examples: OpenEdge, SQLite, BerkeleyDB , one of the options Firebird , one of the options MySQL, Sav Zigzag, Microsoft SQL Server Compact, LINTER.

Application programorapplication - program , designed to perform specific user tasks and designed for direct user interaction. In the majorityoperating systemsapplication programs cannot access resources computer directly, but interact with equipment, etc. through the operating system. Also in simple language - auxiliary programs.

Application software includescomputer programs, written for users or by the users themselves, to give the computer a specific job. Programs for processing orders or creating mailing lists are examples of application software. Programmers who write application software are called application programmers.

Classification

Type

§ general purpose software

§ Text editors

§ Systems computer layout

§ Graphic editor

§ DBMS

§ special purpose software

§ Expert systems

§ Multimedia applications (Media players , programs for creating/editing video, sound, Text-To-Speech, etc.)

§ Hypertext systems ( Electronic dictionaries, encyclopedias, reference systems)

§ Content management systems

§ professional level software

§ CAD

§ AWS

§ ACS

§ APCS

§ ASNI

§ Geographic information systems

§ Billing systems

§ CRM

By area of ​​application

§ Application software for enterprises and organizations. For example, financial management, customer relations, supply chain. This type also includes departmental software for small businesses, as well as software for individual departments within a large enterprise. (Examples: Travel Expense Management, IT Help Desk)

§ The software provides user access to computer devices.

§ Enterprise infrastructure software. Provides common capabilities to support enterprise software. These include database management systems, email servers, network and security management.

§ Information worker software. Serves the needs of individual users to create and manage information. This is usually the management of time, resources, documentation, for example,text editors, spreadsheets, client programs forEmailand blogs, personal information systems and media editors.

§ Software for accessing content. Used to access certain programs or resources without editing them (however, it can also include an editing function). Intended for groups or individual users of digital content. This is, for example, media players, web browsers , auxiliary browsers, etc.

§ Educational software is close in content to software for media and entertainment, but unlike it, it has clear requirements for testing the user’s knowledge and tracking progress in learning a particular material. Many educational programs include sharing and multi-stakeholder collaboration features.

§ Simulation software. Used to simulate physical or abstract systems for scientific research, education, or entertainment.

§ Software tools in the field of media. Serves the needs of users who produce print or electronic media resources for other consumers, on a commercial or educational basis. These are printing programs layouts , multimedia processing, HTML editors , editors of digital animation, digital sound, etc.

§ Application programs for design and construction. Used in the development of hardware (“Hardware”) and software. Coverautomated design(computer aided design - CAD), computer aided engineering (CAE), editing and compiling programming languages, programsintegrated(Integrated Development Environments), interfaces for application programming (Application Programmer Interfaces).

Proprietary software( English proprietary software; fromproprietary - private, patented, proprietary http://ru. wikipedia. org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D1%80%D0%B8%D0%B5%D1%82%D0%B0%D1%80%D0%BD%D0 %BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_ %D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-slov-0 Andsoftware - software) -software, which is the private property of authors or copyright holders and does not satisfyfree software criteria(availabilityopen sourcenot enough).Copyright holderproprietary software retains monopoly to use, copy and modify it, in whole or in significant respects. Typically, proprietary software refers to any non-free software, including semi-free.

Proprietary software that allows virtually unlimited use, distribution and modification (including distribution of modified versions) of the software for non-commercial purposes.

Free software

Free Software (OSS)- wide range software solutions, in which User rights(“freedom”) for unlimited installation, launch, as well as free use, study, distribution and modificationb(improvement) http://ru. wikipedia. org/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0 %BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81 %D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5 - cite_note-gnu. org-0 programs are legally protectedcopyright with help free licenses. Open source software is usually available without any charge, but may come with a price, for example in the form of charging for CDs or other media. For distributed software to be free, recipients must have access to its source code, from which executable files can be obtained, with the appropriate licenses.

The SPO movement began in 1983, when Richard Stallman formed the idea of ​​​​the need to give software freedom ( English softwarefreedom) users. In 1985, Stallman foundedFree Software Foundationto provide an organizational structure to promote your idea.

Open source software business models are typically based on the principle of empowerment, such as new applications, training, integration, customization or certification. At the same time, some business models that operate proprietary software are not compatible with free software, especially those that force users to pay for a license in order to legally use the software product.

§ The program can be freely used for any purpose (“ zero freedom»).

§ You can study how the program works and adapt it for your purposes (“ first freedom"). A condition for this is the availability of the source code of the program.

§ You can freely distribute copies of the program to help a friend (“ second freedom»).

§ The program can be freely improved and its improved version published - in order to benefit the entire community (" third freedom"). The condition for this third freedom is the availability of the source code of the program and the ability to make modifications and corrections to it.

The ability to correct errors and improve programs is the most important feature of free and open source software, which is simply impossible for users of closed proprietary programs, even if errors and defects are discovered in them, the number of which, as a rule, is unknown to anyone.

Only a program that satisfies all four of these principles can be considered a free program, that is, guaranteed to be open and available for modernization and correction of errors and defects, and without restrictions on use and distribution. It must be emphasized that these principles stipulate only availability source codes of programs for general use, criticism and improvement, and the rights of the user who received the executable or source code of the program, but do not in any way stipulate monetary relations associated with the distribution of programs, including They don’t mean it’s free either.. In English-language texts, confusion often arises here, since the word “free” in English means not only “free”, but also “free”, and is often used in relation tofree software, which is distributed free of charge but cannot be modified by the community because its source code has not been published. Such free software is not free at all. On the contrary, free software can be distributed (and is distributed) by charging a fee, but at the same time observing the criteria of freedom: each user is given the right to obtain the source code of the programs without additional payment (except for the price of the media), change them and distribute them further. Any software that does not grant users this right is proprietary software, regardless of any other terms.

Open access to the source code of programs is a key feature of free software, so the proposed somewhat laterEric Raymondthe term "open source software" (open source software) seems to some to be even more successful in denoting this phenomenon than originally proposed Stallman "free software". Stallman insists on the difference between these two concepts, since the words “open source” indicate only the presence of one, not the most important (although necessary for the implementation of two of the four freedoms), in his opinion, of the properties inherent in free software - the ability to see the source code.

Open Software( English open-source software) - softwarewith open source code . The source code of such programs is available for viewing, studying and changing, which allows the user to take part in finalizing theopen program , use the code to create new programs and correct errors in them - through borrowing the source code, if license compatibility allows it, or through studying the algorithms, data structures, technologies, techniques and interfaces used (since the source code can significantly complement the documentation, and in the absence this itself serves as documentation).

Term opensource(English) open source software) was created along with the definition in 1998 Eric Raymond and Bruce Perens, who argued that the term freesoftware (free software ) is ambiguous in English and confuses many commercial entrepreneurs.

Overwhelming majority open source software is at the same time free. The definitions of open source and free software are not exactly the same as each other, but they are close, and most licenses comply with both.

The difference between the open source and free software movements lies mainly in priorities. Proponents of the term “open source” focus on the effectiveness of open source as a method of developing, modernizing and maintaining programs. Supporters of the term “free software” believe that the rights to free distribution, modification and study of programs are the main advantage of free open source software.

There are programs that have open source code, but are not free, for example, UnRAR, an unpacker of RAR archives. Its source code is publicly available, but the license prohibits its use for creating RAR-compatible archivers. There is also a whole class of programs called commercial open source software or Open Core, which use the term "Open Source" to refer to proprietary software.

Source codes of open source programs are released either as public domain, or under the terms of “free” licenses - such as the GNU General Public License or BSD License. Free license allows you to use the source code of the program for your needs with minimal restrictions that do not contradict the OpenSource definition. org. Such a restriction may be a requirement to refer to previous creators or a requirement to maintain the property of openness during further distribution of the same or modified open source program (copyleft). In some cases (for example, Apache or FreeBSD) these restrictions are very small, in others (for example, GNU General Public License) it is enough to distribute the software along with the source code and the text of the license without changing it.

Software (software) is a set of special programs that allow you to organize information processing using a PC.

Since without software the operation of a PC is impossible inin principle, it is an integral partany PC and comes with its hardware(hardware).

Program– a complete and accurate description of the sequence of actions (instructions) of a computer for processing information, written in a language understandable to the computer.

Software – a set of special programs that facilitate the process of preparing tasks for execution on a computer and organizing their passage through the machine, as well as procedures, descriptions, instructions and rules, together with all documentation associated with these components, used in the operation of the computer system.

Process information and control computer operation programs, not devices.

New software innovations have long dominated new hardware developments. The cost of a software package exceeds (sometimes several times) the cost of a computer of an adequate class.

To use a computer effectively, there must be a correspondence between the level of development of computer technology and software. On the one hand, software determines the functionality of the computer. On the other hand, the installation of specific software may be limited by the design features of the computer.

Purpose of the software:

  • ensuring computer functionality;
  • facilitating user interaction with the computer;
  • shortening the cycle from setting a task to obtaining a result;
  • increasing the efficiency of using computer resources.

The software allows you to:

  • improve the organization of the computer system in order to maximize the use of its capabilities;
  • increase user productivity and quality of work;
  • adapt user programs to the resources of a specific computer system;
  • expand the computer system software.

Maximum use of the capabilities of the computing system is achieved by Firstly, by allocating to each user or task the minimum necessary resources for a timely and high-quality solution to his problems, Secondly, due to connecting a large number of users (including remote ones) to the resources of the computer system, Thirdly, by redistributing resources among different users and tasks depending on system state and processing requests.

Increased productivity and quality of work of users occurs due to the automation of calculation and design procedures, implemented using a variety of programming tools (algorithmic language, application software packages) and convenient input-output devices.

The adaptability of user programs to the resources of a specific computer system is ensured by the fact that the operating system contains a means of servicing a wide range of machine configurations. In addition, the operating system allows you to create and easily configure existing programs on various input/output devices.

Extension of existing software requires the following capabilities:

  • creation by the user of his own programs and packages that implement both specific calculation tasks and control processes for individual devices and the entire computing system as a whole;
  • supplementing existing software with programs that allow you to expand the capabilities of the operating system, work with new types of external devices, new computing systems (computers), in new areas of application.

The software is focused on the use of computing systems in various fields of activity and must provide a timely and adequate solution to the assigned tasks. This makes it necessary to comply with a number of requirements for developing software components , the main ones being:

  • modularity;
  • scalability and development;
  • reliability;
  • predictability;
  • convenience and ergonomics;
  • flexibility;
  • efficiency;
  • compatibility.

Basic principles of modern software development:

  • parametric versatility;
  • functional redundancy;
  • functional selectivity.

Programs can be installed on a computer in two ways:

  • Installation from the distribution kit
  • Simple copying

First (lowest) level hierarchy is occupied by the internal software of the PC, stored in its permanent memory. With its help, the PC performs basic functions determined by the hardware structure. Internal software programs work directly with computer hardware modules. As a result, they are functionally connected with them, and when replacing a certain hardware module, it is necessary to replace the internal software program designed to work with it.

Programs that service hardware modules are called driver programs or drivers. They allow, when replacing or connecting a new hardware module, not to make changes in other PC programs, but only to change the driver of the corresponding hardware module.

Internal software is a software interface that ensures the interconnection of the computer with all other programs. Access to internal software programs is made only through the software interrupt system.

The internal software performs the following main functions:

  • manages a wide range of peripheral devices;
  • carries out a quick check of the PC's operability when it is turned on;
  • installs individual hardware modules to their original state;
  • loads OS programs.

The main elements of internal software are I/O drivers, self-test program and boot program. The internal software interacts, on the one hand, with the functional modules of the PC, and on the other hand, implements the software interface of the operating system.

Self-test program designed to test PC functional modules, i.e. setting the computer circuits to their initial state by loading program registers with the necessary information. When checking individual functional modules of the PC, faults may be detected in them. The self-test program notifies the user of detected faults using on-screen messages and/or an audible signal.

If an error is detected, you can continue checking your computer using diagnostic programs loaded from a floppy disk. If the error does not disrupt the functionality of the PC, then it can be ignored at the user’s request. If a new functional module is included in the PC, then the self-test program for this module is added to the general self-test program.

Upon successful completion of the self-test, the PC is ready for operation. Control is transferred to the boot program via a software interrupt. This program is designed to read other components of the operating system into RAM. If this operation is successful, control is transferred to the program just read.

I/O Drivers are used to service PC peripheral devices. These programs work directly with the corresponding controllers, which allows the user not to know the physical organization of a particular device and work only with driver commands that implement its maintenance.

The drivers have the following features:

  • open structure, which allows you to add new drivers to the system;
  • flexibility in organizing access to drivers through software interrupts, which allows you not to fix them in strictly defined areas of memory, and quickly and easily replace them;
  • a customizable structure that targets driver programs to a specific class of peripheral devices, the parameters of which are located in special tables. Drivers are configured for specific peripheral devices by changing the values ​​in these tables;
  • resident placement in RAM, allowing the driver to be used at any time from any program.

The main driver programs include: hard disk driver, video adapter driver, keyboard driver, printing device driver, system drivers (setting a timer, checking the computer configuration, determining RAM capacity), additional drivers (communication driver, etc.).

Operating system occupies second (middle) level software hierarchy. It manages computer system resources, which include RAM and external memory, input/output devices, and user programs. The OS interacts with the computer through the internal software interface. This makes it possible for PCs that have different hardware to work with the same operating system.

The OS is a set of PC control programs.

The composition of the software is determined by the range of tasks that the user expects to solve using a computer.

By purpose, i.e. Depending on the class of problems being solved, software is usually divided into two main groups: General (basic) and applied.

Classification of software by functionality

General software classification scheme

– a set of programs that ensure the functionality of the computer; a set of programs that organize the computing process and manage computer resources.

– a set of software tools that allow you to develop programs.

– a set of programs designed to solve problems from various spheres of human activity.

Every day, when we launch a personal computer, laptop or phone, we are faced with programs that serve us. Moreover, if you don’t think about it, it seems that the use of the software begins the moment we launch the shortcut on the desktop. However, this is not the case.

Base

Let's figure out what software is. In essence, it is a set of commands and program code enclosed in a graphical shell - an interface. But the interface can be different and depends directly on the application and its purpose.

Any software consists of files that specify the procedures and functions that the program follows during execution.

One of the first models of software was the so-called Turing machine. In 1935, Alan Turing formulated a mathematical model according to which some abstract machine was supposed to move from one state to another by executing elementary commands from a fixed set.

Let's start analyzing the question of what software is with its classification.

operating system

Initially, different classes of software can be distinguished. The first and most basic one should be called system software. Interfaces, programs and codes without which it is impossible to work on a computer or other equipment using any software environment. This is the most necessary software in your personal computer.

There are two important subsections in this class:

  1. Basic software. It includes all types of operating systems, regardless of whether they are official or pirated, whether they run publicly available applications or exclusively 1-2 application programs for which this software environment was created. This group also includes various emulators and virtual machines that allow you to simulate various software environments.
  2. A separate group is service software. As the name implies, it was created to maintain the operating system and protect it. These include search engines, antiviruses, as well as diagnostic and troubleshooting tools for your PC.

In itself, system software is a collection of various programs and environments designed to support the operation of a personal computer and computer networks. The development of this type of software is a long and painstaking process, since the functionality of the workplace will depend on it. The system software performs the following tasks:

  • creating an environment for the functioning of application programs;
  • PC and network support;
  • diagnosing and preventing PC and LAN failures;
  • carrying out additional supporting operations such as archiving, formatting, defragmentation and others.

For computer

Another knowledge that gives us the opportunity to understand what software is is an understanding of how software is developed. For this process, tool software is used, that is, a set of software and hardware used to write and compile system code for application utilities.

In instrumental software, three subgroups can be distinguished:

  • programming languages ​​and systems;
  • integrated programming environments;
  • software systems.

There are a great variety of programming languages, and they are all divided into subgroups based on the principle of orientation - according to the scope of the finished product’s problems to be solved.

It is impossible not to say a few words about what machine-oriented programming languages ​​are. They are used to write software not for the end user, but to create supporting program code directly for the hardware. These languages ​​make it possible to take into account the unique architecture and operating principles of a particular computer or, for example, a working machine in a factory that does not run under common operating systems.

For the user

Machine-independent programming languages ​​perform the function of writing program codes, as well as application programs for ready-made shells and operating systems.

  • Procedural-oriented programming languages ​​are specialized software. Examples - Pascal, Basic. These simple programming languages ​​are used to write basic application programs, functions and procedures. And also to describe algorithms for solving problems.
  • Problem-oriented languages ​​- allow you to solve problems in narrower specific areas of programming; examples of them include Lisp, APL.
  • Object-oriented languages ​​are more modern and convenient means for creating application applications and creating various types of software for the end user. Their main feature is the ability to create ready-made application elements, such as dialog boxes, fields to fill in, buttons. To illustrate, we can name languages ​​such as C++ and Visual Basic.

What we work with

The last class is application software. If you carefully read the article, you should have already guessed that this is nothing more than those programs, applications and games that we deal with in everyday life. But even this simplest concept is divided into subclasses by experts.

  1. Perhaps the most common category of applications is multimedia. That is, programs for playing video, audio, games. Everything that serves to entertain the end user. Thus, one of the greatest inventions of mankind has turned from a working scientific instrument into a means of entertainment for the general public.
  2. Information retrieval software. As you understand, these are various browsers and Internet technology clients designed to receive information from the world wide web.
  3. General purpose. These are types of software used in everyday life solely out of necessity. These are graphic and text editors, email services, databases.
  4. Problem-oriented. For example, expert systems or audio and video conferencing systems.
  5. Professional level software environments. These are accounting and pedagogical systems, access control systems.

A good example

Having learned what software is, let's look at some real examples of programs and applications that we might encounter in real life.

  • 1C Accounting. A striking example of professional software used to work with accounting, the legal field and many other supported and related areas.
  • Microsoft Office Word. The most understandable and accessible example of general purpose software. Almost everyone in their life has run this software package to write a resume, essay or report.
  • Microsoft Office Access. The simplest implementation of a database, which is also general-purpose software.
  • Everyone has heard about the multimedia category. This is the well-known Windows Media Player, capable of playing both audio and video files.
  • Photoshop is another example of general purpose software. Being a professional graphic editor used in many printing companies, it also belongs to the professional level software environment.
  • If we talk about general-purpose software, then every person who has started a computer at least once has encountered it. This is the well-known Windows.

All this is very common software. It makes no sense to give examples of other programs. Nowadays, when even a child can develop applications, every user can download any of them to his liking, to replace well-known brands.

Installation

Installing the software in most cases will not cause difficulties for the average user. Most of the apps we use in our daily lives are specifically aimed at the uninitiated user. A special module - an installer - is sewn into the finished program.

When you insert the software disc into the drive, the installer automatically starts. By moving through the dialog boxes, you select the path on the hard drive where the software will be installed. If this is supporting software for your operating system, it will be automatically installed in the required folder.

Some software, such as that required for application development, does not require installation. The working shortcut is launched in the program folder, followed by the development tool.

Installing software for some PC hardware, such as the motherboard or BIOS, may require special skills and professional knowledge, so do not hesitate to call a specialist in such cases.

Creation

Software development takes place in several stages.

  • The initial stage is the stage of the emergence and implementation of an idea. Creating the design of the future application, as well as its functionality.
  • Alpha testing is an internal testing process. It and the addition of any functions are carried out within a limited circle of people, usually developers or people close to them.
  • Beta testing is carried out among consumers at the discretion of the manufacturer. This is the process of debugging a program.
  • Release candidate. A program that has passed all stages of testing, with critical errors found and corrected. The application is almost ready for release.
  • And finally, the release. Product ready for release and replication.
  • The last stage, which continues after release, is software support and maintenance of the application.

conclusions

So, as you now understand, the development and use of software is an inseparable part of our daily life. It would seem that while performing the simplest actions on a personal computer, every day we come across a wide variety of software, created through the painstaking work of specialists specifically for users. The classification of programs and applications is so broad that it is impossible to say with certainty what you are currently working with.

– Igor (Administrator)

Almost every user has asked the question “what is software”, so in this article I will try to cover some basic fundamentals in simple words.

Note: This article is intended for beginners and ordinary users, and therefore does not contain many technical details and features, only basic explanations in a simple form.

What is software in simple words?

Not all electronic devices can accomplish anything of human value simply by plugging into an outlet. And to be a little closer to the truth, today almost every electronic device is simply useless without special machine codes, either hardwired during production or installed by the user during use. Therefore, first we will consider the very definition of what software is.

Software is a set of special commands for controlling hardware devices, both by means of direct signal supply and through other software. In simple terms, this is everything that allows you to type texts in editors, play games, draw diagrams and do everything that can be done using existing devices (hardware in a computer).

Note: This definition is very simplified. You can find more detailed descriptions in various standards. However, in almost each of them the definition is different from the others.

It is worth noting right away that software is often equated to programs or applications. From the point of view of some standards, differences can and most often relate to the presence of operating documentation (for software). However, in everyday life such a comparison is considered insignificant and therefore these terms are considered synonyms.

Basically, software is divided into two types: system software and application software. System software is designed to interact with devices, for example, a computer (the same drivers), as well as to ensure normal functioning (for example, disk defragmentation programs and others). Application programs are designed to solve user problems. For example, office packages, graphic editors, etc.

Sometimes the operating system is also distinguished, although in essence it is also system software. It’s just that the last division is convenient in cases where it is necessary to indicate that other system and application programs cannot be used without the operating system.

Software is also divided according to other criteria, such as commercial or free distribution methods, use of the network (needed or not), openness or closedness of the source code, differences in versions (usually by the availability of functionality, for example, pro and light versions), by main purpose (for example, games and office suites).

If previously additional divisions of application and system software were not so important (unlike the main one), then today’s variety of programs simply makes their presence necessary for cataloging. It is likely that over time there will be even more signs of division of programs, because the information field is growing at a rapid pace.

Now, you know what software is in simple words, what it is used for and how it differs.

What is software

The capabilities of a modern PC are so great that an increasing number of people are finding use for it in their work, study, and everyday life. The most important quality of a modern computer is its “user friendliness”. Communication between a person and a computer has become simple, visual, and understandable. The computer itself tells the user what to do in a given situation and helps get out of difficult situations. This is possible thanks to computer software.

Let's use the analogy between a computer and a person again. A newborn person knows nothing and cannot do anything. He acquires knowledge and skills in the process of development, learning, accumulating information in his memory. A computer that is assembled in a factory from microcircuits, wires, circuit boards and other things is like a newborn human. We can say that loading software into a computer's memory is similar to the process of teaching a child. Software is created by programmers.

The entire set of programs stored on all devices of a computer's long-term memory constitutes its software (software).

Computer software is constantly updated, developed, and improved. The cost of installed programs on a modern PC often exceeds the cost of its technical devices. Development of modern software requires very high qualifications from programmers.

Types of software

There is a necessary part in computer software, without which you simply cannot do anything on it. It is called system software. The buyer purchases a computer equipped with system software, which is no less important for the operation of the computer than the memory or processor. In addition to system software, computer software also includes application programs and programming systems.

Computer software is divided into:

System software;
- application software;
- programming systems.
System software and programming systems will be discussed later. Now let's get acquainted with the application software.
Application software composition
Programs with which the user can solve his information problems without resorting to programming are called application programs.

As a rule, all users prefer to have a set of application programs that almost everyone needs. They are called general purpose programs. These include:

Text and graphic editors, with which you can prepare various texts, create drawings, and draw drawings; in other words, write, draw, draw;

Database management systems (DBMS), which allow you to turn your computer into a reference book on any topic;

Table processors that allow you to organize spreadsheet calculations that are very common in practice;

Communication (network) programs designed to exchange information with other computers connected to the data in a computer network.

Computer games are a very popular type of application software. Most users begin their communication with the computer from them.

In addition, there are a large number of special-purpose application programs for professional activities. They are often called application software packages. These are, for example, accounting programs that perform payroll and other calculations that are done in accounting departments; computer-aided design systems that help designers develop designs for various technical devices; packages that allow you to solve complex mathematical problems without writing programs; training programs on various school subjects and much more.

System software

System software is a set of programs that provide effective management of computer system components, such as the processor, RAM, input/output devices, and network equipment, acting as an “interlayer interface” with hardware on one side and user applications on the other. . Unlike application software, system software does not solve specific application problems, but only ensures the operation of other programs, manages the hardware resources of the computer system, etc.

OS

An operating system is a set of system programs that expands the capabilities of a computer system, as well as providing management of its resources, loading and execution of application programs, and interaction with users. In most computing systems, the OS is the main, most important (and sometimes the only) part of the system software.
OS features
Main functions(simple OS):
Loading applications into RAM and executing them.
Standardized access to peripheral devices (input/output devices).
RAM management (distribution between processes, virtual memory).
Controlling access to data on non-volatile media (such as a hard drive, CD, etc.) organized in a particular file system. User interface.
Network operations, protocol stack support.

Additional functions:
Parallel or pseudo-parallel execution of tasks (multitasking).
Interaction between processes: data exchange, mutual synchronization.
Protecting the system itself, as well as user data and programs, from actions of users (malicious or unknowing) or applications.
Differentiation of access rights and multi-user mode of operation (authentication, authorization).
== Operating system concept
==

There are two groups of OS definitions: “a set of programs that control hardware” and “a set of programs that control other programs.” Both of them have their own precise technical meaning, which, however, becomes clear only with a more detailed consideration of the question of why operating systems are needed at all.
There are computing applications for which operating systems are unnecessary. For example, built-in microcomputers are found today in many household appliances, cars (sometimes a dozen in each), cell phones, etc. Often such a computer constantly runs only one program that starts when turned on. And simple game consoles - which are also specialized microcomputers - can do without an OS, launching a program recorded on a “cartridge” or CD inserted into the device when turned on. However, some microcomputers and game consoles still run their own special operating systems. In most cases, these are UNIX-like systems (the latter is especially true for programmable switching equipment: firewalls, routers).

OS Basic Ideas

The predecessor of the OS should be considered utility programs (bootloaders and monitors), as well as libraries of frequently used routines, which began to be developed with the advent of 1st generation universal computers (late 1940s). Utilities minimized the operator's physical manipulation of the equipment, and libraries made it possible to avoid repeated programming of the same actions (carrying out I/O operations, calculating mathematical functions, etc.).

In the 1950s and 60s, the main ideas that determined the functionality of the OS were formed and implemented: batch mode, time sharing and multitasking, separation of powers, real time, file structures and file systems.

Built-in programs

Built-in programs or firmware are programs “hardwired” into digital electronic devices. In some cases (for example, the BIOS of IBM-PC compatible computers) are essentially part of the operating system, stored in permanent memory. In fairly simple devices, the entire operating system may be embedded. Many modern computer devices have their own firmware that controls these devices and simplifies interaction with them.

Utilities

Utilities (eng. utility or tool) are programs designed to solve a narrow range of auxiliary tasks. Sometimes utilities are classified as utility software. Utilities are used to
Monitoring sensor indicators and equipment performance - monitoring processor and video adapter temperatures; reading S.M.A.R.T. hard drives;
Managing equipment parameters - limiting the maximum rotation speed of the CD drive; changing fan speed.
Monitoring indicators - checking referential integrity; correctness of data recording.
Expanded capabilities - formatting and/or re-partitioning the disk while saving data, deleting without the possibility of recovery.

Types of utilities

Disk Utilities
Defragmenters
Disk scanning - searching for files and disk areas that were incorrectly recorded or damaged in various ways and their subsequent removal for efficient use of disk space.
Disk Cleanup - deleting temporary files, unnecessary files, emptying the Recycle Bin.
Disk partitioning is the division of a disk into logical disks, which can have different file systems and be perceived by the operating system as several different disks.
Backup - creating backup copies of entire disks and individual files, as well as restoring from these copies.
Disk compression - compression of information on disks to increase the capacity of hard drives. Registry utilities
Equipment monitoring utilities
Equipment tests

Application software

An application program or application is a program designed to perform certain user tasks and designed for direct interaction with the user. In most operating systems, application programs cannot access computer resources directly, but interact with hardware, etc. through the operating system. Also in simple language - auxiliary programs.
Classification

Type
general purpose software
Text editors
Computer publishing systems
Graphic editor
DBMS
special purpose software
Expert systems
Multimedia applications (Media players, programs for creating/editing video, sound, Text-To-Speech, etc.)
Hypertext systems (Electronic dictionaries, encyclopedias, reference systems)
Content management systems
professional level software
CAD
AWS
ACS
APCS
ASNI
Geographic information systems
Billing systems
CRM
By area of ​​application
Application software for enterprises and organizations. For example, financial management, customer relations, supply chain. This type also includes departmental software for small businesses, as well as software for individual departments within a large enterprise. (Examples: Travel Expense Management, IT Help Desk)
The software provides user access to computer devices.
Enterprise infrastructure software. Provides common capabilities to support enterprise software. These include database management systems, email servers, network and security management.
Information worker software. Serves the needs of individual users to create and manage information. This, as a rule, manages time, resources, documentation, for example, text editors, spreadsheets, client programs for email and blogs, personal information systems and media editors.
Software for accessing content. Used to access certain programs or resources without editing them (however, it can also include an editing function). Intended for groups or individual users of digital content. These are, for example, media players, web browsers, auxiliary browsers, etc.
Educational software is close in content to software for media and entertainment, but unlike it, it has clear requirements for testing the user’s knowledge and tracking progress in learning a particular material. Many educational programs include sharing and multi-stakeholder collaboration features.
Simulation software. Used to simulate physical or abstract systems for scientific research, education, or entertainment.
Software tools in the field of media. Serves the needs of users who produce print or electronic media resources for other consumers, on a commercial or educational basis. These are programs for printing, layout, multimedia processing, HTML editors, digital animation editors, digital sound editors, etc.
Application programs for design and construction. Used in the development of hardware (“Hardware”) and software. Covers computer aided design (CAD), computer aided engineering (CAE), editing and compiling programming languages, Integrated Development Environments, Application Programmer Interfaces.
Links to resources used