Software Basics

Basic Concepts

The capabilities of a computer as the technical basis of a data processing system are related to the software (programs) used.

Program (program, routine) - an ordered sequence of computer commands (instructions) to solve a problem.

Software (software) - a set of data processing programs and documents necessary for their operation.

Programs are designed for machine implementation of tasks. Terms tasks And application are very widely used in the context of computer science and software.

Task (problem, task) - problem to be solved. Application (application) - software implementation on a computer of solving a problem.

Thus, a task means a problem to be implemented using information technology tools, and an application is a solution to a problem implemented on a computer. Application, being a synonym for the word "program", is considered a better term and is widely used in computer science.

Term task also used in the field of programming, especially in multiprogramming and multiprocessing mode, as a unit of operation of a computer system that requires the allocation of computing resources (processor time, main memory, etc.). In this chapter, this term is used in the sense of the first definition.

There are a large number of different classifications of problems. From the standpoint of the specifics of development and the type of software, we will distinguish between two classes of tasks - technological and functional.

Technological challenges questions are set and solved when organizing the technological process of information processing on a computer. Technological objectives are the basis for development software service tools as utilities, service programs, procedure libraries etc., used to ensure the operation of a computer, the development of other programs or the processing of data from functional tasks.

Functional tasks require solutions when implementing management functions within the information systems of subject areas. For example, managing the activities of a trading enterprise, planning product release, managing the transportation of goods, etc. Functional tasks together form a subject area and completely determine its specificity.

Subject (application) area (application domain) - a set of interconnected functions and management tasks with the help of which the achievement of set goals is achieved.

The process of creating programs can be represented as a sequence of actions presented in Fig. 8.1.

Rice. 8.1. Diagram of the program creation process

Formulation of the problem(problem definition) - this is a precise formulation of the solution to a problem on a computer with a description of the input and output information.

Problem statement is a generalized term that means the certainty of the content side of data processing. The formulation of the problem is associated with the specification of the basic parameters of its implementation, the identification of sources and the structure of input and output information required by the user.

The main characteristics of functional tasks, clarified in the process of its formalized formulation, include:

The purpose or purpose of a task, its place and connections with other tasks;

Conditions for solving a problem using computer technology;

Requirements for the frequency of problem solving;

Limitations on timing and accuracy of output information;

Composition and form of presentation of output information;

Sources of input information for solving the problem;

Users of the problem (who solves it and uses the results of the solution and uses the results of the solution).

Output information the task can be presented in the form of a document such as a listing or a machineogram), generated frames - a videogram on the monitor screen of a database file, an output signal to the control device (Fig. 8.2).

Input information for a task is defined as data supplied to the task code and used to solve it. The input information is the primary data of manually completed documents, information stored in database files (results of solving other problems, normative and reference information - classifiers, codifiers, reference books), input signals of transmitters (cm. rice. 8.2).

Typically, setting tasks is carried out in a single set of works to create a structure within a computer database, design forms and routes for document movement, and change the organization of management within the subject area.

Algorithm- a system of precisely formulated rules that defines the process of transforming acceptable initial data (input information) into the desired result (output information) in a finite number of steps.

The algorithm for solving the problem has a number of required properties:

Discreteness is the division of the information processing process into simpler stages (execution steps), the execution of which is not caused by a computer or a person! difficulties;

The certainty of the algorithm is the unambiguous execution of each individual step of information transformation;

Feasibility is the finiteness of the actions of a problem solving algorithm, which allows one to obtain the desired result with acceptable initial data in a finite number of steps;

Mass availability - the suitability of an algorithm for solving a certain class of problems.

The algorithm reflects the logic and method of generating the solution results, indicating the necessary calculation formulas, logical conditions, and relationships to control the reliability of the output results. The algorithm must provide for all situations that may arise in the process of solving a set of problems.

The algorithm for solving a set of problems and its software implementation are closely interrelated.

The specifics of the algorithm design methods used and the program development tools used can affect the form of presentation and content of the data processing algorithm. Note.

To solve problems, algorithms can be used that are embedded in ready-made software products - application software packages (APP) for functional purposes (see below). Standard models and methods for solving problems presented in method-oriented PPPs can also be used. In this case, the PPP is adapted to the conditions of a specific application; in all other cases, original algorithms and programs for implementing a set of tasks are developed. Programming(programming)

- theoretical and practical activities related to the creation of programs.

A program is the result of intellectual work, which is characterized by creativity, which, as we know, has no clear boundaries. Any program has the individuality of its developer; the program reflects a certain degree of skill of the programmer. At the same time, programming also involves routine work, which can and should have strict regulations and comply with standards.

Programming is based on a set of scientific disciplines aimed at research, development and application of methods and tools for program development (specialized tools for creating programs). When developing programs, resource-intensive and knowledge-intensive technologies and highly qualified intellectual work are used.

To solve problems, algorithms can be used that are embedded in ready-made software products - application software packages (APP) for functional purposes (see below). Standard models and methods for solving problems presented in method-oriented PPPs can also be used. In this case, the PPP is adapted to the conditions of a specific application; in all other cases, original algorithms and programs for implementing a set of tasks are developed. is a developed branch of economic activity associated with significant costs of material, labor and financial resources. According to foreign sources, in the mid-90s, up to 2% of the working population in the world was engaged in programming. The total turnover in the field of software creation reaches several hundred billion dollars a year.

In connection with the growing need for a variety of data processing programs, the issue of using effective programming technologies and their transfer to an industrial basis is very relevant. It means:

Standardization, replicability and reproduction of programming methods by various developers;

Introduction of advanced software development tools;

Using special methods and techniques for organizing work on program development.

The main category of specialists involved in software development is programmers (programmer).

  • Programmers are heterogeneous in their level of qualifications, as well as in the nature of their activities. Most often programmers are divided into systems and application programmers.(System programmer / system software, programmer) toolsmilh is engaged in development, operation and maintenance systemic
  • software that supports the operation of a computer and creates an environment for executing programs that ensure the implementation of functional tasks. (application software) Application programmer

carries out development and debugging of programs to solve functional problems. In the context of creating programs that are large in scale and processing functions, a new qualification appears - (software- programmer-analyst), analyst

In the process of creating programs at the initial stage of work, specialists also participate - task setters.

Most information systems are based on working with databases (DBs). If the database is integrated, providing work with data from many applications, the problem of organizational support for the database arises, which performed database administrator.

The main consumer of the programs is end user (end user), which, as a rule, falls into the category of non-programmer users. The end user is not a specialist in the field of programming, i.e. does not own the methods and technology of designing and creating programs, but has basic knowledge and skills in working with computer technology.

This qualification characteristic of the software user significantly influences the specification of requirements for created programs, interfaces, forms of machine documents, and technology for solving problems on a computer. It is possible to operate programs by qualified programmers or specially trained technical workers -

computer operators.

The interaction of various types of specialists involved in the development and operation of programs is shown in Fig. 8.3. In some cases, one specialist combines several types of activities. The database administrator and system programmer prepare information and software and technical conditions for the operation of programs. Dotted lines indicate the participation of a specialist as a consultant.

Rice. 8.3. Scheme of interaction between specialists related to the creation and operation of programs.

CHARACTERISTICS OF THE SOFTWARE PRODUCT

  • All programs, according to the nature of their use and categories of users, can be divided into two classes (Fig. 8.4) - utilitarian programs and software products (products). Utilitarian programs
  • (“software for yourself”) are designed to meet the needs of their developers. Most often, utilitarian programs perform the role of a service in data processing technology or are programs for solving functional problems that are not intended for wide distribution. Software products

(products) are designed to meet user needs and be widely distributed and sold.

Freeware - free programs, freely distributed, supported by the user himself, who is authorized to make the necessary changes to them;

Shareware are non-commercial (shareware) programs that can be used, as a rule, for free. Subject to regular use of such products, a payment of a certain amount is required.

A number of manufacturers use OEM programs(Original Equipment Manufacturer), i.e. embedded programs installed on computers or supplied with computer equipment.

The software product must be properly prepared for operation, have the necessary technical documentation, provide service and guarantee the reliable operation of the program, have a manufacturer's trademark, and preferably have a state registration code. Only under such conditions can the created software complex be called a software product.

Software - a set of interrelated programs to solve a specific problem (task) of mass demand, prepared for sale like any type of industrial product.

The path from “programs for yourself” to software products is quite long; it is associated with changes in the technical and software environment for the development and operation of programs, with the emergence and development of an independent industry - the information business, which is characterized by the division of labor of software developer firms, their further specialization, formation of a market for software and information services.

Software products can be created as:

Individual development to order;

Development for mass distribution among users.

In individual development, the development company creates an original software product that takes into account the specifics of data processing for a specific customer.

When developing for mass distribution, the development company, on the one hand, must ensure the universality of the data processing functions performed, and, on the other hand, the flexibility and customization of the software product for the conditions of a specific application. A distinctive feature of software products should be their systematic nature - the functional completeness and completeness of the implemented processing functions, which are used together.

The software product is developed on the basis of industrial technology for performing design work using modern programming tools. The specificity lies in the uniqueness of the process of developing algorithms and programs, depending on the nature of information processing and the tools used. Significant resources are spent on creating software products - labor, material, financial;

highly qualified developers are required.

As a rule, software products require maintenance, which is carried out by specialized companies - software distributors (distributors), and less often - by development companies. Maintaining programs for mass use involves a lot of labor - correcting detected errors, creating new versions of programs, etc. Software product support

- maintaining the functionality of the software product, transitioning to new versions, making changes, correcting detected errors, etc.

Software products, unlike traditional software products, do not have a strictly regulated set of quality characteristics specified when creating programs, or these characteristics cannot be accurately specified or assessed in advance, because the same processing functions provided by the software may have different depth of elaboration. Even the time and costs for developing software products cannot be determined with a high degree of accuracy in advance. The main characteristics of the programs are:

Algorithmic complexity (logic of information processing algorithms);

The composition and depth of elaboration of the implemented processing functions;

Completeness and consistency of processing functions;

Volume of program files;

Requirements for the operating system and technical means of processing on the part of the software;

Disk memory capacity;

The size of RAM for running programs;

Processor type;

Operating system version;

Availability of a computer network, etc.

Software products have a variety of quality indicators that reflect the following aspects:

How well (simple, reliable, effective) can the software product be used;

How easy is it to use the software product?

Is it possible to use the software product if the conditions for its use change, etc.

The tree of software product quality characteristics is shown in Fig. software products means their independence from the technical complex of the data processing system, operating environment, network data processing technology, specifics of the subject area, etc. A mobile (multi-platform) software product can be installed on various computer models and operating systems, without restrictions on its operation in a computer network. The processing functions of such a software product are suitable for mass use without any changes.

Reliability The operation of a software product is determined by the smoothness and stability of the programs, the accuracy of the execution of the prescribed processing functions, and the ability to diagnose errors that arise during the operation of the programs.

Efficiency a software product is assessed both from the point of view of its direct purpose - user requirements, and from the point of view of the consumption of computing resources necessary for its operation.

The consumption of computing resources is assessed through the amount of external memory for storing programs and the amount of RAM for running programs.

Taking into account the human factor means providing a friendly interface for the end user, the presence of a context-sensitive hint or training system as part of the software, good documentation for mastering and using the functionality built into the software, analysis and diagnosis of errors, etc.

Modifiability software products means the ability to make changes, for example, expanding processing functions, moving to another technical processing base, etc.

Communication skills software products is based on their maximum possible integration with other programs, ensuring data exchange in common presentation formats (export/import of databases, implementation or linking of processing objects, etc.).

In the context of the existence of a software market, the important characteristics are:

Price,

Number of sales;

Time spent on the market (duration of sales);

Reputation of the developer company and the program;

Availability of software products for similar purposes.

Mass-distributed software products are sold at prices that take into account demand and market conditions (availability and prices of competing programs).

A specific feature of software products (unlike most industrial products) is also that their operation must be carried out on a legal basis - license agreements between the developer and users in compliance with the copyrights of software product developers.

Life cycle of a software product.

Programs of any type are characterized by a life cycle consisting of separate stages:

a) marketing of the software market, specification of requirements for a software product;

b) design of the software product structure;

c) programming (creation of program code), testing, autonomous and complex debugging of programs;

d) documentation of the software product, preparation of operational and technological documentation;

e) entering the software market, distributing a software product;

f) operation of the software product by users;

g) software product maintenance;

h) withdrawal of the software product from sale, refusal of support. In Fig. 8.6 depicts the stages of the life cycle and shows their temporal correspondence to each other. Let's consider the content of individual stages of the life cycle.

Rice. 8.6. Stages of the software product life cycle.

Marketing And specification software product are designed to study the requirements for the created software product, namely:

Determining the composition and purpose of data processing functions of a software product;

Establishing user requirements for the nature of interaction with the software product, the type of user interface (menu system, use of a mouse, types of prompts, types of on-screen documents, etc.);

requirements for a set of hardware and software for operating the software product, etc.

At this stage, it is necessary to perform a formalized statement of the problem.

If a software product is not created to order and it is intended to enter the software market, marketing is carried out in full: competitive software products and analogues are studied, user requirements for the software product are summarized, the potential capacity of the sales market is established, and a forecast of price and sales volume is given. In addition, it is important to estimate the material, labor and financial resources necessary for the development of a software product, as well as the approximate duration of the main stages of the software product’s life cycle.

If a software product is created as a custom software product for a specific customer, at this stage it is also important to correctly formulate and document the task for its development. A misunderstood requirement for a software product can lead to undesirable results during its operation.

Structure design of a software product is associated with the algorithmization of the data processing process, the detailing of processing functions, the development of the structure of the software product (architecture of software modules), the structure of the information base (database) of the task, the choice of methods and means for creating programs - programming technologies.

Programming, testing And debugging programs are the technical implementation of design solutions and are executed using the selected developer tools (algorithmic languages ​​and programming systems, developer tool environments, etc.).

For large and complex software systems that have a developed modular structure, individual work at this stage can be performed in parallel, reducing the overall development time of the software product. An important role belongs to the programming and debugging tools used in this process, since they affect the complexity of the work, its cost, and the quality of the created programs.

Documenting the software product is a mandatory type of work performed, as a rule, not by the developer himself, but by a person associated with the distribution and implementation of the software product. The documentation must contain the necessary information on installing and ensuring reliable operation of the software product, support users when performing processing functions, and determine the procedure for integrating the software product with other programs. The success of distribution and operation of a software product largely depends on the quality of its documentation.

At the machine level of a software product, as a rule, the following are created:

Automated context-sensitive help (HELP);

Demo versions operating in active mode similar to educational systems (electronic textbook) or passive mode (video, cartoon) - to demonstrate the functionality of the software product and the information technology of its use.

The entry of a software product into the software market is associated with the organization of sales to the mass user. This stage should be as short as possible; standard marketing techniques are used to promote software products: advertising, increasing the number of sales channels, creating a dealer and distribution network, pricing policy - sales at discounts, after-sales service, etc.

An ongoing program of marketing activities and software product support is required. As a rule, each software product has its own shape of the sales curve, which reflects demand (Fig. 8.7).

Initially, sales of the software product go up - the increasing portion of the curve. Then comes the stabilization of sales of the software product. The development company strives for the maximum duration of the period of stable sales at a high level. Next, there is a drop in sales volume, which is a signal for a change in the company's marketing policy in relation to this software product; modification of this product is required, a price change or withdrawal from sale.

Rice. 8.7. Software product sales curve.

Operation of a software product proceeds in parallel with its maintenance, and the operation of programs can begin even in the absence of maintenance or continue if maintenance is completed for some time. After a software product is removed from sale, it can also be maintained for a certain period of time. During the operation of the software product, detected errors are eliminated.

Removal of a software product from sale and refusal to support occurs, as a rule, in the event of a change in the technical policy of the developer company, ineffective operation of the software product, the presence of fatal errors in it, or lack of demand.

The life cycle length for different software products is not the same.

The peculiarity of software product development is that at the initial stages decisions are made that are implemented at subsequent stages.

Mistakes made, for example, when specifying requirements for a software product, lead to huge losses in subsequent stages of development or operation of the software product and even to the failure of the entire project.

Thus, if it is necessary to make changes to the specification of a software product, all subsequent stages of design and creation of the software product should be repeated in full.

PROTECTION OF SOFTWARE PRODUCTS.

Basic concepts about protecting software products.

Software products and computer databases are the subject of intellectual work of highly qualified specialists. The process of designing and implementing software products is characterized by significant material and labor costs, is based on the use of high-tech technologies and tools, and requires the use of an appropriate level of expensive computer equipment. This necessitates the need to take measures to protect the interests of program developers and creators of computer databases from unauthorized use.

Software is also subject to protection due to the complexity and labor-intensive nature of restoring its functionality and the importance of the software for the operation of the information system.

Software protection has the following goals:

Restriction of unauthorized access to programs or their deliberate destruction and theft;

Elimination of unauthorized copying (replication) of programs.

The software product and databases must be protected in several areas from exposure:

1) human - theft of computer media and software documentation; malfunction of a software product, etc.;

2) hardware - connecting hardware to a computer for reading programs and data or their physical destruction;

3) specialized programs - rendering a software product or database inoperable (for example, virus infection), unauthorized copying of programs and databases, etc.

The simplest and most affordable way to protect software products and databases is to restrict access. Access control to the software product and database is built by:

Limitations of programs or data, processing functions available to users, etc.

Cryptographic methods for protecting database information or head software modules can also be used.

Software systems to protect against unauthorized copying.

These systems prevent unlicensed use of software products and databases. The program is executed only when some unique, non-copyable key element is identified.

Such key elements could be:

A floppy disk on which a key that cannot be copied is written;

Certain characteristics of computer hardware;

A special device (electronic key) connected to a computer and designed to issue an identification code.

Software copy protection systems for software products:

Identify the environment from which the program will be launched;

They establish that the environment from which the program is launched corresponds to the one for which authorized launch is allowed;

Develop a response to a launch from an unauthorized environment;

Register authorized copying;

They counteract the study of system algorithms and programs.

The following methods are used to identify startup floppy disks:

1) causing damage to the surface of the floppy disk ("laser hole"), which can hardly be reproduced in an unauthorized copy of the floppy disk;

2) non-standard formatting of the launch floppy disk.

Identification of the computer environment is ensured by:

1) fixing the location of programs on a hard magnetic disk (so-called non-relocatable programs);

2) binding to the BIOS number (calculation and memorization with subsequent verification when starting the system checksum);

3) binding to a hardware (electronic) key inserted into the I/O port, etc.

In the West, the most popular methods of legal protection of software products and databases.

Legal methods of protecting software products and databases.

Legal methods for protecting programs include:

  • patent protection;
  • trade secrets law;
  • licensing agreements and contracts;
  • copyright law.
  • economic rights that give their owners the right to receive economic benefits from the sale or use of software products and databases;
  • moral rights that ensure the protection of the author’s personality in his work.

In many civilized countries, unauthorized copying of programs for the purpose of sale or free distribution is considered a state crime, punishable by a fine or imprisonment. But, unfortunately, copyright itself does not provide protection for a new idea, concept, methodology and technology for software development, so additional measures for their protection are required.

Patent protection establishes priority in the development and use of a new approach or method applied in the development of programs, certifies their originality.

Status trade secret for the program, limits the circle of persons familiar with or authorized to operate it, and also determines the extent of their responsibility for disclosing secrets. For example, password access to a software product or database is used, including passwords for individual modes (reading, writing, updating, etc.). Programs, like any material object of great value, must be protected from theft and deliberate destruction.

License Agreements apply to all aspects of legal protection of software products, including copyright, patent protection, and trade secrets. The most commonly used license agreements are copyright transfer agreements.

License- an agreement for the transfer by one person (licensor) to another person (licensee) of the right to use a name, product, technology or service. The licensor increases its income by collecting license fees, expands the distribution area of ​​the software product or database; the licensee generates income through their use.

The license agreement stipulates all operating conditions for the programs, including the creation of copies. Each copy of the program must have the same marks as the original:

  • copyright symbol (usually ©) and the name of the developer, year of release of the program, and other attributes;
  • mark of patent protection or trade secret;
  • trademarks corresponding to other software products used in the program (usually and the name of the company that developed the software product);
  • symbol of the registered right to distribute a software product (usually ®).

There are several types of software licenses. Exclusive license - sale of all property rights to a software product or database, the license buyer is granted the exclusive right to use them, and the author or patent owner refuses to use them independently or provide them to others.

This is the most expensive type of license; it is used for monopoly ownership in order to extract additional profit or to terminate the existence of a software product on the software market.

Simple license - the licensor grants the licensee the right to use a software product or database, reserving the right to use them and provide them under similar conditions to an unlimited number of persons (the licensee cannot itself issue sublicenses, it can only sell copies of the purchased software product or database).

This type of license is purchased by a dealer (trader) or manufacturing companies that use the purchased licenses as an ancillary product to their main activity. For example, many manufacturers and companies selling computer equipment sell computer equipment with installed licensed software (operating system, text editor, spreadsheet, graphics packages, etc.).

Label license - license for one copy of a software product or database. This type of license is used for retail sales. Each official buyer enters into a license agreement with the seller for their use, but the developer's copyright is retained.

Economic relations between the licensor and the licensee can be structured in various ways. For the right to use a software product or database, a one-time fee (lump sum payment) is paid, which is the actual price of the license. Periodic payments to the licensor for the right to use are also possible in the form royalties- a fixed rate at certain time intervals during the license agreement, usually a percentage of the cost of software products or databases.

The Law on the Protection of Software Products and Computer Databases recognizes the author as the individual through whose creative activity they were created. The author, regardless of his property rights, owns personal copyrights (see Fig. 8.8): authorship, name, inviolability (integrity) of programs or databases.

  • release into the world;
  • reproduce in any form, by any means;
  • distribute;
  • modify;
  • make any other use of the software product or database.

Property rights to a software product or database may be transferred partially or completely to other individuals or legal entities under a contract. Property rights are classified as inheritable. If a software product or database is created in the performance of official duties, property rights belong to the employer.

Software products and databases can be used by third party users on the basis of an agreement with the copyright holder.

A person who legally owns a copy of a program or database has the right, without obtaining additional permission from the copyright holder, to carry out any actions related to the functioning of the software product or database in accordance with its purpose, including:

  • install one copy, unless otherwise agreed with the copyright holder, of a software product or database on a computer;
  • correct obvious errors;
  • adapt a software product or database;
  • make insurance copies.

The capabilities of a computer as the technical basis of a data processing system are related to the software (programs) used.

Program- an ordered sequence of computer commands (instructions) to solve a problem.

Software- a set of data processing programs and documents necessary for their operation.

Programs are designed for machine implementation of tasks. The terms task and application have very wide usage in the context of computer science and software. Wherein problem is a problem to be solved, and application- software implementation on a computer of solving a problem.

All programs according to the nature of use and categories of users can be divided into two classes - utilitarian programs And software products (products).

All programs, according to the nature of their use and categories of users, can be divided into two classes (Fig. 8.4) - utilitarian programs and software products (products). designed to meet the needs of their developers. Most often, utilitarian programs play the role of a service in data processing technology or are programs for solving functional problems that are not intended for wide distribution.

Software products (products) designed to meet user needs, wide distribution and sale.

Currently, there are other options for the legal distribution of software products that appeared using global or regional telecommunications:

· freeware- free programs, freely distributed, are supported by the user himself, who is authorized to make the necessary changes to them;

· shareware- non-commercial (shareware) programs that can be used, as a rule, for free. Subject to regular use of such products, a payment of a certain amount is required.

The software product must be properly prepared for operation, have the necessary technical documentation, provide service and a guarantee of reliable operation of the program, have a manufacturer's trademark, and preferably have a state registration code

Software is a set of interrelated programs to solve a specific problem (task) of mass demand, prepared for sale like any type of industrial product.

(“software for yourself”) are designed to meet the needs of their developers. Most often, utilitarian programs perform the role of a service in data processing technology or are programs for solving functional problems that are not intended for wide distribution. can be created like:

· individual development to order;

· development for mass distribution among users.

Typically, software products require escort, which is carried out by specialized companies that distribute programs (distributors), less often by development companies.

Software product support- this is supporting the functionality of a software product, transitioning to new versions, making changes, correcting detected errors, etc.

The main characteristics of software products are:

Mobility software products means their independence from the technical complex of the data processing system, operating environment, network data processing technology, specifics of the subject area, etc.

Reliability The operation of a software product is determined by the smoothness and stability of the programs, the accuracy of the execution of the prescribed processing functions, and the ability to diagnose errors that arise during the operation of the programs.

Efficiency a software product is assessed both from the point of view of its direct purpose - user requirements, and from the point of view of the consumption of computing resources necessary for its operation.

Taking into account the human factor means providing a friendly interface for the end user, the presence of a context-sensitive hint or training system as part of the software, good documentation for mastering and using the functionality built into the software, analysis and diagnosis of errors, etc.

Modifiability software products means the ability to make changes, for example, expanding processing functions, moving to another technical processing base, etc.

Communication skills software products is based on their maximum possible integration with other programs, ensuring data exchange in common presentation formats (export/import of databases, implementation or linking of processing objects, etc.).

In the context of the existence of a software market, the important characteristics are:

· price; 2) number of sales; 3) time spent on the market (duration of sales); 4) popularity of the developer company and the program; 5) availability of software products for similar purposes.

A specific feature of software products (unlike most industrial products) is also that their operation must be carried out on a legal basis - license agreements between the developer and users in compliance with the copyrights of the software product developers.

Methods for protecting software products

Methods for protecting software products can be divided into software and legal. When using software systems, the program is executed only when some unique non-copyable key element. So key element can be:

· a floppy disk on which a key that cannot be copied is written;

· certain characteristics of computer hardware;

a special device (electronic key) connected to a computer and designed to issue an identification code

Patent protection establishes priority in the development and use of a new approach or method applied in the development of programs, certifies their originality.

Status trade secret for the program, limits the circle of persons familiar with or authorized to operate it, and also determines the extent of their responsibility for disclosing secrets.

License Agreements apply to all aspects of legal protection of software products, including copyright, patent protection, and trade secrets. The most commonly used license agreements are copyright transfer agreements.

License- agreement for transfer by one person (licensor) to another person (to the licensee) rights to use a name, product, technology or service. Licensor increases its income by collecting license fees, expands the distribution area of ​​a software product or database; licensee generates income through their use.

Exclusive license- sale of all property rights to a software product or database, the license buyer is granted the exclusive right to use them, and the author or patent owner refuses to use them independently or provide them to others.

Simple license- the licensor grants the licensee the right to use the software product or database, reserving the right to use it and provide it under similar conditions to an unlimited number of persons

Label license- license for one copy of a software product or database. This type of license is used for retail sales. Each official buyer enters into a license agreement with the seller for their use, but the developer's copyright is retained.

Law on the Protection of Software Products and Computer Databases by the author recognizes the individual as a result of whose creative activity they were created. To the author regardless of his property rights belong personal copyright: authorship, name, integrity (integrity) of programs or databases.

What is meant by computer software?

Software) is a set of software tools for computers that ensure the functioning, diagnostics and testing of their hardware, as well as the development, debugging and execution of any user tasks.

Software also includes the entire area of ​​activity in software design and development:

  • · program design technology;
  • · methods of testing programs;
  • · analysis of the quality of program performance;
  • · documenting programs;
  • · development and use of software tools that facilitate the software design process

What classes are the programs divided into?

All programs are divided into two classes based on the nature of use and categories of users - utilitarian programs and software products.

All programs, according to the nature of their use and categories of users, can be divided into two classes (Fig. 8.4) - utilitarian programs and software products (products). designed to meet the needs of their developers. Most often, they serve as a service in data processing technology or are programs for solving functional problems that are not intended for wide distribution.

Software products (PP) designed to meet user needs, wide distribution and sale.

PP can be classified by area of ​​use:

  • · hardware of computers and computer networks;
  • · software development technology;
  • · functional tasks of various subject areas.

Based on this, there are 3 classes of software products:

  • · system software;
  • · programming technology tools;
  • · application packages.

System software- a set of programs and software systems to ensure the operation of computers and computer networks. It includes basic and service software. In turn, the basic software consists of: basic input/output system (BIOS), operating system (OS), operating shells. Service software consists of: computer health diagnostic programs, anti-virus programs, disk maintenance programs, data archiving programs, network maintenance programs.

BIOS is a set of programs that ensure interaction of the OS and other programs with various computer devices (keyboard, video adapter, disk drive, timer, etc.). BIOS functions also include automatic testing of the main hardware components (RAM, etc.) when the machine is turned on, searching the disk for an OS loader program and loading it from the disk into RAM.

operating system designed to control the execution of user programs, planning and managing computer computing resources. It acts as a link between the computer hardware, on the one hand, and the programs being executed and the user, on the other. The OS is usually stored in the computer's external memory - on disk.

OS features include:

  • · carrying out a dialogue with the user;
  • · input/output and data management;
  • · planning and organizing the program processing process;
  • · distribution of resources;
  • · launching programs for execution;
  • · various auxiliary maintenance operations;
  • · transfer of information between various internal devices;
  • · software support for peripheral devices.

Application programs are designed to solve specific functional tasks of the user.

General purpose application software- a set of programs for solving common universal problems. These programs are used by most computer users.

Types of general-purpose application software: text editors, word processors, spreadsheets, graphic editors, etc.

Application software for special (professional) purposes- a set of programs for solving narrower problems and professional tasks of various subject areas (architecture, construction, music and film industries)

Types of special-purpose application software: desktop publishing systems, electronic encyclopedias and textbooks, computer-aided translation systems, server DBMS, three-dimensional graphics editors, etc.

Software products. Main characteristics of PP. PP classes

Software-- a set of interrelated programs to solve a specific problem of mass demand, prepared for implementation.

The main characteristics of the programs are:

  • · completeness and consistency of processing functions;
  • · volume of program files;
  • · requirements for the operating system and technical means of processing;
  • · disk memory volume;
  • · size of RAM for running programs;
  • · processor type;
  • · operating system version.

Classes of software products by area of ​​their use:

1. System software

Designed to perform various auxiliary functions: computer resource management; creating copies of used information; checking the functionality of computer devices; issuing help information about the computer.

System software includes: operating system; antivirus programs; archiving programs; network maintenance programs, etc.

  • 2. Packages application programs- directly ensure the performance of the work required by the user. Examples of application programs: text editors; computer graphics systems (educational, scientific, engineering, etc.); spreadsheets; database management systems; publishing systems; accounting programs; computer-aided design systems; expert systems; artificial intelligence systems (spell checking, translation, text recognition); browsers; training programs, etc.
  • 3. Toolkit programming technologies(facilitate the process of creating new computer programs in a specific programming language). Examples of programming systems: Quck Basic; Turbo Basic; Visual Basic; Pascal; C++; Delphi et al.

Question 1. Characteristics of the software product. Software engineering, its goals..

PP- a complex of interconnections. programs for solving def. trials (tasks) mass. demand, prepared for sale like any other type of industry. products.

The PP must be properly prepared for operation and have the necessary technical equipment. documentation, provide service and a guarantee of reliability. For work done, we must have a manufacturer's trademark, and it is also desirable to have a state code. registration. Only then prog. the complex can be called PP.

All programs according to the nature of use and categories of benefits can be divided into two classes:

• utilitarian programs(“programs for yourself”) - designed to perform the tasks of their developers. Most often, utilitarian programs perform the role of a service in data processing technology or are programs for solving functional problems that are not intended for wide distribution;

• software products(products) - designed to fulfill user tasks, wide distribution and sale.

PP can be created as:

• individual. r development to order (the specifics of data processing for a specific user are taken into account);

development for massdistribution among users (it is necessary to ensure the universality of the data processing functions performed, flexibility and customization of the software for the conditions of a specific application).

PPs have variety quality indicators(fig), which reflect the following aspects:

how well (simple, reliable, effective) can the software be used;

how easy it is to operate the software;

is it possible to use the software if the conditions for its use change, etc.

The tree of software product quality characteristics is shown in Fig. PP means their independence from technical technology. data processing complex, operations. environment, network technology of data processing, specifics of the subject. region, etc. Mobile (multi-platform) software can be installed on various computer models and OS, without restrictions on its operation in computing conditions. from online. The processing functions of such PP are suitable for the masses. used without any changes.

Reliability The operation of the software is determined by the stability and uninterrupted operation of the programs, the accuracy of the execution of the prescribed processing functions, and the ability to diagnose errors that arise during the operation of the software.

Effect PP is assessed both from the point of view of the user's requirements and from the point of view. flow calc. resources necessary for its operation. The consumption will be calculated. r resources is assessed through the volume of external. memory for placement pr-m and volume of opera. memory to run them.

Taking into account the human factor means ensuring friendships. interface for end user operation,


Close