| Computer software. About system software and programming systems
Lesson 8
concept software and its types. Purpose operating system and its main functions
§9. Computer software
§10. 0 system software and programming systems
Computer software
The main topics of the paragraph:
What is software;
- types of software;
Issues under study:
- Composition of application software.
- Service programs.
What is software
The capabilities of a modern PC are so great that an increasing number of people are using it in their work, study, and everyday life. The most important quality of a modern computer is its "friendliness" in relation to the user. Communication between a person and a computer has become simple, clear, and understandable. The computer itself tells the user what to do in a given situation, helps to get out of difficult situations. This is possible thanks to computer software.
Let's use the analogy between a computer and a human again. A newborn person does not know anything and does not know how. He acquires knowledge and skills in the process of development, learning, accumulating information in his memory. The computer, which was assembled at the factory from chips, wires, boards, and other things, is like a newborn person. We can say that loading software into the memory of a computer is similar to the process of teaching a child.
Software is created by programmers.
The entire set of programs stored on all long-term memory devices of a computer is its software (SW).
Computer software is constantly updated, developed, improved. Price installed programs on a modern PC often exceeds the cost of its technical devices. The development of modern software requires very high qualifications from programmers.
Software types
There is a necessary part in the computer software, without which nothing can be done on it. It is called system software. The main element of system software is the operating system (for example, Windows, Linux). The customer purchases a computer that is equipped with system software that is as important to the operation of the computer as memory or a 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. And now let's get acquainted with the application software.
Application software composition *
*
In the field of software, everything changes very quickly, so it is impossible to give an accurate and unchanging classification.
Some modern programs are difficult to attribute to any one of the types described below.
.
Programs with the help of which the user can solve his information problems without resorting to programming are called application programs.
The operating system usually comes with a set of application programs. general purpose. In Windows, this is the “Standard” program group (simple text and graphic editors, calculator, etc.), the program Email and internet browser. General-purpose programs also include office, multimedia and entertainment programs. In Linux, such programs are grouped according to their purpose.
Office programs. As a rule, when purchasing a computer, a user installs an office software package on it. These programs include:
Word processors - for working with text documents;
spreadsheet processors that allow organizing tabular calculations that are very common in practice;
programs for creating presentations - a demonstration video sequence used for public speaking;
programs for managing simple databases.
multimedia programs. These are general-purpose programs designed to work with images and sound. These include graphic editors that allow you to draw, process photos, and make photomontage. Sound and image player programs allow you to display a picture on the screen, listen to a musical recording, watch a video film. Sound processing on a computer, as a rule, is done by professionals, using special software packages for this.
Entertainment programs. Many users begin their communication with the computer with computer games.
Professional programs. These are application programs for special purposes - tools of professional activity. For example, accounting programs are used for automated payroll and other calculations that are made in accounting departments; computer-aided design systems are used by designers to develop projects for various technical devices; programs that allow solving complex mathematical problems are used by scientists and engineers; medical expert systems help the doctor diagnose the patient and much more.
Educational programs. These are also special purpose programs. Educational programs include electronic textbooks, training simulators. Often, a game form is used for learning purposes. This combination is especially popular for young children.
Briefly about the main
The computer software is divided into three parts: system software, application software and programming systems.
With application programs the user can directly solve his information tasks without resorting to programming.
Application software includes: office, multimedia, entertainment and educational, professional and other programs.
Questions and tasks
1. What is computer software?
2. What tasks does the application software perform?
3. Name the main types of general-purpose application programs.
4. What are special purpose applications?
About system software and programming systems
The main topics of the paragraph:
What is an operating system;
- interactive mode;
- service programs;
- programming systems.
Issues under study:
The concept of software.
- Software types
- Composition of application software.
- System software and operating system functions.
- The concept of interactive mode of operation.
- Service programs.
- Programming system - a tool for the work of a programmer.
What is an operating system
What application programs are for is easy to understand. What is system software?
The main part of the system software is operating system(OS).
An operating system is a set of programs that control RAM, processor, external devices and files, as well as leading a dialogue with the user.
The operating system has a lot of work to do, and it is in working condition almost all the time. For example, in order to execute an application program, it must be found in external memory(on disk), place it in RAM (having found free space there), start program execution, monitor the operation of all computer devices during execution, and display diagnostic messages in case of failures. All these concerns are taken care of by the operating system.
Here are the names of some common operating systems for personal computers: Windows, Linux, MacOS.
interactive mode
The operating system communicates with the user through a specific dialog environment (shell) displayed on the screen: “Desktop”, file manager, etc. Wanting to perform some action, the user sends the corresponding command to the OS, acting on the elements of the dialog environment. For example, it can be a command to launch an application program, a command to perform an operation with files (delete a file, copy, etc.), a command to report the current time or date, a command to restart the computer. After completion of this stage of work, the operating system enters the state of waiting for the next command from the user.
This mode of operation is called conversational mode.. Thanks to the OS, the user never feels left to their own devices. All operating systems on personal computers work with the user in a dialogue mode. Dialogue mode is often referred to as interactive mode..
Service programs
In addition to the OS, system software should also include a lot of service programs, service nature. For example, these are disk maintenance programs (copying, formatting, "healing", etc.), compressing files on disks (archivers), fighting computer viruses, and much more.
computer virus refers to malicious code that can damage or disable a computer's data. The main carriers of viruses are: unlicensed software, files copied from random sources, as well as the global computer network Internet. Computer viruses are dealt with by specialists who create anti-virus programs.
Anti-virus programs must be included in the computer software. However, it is not enough to install such a program on a computer only once. After that, you need to regularly update its database - add settings for new types of viruses. Most promptly, such an update is performed via the Internet by servers of manufacturers of anti-virus programs.
Programming systems
In addition to system and application software, there is a third type of software. It is called programming systems (SP).
A programming system is a set of tools designed to work with programs in one of the programming languages.
Programmers work with programming systems. They are developing computer programs. Each joint venture is focused on a certain programming language. There are many different languages, such as Pascal, BASIC, FORTRAN, C ("C"), Assembler, LISP, etc. In these languages, a programmer writes programs, and with the help of programming systems enters them into a computer, debugs, tests, executes.
Programmers create all kinds of programs: system, applied and new programming systems.
Briefly about the main
System software- a mandatory part of the software. Its core is the operating system (OS). The OS is directly connected with the hardware and controls its operation, organizes work with files, and conducts a dialogue with the user.
To service programs include disk maintenance programs, archivers, antivirus programs, etc.
Programming systems- tools for programmers.
Questions and tasks
1. What types of software are available on modern computers? Prepare a message.
2. What is an operating system (OS)? What are its main functions?
3. What is the interactive mode of communication between the OS and the user?
4. What are programming systems for? Who works with them?
Electronic application for the lesson
Download lesson materials
Software
Software
1) Application programs
2) System programs:
- computer resource management.
- OS.
- programming systems.
- tool systems.
- integrated packages.
- computer graphics systems.
Software life cycle and its standardization, software life cycle processes, software life cycle process groups
In software development technologies, the concept of the life cycle is one of the main ones.
Software Life Cycle (Software Life Cycle)– a period of time that starts from the moment a decision is made on the need to create software and ends at the time of its complete decommissioning.
Process– a set of interrelated actions (and each action is a set of tasks) that transform some input data into output data. Each process is characterized by tasks and methods for their solution, initial data obtained from other processes, and results.
According to the ISO/IEC 12207 standard, all software life cycle processes are divided into three groups:
1. basic processes :
1.1. acquisition;
1.2. supply;
1.3. development;
1.4. exploitation;
1.5. accompaniment;
2. support processes :
2.1. documentation;
2.2. configuration management;
2.3. quality assurance;
2.4. verification;
2.5. attestation;
2.6. joint assessment;
2.7. audit (determination of compliance with the requirements, plans and terms of the contract);
2.8. problem solving;
3. organizational processes :
3.1. control;
3.2. infrastructure;
3.3. improvement
3.4. education.
3. Software development process: main actions and their content
Development process provides for the actions and tasks performed by the developer, and covers the creation of software and its components in accordance with the specified requirements, including the preparation of design and operational documentation, the preparation of materials necessary to test the operability and appropriate quality of software products, materials necessary for organizing personnel training .
The development process includes the following steps:
1) Preparatory work begins with the selection of a software life cycle model appropriate to the scale, significance, and complexity of the project.
2) Analysis of system requirements implies the definition of its functionality, user requirements, requirements for reliability and security, for external interfaces, etc.
3) Architecture design system at a high level is to determine the components of its hardware, software and operations performed by personnel operating the system.
4) Analysis of software requirements
Software architecture design
6) Detailed design BY
Software coding and testing
8) Software integration provides for the assembly of the developed software components in accordance with the integration plan and testing of the aggregated components.
9) Software qualification testing carried out by the developer in the presence of the customer (if possible) to demonstrate that the software meets its specifications and is ready for use in the field.
10) System integration is to assemble all its components, including software and hardware.
11) After integration, the system, in turn, undergoes proficiency testing to meet the set of requirements for it.
12) Software installation is carried out by the developer in accordance with the plan in the environment and on the equipment that are provided for in the contract.
13) Software Acceptance provides for the evaluation of the results of software and system qualification testing and documentation of the evaluation results, which are carried out by the customer with the help of the developer. The developer performs the final transfer of the software to the customer in accordance with the contract, while providing the necessary training and support.
Certification of software development processes, CMM model
Process Quality Assurance development of software products is very significant in modern conditions. This guarantee is provided by process quality certificates. confirming its compliance with accepted international standards. The most authoritative models are ISO 9001:2000, ISO/IEC 15504 and software development process maturity model (Capability Maturity Model - CMM).
The main concept of the CMM model is process maturity(Software process maturity). Process maturity is the degree of their manageability, controllability and effectiveness. Increasing technological maturity refers to the potential for increased process resilience and indicates the degree of efficiency and consistency in the use of software development and maintenance processes throughout the organization.
The CMM model identifies five levels of technological maturity that, in principle, can be achieved by a company:
1. Entry level means that the process in the company is not formalized. It cannot be strictly planned and monitored, its success is random. The result of the work depends entirely on the personal qualities of individual employees, the dismissal of which leads to a stop of the project.
2. At a repeatable level formal procedures are introduced to carry out the basic elements of the design process. The results of the process fulfill the specified requirements and standards. The implementation of the project at this level is planned and controlled, and the means used for these purposes make it possible to repeat the previously achieved successes.
3. Certain level requires that all process elements be defined, standardized and documented. At this level, all processes are planned and managed based on a single company standard. The quality of software being developed no longer depends on the abilities of individuals.
4. At a managed level the company accepts quantitative indicators of the quality of both software products and technological processes. This provides more accurate project planning and quality control of its results. The main difference from the previous level is a more objective, quantitative assessment of the product and process.
5. At the top optimizing, the main task of the company is to constantly improve and increase the efficiency of existing processes, the introduction of new technologies. The technology for creating and maintaining software products is being systematically and consistently improved.
Cascade software life cycle model: description, advantages and disadvantages,
Application Criteria
The cascade model of the software life cycle implements the classic software life cycle. According to this model, software development is considered as a sequence of stages, and the transition to the next stage is carried out only after the completion of all work at the current stage.
System Analysis - Requirements Analysis - Design - Implementation - Testing - Implementation - Maintenance
System analysis: the role of each element and their interaction with each other is specified.
Requirements analysis: definition of functional and non-functional requirements for software.
Design: translation of software requirements into multiple design views. Also at this stage, the quality of future software is assessed.
Implementation: conversion of design specifications into text in PL (program language) (coding).
T testing: validation, correction of errors in functions and logic.
Implementation: installation of the developed software at the customer's site, staff training.
Escort: making changes to the software in use (correcting errors, adapting to changes in the external environment for the software, improving the software according to customer requirements).
Advantages:
The model is well known to consumers;
Works well for those projects that are clear enough
Very easy to understand, simple and easy to use;
Even inexperienced personnel can be guided by its structure;
Differs in stability of requirements;
Works well when quality requirements dominate cost requirements and project schedule;
Contributes to the implementation of strict control of project management;
The stages of the model are fairly well defined and understood;
The progress of a project can be easily tracked using a timeline, since the end of each phase is used as a milestone.
Flaws:
Every attempt to go back one or two phases to correct some problem or deficiency will result in a significant increase in costs and a glitch in the schedule;
The expression "35 percent completed" has no meaning and is not an indicator for the project manager;
The integration of all the results obtained occurs at the final stage of the model;
The client hardly has the opportunity to familiarize himself with the system in advance;
All requirements must be known at the beginning of the life cycle;
There is a need for strict management and control, since the model does not provide for the possibility of modifying the requirements;
The model is based on documentation, which means that the number of documents may be redundant;
The entire software product is developed at one time. There is no way to break the system into parts;
There is no way to account for rework and iterations outside of the project.
Application Criteria: The waterfall model can be used to create software for which, at the very beginning of development, all requirements can be formulated quite accurately and completely.
Application Criteria
Breadboarding (prototyping) is the process of creating a model of a developed software product. The model can take one of three forms:
1) paper layout or "electronic" layout, which represents the GUI;
2) working layout(performs only part of the required functions);
3) existing program(the characteristics of which should be improved).
Prototyping based on repeated iterations, which involve the customer and the developer, as shown.
Advantages:
The user can "see" the system requirements as they are collected by the development team;
Reduces the possibility of confusion, distortion of information when determining system requirements;
New user requirements can be introduced into the process;
Yes |
No |
The quality of a product is determined by the active participation of the user in the development process;
Less rework reduces development costs;
Risk management is provided;
Flaws:
Quickly developed prototypes suffer from inadequate or missing documentation;
Given the creation of a working prototype, the quality of the entire software or long-term operational reliability may not be given enough attention.
Solving difficult problems can be pushed back to the future. This leads to the fact that subsequent products received may not meet the expectations that were placed on the prototype;
If users cannot participate in the project, adverse impacts may be reflected in the final product;
If the project is completed early, the end user is left with only a partial system;
Is addictive and may last too long;
Application Criteria:
Requirements are not known in advance, are not constant, or may be poorly formulated;
There is a need to develop user interfaces;
There are temporary demonstrations;
A new, unparalleled development is being carried out;
Developers are not sure what is the best architecture or algorithms to use;
Algorithms or system interfaces are complicated;
Software is developed when there is a medium and high degree of risk;
IDEF3 Relationship Types
Connections split or merge internal streams:
Connection types
Graphic designation | Name | View | Initialization rules |
& | Connection "I" | unfolding | Every final action must be initiated |
rolling | Each initial action must be completed | ||
X | XOR connection | unfolding | One and only one final action is initiated |
rolling | One and only one original action must complete | ||
O | Connection "OR" | unfolding | One or more end actions are initiated |
rolling | One or more source activities must complete |
Pointers are special characters that refer to other sections of the process description. They are placed on the diagram to draw the reader's attention to some important aspects of the model.
Types of IDEF3 Pointers
22 The main stages of designing software systems and their content
The technological cycle of information system software development includes three processes: analysis, synthesis and maintenance. The analysis looks for an answer to the question: “What should the future system do?”. In the process of synthesis, the answer to the question is formed: “How will the system implement the requirements placed on it?” There are three stages of synthesis: design, coding and testing.
Data warehouse model
Client-server model
Three-level model
Advantages of the three-tier model:
simplifies such a modification of the level, which does not affect other levels;
· separation of application functions from database management functions simplifies the optimization of the entire system.
Abstract car model
Subsystem 2 |
Subsystem N |
… |
Event and message handler |
Modular decomposition
The third activity performed during the preliminary design stage is the division of subsystems into modules. There are two types of modular decomposition:
the data flow model;
object model.
Module is a piece of program text that is the building block for the physical structure of the system. As a rule, a module consists of an interface part and an implementation part.
Modularity is a property of a system that can be decomposed into a number of internally connected and weakly dependent modules. Modularity provides the intelligent ability to create software that is as complex as you like.
The principle of "divide and conquer". As the number of modules increases (and their size decreases), their implementation costs also increase.
Modularity costs
Thus, there is an optimal number of Opt modules that results in the minimum development cost.
The next principle that is used in modular decomposition is principle of information secrecy: the contents of the modules should be hidden from each other. Those. all actions must be exposed to external modules through a specific interface.
Information closure means the following:
All modules are independent, they exchange only the information necessary for work;
· access to the operations and structures of the module is limited.
Advantages of information secrecy:
· possibility of development of modules by various, independent collectives is provided;
Provides easy modification of the system (the probability of error propagation is very small, since most of the data and procedures are hidden from other parts of the system).
The ideal module plays the role of a "black box", the contents of which are invisible to clients. It is easy to use - the number of controls is small, it is easy to develop and adjust in the process of maintaining a software system. To provide such capabilities, the system must meet special requirements: the modules of the system must have high connectivity and low coupling.
Module call types
A |
IN |
IN |
A |
WITH |
A |
IN |
A) |
b) |
V) |
Conditional and cyclic module calls: a) - cyclic; b) - conditional; c) one time
Transition
A simple transition is a relationship between two successive states that indicates the fact that one state has changed to another. The stay of the simulated object in the first state may be accompanied by the performance of certain actions, and the transition to the second state will be possible after the completion of these actions, as well as after satisfaction of some additional conditions. In this case, the transition is said to fire, or the transition fires. Before the transition fires, the object is in the previous state from it, called the initial state, or in the source (not to be confused with the initial state - these are different concepts), and after it is fired, the object is in the state following from it (the target state).
In a state diagram, a transition is represented by a solid line with an arrow pointing to the target state.
Complex transitions
Selection and connection
Choice pseudo state designed to model multiple alternative branches when implementing a behavior state machine
Junction pseudo state is a node with free semantics that is used to connect several transitions together
Split and merge
Split vertex (fork vertex) - a pseudo-state designed to split an incoming transition into two or more transitions that have vertices in orthogonal regions of the composite state as their targets.
Merging vertex (join vertex) - a pseudo-state designed to connect multiple transitions that have vertices from different orthogonal regions of the composite state as their sources.
Entry and exit points
Entry point - pseudo-state designed to simulate entering some state machine or composite state
Exit point - a pseudo-state designed to simulate the exit from some state machine or composite state
Shallow history pseudo-state (shallow pseudo state)
Shallow pseudo state is intended to represent the most recently active substate of the composite state after leaving it.
Pseudo-state of deep history (deep pseudo state)
Deep pseudo state is intended to represent the last active configuration of the composite state after leaving it.
Interfaces
Provided interface is the interface that the component offers to its environment.
Required interface An interface that a component needs from its environment to perform its declared functionality, contract, or behavior.
Port
A port defines a distinct point of interaction between a component and its environment, or between a component and its internals.
The port name is optional.
In the absence of a port name, its type is associated with the type of the interface to which the port is associated.
Collecting connector
(assembly connector)
– a connector that connects two components in the context of provided and required services.
Delegating connector
(delegation connector)
– a connector that connects the external contract of a component to the implementation of this behavior by the internal parts of this component.
A delegating connector performs one of the following tasks:
Passing messages or signals that come into a port of a component from the outside for processing to some internal part of the component or another port.
Passing messages or signals coming from some internal part of the component to be processed on the external port of the component
Node
It is an element of the model that represents a certain computing resource for deploying various artifacts on it
In practice, to clarify the specification of a node, various textual stereotypes can be used that focus on the purpose of this node.
Although specific node stereotypes are not defined in UML 2.x, the developers proposed the following text stereotypes for this purpose:
"application server" (application server), "client workstation" (client workstation), "mobile device" ( mobile device), "embedded device" (embedded device), "processor" (processor), "sensor" (sensor), "modem" (modem), "net" (network), "printer" (printer) and others.
The concept of software, software classification
Software is a set of programs executed by a computer system.
Software also includes the entire area of software design and development.
Software- an integral part of the computer. It is a logical continuation of the technical means of computers, expanding their capabilities and scope of use.
1) Application programs that directly ensure the performance of the work required by users.
2) System programs:
- computer resource management.
- making copies of used information.
- checking the performance of computer devices.
- issuance of reference information about the computer, etc.
3) Tool software systems, which facilitate the process of creating new programs for the computer.
More or less definitely formed the following software groups:
- OS.
- programming systems.
- tool systems.
- integrated packages.
- dynamic spreadsheets.
- computer graphics systems.
- database management systems (DBMS).
- application software.
Software (English) ssoftware) is a set of programs that ensure the functioning of computers and the solution of problems of subject areas with their help. Software (SW) is an integral part of a computer system, is a logical continuation of technical means and determines the scope of the computer.
The software of modern computers includes a wide variety of programs, which can be divided into three groups (Fig. 3.1):
1. System software (system programs);
2. Application software (application programs);
3. Tooling (tool systems).
System software (SPO) are programs that control the operation of a computer and perform various auxiliary functions, for example, managing computer resources, creating copies of information, checking the performance of computer devices, issuing help information about a computer, etc. They are intended for all categories of users, are used for efficient work computer and user, as well as the efficient execution of application programs.
Operating systems occupy a central place among system programs. operating systems). operating system (OS) is a set of programs designed to manage the loading, launch and execution of other user programs, as well as to plan and manage computer computing resources, i.e. control of the PC operation from the moment it is turned on until the moment the power is turned off. It loads automatically when the computer is turned on, conducts a dialogue with the user, manages the computer, its resources (RAM, disk space, etc.), launches other programs for execution, and provides the user and programs with a convenient way to communicate - interface - with computer devices. In other words, the operating system ensures the functioning and interconnection of all components of the computer, and also provides the user with access to its hardware capabilities.
The OS determines the performance of the system, the degree of data protection, the choice of programs with which you can work on a computer, and hardware requirements. Examples of OS are MS DOS, OS/2, Unix, Windows 9x, Windows XP.
Service systems expand the capabilities of the OS for system maintenance, provide user convenience. This category includes maintenance systems, software shells and OS environments, as well as utility programs.
Maintenance systems is a set of PC software and hardware tools that perform monitoring, testing and diagnostics and are used to check the functioning of computer devices and detect malfunctions during computer operation. They are a tool for specialists in the operation and repair of computer hardware.
To organize a more convenient and visual user interface with a computer, software shells operating systems - programs that allow the user to perform actions to manage computer resources other than those provided by the OS (more understandable and efficient). The most popular shells include the Norton Commander packages ( Symantec), FAR (File and Archive manager) ( E. Roshal).
Utilities (utilities, lat. utilitas- benefit) - these are auxiliary programs that provide the user with a number of additional services for the implementation of frequently performed work or increase the convenience and comfort of work. These include:
Packers (archivers) that allow you to more densely record information on disks, as well as combine copies of several files into one, so-called archive file (archive);
anti-virus programs designed to prevent infection with computer viruses and eliminate the consequences of infection;
disk space optimization and quality control programs;
programs for information recovery, formatting, data protection;
programs for recording CDs;
Drivers - programs that expand the capabilities of the operating system to manage input / output devices, RAM, etc. When you connect new devices to your computer, you need to install the appropriate drivers;
communication programs that organize the exchange of information between computers, etc.
Some utilities are part of the operating system, and some are marketed as stand-alone software products, such as the multifunctional Norton Utilities utility package ( Symantec).
Application software (PPO) is designed to solve user problems. Its composition includes user applications And application packages (PPP) for various purposes .
application program user is any program that contributes to the solution of a problem within a given problem area. Application programs can be used either standalone or as part of software systems or packages.
Application packages (PPP) are specially organized software systems designed for general use in a specific problem area and supplemented by appropriate technical documentation. There are the following types of PPP:
General PPP- universal software products designed to automate a wide class of user tasks. These include:
Text editors(for example, MS Word, Word Perfect, Lexicon);
Table processors(for example, MS Excel, Lotus 1-2-3, Quattro Pro);
Dynamic Presentation Systems(for example, MS Power Point, FreelanceGraphics, Harvard Graphics);
Database management systems(for example, MS Access, Oracle, MS SQL Server, Informix);
Graphic editor(for example, Corel Draw, Adobe Photoshop);
Publishing systems(for example, Page Maker, Venture Publisher);
Design automation systems(for example, BPWin, ERWin);
Electronic dictionaries and translation systems(e.g. Prompt, Socrates, Lingvo , Context);
Text recognition systems(e.g. Fine Reader, Cunei Form).
General purpose systems are often integrated into multi-component packages for office automation - office packages – Microsoft Office, StarOffice, etc.
method-oriented RFP, which are based on the implementation of mathematical methods for solving problems. These include, for example, mathematical data processing systems (Mathematica, MathCad, Maple), statistical data processing systems (Statistica, Stat .);
problem-oriented RFP designed to solve a specific problem in a specific subject area. For example, information and legal systems YurExpert, YurInform; accounting and control packages 1C: Accounting, Galaxy, Angelica; in the field of marketing - Kasatka, Marketing Expert; banking system STBank;
integrated PPP are a set of several software products combined into a single tool. The most developed of them include a text editor, a personal manager (organizer), a spreadsheet, a database management system, e-mail support tools, a program for creating presentation graphics. The results obtained by individual subroutines can be combined into a final document containing tabular, graphical and textual material. These include, for example, MS Works. Integrated packages, as a rule, contain some kind of kernel, which provides the possibility of close interaction between components.
Typically, application software packages have customization tools that allow them to be adapted to the specifics of the subject area during operation.
TO tool software include: programming systems – for the development of new programs, for example, Pascal, BASIC. They usually include: editor texts, which provides the creation and editing of programs in the original programming language (source programs), translator, and routine libraries; instrumental environments for developing applications, for example, C ++, Delphi, Visual Basic, Java, which include visual programming tools; simulation systems , for example, the MatLab simulation system, BpWin business process modeling systems and ErWin databases, and others.
Translator (English) translator- translator) is a translator program that converts a program from a high-level language into a program consisting of machine instructions. Translators are implemented in the form compilers or interpreters, which differ significantly in terms of how they work.
Compiler(English) compiler- compiler, collector) reads the entire program entirely, translates it and creates a complete version of the program in machine language, which is then executed. Compiling produces an executable program that requires neither the source program nor a compiler to run.
Interpreter(English) interpreter– interpreter, interpreter) translates and executes the program line by line. The program processed by the interpreter must be re-translated into machine language each time it is run.
Compiled programs run faster, but interpreted programs are easier to fix and change.
Introduction
The computer itself does not have knowledge in any area of application. All this knowledge is concentrated in programs running on computers. The software of modern computers includes many programs - from gaming to scientific. Software (SW) is an integral part of a computer system. It is a logical continuation of technical means. The scope of a particular computer is determined by the software created for it.
Software is understood as a set of software tools for the creation and operation of data processing systems using computer technology.
Software also includes the entire field of software design and development.
It includes:
Program design technology;
Program testing methods;
Methods for proving the correctness of programs;
Analysis of the quality of programs;
Program documentation;
Development and use of software tools that facilitate the software design process, and much more.
Service software includes:
1. Drivers (programs with which the operating system accesses the hardware of a device. They are designed to control the ports of peripheral devices, usually loaded into RAM when the computer starts).
Here is a far from complete list of applications: mouse connection; keyboards; connection of plotters (plotters), scanners, printers, copiers (copiers), digitizers; communication between two computers via serial data ports; connection of modems for data transmission over telephone lines; connection to a network of personal computers.
2. Utilities (auxiliary or service programs that provide the user with a number of additional services).
Typical representatives of utilities are:
File managers or file managers;
Archivers of files, folders and disks;
Communication tools (communication programs) are designed to organize the exchange of information between computers;
Computer security tools ( backup, anti-virus programs);
Dynamic disk compression programs. They allow you to increase the amount of information stored on disks by dynamically compressing it. These programs compress information when writing to a disk, and restore it in its original form when reading.
Uninstallers of applications installed on the computer. They serve as a replacement for the standard Add/Remove dialog. Windows program. At the same time, they work approximately 5-10 times faster. There is a function to search for an application by keyword.
Utilities are often combined into complexes, the most popular complexes are Norton Utilities, PC Tools Deluxe and Mace Utilities.
It should be noted that some of the utilities are part of the operating system, while the other part functions autonomously.
Test Software is a diagnostic tool; control tools that allow you to check the configuration of the computer and check the performance of computer devices, primarily hard drives. The purpose of tests is to detect errors in the operation of a computer or a computer system as a whole. Some programs perform various auxiliary functions: for example, issuing help information about the computer, checking the health of computer devices, cleaning the system registry, cleaning the disk from temporary and unnecessary files and editing the Startup folder, etc.
Programming Tools designed to create programs. These include programming languages and systems that provide support for all stages of work on creating programs: creating the source code of a program in a programming language, compiling / interpreting, debugging, documenting, supporting and maintaining software products.
Programming systems usually contain translators (compilers and interpreters); libraries of reference programs (functions, procedures), linkers, loaders and debuggers.
The function of linking is to link a program from many object modules. Since each of the object modules in a program was derived from a separate translation process that operates on only one particular module, calls to procedures and data located in other modules do not contain actual addresses in object modules. The binding function is performed by a separate program called link editor or linker. The link editor performs only the function of linking - assembling a program from many object modules and generating addresses in calls to external points. The output of the linker is a load module.
To place an object program in RAM, free space in memory must be found and allocated. To perform this function, the program loader refers to the operating system, which fulfills its request for allocation of memory within the framework of the general memory management mechanism. A loader is a program that prepares an object program for execution and initiates its execution.
Debugger is a separate application designed to find errors in the program. The debugger allows you to step through the trace, monitor, set or change the values of variables during program execution, set and remove breakpoints or break conditions, etc. After all, in fact, what is the work of a debugger? To help the programmer to localize the error to a specific function, a specific operation, a specific variable. The operating system can also help the debugger in this difficult task.
Application software combines a wide range of programs designed for various information systems. However, these programs cannot run without the operation of the operating system (OS), which provides the environment for their execution.
And 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
The software is usually divided into systemic , applied Andinstrumental, but by the method of distribution and use onnon-free/closed, open And free . Free software can be distributed, installed and used on any computer at home, in offices, schools, universities, and 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 an "interlayer interface", on one side of which is the equipment, and on the other - user applications. Unlikeapplication software, the system does not solve specific applied problems, but only ensures the operation of other programs, manages the hardware resources of the computing system, etc.
OS
operating system- a set of system programs that expands the capabilities of a computing system, as well as providing management of its resources, loading and executing application programs, and interacting with users. In most computing systems, the OS is the main, most important (and sometimes the only) part of the system software.
The concept of the operating system
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 exact technical meaning, which, however, becomes clear only upon closer examination of the question of why operating systems are needed at all.
There are computing applications for which an OS is redundant. For example, built-inmicrocomputersfound today in many household appliances, cars (sometimes a dozen each), cell phones, etc. Often, such a computer constantly executes only one program that starts when it is turned on. And simple game consoles - also representing 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 proprietary operating systems. In most cases, these are UNIX-like systems (the latter is especially true for programmable switching equipment: firewalls, routers).
Basic OS ideas
The predecessor of the OS should be considered utility programs ( loaders and monitors), as well as libraries of commonly used subroutines , which began to be developed with the advent of universal1st generation computers(late 1940s ). Utility programs minimized the physical manipulations of the operator with the equipment, and libraries made it possible to avoid repeated programming of the same actions (performing operations I/O , calculations of mathematical functions, etc.).
In the 1950s - 60s the main ideas that define the functionality of the OS were formed and implemented: batch mode, time sharing and multitasking, separation of powers, real time scale, file structures andfile systems.
OS features
Main functions (the simplest OS):
§ Load applications into RAM and execute them.
§ Standardized access to peripherals (I/O devices).
§ RAM management (distribution between processes,virtual memory).
§ Controlling access to data on non-volatile media (such as hard disk, 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.
§ Protection of the system itself, as well as user data and programs, from the actions of users (malicious or unknowingly) or applications.
§ Differentiation of access rights and multi-user mode of operation ( 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 classified asservice software.
Utilities are used for:
§ Monitoring of indicators of sensors and equipment performance - monitoring of temperatures of the processor, video adapter; reading S.M.A. R.T. hard drives;
§ Control of equipment parameters - limiting the maximum speed of rotation of the CD-drive; changing the fan speed .
§ Indicators control - referential integrity check; correct recording of data.
§ Enhancements - formatting and / or re-partitioning the disk with data preservation, deletion without the possibility of recovery.
Utility types
§ Disk Utilities
¨ Defragmenters
¨ Check disk - search for incorrectly recorded or damaged in various ways files and sections of the disk and their subsequent removal for efficient use of disk space.
¨ Disk Cleanup - delete temporary files, unnecessary files, empty the "recycle bin".
¨ Disk partitioning - dividing a disk into logical disks, which can have different file systems and are 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 - compresses information on disks to increase the capacity of hard disks.
§ Registry utilities
§ Hardware Monitoring Utilities
§ Equipment Tests
§ assemblers - computer programs that convert the program in the form of source text intoassembly language V machine instructions in the form of object code.
§ translators - programs or technical means that perform the broadcast of the program.
§ compilers - Programs that translate the text of a program in a high-level language into an equivalent program in machine language.
§ interpreters - Programs (sometimes hardware) that parse instructions or program statements and immediately execute them
§ linkers (link editors) - programs that perform linking - 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 return data intended for input by another program, such as a compiler, for example.
§ A 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, search for text fragments, etc.
§ specializedsource editors- text editors for creating and editing program source code. A specialized source editor can be a standalone application, or it can be built into an integrated development environment (IDE).
§ routine libraries- collections of routines or objects used for software development.
§ GUI editors
Database management systems
Database Management System (DBMS) - specialized program(usually a set of programs) designed to organize and maintain a database.
Since database management systems are not a mandatory component of a computer system, they are often not classified as system software. Often, DBMS perform only a service function when other types of programs (web servers, application servers) are running, so they cannot always be attributed to application software. Therefore, a DBMS is sometimes referred to as middleware ( middleware)
Main 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 according to the method of accessing the database
§ File-server
In file-server DBMSs, data files are located centrally on file server . The DBMS kernel resides on each client computer. The data is accessed via the local network. Synchronization of reads and updates is carried out by means of file locks. The advantage of this architecture is the low CPU load of the server, and the disadvantage is the high load on the local network.
At the moment, file-server DBMS are considered obsolete.
Examples : Microsoft Access, Paradox , dBase .
§ Client-server
Such DBMS 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.
§ Embedded
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 certain user tasks and designed for direct interaction with the user. Mostoperating systemsapplication programs cannot access resources computer directly, but interact with the equipment and so on. through the operating system. Also in plain 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 an example 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
§ AWP
§ ACS
§ APCS
§ ASNI
§ Geo Information Systems
§ Billing systems
§ CRM
By scope
§ Application software for enterprises and organizations. For example, financial management, a system of relations with consumers, a supply chain. This type also includes departmental software of small businesses, as well as software of individual departments within a large enterprise. (Examples: Transport Cost Management, IT Help Desk)
§ The software provides user access to computer devices.
§ Enterprise infrastructure software. Provides general capabilities to support enterprise software. These are database management systems, email servers, network and security management.
§ Information worker software. Serves the needs of individual users in creating and managing 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.
§ Content Access Software. Used to access certain programs or resources without editing them (however, it may also include the editing function). Designed for groups or individual users of digital content. This, for example, media players, web browsers , auxiliary browsers, etc.
§ Educational software is similar in content to software for media and entertainment, but unlike it, it has clear requirements for testing user 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 research, education, or entertainment purposes.
§ Tool software in the field of media. Serve the needs of users who produce print or electronic media resources for other consumers, on a commercial or educational basis. These are printing programs typesetting , multimedia processing, HTML editors , editors for digital animation, digital audio, etc.
§ Applied programs for design and construction. Used in the development of hardware ("Hardware") and software. coverautomated design(computer aided design - CAD), computer-aided design (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, proprietary, 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 the authors or copyright holders and does not satisfyfree software criteria(availabilityopen source codenot enough).Copyright holderproprietary software reserves monopoly to its use, copying and modification, in whole or in material terms. It is common to refer to proprietary software as any non-free software, including semi-free.
Proprietary software that allows virtually unlimited use, distribution, and modification (including redistribution of modified versions) of the software for non-commercial purposes.
Free Software
Free Software (Free Software)- a wide range software solutions, in which User rights("freedom") to unlimited installation, launch, as well as free use, study, distribution and modification(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. Free software is usually available without any payment, but may have a price, for example in the form of charging for CDs or other media. For redistributable software to be free software, its source codes must be available to recipients, from which executable files can be obtained, with the appropriate licenses.
The SPO movement was born in 1983 when Richard Stallman formed the idea of the need to give software freedom ( English softwarefreedom) to users. In 1985, Stallman foundedFree Software Foundationto provide an organizational structure to promote your idea.
Free 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 work with 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"). The 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»).
§ You can freely improve the program and publish your improved version - in order to benefit the entire community (" third freedom"). The condition of this third freedom is the availability of the source code of the program and the possibility of making modifications and corrections to it.
The ability to fix bugs 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 bugs and defects are found in them, the number of which is usually unknown to anyone.
Only a program that satisfies all four of the listed principles can be considered free software, that is, it is guaranteed to be open and available for upgrading and fixing errors and defects, and having no restrictions on use and distribution. It should be emphasized that these principles only stipulate 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 stipulate in any way monetary relations associated with the distribution of programs, including do not offer free. In English 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 for use, but is not available for modification 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 distributed) while charging a fee, but at the same time observing the criteria of freedom: each user is given the right to receive the source code of programs at no additional cost (except for the price of the medium), modify them and distribute them further. Any software whose users are not given this right is non-free software, regardless of any other terms.
Open source software is a key feature of free software, so the later proposedEric Raymondthe term “open source software” seems to some to be even more appropriate to refer to this phenomenon than the one 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, from the properties inherent in free software - the ability to see the source code.
open source software( English open source software) - softwareopen source code . The source code of such programs is available for viewing, studying and changing, which allows the user to take part in the finalization of theopen program , use the code to create new programs and correct errors in them - through borrowing the source code, if license compatibility allows, or through studying the algorithms, data structures, technologies, techniques and interfaces used (since the source code can significantly supplement the documentation, and in the absence such itself serves as documentation).
Term open source(English) open source software) was created along with the definition in 1998 Eric Raymond and Bruce Perens, who argued that the term free software (free software ) is ambiguous in English and confuses many commercial entrepreneurs.
Overwhelming majority open programs is at the same time free. The definitions of open source and free software do not exactly match each other, but they are close, and most licenses match both.
The difference between the open source and free software movements lies mainly in priorities. Supporters of the term "open source" emphasize the effectiveness of open source as a method of developing, modernizing and maintaining programs. Proponents of the term "free software" believe that it is the rights to freely distribute, modify and study programs that are the main advantage of free open source software.
There are programs that are open source but are not free, such as UnRAR, a RAR unpacker. Its source code is in the public domain, but the license prohibits using it to create 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" in relation to non-free software.
Source codes for 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 definition of OpenSource. org. Such a restriction may be a requirement to refer to previous creators or a requirement to preserve the openness property when further distributing 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 license text without changing it.