Hardware and software setup

Software development. System Development Support Tools by Software Development Tools Program

Stage 1: before the mid-50s.

The main costs are associated with coding (in machine codes). Autocodes (languages ​​using mnemonic notation for commands) and translators from them (assemblers) appear.

The possibilities of separate compilation and portability of programs are implemented. Program loaders and linkers appear.

Stage 2: mid-50s - mid-60s

The sizes of programs are increasing, a gap is revealed between the concepts of problem areas and machine-oriented languages. Various high-level languages ​​(algorithmic, universal) are emerging:

Fortran (1954-1957);

Algol-60 (1958-1960);

Cobol (1959-1961);

and translators from them (compilers). Almost all basic data types, operations on them, control structures and ways of representing them in programs are invented and tested, various options parameterization of subroutines.

Stage 3: mid-60s - early 70s.

The size of the software is sharply increasing, there is a transition to the collective nature of work. The requirements for software are increasing as a result of the transition to commodity production.

The ratio of software development costs is changing (40% or more is spent on debugging, design and documentation), coding is one of the most simple species works. "Large" programming languages ​​are used and created - PL/1, ALGOL-68, SIMULA-67, generalizing and integrating previously found solutions.

There are advanced programming systems with optimizing and debugging translators, macro libraries, libraries standard programs, specialized text editors, analysis tools and interactive debugging in terms of the input language. Developed operating systems, the first DBMS, numerous documentation automation systems, software configuration management systems (tracking modifications and building software versions) are being developed.

Stage 4 (“software development crisis stage”): early 1970s–mid 1970s

Despite the development of tools, the productivity of programmers is not growing. Moreover, due to the increasing requirements for software and the non-linear growth of its complexity, labor productivity is falling. The terms of software development are broken, its cost is growing, its quality is unpredictable, traditional methods (providing additional human and material resources) do not work, which is characterized as a "software crisis".

Methodologies of structured programming are being recognized (Dijkstra, 1968), the foundations of programming technology are being formed (Pascal language (N. Wirth), 1971).

Stage 5: 1976 - our time. Stage of post-crisis development of tools.

1976 - publication of Boehm's work, which introduces the concept of the software life cycle and indicates that the main costs are not for development, but for software maintenance.

Programming languages:

C (early 1970s, first fully described in 1978);

Modula-2 (1978, developed by Oberon language (1988));

Prolog (1972, spread since 1980);

Smalltalk (1970s, introduced as Smalltalk-80 in 1980);

C++ (the beginning of the 1980s, the name is 1983, it has existed in its usual form since 1990);

java( Java version 1.0 - 1996, Java 2.0 - 1998, Java 5 - 2004...);

C# (1998-2001, version 1.0 - 2000-2002, version 2.0 - 2003-2005, version 3.0 - 2004-2008, version 4.0 - 2008-2010).

Integrated software development environments are being developed. The object-oriented approach to design and programming is gaining acceptance. Programs are being developed that support the creation of software at each stage.

test questions:

1. What activities does the development of a software product include?

2. What are the stages in software development under the Rational Unified Process (RUP)?

3. What does the use of tools provide?

4. What are the components of the program? Purpose of each part.

5. Program and software definitions.

6. What properties should the software have?

7. What programming languages ​​are used in the development of programs?

8. Definition of tool software.

9. What four groups can tool software be divided into? Software examples for each group.

10. By what criteria can programs from the same class be compared?

11. What are the stages in the development of software development tools?

12. Purpose and main characteristics of compilers (assemblers) and link editors.

13. Appointment and main characteristics of text editors.

14. Purpose and main characteristics of debuggers.

15. Purpose and main characteristics of programs for creating installers.

16. Purpose and main characteristics of resource editors.

17. Purpose and main characteristics of profilers.

18. Purpose and main characteristics of version support programs.

19. Purpose and main characteristics of programs for creating help files (documentation).

20. Purpose and main characteristics of documentation generators.

21. Purpose and main characteristics of disassemblers and decompilers.

22. Purpose and main characteristics of programs for tracking system activity and changes occurring in the system.

23. Purpose and main characteristics of programs-verifiers and containers.

24. Purpose and main characteristics of programs for protecting the developed software (protectors).

25. Purpose and main characteristics of the SDK.

26. Purpose and main characteristics of parsers.

27. Appointment of technological standards.


SUBJECT: Software development methodologies.

Literature: 1. Zelkowitz M., Shaw A., Gannon J. Principles of software development.

2. Ghezzi K., Jazayeri M., Mandrioli D. Fundamentals of software engineering.

3. Kamaev V. A., Kosterin V. V. Programming technologies.

Consider the concepts of methodology, method and means.

Definition 1: Method(from the Greek methodos - a method of research or knowledge, theory or teaching) - a technique or system of techniques for the practical implementation of something in any subject area, a set of techniques or operations of practical or theoretical development of reality, subordinated to the solution of specific problems.

The method includes facilities- through which the action is carried out and ways- how the action is carried out.

Definition 2: Methodology is a system of principles, as well as a set of ideas, concepts, methods, methods and means that determine the style of software development.

A methodology is an implementation of a standard. The standards themselves only speak of what should be, leaving the freedom of choice and adaptation.

Specific things are implemented through the chosen methodology. It is she who determines how the development will be carried out. There are many successful software development methodologies. The choice of a specific methodology depends on the size of the team, on the specifics and complexity of the project, on the stability and maturity of the processes in the company, and on the personal qualities of the employees.

Methodologies are the core of software development management theory.

Depending on the life cycle model used, the methodologies are divided into:

Waterfall (cascade);

Iterative (spiral).

There is also a more general classification into:

Forecasted;

Adaptive.

Projected Methodologies focus on detailed planning for the future. Planned tasks and resources are known for the entire duration of the project. The team has difficulty responding to possible changes. The plan is optimized based on the scope of work and existing requirements. Changing requirements can lead to a significant change in the plan as well as the design of the project. Often a dedicated "change management" committee is set up to ensure that only the most important requirements are taken into account in the project.

Adaptive Methodologies are aimed at overcoming the expected incompleteness of the requirements and their constant change. When requirements change, the development team also changes. A team involved in agile development has a hard time predicting the future of a project. There is an exact plan only for the near future. More distant plans exist only as declarations of project goals, expected costs and results.

Cascading Development or waterfall model - a model of the software development process, in which the development process looks like a flow, sequentially passing through the phases of requirements analysis, design, implementation, testing, integration and support.

The principal feature of the cascade approach is: the transition to the next stage is carried out only after the work at the current stage is fully completed, and there are no returns to the passed stages . Each stage ends with some results that serve as input for the next stage (Fig. 1).

Rice. 1. Cascade life cycle model.

Each stage culminates in the release of a set of documentation sufficient for development to be continued by another development team. The criterion for the quality of development with this approach is the accuracy of fulfilling the specifications of the terms of reference.

Advantages of using the cascade method:

At each stage, a complete set of project documentation is formed that meets the requirements for completeness and consistency;

The stages of work carried out in a logical sequence allow you to plan the timing of the completion of all work and the corresponding costs.

The cascade approach has proven itself in the construction of electronic information systems, for which at the very beginning of development it is possible to formulate all the requirements quite accurately and completely in order to give developers the freedom to implement them technically as best as possible.

At the same time, this approach has a number of disadvantages, primarily due to the fact that the real process of creating software never fully fits into such a rigid scheme. The process of creating software is, as a rule, iterative in nature: the results of the next stage often cause changes in the design decisions developed at previous stages. Thus, there is a constant need to return to previous stages and clarify or revise previously made decisions (Fig. 2). The depicted scheme can be attributed to a separate model - the model with intermediate control, in which inter-stage adjustments provide greater reliability compared to the cascade model, although they increase the entire development period.

The main disadvantage of the waterfall model is a significant delay in obtaining results and, as a result, a high risk of creating a system that does not meet the changing needs of users. This is due to two reasons:

Users are not able to immediately state all their requirements and cannot foresee how they will change during development;

During development, there may be changes in the external environment that will affect the requirements for the system.

Rice. 2. Cascade life cycle model in practice.

In the framework of the cascade approach, the requirements for the product being developed are fixed in the form of a technical task for the entire time of its creation, and the results obtained are agreed with users only at the points planned after the completion of each stage (it is possible to adjust the results according to the comments of users if they do not affect the requirements set out in the terms of reference). Thus, users can make significant comments only after the work on the system is fully completed. Users may receive a system that does not meet their needs. As a result, one has to start new project who may suffer the same fate.

To overcome these problems, a spiral life cycle model was proposed in the mid-1980s (Fig. 3).

Rice. 3. Spiral (iterative) life cycle model.

Its main feature is the following: application software is not created immediately, as in the case of a waterfall approach, but in parts using the prototyping method .

Under prototype refers to an active software component that implements individual functions and external interfaces of the software being developed. The creation of prototypes is carried out in several iterations, or turns of the spiral. Each iteration corresponds to the creation of a fragment or version of the software, it clarifies the goals and characteristics of the project, evaluates the quality of the results obtained, and plans the work of the next iteration. At each iteration, the risk of exceeding the project time and cost is carefully assessed to determine whether another iteration is necessary, the degree of completeness and accuracy in understanding the system requirements, and whether the project should be terminated.

The spiral model relieves users and developers of the need to accurately and completely formulate system requirements at the initial stage, since they are refined at each iteration. Thus, the details of the project are deepened and consistently concretized, and as a result, a reasonable option is selected, which is brought to implementation.

The spiral model is a classic example of an evolutionary design strategy. The Spiral Model (by Barry Boehm, 1988) builds on the best features of the classic life cycle and layout, to which a new element is added - risk analysis, which was not previously available.

The Spiral Model defines four activities represented by individual sectors of the spiral:

1. Planning - defining goals, options and constraints.

2. Risk analysis - analysis of options and risk recognition/selection.

3. Engineering - next level product development.

4. Evaluation - evaluation by the customer of the current design results.

The integrating aspect of the spiral model is evident when considering the radial dimension of the spiral. With each iteration along the spiral (moving from the center to the periphery), more and more full versions ON.

In the first turn of the spiral, initial goals, options and constraints are defined, risk is recognized and analyzed. If the risk analysis shows the uncertainty of the requirements, prototyping (used in the design quadrant) comes to the aid of the developer and the customer. Modeling can be used to further identify problematic and refined requirements. The customer evaluates the engineering (design) work and makes suggestions for modifications. The next phase of planning and risk analysis is based on customer suggestions. In each cycle in the spiral, the results of the risk analysis are formed in the form of "continue, do not continue." If the risk is too great, the project may be stopped.

In most cases, the spiral continues, with each step pushing developers towards a more general system model.

With the iterative method, the missing piece of work can be done in the next iteration. The main task is to show users of the system a workable product as soon as possible, thereby activating the process of clarifying and supplementing requirements.

The spiral model does not exclude the cascade approach at the final stages of the project in cases where the requirements for the system are fully defined.

The main problem of the spiral cycle is determining the moment of transition to the next stage. To solve it, it is necessary to introduce time constraints on each of the stages of the life cycle. The transition proceeds according to plan, even if not all planned work is completed. The plan is drawn up on the basis of statistical data obtained from previous projects and the personal experience of the developers.

Advantages of the spiral model:

The most realistic (in the form of evolution) reflects software development;

Allows you to explicitly take into account the risk at each stage of the development evolution;

Incorporates the systematic approach step into the iterative development structure;

Uses simulation to reduce risk and improve the software product.

Disadvantages of the spiral model:

Novelty (there is no sufficient statistics on the effectiveness of the model);

Increased requirements for the customer;

Difficulties in monitoring and managing development time.

To date, the following iterative software development methodologies can be distinguished:

Rational Unified Process (RUP)

Flexible development methodologies (SCRUM, KANBAN, DSDM, MSF, ALM, XP)

Agile development methodology(Eng. Agile software development).

Most agile methodologies aim to minimize risk by reducing development to a series of short cycles called iterations which usually last one to two weeks. Each iteration by itself looks like software project in miniature, and includes all the tasks needed to produce a mini-boost in functionality: planning, requirements analysis, design, coding, testing, and documentation. While a single iteration is generally not enough to release new version product, it is assumed that the Agile Software Project is ready for release at the end of each iteration. At the end of each iteration, the team reassesses development priorities.

Agile methods emphasize face-to-face communication. Most agile teams are located in the same office. At a minimum, it also includes "customers" (customers who define the product, such as product managers, business analysts, or customers). The office may also include testers, interface designers, technical writers, and managers.

One of the most well-known and advanced agile methodologies is the SCRUM methodology.

SCRUM- a methodology designed for small teams (up to 10 people). The entire project is divided into iterations (sprints) lasting 30 days each. A list of system features is selected that are planned to be implemented during the next sprint. The most important conditions are the invariability of the selected functions during the execution of one iteration and strict adherence to the release dates of the next release, even if it is not possible to implement all the planned functionality by its release. The development manager holds daily 20-minute meetings, which are called scrum, the result of which is the definition of the system function implemented the previous day, the difficulties encountered and the plan for the next day. Such meetings allow you to constantly monitor the progress of the project, quickly identify problems that have arisen and respond quickly to them.

KANBAN– an agile software development methodology that is task-oriented.

Fundamental rules:

Development Visualization:

o division of work into tasks;

o use of marks about the position of the task in development;

Limitation of work performed simultaneously at each stage of development;

Cycle time measurement (average time to complete one task) and process optimization.

Benefits of KANBAN:

Reducing the number of parallel tasks significantly reduces the execution time of each individual task;

Rapid identification of problematic tasks;

Calculate the time to complete the average task.

DYNAMIC SYSTEM DEVELOPMENT METHOD(DSDM) appeared as a result of the work of a consortium of 17 British companies. A whole organization is involved in the development of manuals on this methodology, the organization of training courses, accreditation programs, etc. In addition, the value of DSDM has a monetary value.

It all starts with a study of the feasibility of the program and its scope. In the first case, you are trying to figure out if DSDM is right for a given project. It is supposed to study the scope of the program at a short series of seminars, where programmers will learn about the business area for which they will work. It also discusses the main provisions regarding the architecture of the future system and the project plan.

The process is further divided into three interrelated cycles: the functional model cycle is responsible for creating analytical documentation and prototypes, the design and construction cycle is for bringing the system to a working state, and finally, the last cycle - the implementation cycle - ensures the deployment of the software system.

The basic principles on which DSDM is built are:

Active interaction with users;

Frequent releases of versions;

Independence of developers in decision-making;

Testing throughout the entire cycle of work.

Like most other agile methodologies, DSDM uses short iterations of two to six weeks each. Particular emphasis is placed on high quality work and adaptability to changing requirements.

MICROSOFT SOLUTIONS FRAMEWORK(MSF) is a software development methodology proposed by Microsoft Corporation. MSF builds on practical experience Microsoft and describes the management of people and work processes in the process of developing a solution.

Basic concepts and principles of the MSF process model:

A single vision of the project - all interested parties and just project participants must clearly understand the final result, everyone should understand the purpose of the project;

Tradeoff management - finding trade-offs between project resources, schedule, and realizable opportunities;

Flexibility - readiness for changing design conditions;

Focus on business priorities - focus on the return and benefits that the consumer of the solution expects to receive;

Encourage free communication within the project;

Creation of basic versions - fixing the state of any project artifact, including program code, project plan, user manual, server settings and subsequent effective change management, project analytics.

MSF provides proven methodologies for planning, designing, developing and implementing successful IT solutions. With its flexibility, scalability and lack of rigid guidelines, MSF is able to meet the needs of any size organization or project team. The MSF methodology consists of principles, models and disciplines for managing personnel, processes, technological elements and issues related to all these factors that are typical for most projects.

Application Lifecycle Management(ALM) - developed and maintained by Borland.

extreme programming(XP) - extreme programming supported by an open community of independent developers.

The essence and concept of instrumental software

Tool software (IPO) - software intended for use in the design, development and maintenance of programs.

Applied tooling in the development phase. Tool software is a set of programs used to assist programmers in their work, to assist software development managers in their quest to control the development process and the resulting output. The most well-known representatives of this piece of software are programs of translators from programming languages, which help programmers write machine instructions. The tool programs are translators from Fortran, Cobol, Jovial, BASIC, APL and Pascal. They facilitate the process of creating new work programs. However, translators from languages ​​are only the most well-known part of the tool programs; there are a great many of them.

The use of computers to help create new programs is far from obvious to people who are not professional programmers. It often happens that professionals talk about tool (development phase) and system (use phase) software in one breath, assuming that the uninitiated in the secrets of their skill is aware of this role of tool software. As in the use phase (for application programs), system software works in the development phase, but only in conjunction with the tooling. Tool software or programming systems are systems for automating the development of new programs in a programming language.

In the most general case, to create a program in the chosen programming language (language system programming) you need to have the following components:

1. Text editor for creating a file with the source code of the program.

2. Compiler or interpreter. The source text is translated into an intermediate object code using a compiler program. The source text of a large program consists of several modules (files with source texts). Each module is compiled into separate file with object code, which then need to be combined into a single whole.

3. A linker or assembler that links object modules and generates a workable application - executable code.

An executable code is a complete program that can be run on any computer that has the operating system for which the program was created. As a rule, the resulting file has the extension .EXE or .COM.

Recently, visual programming methods (using scripting languages) have become widespread, focused on creating Windows applications. This process is automated in environments rapid design. In this case, ready-made visual components are used, which are configured using special editors.

The most popular editors (programming systems using visual tools) for visual design:

Borland Delphi - designed to solve almost any application programming problem.

Borland C++ Builder is an excellent tool for developing DOS and Windows applications.

Microsoft Visual Basic is a popular tool for creating Windows programs.

Microsoft Visual C++ - this tool allows you to develop any applications that run in the OS environment Microsoft type Windows

Thus, the essence of instrumental software is to create any executable program, by transforming formally boolean expressions into executable machine code, as well as its control and correction.

Tasks and functions of the tool software

Tool software, as a special kind of software, is characterized by general and particular

functions, as for all software in general. General Functions considered by us above, and specialized functions inherent only this type programs are:

1. Creation of the text of the developed program using specially established code words (programming language), as well as a certain set of characters and their location in the created file - the syntax of the program.

2. Translation of the text of the created program into a machine-oriented code accessible for computer recognition. In the case of a significant volume of the created program, it is divided into separate modules and each of the modules is translated separately.

3. Connection of individual modules into a single executable code, in compliance with the necessary structure, ensuring the coordination of the interaction of individual parts with each other.

4. Testing and control of the created program, detection and elimination of formal, logical and syntactic errors, checking programs for prohibited codes, as well as assessing the performance and potential of the created program.

Types of tool software

Based on the tasks assigned to the instrumental software, a large number of different types of instrumental software can be distinguished:

Text editors

Integrated Development Environments

Compilers

Interpreters

Linkers

Parsers and parser generators (see Javacc)

Assemblers

Debuggers

Profilers

Documentation Generators

Code coverage analysis tools

Continuous Integration Tools

Automated testing tools

Version control systems, etc.

It should be noted that shells for creating application programs are also created by tool programs and therefore can be referred to as application programs. Consider briefly the purpose of some instrumental programs.

Text editors.

Text editor - computer program designed for processing text files such as creating and making changes.

CAD composition

CAD is a system that combines technical means, mathematical and software, the parameters and characteristics of which are chosen with maximum consideration for the features of engineering design and construction tasks. In CAD, the convenience of using programs is ensured through the use of means of operational communication between an engineer and a computer, special problem-oriented languages, and the availability of an information and reference base.

The structural components of CAD are subsystems that have all the properties of systems and are created as independent systems. These are CAD parts selected according to some criteria, which ensure the fulfillment of some completed design tasks with the receipt of appropriate design solutions and design documents.

According to the purpose of the CAD subsystem, they are divided into two types: design and maintenance.

Designing includes subsystems that perform design procedures and operations, for example:

machine layout subsystem;

subsystem for designing assembly units;

Subsystem of parts design;

· subsystem of control circuit design;

· technological design subsystem.

Servicing includes subsystems designed to maintain the performance of design subsystems, for example:

· subsystem of graphic display of design objects;

documentation subsystem;

Information retrieval subsystem, etc.

Depending on the relationship to the design object, two types of design subsystems are distinguished:

object-oriented (objective);

Object-independent (invariant).

Object subsystems include subsystems that perform one or more design procedures or operations that are directly dependent on a specific design object, for example:

subsystem for designing technological systems;

subsystem for modeling dynamics, designed structure, etc.

Invariant subsystems include subsystems that perform unified design procedures and operations, for example:

subsystem for calculating machine parts;

subsystem for calculating cutting conditions;

subsystem for calculating technical and economic indicators, etc.

The design process is implemented in subsystems in the form of a certain sequence of design procedures and operations. The design procedure corresponds to a part of the design subsystem, as a result of which a certain design decision is made. It consists of elementary design operations, has a firmly established order of their implementation and is aimed at achieving a local goal in the design process. A design operation is understood as a conditionally allocated part of the design procedure or an elementary action performed by the designer in the design process. Examples of design procedures can be the procedures for developing a kinematic or layout diagram of a machine tool, technology for processing products, etc., and examples of design operations are the calculation of allowances, the solution of an equation, etc.

Structural unity of CAD subsystems is ensured by strict regulation of links between different types of software, united by a common target function for this subsystem. There are the following types of security:

methodological support - documents that reflect the composition, rules for the selection and operation of design automation tools;

· linguistic support - design languages, terminology;

mathematical software - methods, mathematical models, algorithms;

software - documents with program texts, programs on machine media and operational documents;

· technical support - devices of computer and organizational equipment, means of data transmission, measuring and other devices and their combinations;

· Information Support- documents containing a description of standard design procedures, standard design solutions, standard elements, components, materials and other data;

organizational support - regulations and instructions, orders, staffing and other documents regulating the organizational structure of units and their interaction with a set of design automation tools.

· 64 CALS technologies.

CALS-technologies serve as a means of integrating industrial automated systems into a single multifunctional system. The purpose of integrating automated design and control systems is to increase the efficiency of creating and using complex equipment.

In modern conditions of the formation of the global information society the role of information and information technologies in the preparation of a future specialist increases significantly. In the near future, the strategic potential of society will not be energy resources, but information and scientific knowledge. Information becomes the main resource for the scientific, technical and socio-economic development of society, significantly affects the accelerated development of science, technology and various industries, plays a significant role in the process of modernizing education. The value-semantic characteristic of education at a university and the professional activity of specialists should be expressed in the formation of an intellectual professional environment that most fully implements the tasks of research and design activities.

Widespread computerization of all types of human activities: from traditional intellectual tasks of a scientific nature to the automation of production, trade, commercial, banking and other activities serves to increase the efficiency of production. In a market economy, competition is successfully maintained only by enterprises that use modern information technologies in their activities.

It is information technology, along with progressive technologies of material production, that can significantly increase labor productivity and product quality and at the same time significantly reduce the time for launching new products that meet the needs and expectations of consumers. All of the above primarily applies to complex science-intensive products, including products for technical purposes.

The experience gained in the process of implementing various autonomous information systems made it possible to realize the need to integrate various information technologies into a single complex based on the creation within an enterprise or group of enterprises (virtual enterprise) of an integrated information environment that supports all stages of the life cycle of products. The professional environment most fully reveals the opportunities for professional development, using new information technologies in science and in the field of production process management. Innovative technologies in the field of the information processing industry with the introduction of CALS-(Continuous Acquisition and Life cycle Support) technology - continuous information support of the life cycle of the projected object, takes the automation of production process management to a new level.

The use of information technologies based on the CALS ideology is one of the factors contributing to a more efficient implementation of the system automated control enterprise.

CALS-technologies serve as a means of integrating industrial automated systems into a single multifunctional system. The purpose of integrating automated design and control systems is to increase the efficiency of creating and using complex equipment.

The essence of the CALS concept is the application of the principles and technologies of information support at all stages of the product life cycle, based on the use of an integrated information environment that provides uniform methods for managing processes and interacting with all participants in this cycle: product customers (including government agencies and departments), suppliers (manufacturers) ) products, operating and maintenance personnel. These principles and technologies are implemented in accordance with the requirements international standards, regulating the rules of management and interaction mainly through electronic data exchange .

When using CALS-technology, the quality of products is improved due to a more complete consideration of available information in the design and management decisions, as well as material and time costs for designing and manufacturing products are reduced. In the process of implementing this technology, the validity of decisions made in an automated enterprise management system (AMS) will be higher if the decision maker and the corresponding control programs have online access not only to the AMMS database, but also to databases of other automated systems and , therefore, can optimize work plans, the content of applications, the distribution of performers, the allocation of finance, etc. At the same time, online access should be understood not only as the possibility of reading data from the database, but also as the ease of their correct interpretation, i.e. consistency in syntax and semantics with the protocols adopted in the APCS. Technological subsystems must accurately perceive and correctly interpret data coming from computer-aided design subsystems. This is not so easy to achieve if the main enterprise and related organizations work with different automated systems. In addition, the problem of protecting information along the entire perimeter of the operation of technological subsystems becomes relevant.

The use of CALS technologies can significantly reduce the amount of design work, since descriptions of previously completed successful developments of components and devices, many components of equipment, machines and systems that were designed earlier are stored in databases of network servers available to any user of CALS technology. Availability and protection are again ensured by the consistency of formats, methods, manuals in different parts of the overall integrated system. In addition, there are more opportunities for specialization of enterprises, up to the creation of virtual enterprises, which also helps to reduce costs.

In the process of implementing CALS technology, operating costs are significantly reduced due to the implementation of integrated logistics support functions. The solution of problems of maintainability, integration of products into various systems and environments, adaptation to changing operating conditions, etc. is greatly facilitated. These data integration benefits are achieved by using modern CALS technologies.

Industrial automated systems can work autonomously, and at present the organization of the production management process takes place on this basis. However, the efficiency of automation will be noticeably higher if the data generated in one of the systems is available in other systems, since the decisions made in them will become more informed.

The experience of implementing CALS technology shows that in order to achieve the proper level of interaction between industrial automated systems, it is necessary to create a single information space within both individual enterprises and, more importantly, within the framework of an association of enterprises. United informational space It is ensured due to the unification of both the form and the content of information about specific products at various stages of their life cycle.

The unification of the form is achieved by using standard formats and languages ​​for representing information in interprogram exchanges and in documentation.

Content unification, understood as an unambiguous correct interpretation of data about a particular product at all stages of its life cycle, is ensured by the development of application ontologies (meta-descriptions) fixed in CALS application protocols.

CAD - what is it?

So, what are computer-aided design systems? CAD refers to automated systems that are designed to implement a particular information technology through design. In practice, CAD is technical systems, which allow you to automate, ensure the functioning of the processes that make up the development of projects. CAD, depending on the context, may refer to:

software used as the main element of the relevant infrastructure;

A set of technical and personnel systems (including those that involve the use of CAD in the form of software) used in an enterprise to automate the project development process;

Thus, it is possible to single out a broader and narrower interpretation of the term in question. It is difficult to say which of these interpretations is more often used in business. It all depends on the specific scope of use of computer-aided design systems, as well as on the tasks for which these systems are supposed to be used. So, for example, in the context of a single workshop in production, CAD is supposed to be a specific program for computer-aided design. If we are talking about strategic planning for the development of an organization, then such a concept as CAD will most likely correspond to a large-scale infrastructure that is used to increase the efficiency of developing various projects. It should be noted that the term CAD itself is an abbreviation that can be deciphered in different ways. In the general case, this abbreviation corresponds to a combination of the words "computer-aided design system". There are also other options for deciphering this abbreviation. For example, the “design work automation system” option is quite common. According to the meaning of the English analogue of the term CAD is the abbreviation CAD, in some cases CAX is also used. Let's take a closer look at the following question: for what purposes can computer-aided design systems be created in mechanical engineering and other fields?

CAD: the purpose of creation

The main goal of CAD development is to increase the efficiency of the work of enterprise specialists who solve various production tasks, including those related to engineering design. In this case, efficiency can be improved through the following factors:

Reducing the complexity of the design process;

Reduction of project implementation time;

Reducing the cost of design work, and the costs associated with the operation;

Ensuring quality improvement of the design infrastructure.

Reduced testing and simulation costs.

CAD is a tool that allows you to achieve the noted benefits due to the following factors:

Effective Information support specialists involved in the development of projects;

Automation of documentation;

Application of the concepts of parallel design;

Unification of various solutions;

Application of mathematical modeling as an alternative to expensive tests;

Optimization of design methods;

Improving the quality of business management processes.

Now let's consider in what structure the automatic design system can be represented.

CAD: classifications

The most common criteria for classifying CAD systems include industry assignment. There are the following types:

  1. Computer-aided design of machine building infrastructure;
  2. CAD for electronic equipment;
  3. CAD in the construction industry.

The first type of CAD systems can be used in a wide range of industries: aircraft, automotive, shipbuilding, consumer goods. Also, the corresponding infrastructure can be used to develop both individual parts and various mechanisms using various approaches in the framework of modeling and design.

CAD systems of the second type are used for the design of finished electronic equipment and its individual elements such as integrated circuits, processors, and other types of hardware.

CAD of the third type can be used to design various structures, buildings, infrastructure elements.

Another criterion by which computer-aided design systems can be classified is the intended purpose. Here are distinguished:

Design tools used to automate two-dimensional or three-dimensional geometric models, to generate design documentation;

Systems used to develop various drawings;

Systems designed for geometric modeling;

Systems designed to automate calculations within engineering projects and dynamic simulation;

Automation tools used for the purpose of technological optimization of projects;

Systems designed for computer analysis of various parameters for projects.

This classification is considered conditional.

AT automated system process design may include a wide range of functions from those listed above. The specific list of CAD capabilities is primarily determined by the developer of this system. Let's look at what tasks it can solve.

Software Development Tool Systems

1. Software development tools.

In the process of developing software tools, to one degree or another, computer support for the development of software systems is used.

This is achieved by presenting at least some program documents of the PS (primarily programs) on computer data carriers (for example, disks) and making available to the PS developer special PS or included in the computer special devices created for any processing of such documents.

As such a special PS, you can specify compiler from any programming language.

The compiler saves the PS developer from having to write programs in a computer language that would be extremely inconvenient for the PS developer - instead, he writes programs in a programming language that is convenient for him, which the corresponding compiler automatically translates into the computer language.

As a special device that supports the process of developing a PS, it can serve emulator any language.

The emulator allows you to execute (interpret) programs in a language other than the language of the computer that supports the development of the PS, for example, in the language of the computer for which this program is intended.

A PS intended to support the development of other PSs will call a software tool for developing a PS, and a computer device specially designed to support the development of a PS will be called hardware software development tool.

PS development tools can be used throughout the entire life cycle of the PS to work with different program documents. So text editor can be used to develop almost any program document.

From the point of view of the functions that tools perform in the development of software, they can be divided into the following four groups: ·

editors,

analyzers,

converters,

tools that support the execution of programs.

Editors support the design (formation) of certain program documents at various stages of the life cycle.

As already mentioned, for this you can use one of some universal text editor.

However, stronger support can be provided specialized editors: Each document type has its own editor. In particular, in the early stages of development, documents can make extensive use of graphic aids descriptions (diagrams, diagrams, etc.). In such cases, it can be very useful graphic editor.

At the programming (coding) stage, instead of a text editor, it may be more convenient syntactically controlled editor A that is specific to the programming language being used.

Analyzers produce either static processing of documents, carrying out different kinds their control, identification of their certain properties and the accumulation of statistical data (for example, checking the compliance of documents with specified standards), or dynamic analysis of programs (for example, in order to identify the distribution of the program's work time by program modules).

Converters allow you to automatically bring documents to another form of presentation (for example, formatters) or translate a document of one type to a document of another type (for example, converters or compilers), synthesize a document from separate parts, etc.

Tools that support the execution of programs, allow you to execute on a computer descriptions of processes or their individual parts, presented in a form other than machine code, or machine code with additional possibilities for its interpretation.

An example of such a tool is emulator code of another computer. Various debuggers should also be included in this group of tools.

Essentially, each the programming system contains a run-time program subsystem that executes the most typical program fragments for the programming language and provides a standard response to exceptions that occur during program execution (we will call such a subsystem executive support), - can also be considered as an instrument of this group.

2. Tool environments for development and maintenance of software.

Currently, each programming system is associated not with separate tools (for example, a compiler), but some logically related set of software and hardware tools that support the development and maintenance of software on given language programming or focused on any particular subject area. We will call such a collection tool environment for the development and maintenance of PS.

For such instrumental environments, it is typical

first, the use of both software and hardware tools, and,

secondly, a certain orientation either to a specific programming language or to a specific subject area.

Instrumental environment does not necessarily have to function on the computer on which the PS developed with the help of it will have to be used. Often this combination is quite convenient (if only the power of the computer used allows it): no need to deal with computers different types, the developed PS can include components of the tool environment itself.

However, if the computer on which the PS is to be used is not available to the developers of this PS (for example, it is constantly busy with other work that cannot be interrupted, or it is still under development), or is inconvenient for developing the PS, or the power of this computer is insufficient for ensure the functioning of the required instrumental environment, then the so-called instrumental-objective approach.

Its essence lies in that the PS is developed on one computer, called the instrumental one, and will be applied on another computer, called the target (or object).

Distinguish three main classes of tool environments for the development and maintenance of PS

(Fig. 16.1): ·

programming environments,

workplaces computer technology

instrumental systems of programming technology.

The programming environment is intended

mainly to support the processes of programming (coding), testing and debugging the PS.

The workplace of computer technology is focused on supporting the early stages of the development of PS (specifications) and automatic generation of programs according to specifications.

Programming technology tool system is designed to support all development and maintenance processes throughout the life cycle of the software and is focused on the collective development of large software systems with a long life cycle.

For such systems, the cost of maintenance usually exceeds the cost of development.

Rice. 16.1. The main classes of tool environments for the development and maintenance of PS.

3. Tool programming environments.

Programming environments contain primarily

text editor, which allows you to design programs in a given programming language, tools that allow you to compile or interpret programs in this language, as well as test and debug the resulting programs.

In addition, there may be other tools, for example, for static or dynamic analysis programs.

These tools interact with each other through regular files via standard features file system.

There are the following classes of programming environments(see fig. 14.2): ·

general purpose environments,

language-oriented environments.

General purpose programming environments contain a set of software tools that support the development of programs in different programming languages ​​(for example, a text editor, a link editor, or an interpreter for the language of the target computer) and usually represent some extension of the capabilities of the operating system used. To program in such an environment in any programming language, you will need additional tools that are oriented to this language (for example, a compiler).


Fig.16.2. Classification of programming tool environments.

Language-oriented tool environment programming is designed to support the development of a software system in any one programming language, and knowledge about this language was significantly used in building such an environment. As a result, quite powerful features that take into account the specifics of this language can be available in such an environment.

Such environments are divided into two subclasses:

interpretive environments,

syntactically-driven environments.

Interpretive programming environment provides interpretation of programs in a given programming language, i.e. contains primarily an interpreter of the programming language to which this environment is oriented. Such an environment is necessary for interpretive-type programming languages ​​(such as Lisp), but can be used for other languages ​​(such as on an instrumental computer).

Syntactically driven programming environment is based on knowledge of the syntax of the programming language to which it is oriented. In such an environment, a syntactically-driven editor is used instead of a text editor, allowing the user to use various patterns of syntactic constructions (as a result of this, the program being developed will always be syntactically correct). Simultaneously with the program, such an editor forms (in the computer's memory) its syntax tree, which can be used by other tools.

4. The concept of computer technology for software development and its jobs.

There are some difficulties in developing a rigorous definition of CASE-technology (computer technology for the development of PS).

CASE is an abbreviation for Computer-Aided Software Engineering (Computer-Assisted Programming Engineering). But without the help (support) of a computer, PSs have not been developed for a long time (at least a compiler is used).

In fact, a narrower (special) meaning is put into this concept, which is gradually blurred (as it always happens when a concept does not have a strict definition).

Initially, CASE was understood as engineering of the early stages of software development (definition of requirements, development of an external description and architecture of the PS) using software support (software tools).

Now, CASE can also be understood as engineering of the entire life cycle of the software (including its maintenance), but only in the case when the programs are partially or completely generated according to the documents obtained at the indicated early stages of development. In this case, the CASE technology has become fundamentally different from the manual (traditional) technology for developing PS: not only the content has changed technological processes but also their totality.

At present, the computer technology for the development of PS can be characterized

Using software support to develop graphical requirements and graphic specifications PS,

Automatic generation of programs in any programming language or in machine code (partially or completely),

Software support for prototyping.

It is also said that the computer technology for the development of PS is "paperless", i.e. designed for computer representation of program documents.

However, it is quite difficult to confidently distinguish manual software development technology from computer technology based on these features. This means that the most essential in computer technology has not been singled out.

In our opinion, the main difference between manual software development technology and computer technology is as follows.

Manual technology is focused on the development of documents that are equally understood by different PS developers, while computer technology is focused on providing semantic understanding (interpretation) of documents with software support for computer technology.

The computer representation of documents does not yet mean such an understanding of them. Whereas the semantic understanding of documents makes it possible for software support to automatically generate programs, and the need to ensure such an understanding makes various graphic forms of input documents desirable. This is what makes it possible to rationally change the very set of technological processes for the development and maintenance of software.

From the discussion of the essence of computer technology, one can understand the associated changes in the software life cycle.

If, when using manual technology, the main efforts in developing the PS were made at the stages of actual programming (coding) and debugging (testing), then when using computer technology, it was at the early stages of developing the PS (defining requirements and functional specification).

At the same time, the nature of the documentation has changed significantly: instead of a whole chain of informal documents focused on the transfer of information from the customer (user) to various categories of developers, a PS prototype is formed that supports the selected user interface and formal functional specifications sufficient for automatic synthesis (generation) of PS programs (or at least a significant part of them).

At the same time, it became possible to automatically generate part of the documentation necessary for developers and users. Instead of manual programming (coding) - automatic generation of programs, which makes independent debugging and testing of programs unnecessary: ​​rather deep automatic semantic control of documentation is added instead.

The nature of PS maintenance also changes significantly: all changes are made by the maintainer only to the specifications (including the prototype), other changes to the PS are made automatically.

With that said PS life cycle using computer technology can be represented by the following diagram (Fig. 16.3).


Rice. 16.3. The life cycle of a software tool using computer technology.

prototyping allows you to replace the indirect description of the interaction between the user and the PS with manual technology (when determining the requirements for the PS and the external description of the PS) by the user's direct choice of the method and style of this interaction with fixing all the necessary details.

In essence, at this stage, an exact description is made user interface understandable software support of computer technology, and with the responsible participation of the user: the developer shows the user on the monitor various options and the user selects the options acceptable to him, the user, with the help of the developer, enters the designations of the information objects processed by him and operations on them, he chooses the method of access to them and links them to various windows, menus, virtual keyboards, etc.

All this is based on the presence in the software support of computer technology of a customizable shell with extensive library blanks of various fragments and details of the screen. As a result of these actions, the PS shell is determined - the upper control level of the PS. Such prototyping appears to be the best way overcoming the barrier between the user and the developer.

Specification Development breaks down into several different processes.

If we exclude First stage development of specifications (definition of requirements), then these processes use methods that lead to the creation of formalized documents, i.e., formalized specification languages ​​are used. At the same time, graphical methods of specifications are widely used, leading to the creation various schemes and diagrams that quite formally define the structure of the information environment and the management structure of the PS. Fragments of data and program descriptions are attached to such structures, presented in algebraic specification languages ​​(for example, using operational or axiomatic semantics), or logical specification languages ​​(based on a logical approach to program specification). Such specifications allow programs to be generated largely or completely automatically.

Automated specification control

Tool systems of programming technology.

For computer support for the development and maintenance of large software systems with a long life cycle, programming technology tool systems are used.

The programming technology tool system is an integrated set of software and hardware tools that supports all the processes of developing and maintaining large software systems throughout its entire life cycle within a certain technology.

The following main features of this class of computer support follow from this definition: ·

complexity, ·

focus on team development,

technological certainty,

integration.

The complexity of computer support means that it covers all the processes of development and maintenance of the software and that the products of these processes are coordinated and interconnected. Thus, the system is able to provide, at least, control over the completeness (completeness) of the created documentation (including a set of programs) and the consistency of its change (versioning). The fact that computer support also covers the phase of support of the PS means that the system must support work with several variants of the PS at once, oriented to different conditions of the use of the PS and to different equipment associated with it, i.e. should provide configuration management of the PS.

Focused on collaborative development means that the system must support the management (management) of the work of the team and for different members of this team provide different access rights to different fragments of the production of technological processes.

Technological certainty computer support means that its complexity is limited to the framework of any particular programming technology. Programming technology tool systems are large and expensive software systems that are somehow justified by their tool overload. Therefore, the set of tools included in them is carefully selected taking into account the needs of the subject area, the languages ​​used and the chosen programming technology.

Integrated computer support means:

data integration,

User interface integration

Integration by actions (functions),

Data Integration means that the tools act in accordance with a fixed information schema (model) of the system, which determines the dependence of the various data fragments (information objects) used in the system on each other.

User interface integration means that all tools are united by a single user interface.

Action Integration means that, firstly, there are common parts of all tools in the system and, secondly, some tools, when performing their functions, can access other tools.

Taking into account the discussed properties of instrumental systems of programming technology, we can distinguish t ri their main components

development database (repository),

toolkit, ·

interfaces.

Repository - a central computer storage of information related to the project (development) of the PS throughout its entire life cycle.

Toolkit - a set of tools that defines the capabilities provided by the system to the development team. Usually this set is open: in addition to the minimum set (built-in tools), it contains the means of its extension (imported tools), and structured, consisting of some common part of all tools (the core) and structural (sometimes hierarchically related) classes of tools.

Interfaces are divided into

1)custom

2) systemic.

User interface provides developers with access to tools (command language, etc.), implemented by the system shell.

System interfaces provide interaction between tools and their common parts. System interfaces stand out as architectural components due to the openness of the system - they must be used by new (imported) tools included in the system.

The most general architecture of instrumental systems of programming technology is shown in Fig. 16.4.

Distinguish two classes programming technology tool systems:

1)project support tool systems and

2) language-dependent instrumental systems.

Project support tool system- This open system, capable of supporting the development of PS in different programming languages ​​after its appropriate extension with software tools oriented to the selected language. Such a system contains a core (providing, in particular, access to the repository), a set of tools that support the management (management) of the PS development, programming language-independent tools that support the development of the PS (text and graphic editors, report generators, etc.), as well as system expansion tools.

Language-Dependent Tool System- this is a system for supporting the development of PS in any one programming language, which essentially uses the specifics of this language in the organization of its work. This specificity can affect both the capabilities of the kernel (including the structure of the repository), and the requirements for the shell and tools.

An example of such a system is the Ada Programming Support Environment (APSE).


Rice. 16.4. General architecture of instrumental systems of programming technology.

The main stages of software development are identified and characterized. For each stage, the means that can be applied to achieve the goals of the stage are given and described.

1. Terminology

Before proceeding to the consideration of development tools that can be used to create programs, it is necessary to determine the basic concepts and terms that will be used in the article. In accordance with the subject of the article, the basic term for us, of course, is "software development tools". In relation to the field of software development, this definition may sound as follows:

Software development tools- a set of techniques, methods, techniques, as well as a set of tool programs (compilers, application / system libraries, etc.) used by the developer to create the program code of the Program that meets the specified requirements.

With considering this definition the term "Program Development" would sound like this:

Software developmentcomplicated a process whose main purpose is to create and maintain a program code that provides the required level of reliability and quality. To achieve the main goal of software development, software development tools are used.

2. Basic tools used at different stages of program development

Depending on the subject area and the tasks assigned to developers, software development can be a rather complex, step-by-step process that involves a large number of participants and a variety of tools. In order to determine when and in what cases what tools are used, we highlight the main stages of software development. The following stages of development are of the greatest interest for the problematics of the issue under consideration:

  1. Application design.
  2. Implementation of the application code.
  3. Application testing.

Here, the stages associated with writing a technical task, planning deadlines, budget, etc. are deliberately omitted. The reason for this is that at these stages, with rare exceptions, practically no specific development tools are used.

2.1 Application design tools

At the application design stage, depending on the complexity of the software product being developed, which directly depends on the requirements, the following design tasks are performed:

  1. Requirements analysis.
  2. Development of the architecture of the future software.
  3. Development of devices of the main software components.
  4. Development of user interface layouts.

The design output is usually a Software Design Document or a Software Architecture Document. The "Requirements Analysis" task is usually performed using the methods of systemology (analysis and synthesis), taking into account the expert experience of the designer. The result of the analysis is usually a meaningful or formalized model of the process of the program functioning. Depending on the complexity of the process, various methods and auxiliary tools can be applied to build these models. In the general case, the following notations are usually used to describe models (in brackets are given software, which can be used to obtain models):

  • BPMN (Vision 2003 + BPMN, AcuaLogic BPMN, Eclipse, Sybase Power Designer).
  • Flowcharts (Vision 2003 and many others).
  • ER diagrams (Visio 2003, ERWin, Sybase Power Designer and many others).
  • UML diagrams (Sybase Power Designer, Rational Rose and many others).
  • layouts, mat-models, etc.

Sometimes when developed software designed to automate any complex activity, the task of Analysis (Modeling) is performed before compiling technical requirements to the future product. The results of the analysis make it possible to form reasonable requirements for a particular functionality of the developed program and calculate the real benefit from the introduction of the developed product. Moreover, it turns out otherwise that, based on the results of the analysis, the initial goals and tasks of automation change dramatically or, based on the results of evaluating the effectiveness of development and implementation, a decision is made not to develop the product.

The purpose of the second and third tasks from the above list of tasks is to develop a model (description) of the future system that is understandable for the encoder - the person who writes the program code. Here it is of great importance what programming paradigm (programming paradigm should also be considered as a development tool) must be used when writing a program. As an example of the main paradigms, the following should be given:

  • Functional programming;
  • Structured programming;
  • imperative programming;
  • Logic programming;
  • Object-oriented programming (prototyping; using classes; subjective-oriented programming).

Its choice largely depends on the established habits, experience, traditions, tools that the development team has. Sometimes the software product being developed is so complex that different paradigms are used to solve a number of problems in different components of the system. It should be noted that the choice of one or another approach imposes restrictions on the means that will be used at the stage of implementing the program code. The result of solving this problem, depending on the approach, can be (software tools that can be used to obtain them are given in brackets):

  • class diagram, etc (Ration Rose, Sybase PowerDesigner and many others).
  • description of structure modules and their programming interface (for example, Sybase PowerDesigner and many others).

The development of user interface layouts implies the creation of a visual representation of how certain video forms, windows in the application being developed will look like. The solution to this problem is based on the use of designer tools, which will not be considered in this article.

2.2 Means of implementing the program code

At the stage of implementing the program code, the individual program components are coded in accordance with the developed technical project. The tools that can be applied depend to a large extent on what approaches were used during the design and, in addition, on the degree of sophistication of the technical design. Nevertheless, among the tools for developing a program code, it is necessary to single out the following main types of tools (examples of tools are given in brackets): methods and techniques of algorithms.

  • programming languages ​​(C++, C, Java, C#, php and many others);
  • user interface tools (MFC, WPF, QT, GTK+, etc.)
  • program code versioning tools (cvs, svn, VSS).
  • means of obtaining executable code (MS visual studio, gcc and many others).
  • database management tools (Oracle, MS SQL, FireBird, MySQL and many others).
  • debuggers (MS Visual Studio, gdb, etc.).

2.3 Program testing tools

The main tasks of testing are to verify that the functionality of the developed program meets the initial requirements, as well as to identify errors that are explicitly or implicitly manifested during the operation of the program. Key testing activities include the following:

  • Testing for failure and recovery.
  • Functional testing.
  • Security testing.
  • Interaction testing.
  • Testing the installation process.
  • Usability testing.
  • configuration testing.
  • Stress Testing.

Among the main types of funds that can be used to perform the assigned work are the following:

  • code analysis tools, profiling (Code Wizard - ParaSoft, Purify - Rational Softawre. Test Coverage - Semantic, etc.);
  • functionality testing tools (TEST - Parasoft, QACenter - Compuware, Borland SilkTest, etc.);
  • performance testing tools (QACenter Performance - Compuware, etc.).

3. Conclusion

The process of developing programs is a complex process and what tools need to be used largely depends on the tasks assigned to the developers. Regardless of the development tasks, the tools cannot be limited only to a set of some tools, it is also necessary to include methods, techniques, approaches and everything that is used to create a program that meets the specified requirements.

Also see :

Software development is carried out using various tools that provide:

    original programming;

    use of application software packages - typical programs that implement data processing functions;

    automation of the main stages of program development.

The most traditional development tools are programming languages ​​and systems. Programming languages ​​are usually divided into machine and algorithmic languages.

Machine languages ​​contain machine instructions corresponding to the simplest processing operations. Machine instructions are tied to a particular class of computers and/or operating systems.

Algorithmic programming languages ​​describe the algorithm of the problem, ensure the visibility of the algorithm and the convenience of maintaining the program. Algorithmic languages ​​are divided into machine-oriented, procedure-oriented and problem-oriented languages.

machine-oriented Programming languages ​​are low-level languages ​​because they take into account the architecture and type of computers. Programming in such languages ​​is laborious, but the programs are optimal in terms of the required computer resources. Examples of machine-oriented programming languages ​​are various assemblers 1 (Macro Assembler, Turbo Assembler, etc.) of a certain class of computers.

procedural-oriented programming languages ​​such as Visual Basic, Pascal, C++, Ada, Cobol, PL1, etc. make it possible to describe a set of processing procedures and implement typical computational structures:

1. Sequences of blocks (instructions): 1, 2, 3, 4, etc.

All blocks (instructions) are executed in strict sequence (Fig. 5 A)

2. Conditional transition (Fig.5 B) - checking the given condition (2) and choosing an alternative action: if the condition is true - 3, otherwise - 4. After that, control is transferred to block 5.

3. Alternative choice (Fig.5 C) - checking condition (2), if the condition is true - performing action 3, otherwise checking condition (4); if the condition is true, action 5 is performed, and so on. If none of the conditions were met or actions were performed (3 or 5, etc.), control is transferred to block 6.

A B C

Figure 5

4. Cyclic process– while loop (Fig. 6A). The loop is repeated until condition (2) is true - block 3. If condition (2) is false, transfer control to block 4.

5. Cyclic process - cycle "before" (Fig. 6B). The loop is executed at least once - block 2. After checking condition (3), if it is true, block (2) is executed, otherwise control is transferred to block 4.

Figure 6

Programming languages objective type used in program code object classes or event procedures are also elements of structured programming.

problematic-oriented programming languages ​​- high-level relational query languages, report generators, etc. allow you to identify the problem, input and output information, without specifying specific processing procedures.

Application software packages (APP) are divided into classes:

    Problem-oriented SPP - provide a solution to the problems of a specific subject area;

    Method-oriented SPP - support a certain type of model and methods for solving problems, are applied regardless of the subject area;

    General-purpose application software - provide support for information technology (text works, graphic works, standard calculations, etc.).

Liked the article? Share with friends!
Was this article helpful?
Yes
Not
Thanks for your feedback!
Something went wrong and your vote was not counted.
Thank you. Your message has been sent
Did you find an error in the text?
Select it, click Ctrl+Enter and we'll fix it!