Treatment of depression with auto-training. Auto-training exercises to calm the nervous system. step: progressive muscle relaxation

Each exam question may have multiple answers from different authors. The answer may contain text, formulas, pictures. The author of the exam or the author of the answer to the exam can delete or edit a question.

7.1 Concept and classification of software (software) Computer software is a set of programs and documentation necessary for the operation of a computer. Programs are ordered sequences of commands. The ultimate goal of any computer program is to control hardware. Even if at first glance the program does not interact with the hardware in any way, does not require any data input from the input device and does not output data to output devices, its work is still based on controlling the computer’s hardware devices.

The software and hardware in a computer work inextricably linked and in continuous interaction.

The composition of the computer system software is called software configuration. There is a relationship between programs, as well as between physical nodes and blocks - many programs work relying on other lower-level programs, that is, they work on the basis of an interprogram interface. The possibility of the existence of such an interface is also based on the existence of technical conditions and interaction protocols. In practice, the interface is provided by dividing the software into several interacting types.

The following types of software exist (Figure 7.1):

Basic software;

System software;

Application software;

Toolkit of programming technologies.

Figure 7.1. - Software classification

Basic software - the lowest level of software. It is responsible for interaction with basic software. As a rule, the basic software is directly included in the basic hardware and is stored in special chips called permanent storage devices(ROM - Read Only Memory). Programs and data are written (“flashed”) into ROM chips at the production stage and cannot be changed during operation.

In cases where changing the basic software during operation is technically feasible, ROM chips are used instead reprogrammable read-only memory devices (PROM -Erasable and Programmable Read Only Memory) . In this case, changing the contents of the ROM can be performed either directly as part of the computer system (this technology is called flash technology ), and outside it, on special devices called programmers .

Basic software includes basic input/output system.

BIOS ( BIOS Basic Input / Output System ) - a set of small programs whose functions include initial testing of equipment and ensuring the interaction of computer components. There are several types of BIOS: for example, video BIOS ensures the operation of the video card, starting from testing it at the moment of switching on and ending with the interaction of the video card with the processor, BIOS of the SCSI controller acts as a translator between the interface and the system bus, etc. But the most important one in the computer is a system BIOS, the functions of which include:

Testing the computer when turning on the power using special test programs;

Search and connect to the system other BIOS located on expansion cards;

Distribution of resources between computer components.

The BIOS contents are available to the processor without accessing the disks, which allows the computer to operate even if the disk system is damaged. The programs contained in the system BIOS ensure the interaction of the processor, RAM, cache memory, chipset chips with external (peripheral) devices, as well as with each other.

Physically, the BIOS is a set of read-only memory (ROM, Read Memory) chips located on the motherboard.

System software ( System Software ) — a set of programs and software systems to ensure the operation of a computer and computer networks.

System software directed :

1. To create an operating environment for the functioning of other programs;

2. To ensure reliable and efficient operation of the computer itself and the computer network;

3. To carry out diagnostics and preventive maintenance of computer equipment and computer networks;

4. To perform auxiliary technological processes (copying, archiving, restoring program files and databases, etc.).

This class of software products is closely related to the type of computer and is an integral part of it.

System software is of a general nature of application, regardless of the specifics of the subject area. They are subject to high demands on reliability and manufacturability, convenience and efficiency of use.

Application packages ( application program package ) — a set of interconnected programs for solving problems of a certain class of a specific subject area.

Application packages serve as software tools for functional tasks and are the largest class of software products. This class includes software products that perform processing of various subject areas. This class of software products can be very specific to individual subject areas.

Programming Technology Toolkit - a set of programs and software packages that provide technology for the development, debugging and implementation of software products.

Programming technology tools support the program development process and include specialized software products that are developer tools. Software products support all technological stages of the design, programming, debugging and testing of created programs.

Programming technology tools are divided into the following groups:

1. Tools for creating applications, including: local tools that ensure the execution of individual work on creating programs; integrated environments for program developers, ensuring the implementation of a set of interrelated works to create programs;

2. CASE technologies ( Computed Aided Software Engineering) - a system for designing programs using a computer, representing methods of analysis, design and creation of software systems and intended to automate the processes of development and implementation of information systems. This is a software package that automates the entire technological process of analysis, design, development and maintenance of complex software systems.

Software is an integral part of a computer system. It is a logical continuation of technical means. The scope of application of a particular computer is determined by the software created for it.

The computer itself does not have knowledge of any application. All this knowledge is concentrated in programs executed on computers.

The software of modern computers includes millions of programs, from gaming to scientific ones.

Software classification

Programs running on a computer can be divided into three categories:

  • application programs , directly ensuring the performance of work required by users: editing texts, drawing pictures, processing information arrays, etc.;
  • system programs , performing various auxiliary functions, such as creating a copy of the information used, issuing help information about the computer, checking the functionality of computer devices, etc.;
  • Auxiliary Software (tool systems and utilities )

It is clear that the boundaries between these three classes of programs are very arbitrary; for example, a system program may include a text editor, i.e. an application program.

Application software. Hundreds of thousands of different application programs have been developed and used for the IBM PC for various applications. The most widely used programs are:

  1. preparing texts (documents) on a computer - text editors;
  2. preparation of documents of typographic quality � publishing systems;
  3. table data processing - table processors;
  4. processing of information arrays � database management systems.

An application program is any specific program that helps solve a problem within a given problem area.

For example, where a computer is tasked with monitoring the financial activities of a company, the application will be a payroll preparation program.

Application programs can also be of a general nature, for example, they provide compilation and printing of documents, etc.

Application programs can be used either autonomously, that is, to solve a given task without the help of other programs, or as part of software systems or packages.

The most commonly used types of application programs.

Graphic editor allow you to create and edit pictures on your computer screen. Typically, the user is given the ability to draw lines, curves, color areas of the screen, create inscriptions in various fonts, etc. Most editors allow you to process images obtained using scanners, as well as display the resulting images in such a way that they can be included in a document prepared using a text editor or publishing system.

Business and scientific graphics systems allow you to visually display various data and dependencies on the screen. Business graphics systems make it possible to display various types of graphs and charts (histograms, pie and pie charts, etc.)

Database management systems (DBMS) allow you to manage large information arrays with databases. The simplest systems of this type allow you to process one array of information on a computer, for example, a personal file cabinet. They provide entry, search, record sorting, reporting, etc. Even unskilled users can easily work with such DBMSs, since all actions in them are carried out using menus and other interactive tools.

Table processors provide work with large tables of numbers. When working with a spreadsheet processor, a rectangular table is displayed on the screen, the cells of which can contain numbers, explanatory texts, formulas for calculating the value in the cells based on the available data. All common spreadsheet processors allow you to recalculate the values ​​of table elements using given formulas, build various graphs based on the data in the table, etc. Many of them provide additional features. Some of them expand the capabilities of data processing with three-dimensional tables, creating your own input and output forms, macro commands, connecting with databases, etc. But most of the additions are decorative in nature, including sound effects, creating slide shows; here the developers’ imagination is inexhaustible.

Computer-aided design (CAD) systems allow you to draw and design various mechanisms using a computer.

  1. Integrated Systems� combine the capabilities of a database management system, a spreadsheet processor, a text editor, a business graphics system, and sometimes other capabilities.
  2. Accounting programs� are intended for accounting, preparation of financial statements and financial analysis of enterprises. Due to the incompatibility of domestic accounting with foreign ones, in our country almost exclusively domestic accounting programs are used. Some of them are designed to automate certain areas of accounting - payroll, accounting for goods, materials in warehouses, etc.

Shell programs. A very popular class of system programs are shell programs. They provide a more convenient and visual way to communicate with the computer than using the DOS command line. Many users are so accustomed to the convenience provided by their favorite shell program that they feel “out of place” without it. The most popular shell programs are Norton Commander, Xtree Pro Gold, PC Shell from the PC Tools suite. The MS DOS operating system, starting with version 4.0, also includes its own Shell shell program (however, not very popular).

Operating shells, unlike conventional shell programs, not only give the user a more visual means of performing frequently used actions, but also provide new capabilities for the programs that are launched. Most often this is:

  • graphical interface, i.e. a set of tools for displaying images on the screen and manipulating them, building menus, windows on the screen, etc.;
  • multiprogramming, i.e. possibility of simultaneous execution of several programs;
  • advanced tools for exchanging information between programs.

Operating shells simplify the creation of graphical programs, providing a large number of convenient tools for this, and expand the capabilities of the computer. But the price for this is increased resource requirements. So, to work effectively with Microsoft Windows, you need an AT/386 computer with 4 MB of RAM. The most popular add-on program is Microsoft Windows; Desq View is sometimes used and other shells (GEM, Geo Works, etc.) are used much less frequently.

System programs can also include a large number of so-called utilities, i.e. auxiliary programs. Below we will briefly describe some of the varieties of these programs. Utilities are often combined into complexes; the most popular are Norton Utilities, PC Tools Deluxe and Mace Utilities.

Packer programs allow, through the use of special methods of “packaging” information, to compress information on disks, i.e. create smaller copies of files, as well as combine copies of several files into one archive file. The use of packer programs is very useful when creating an archive of files, since in most cases it is much more convenient to store pre-compressed packer programs on floppy disks. It should be noted that different packers are not compatible with each other - an archive file created by one packer most often cannot be read by another.

Programs for creating backup copies of information on disks allow you to quickly copy information available on your computer’s hard drive to floppy disks or tape drives.

Antivirus programs are designed to prevent infection by a computer virus and eliminate the consequences of infection by a virus.

Programs for computer diagnostics They allow you to check the computer configuration (amount of memory, its use, types of disks, etc.), as well as check the performance of computer devices (primarily hard drives).

Dynamic disk compression programs allow you to increase the amount of information stored on disks by dynamically compressing it. These programs compress information when writing to disk, and when reading, restore it in its original form.

Offline printing programs allow you to print files on a printer while doing other work on your computer.

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

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

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

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

Process information and control computer operation programs, not devices.

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

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

Purpose of the software:

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

The software allows you to:

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

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

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

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

Extension of existing software requires the following capabilities:

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

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

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

Basic principles of modern software development:

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

Programs can be installed on a computer in two ways:

  • Installation from the distribution kit
  • Simple copying

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

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

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

The internal software performs the following main functions:

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

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

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

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

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

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

The drivers have the following features:

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

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

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

The OS is a set of PC control programs.

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

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

Classification of software by functionality

General software classification scheme

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

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

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

Software

Software

1) Application programs

2) System programs:

  • computer resource management.
  • OS.
  • programming systems.
  • instrumental systems.
  • integrated packages.
  • computer graphics systems.

Software life cycle and its standardization, software life cycle processes, groups of software life cycle processes

In software development technologies, the concept of life cycle is one of the main ones.

Software life cycle (Software life cycle)– a period of time that begins from the moment a decision is made on the need to create software and ends at the moment of its complete decommissioning.

Process– a set of interrelated actions (and each action is a set of tasks) that transforms some input data into output data. Each process is characterized by tasks and methods for solving them, input 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. main processes :

1.1. acquisition;

1.2. supply;

1.3. development;

1.4. exploitation;

1.5. accompaniment;

2. auxiliary processes :

2.1. documentation;

2.2. configuration management;

2.3. quality assurance;

2.4. verification;

2.5. certification;

2.6. participatory assessment;

2.7. audit (determining compliance with 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 actions and tasks performed by the developer, and covers work on creating software and its components in accordance with specified requirements, including the preparation of design and operational documentation, preparation of materials necessary for testing the functionality and appropriate quality of software products, materials necessary for organizing personnel training .

The development process includes the following steps:

1) Preparatory work begins with choosing a software life cycle model that matches the scale, significance and complexity of the project.

2) Analysis of system requirements implies determining its functionality, user requirements, requirements for reliability and security, external interfaces, etc.

3) Architecture design of a system at a high level is to identify the components of its hardware, software and operations performed by the personnel operating the system.

4) Analysis of software requirements

Software architecture design

6) Detailed design BY

Software coding and testing

8) Software integration involves assembling the developed software components in accordance with the integration plan and testing 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 consists of assembling all its components, including software and hardware.

11) After integration, the system, in turn, undergoes qualification testing for compliance with the set of requirements for it.

12) Software installation carried out by the developer in accordance with the plan in the environment and on the equipment provided for by the contract.

13) Software acceptance involves assessing the results of software and system qualification testing and documenting the assessment results, which are carried out by the customer with the help of the developer. The developer performs the final delivery 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 guarantee software product development is very significant in modern conditions. This guarantee is provided by process quality certificates, confirming its compliance with accepted international standards. The most authoritative standards 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– this is the degree of their manageability, controllability and efficiency. Increasing technological maturity signifies the potential for increased sustainability of processes and indicates the degree to which software creation and maintenance processes are used effectively and consistently 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, whose dismissal leads to the termination of the project.

2. At a repeatable level formal procedures are implemented to carry out the basic elements of the design process. The results of the process comply with the specified requirements and standards. Project implementation at this level is planned and controlled, and the means used for these purposes make it possible to repeat 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 developed software no longer depends on the abilities of individuals.

4. At a manageable level The company accepts quantitative indicators of the quality of both software products and technological processes. This ensures 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 highest optimizing, the main task of the company is to constantly improve and increase the efficiency of existing processes and introduce 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 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 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: determination of functional and non-functional software requirements.

Design: Translating software requirements into multiple design representations. 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: checking for correctness, correcting errors in functions and logic.

Implementation: installation of developed software at the customer, personnel training.

Escort: making changes to the operating software (error corrections, adaptation to changes in the environment external to the software, software improvements according to customer requirements).

Advantages:

The model is well known to consumers;

Works well for projects that are fairly straightforward

Very easy to understand, simple and easy to use;

Even inexperienced personnel can follow its structure;

Characterized by stability of requirements;

Works well when quality requirements dominate over cost and project schedule requirements;

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 through the use of a timeline, since the point at which each phase is completed is used as a stage.

Flaws:

Each attempt to go back one or two phases to correct any problem or deficiency will result in a significant increase in costs and disruption to the schedule;

The expression “35 percent completed” does not make any sense and is not an indicator for the project manager;

Integration of all obtained results 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 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 the scope of the project.

Application criteria: The waterfall model can be used to create software for which all requirements can be quite accurately and completely formulated at the very beginning of development.

Application criteria

Layout (prototyping) is the process of creating a model of the software product being developed. 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).

Layout is 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;

The possibility of confusion and distortion of information when determining system requirements is reduced;

New user requirements can be introduced into the process;

Yes
No
permanent, visible signs of progress are formed;

The quality of the product is determined by the active participation of the user in the development process;

Due to fewer modifications, development costs are reduced;

Risk management is ensured;

Flaws:

Hurry-up prototypes suffer from inadequate or missing documentation;

Given the creation of a working prototype, insufficient attention may be paid to the quality of the overall software or long-term operational reliability.

Solving difficult problems may be pushed into the future. This leads to the fact that subsequent products may not live up to the expectations placed on the prototype;

If users are unable to participate in the project, the final product may be adversely affected;

If the project ends early, the end user will only be left with a partial system;

Is addictive and can 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;

Temporary demonstrations are carried out;

A new, unique development is being carried out;

Developers are unsure of the optimal 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 Link Types

Connections split or connect internal flows:

Connection types

Graphic designation Name View Initialization rules
& Connection "I" Expanding Each final action must be initiated
folding Each initial action must be completed
X Exclusive OR connection Expanding One and only one final action is initiated
folding One and only one initial action must complete
O OR connection Expanding One or more final actions are initiated
folding One or more initial actions must complete

Signposts 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 contents

The technological cycle of information system software development includes three processes: analysis, synthesis and support. The analysis seeks an answer to the question: “What should the future system do?” During the synthesis process, an 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-level model:

· modification of a level is simplified and does not affect other levels;

· Separation of application functions from database management functions simplifies 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 phase is to decompose subsystems into modules. There are two known types of modular decomposition:

· data flow model;

· object model.

Module is a piece of program text that is a building block for the physical structure of the system. Typically, a module consists of an interface part and an implementation part.

Modularity– a property of a system that can be decomposed into a number of internally related and weakly dependent modules. Modularity provides the intelligent ability to create software as complex as desired.

The principle of “divide and conquer”. As the number of modules increases (and their size decreases), the costs of their implementation also increase.

Modularization costs

Thus, there is an optimal number of Opt modules that results in 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 defined interface.

Information secrecy means the following:

· all modules are independent, exchanging only the information necessary for operation;

· access to module operations and structures is limited.

Advantages of information secrecy:

· provides the possibility of developing modules by various, independent teams;

· provides easy modification of the system (the likelihood of errors spreading is very small, since most 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 during the process of maintaining the software system. To provide such capabilities, the system must meet special requirements: system modules must have high connectivity and low cohesion.


Types of Module Calls

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 of a change from one state to another. The stay of the modeled object in the first state may be accompanied by the execution of certain actions, and the transition to the second state will be possible after completion of these actions, as well as after satisfying some additional conditions. In this case, the transition is said to fire, or the transition fires. Before the transition is triggered, the object is in the state preceding it, called the initial state, or in the source (not to be confused with the initial state - these are different concepts), and after its firing, the object is in the state subsequent to it (target state).

In a state diagram, a transition is depicted as a solid line with an arrow pointing to the target state.

Complex transitions

Selection and connection

Choice pseudo state intended for modeling several alternative branches when implementing the behavior of a finite state machine

Junction pseudo state is a vertex with free semantics that is used to connect multiple transitions together

Split and merge

Fork vertex – a pseudostate designed to split an incoming transition into two or more transitions that have as their targets vertices in orthogonal regions of the composite state.

Join vertex – a pseudostate designed to connect multiple transitions that have as their sources vertices from different orthogonal regions of the composite state.

Entry and exit points

Entry point – pseudo-state designed to simulate the entry into some finite state machine or composite state

Exit point – pseudo-state designed to simulate the output of some finite state machine or composite state

Pseudo-state of shallow history (shallow pseudo state)

Shallow pseudo state is intended to represent the most recently active substate of a composite state after leaving it.

Deep history pseudo-state (deep pseudo state)

Deep pseudo state is intended to represent the last active configuration of the composite state after leaving it.

Interfaces

Provided interface– the interface that the component offers to its environment.

Required interface– an interface that a component requires from its environment to perform its declared functionality, contract, or behavior.

Port

A port defines a distinguishable point of interaction between a component and its environment or between a component and its internal parts

The port name is not required

If there is no port name, its type is associated with the type of the interface to which the port is associated.

Gathering Connector
(assembly connector)

– a connector that links two components in the context of provided and required services.

Delegating connector
(delegation connector)

– a connector that links the external contract of a component to the implementation of this behavior by the internal parts of that component.

The delegating connector performs one of the following tasks:

Passing messages or signals arriving at a port of a component from outside for processing to some internal part of the component or another port.

Passing messages or signals coming from some internal part of a component to an external port of the component for processing


Node

Is a model element that represents a certain computing resource for deploying various artifacts on it

In practice, to clarify the specification of a node, various text stereotypes can be used, which focus attention on the purpose of this node.

Although UML 2.x does not define specific node stereotypes, the developers have proposed the following text stereotypes for this purpose:

"application server" (application server), "client workstation" (client workstation), "mobile device" (mobile device), "embedded device" (built-in device), "processor" (processor), "sensor" (sensor) , “modem” (modem), “net” (network), “printer” (printer) and others.

Concept of software, classification of software

Software is a set of programs executed by a computer system.

Software also includes the entire field of software design and development activities.

Software- an integral part of the computer. It is a logical continuation of computer technical means, expanding their capabilities and scope of use.

1) Application programs, directly ensuring the implementation of the work required by users.

2) System programs:

  • computer resource management.
  • creating copies of used information.
  • checking the functionality of computer devices.
  • issuing reference information about the computer, etc.

3) Instrumental software systems, facilitating the process of creating new computer programs.

More or less definitely the following software groups:

  • OS.
  • programming systems.
  • instrumental systems.
  • integrated packages.
  • dynamic spreadsheets.
  • computer graphics systems.
  • database management systems (DBMS).
  • application software.