General characteristics of software development tools

    General characteristics of software development tools

    Instrumental systems programming technology

    CASE tools. Characteristics of modern CASE tools

Overview of Object-Oriented Tools

Object-oriented programming arose before object-oriented analysis and design, so today there are quite a large number of languages ​​that support this technology. The first of them, according to the date of origin, is considered to be language Smalltalk, although many elements of the object-oriented approach were used in the language Simula in 1967 The most powerful tool for creating object-oriented programs today is the language C++, created on the basis of a structured programming language C. The language is developing successfully Java, which was originally designed to be object-oriented.

Development of large software systems in modern conditions is impossible without the use of development automation tools software(CASE funds). There are not many CASEs that support the object-oriented approach. The most well-known tool in this direction is the system Rational Rose , which supports, among other things, the stages of object-oriented analysis and design.

Rational Rose object-oriented CASE tool

Developer Rational Rose- Rational Software Corp., known for its developments in the field of object-oriented technologies, the main of which is the UML language. It is precisely to support UML, as the main software design language, that this CASE system is oriented.

Like any modern CASE tool, this system supports all stages life cycle The software provides the user with a wide range of functions for analysis, design, construction and maintenance of software. In this case, object-oriented technologies are used and graphical models are widely used.

Rational Rose consists of the following main components: a repository, a graphical user interface, project inspection tools (browser), project control tools, statistics collection tools and a document generator, as well as extensions to support various programming languages.

The main features include the following:

    Powerful graphical modeling language subject area, which has a high level of formalization and supports object-oriented methodology.

    Convenient navigation between model elements using the “project inspector”.

    Storing design results in the form of a single model.

    Supporting the development team's work on the project.

    Powerful system for preparing reports and project documentation.

    Possibility of program synthesis in almost all modern object-oriented languages, including the cross-platform Java language.

    Support for component technologies for building software systems.

    Wide possibilities for designing software of various architectures, from simple programs to large “client-server” systems and Internet applications.

    Possibility of reengineering the model based on the source code of the program. This ensures that the integrity of design information and implementation is maintained.

    Configuring and expanding the functionality of the CASE environment by installing extension modules, primarily to support various programming languages.

Principles of developing software systems in Rational Rose

The construction of object-oriented systems has its own specifics. Obviously, for maximum efficiency, a single technology should be used at all stages of the life cycle. This opportunity is provided by the universal modeling language UML. Rational Rose supports all system design phases that are defined in the UML specification.

The main design method is to create various kinds of diagrams and specifications that define the logical and physical structure of the system model, its static and dynamic aspects. These include class, state, script, module, and process diagrams.

At all stages, it is possible to use specialized graphic editors for model elements and use the model inspector to navigate among its components. All design information is saved in a single model file (*.mdl).

The work begins with the construction of a Use Case Diagram, which characterizes the main tasks and environment of the designed system. Next, for each Use Case presented in the use diagram, Sequence Diagrams are developed that identify objects in the system and describe the sequence of events that occur in the process of communication between objects. Rational Rose allows you to automatically associate sequence diagrams with usage blocks.

The objects present in sequence diagrams are defined in the system using classes. Classes and their relationships are defined using class diagrams, the development of which is also supported Rational Rose. Classes are grouped into packages. Rational Rose allows you to define a set of packages, the relationships between them, and represent their constituent classes in nested class diagrams.

The composition of compiled and executed system modules is specified in Rational Rose using a component diagram. The diagram identifies the dependencies between components. Components can have interfaces through which dependencies are implemented. Deployment diagrams in Rational Rose reflect the configuration of the executing software system and consist of nodes and interaction relationships between nodes. The nodes include the components represented in the system component diagram.

For a fully defined model, it is possible to generate source program texts in various object-oriented programming languages ​​supported Rational Rose, such as Java or C++.

Received program texts can be modified outside Rational Rose, and to take into account the changes made, the system allows you to reverse engineer texts into a model.

Software design

Domain Modeling . The creation of a project begins with the formation of principles for using the system. Within Rational Rose This stage is called "Use Case View". The implementation of this stage allows you to identify external users, usage blocks, system objects and connections between them.

A usage diagram is drawn up that reflects the external functioning of the system being created. This model is in many ways similar to the data flow diagram in structural analysis. Its main components are external users (actors), use blocks (use cases) and connections between components. To create a chart in Rational Rose a specialized graphic editor is used.

All elements of the usage diagram are identified by the system as independent components of the model within this stage and are subject to further specification. First of all, this concerns usage blocks, which reflect groups of system functions presented as a single whole to an external user.

For each usage block, a sequence diagram is constructed, which displays the interaction over time of objects performing the task. Such diagrams identify system objects and define the messages through which these objects interact. Diagrams are constructed in a specialized editor.

Each object in a sequence diagram is accompanied by the name of the class to which it belongs. A specific object is an instance of some class. Classes form the logical structure of the system.

Development of a logical structure. After completing the formation of the principles for using the system, the stage of developing its logical structure begins. IN Rational Rose it's called "Logical View". The result of this stage should be a main diagram and detail diagrams for its elements.

At this stage, you should determine the classes that are needed in the system. Instances of these classes are already specified in sequence diagrams. Classes and their connections are reflected in the model in the form of a class diagram. Groups of classes in these diagrams can be grouped into packages.

Designing a logical structure should begin with defining the core packages. A package is a universal tool for grouping model elements. The use of packages allows you to make the model more visible. Packages can be nested inside each other. The classes that make up each package are detailed in the included diagram.

Built in Rational Rose The Class Diagram Editor provides convenient tools for such operations, and the Model Inspector makes it easy to navigate the diagram hierarchy.

For each class, a specification is specified that describes the composition of attributes and methods, connections, the template on which the class is created, and implementation features.

The presence of templates makes it easy to create classes of various structures.

Classes can be imported into the system from outside. Rational Rose supports the component structure of the software and allows the use of binary components such as COM and ActiveX in the model. Their representation in the model is carried out using classes based on the interfaces of these components.

In addition to class diagrams, state diagrams, scenario diagrams and other elements of the UML language are used to describe the system logic at this stage.

Design the physical structure of the application. The classes described in the previous step are associated with the physical components of the program using component diagrams.

A component is an executable module of the system, and is associated with a source file, a binary library file, an object module, or an executable file. Components may include other components.

To visualize the components of the designed system, component diagrams are used. Stage of constructing component diagrams in Rose called "Component View". It consists of constructing an overall diagram and, if necessary, detailing individual components in subdiagrams.

The chart data shows the relationship components software. The relationship is implemented through interfaces, which are also displayed on the diagram.

Diagrams are created in a specialized editor. For a component, its constituent classes are specified.

The component can generate source text in various programming languages ​​supported Rational Rose, or assign program fragments developed outside the environment Rose. In the latter case, their interface must match that declared in the model.

The last step in software design is to prepare a deployment diagram. IN Rose this stage is called "Deployment View". Deployment diagrams show the configuration of an executable software system. It consists of nodes and interaction relationships between nodes and components. Nodes can include components and objects. Nodes are physical runtime elements.

Construction and maintenance of the system

Generating Source Texts . Once the specific components of the system being developed have been identified, it is time to generate program code for each component.

Actually, Rose generates a program skeleton, which is subsequently sent to programmers for revision. Definitions of classes and methods are automatically synthesized, the specific implementation of which must be done manually.

The initial information for this operation is information about the classes that make up this component and the selected language for implementing this component.

Before performing the operation, you should determine the composition and parameters for saving the received code. Next, perform the generation by selecting the required language. If errors occur, the system will inform you about this.

It is possible to selectively generate program code for individual model components and customize information placed in program files. This achieves high flexibility when upgrading and modifying the model.

Rational Rose 98 Enterprise Edition allows you to generate source text in Visual Basic, C++, Java, as well as obtain a description of component interfaces in IDL and create projects for the Oracle 8 system.

Reengineering a model based on source codes . The ability to reengineer, or, as it is also called, “reverse engineering,” a model from source program texts seems to be one of the important and, of course, useful functions Rose. The need for such an operation often arises when modifying and upgrading a project. The program templates generated by the model, after they are transferred to programmers, can be modified and these changes must be taken into account in the model. Moreover, since Rational Rose supports the import of binary components (COM objects in the Win32 environment), then support for building classes based on the description of the interfaces of a binary component is simply necessary.

You can reverse engineer classes by selecting the programming language in which the classes are implemented and specifying the directory where the source files are located. Then you can select the necessary files or reverse engineer them all. When performing these actions, you must be careful and select only those elements that can actually be converted into a model. During operation, the system will inform you about the presence of errors.

After successful completion of the operation, a new element will appear on the component diagram (the "Component View" stage), having a name that matches the directory of the source files. Going to the "Logical View" stage will show that all the classes and packages that make up new component, also appeared on class diagrams.

It is now possible to make changes to the model, determined by the added components, and regenerate the source texts.

Development stage support

Components and templates. One of the possibilities Rose is the modeling of binary components that support the COM specification. In the model, such components are represented by interface classes created on the basis of IDL files accompanying the COM object. This allows you to include various off-the-shelf components in your model.

Support for model element templates simplifies the design process. IN Rose You can create and use templates for most elements of the model, including: usage blocks, packages, classes, components, as well as for operations on the model. When creating a new element, you must specify which template is being used, and the element will include all of the template's properties. This approach allows you to get rid of routine work and concentrate on the project itself.

Work environments. A logical development of the idea of ​​using templates and external binary components in Rational Rose was the emergence of the working environment (Framework).

A workspace is a type of template that sets the environment for the model being created. This is done by loading the base elements included in the workbench, which become an integral part of the model.

Rose provides a wide range of standard working environments, and you can also create your own. The set of standard working environments is as follows:

    Application Performance Explorer

    Standard environment. Focused on creating applications in Visual Basic. Includes declaration of many standard VB objects.

    Application design environment for the Internet. Includes definition of various ActiveX components and VB libraries.

    Application design environment for working with local databases (Local Database). Contains the declaration of DAO system objects

    Application design environment using RDO (Remote Data Object). Allows you to use RDO objects to create client-server applications.

    Application design environment for accessing SQL servers ( SQL Server Distributed Management Object (SQL-DMO)), which supports access to SQL through OLE-Automation objects.

    Microsoft Transaction Server Support Environment

    Microsoft Outlook Support Environment

    Java application development environments (Java JDK 114 Full and Java JDK 114 Quick). Includes models of Java classes and interfaces obtained through reverse engineering.

    Oracle8 Support Environment

The development environment is assigned when creating the model. Development environments are stored in the form of model files (*.mdl) intended for read only. During the process of creating a new model, the necessary elements are loaded from the selected development environment, after which a new model is created.

Development environments provide a great mechanism for customization Rose for a specific project. You can create your own development environment, which will include the elements you need from various standard environments. Part Rational Rose includes a “master” for creating work environments.

Development team support. Any large project is usually carried out by a group of developers, which includes analysts, designers, and programmers. The development process consists of successive iterations with the cycle "analysis" - "design" - "implementation". At each stage, several developers work with the model and the stages are repeated cyclically. In such conditions, it is necessary to maintain the integrity of the project, take into account changes made at different stages and coordinate the stages. All this requires the use of a common repository and a special design ideology.

Along with a convenient model inspection tool that makes it easier to switch between stages, Rational Rose Mechanisms for supporting the development team have been identified.

Creates different workspaces for developers and a workspace for the entire project. Each developer makes changes in his part (submodel), and these changes become global (transferred to the general model) only after they are approved by the project management system. As project controllers in Rose external systems can be used, such as ClearCase And Microsoft SourceSafe.

Using expansion modules . IN Rational Rose A flexible mechanism for configuration and customization of system capabilities has been introduced. There are various expansion modules that can be installed in Rose and solving various problems. There are two main types of extension modules: extensions that support programming languages ​​and extensions of the environment's functionality.

When adding a new extension, it integrates with the system by adding items to system menus and installation of the necessary libraries and executable files. In addition, each extension can add its own types and templates to the system.

The necessary extensions are usually added during the initial installation of the system, but they can be installed later. Distribution of extensions via the Internet is supported

To manage extensions in Rose There is an extension manager. With its help, you can activate and deactivate various extension modules.

Pros and cons of Rational Rose

This CASE tool can be used to create a variety of object-oriented software, primarily for the Windows platform, as well as in the cross-platform Java language.

The UML language is used at all stages of development, and the software project is a single model.

Important advantages are customization for various programming languages ​​and software system architectures, as well as the possibility of “reverse engineering” based on source texts in various programming languages. There is support in various ways physical implementation for the components of the designed system.

The ability to configure the system using expansion modules is very useful. In fact, the only way to write an application for a non-Windows operating system is to use the Java language.

The essence and concept of instrumental software

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

Tooling is used in the development phase. Tooling software is a collection of programs used to assist programmers in their work, to assist software development managers in their efforts to control the development process and the resulting products. The most famous representatives of this part of the software are translator programs from programming languages, which help programmers write machine commands. Instrumental programs are translators from the languages ​​Fortran, Cobol, Joe-vial, BASIC, APL and Pascal. They facilitate the process of creating new work programs. However, translators from languages ​​are only the most well-known part instrumental programs; there are a great many of them.

Usage 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 the same breath, assuming that those not privy to the secrets of their craft are aware of this role of tool software. Just as in the use phase (for application programs), system software also 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 selected programming language (system programming language), you need to have the following components:

1. Text editor to create a file with the source code of the program.

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

3. A link editor or assembler that links object modules and produces a working application as an output - executable code.

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) aimed at creating Windows applications have become widespread. This process is automated in rapid design environments. In this case, ready-made visual components are used, which are configured using special editors.

Most popular editors(program programming systems using visual tools) 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 running in an OS environment like Microsoft Windows

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

Tasks and functions of the tool software

Instrumental software, as a special type of software, is characterized by general and private

functions, as for all software in general. The general functions are discussed above, and the specialized functions inherent only to this type of program are:

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

2. Text translation created program into machine-oriented code accessible for computer recognition. If the volume of the created program is significant, it is divided into separate modules and each of the modules is translated separately.

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

4. Testing and monitoring the created program, identifying and eliminating formal, logical and syntactic errors, checking programs for the presence of prohibited codes, as well as assessing the performance and potential of the created program.

Types of Tooling Software

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

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 classified as application programs. Let us briefly consider the purposes of some instrumental programs.

Text editors.

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

CAD composition

CAD is a system that combines technical means, mathematics and software, the parameters and characteristics of which are selected with maximum consideration of the specifics of engineering design and construction tasks. CAD ensures ease of use of programs 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 database.

The structural components of CAD are subsystems that have all the properties of systems and are created as independent systems. These are parts of CAD systems, identified according to certain characteristics, that ensure the implementation of certain completed design tasks with the receipt of corresponding design solutions and design documents.

Based on their purpose, CAD subsystems are divided into two types: design and maintenance.

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

· machine layout subsystem;

· subsystem for designing assembly units;

· parts design subsystem;

· control circuit design subsystem;

· technological design subsystem.

Servicing subsystems include subsystems designed to maintain the functionality of design subsystems, for example:

· subsystem for 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 (object-based);

· 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:

· technological systems design subsystem;

· 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 modes;

· subsystem for calculating technical and economic indicators, etc.

The design process is implemented in subsystems in the form of a specific 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 conventionally selected part of a design procedure or an elementary action performed by a designer during the design process. Examples of design procedures include procedures for developing a kinematic or layout diagram of a machine tool, product processing technology, etc., and examples of design operations include calculating allowances, solving an equation, etc.

The structural unity of CAD subsystems is ensured by strict regulation of connections between various types of software, united by a common target function for a given subsystem. The following types of security are distinguished:

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

· linguistic support - design languages, terminology;

· software - methods, mathematical models, algorithms;

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

· technical support - computer and organizational equipment, data transmission devices, 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 schedules and other documents regulating the organizational structure of departments and their interaction with a complex of design automation tools.

· 64 CALS technologies.

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

In modern conditions of the emergence of a global information society The role of information and information technology in the training of future specialists is increasing 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 influences the accelerated development of science, technology and various industries, and plays a significant role in the process of modernization of education. The value-semantic characteristics of education at a university and the professional activities of specialists should be expressed in the formation of an intellectual professional environment that most fully realizes the tasks of research and design activities.

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

It is information technologies, along with advanced technologies of material production, that make it possible to significantly increase labor productivity and product quality and at the same time significantly reduce the time it takes to launch new products that meet the needs and expectations of consumers. All of the above primarily applies to complex high-tech products, including products for technical purposes.

Experience gained in the process of implementing a variety of 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 manufactured products. Professional environment most fully reveals opportunities for professional improvement, using new information technologies in science and in the field of production process management. Innovative technologies in the field of information processing industry with the introduction of CALS-(Continuous Acquisition and Life Cycle Support) technology - continuous information support for the life cycle of a designed object, takes 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 more effective implementation of the system automated control enterprise.

CALS technologies serve as a means of integrating industrial automated systems into a single multifunctional system. The goal 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 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 ways of managing processes and interaction of 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 of international standards governing the rules of management and interaction primarily through electronic data interchange.

When using CALS technology, the quality of products increases due to a more complete consideration of available information when designing and making management decisions, and also reduces material and time costs for the design and manufacture of products. In the process of introducing this technology, the validity of decisions made in an automated enterprise management system (EMS) will be higher if the decision maker and the corresponding management programs have prompt access not only to the AMMS database, but also to databases of other automated systems and Therefore, it can optimize work plans, the content of applications, the distribution of performers, the allocation of finances, etc. At the same time, online access should be understood not just as the ability to read data from a database, but also as the ease of their correct interpretation, i.e. consistency in syntax and semantics with the protocols adopted in automated control systems. Technological subsystems must perceive and correctly interpret data coming from automated design subsystems with high accuracy. 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 technological subsystems is becoming urgent.

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 network server databases, accessible to any user of CALS technology. Availability and protection are again ensured by the consistency of formats, methods, guidelines in different parts of the overall integrated system. In addition, there are greater opportunities for specialization of enterprises, even creating virtual enterprises, which also helps reduce costs.

In the process of implementing CALS technology, operating costs are significantly reduced due to the implementation of integrated logistics support functions. It makes it significantly easier to solve problems of maintainability, integration of products into various types of systems and environments, adaptation to changing operating conditions, etc. These advantages of data integration are achieved by using modern CALS technologies.

Industrial automated systems can operate autonomously, and currently the organization of the production management process occurs on this basis. However, the effectiveness 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 unified information space within both individual enterprises and, more importantly, within the framework of an association of enterprises. One information space is ensured by unifying both the form and 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 presenting information in interprogram exchanges and during documentation.

Content unification, understood as the unambiguous correct interpretation of data about a specific product at all stages of its life cycle, is ensured by the development of ontologies (meta-descriptions) of applications, enshrined 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 one or another information technology through design. In practice, CAD systems are technical systems that make it possible to automate and ensure the functioning of the processes that make up the development of projects. Depending on the context, CAD may mean:

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 distinguish a broad 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 area 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 assumed 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 the development of various projects. It should be noted that the term CAD itself is an abbreviation that can be deciphered in different ways. In general, this abbreviation corresponds to the combination of the words “computer-aided design system.” There are also other options for deciphering this abbreviation. For example, the option “design automation system” is quite common. In terms of meaning, the English equivalent 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: creation goals

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

Reducing the labor intensity of the design process;

Reducing project implementation time;

Reducing the cost of design work and operating costs;

Ensuring improved quality of design infrastructure.

Reduce testing and simulation costs.

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

Effective information support for specialists involved in project development;

Automation of documentation;

Application of parallel design concepts;

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 look at the structure in which an automatic design system can be presented.

CAD: classifications

The most common criteria for CAD classification include industry purpose. The following types are distinguished:

  1. Automated design of mechanical engineering infrastructure;
  2. CAD for electronic equipment;
  3. CAD in the field of construction.

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

Type 2 CAD systems are used to design 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, and infrastructure elements.

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

Design tools used to automate two-dimensional or three-dimensional geometric models for the generation of design documentation;

Systems used for the purpose of developing various drawings;

Systems designed for geometric modeling;

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

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.

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

Software Development Tool Systems Tool Software

Programming technology in general and software development support tools in particular are developing so quickly that even a simple listing of the main instrumental systems would take up too much space in this book. That is why below we will briefly dwell on just a few projects in the field of programming technology that are interesting in the context of this publication.

Any developed technological system must support all the main stages of creating the designed software package. To achieve this goal in an overall structure typical technological development support system(Fig. 6.3) are usually isolated project database; design and programming automation subsystem; debugging, documentation and maintenance subsystems, A also a subsystem for managing the progress of the project.


Rice. 6.3. General structure of a typical technological development support system

Developed library development support systems are currently used all over the world in all any serious software projects. But in the vast majority of cases, such systems have reached the level of ease of use for qualified programmers. We are primarily interested in systems and projects that tend to explicitly represent technological knowledge, even if they are not based on AI ideas and methods.

One of these projects, Gandalf, is focused on the automated generation of software development systems. Research carried out within the Gandalf project concerns three aspects of software design support: project management, version control and incremental programming, as well as their integration into a single environment. Management in the Gandalf environment is based on the assumption that the project being developed should be treated as a set of abstract data types on which only certain operations can be performed. The tool that implements this concept was the SDC (Software Development Control) system, which is a set of programs initially implemented in the Shell language on the UNIX system, and later translated into the C language.

Research in the field of version control was started by L. Kooprider on the basis of the FAFOS project, where the possibilities of creating a family of operating systems were initially analyzed. A notation was developed to describe the interaction between subsystems, to describe different versions of subsystems (source and object code, documentation, etc.) and to describe the mechanisms operating at the development stage (compilation, editing links, etc.). Then a special language, Intercol, was created as a means of describing the relationship and versions of modules in the system. And finally, the knowledge of how to construct a system from parts was built into the system without forcing the user to do it. As a follow-up to this work, the SUCE system was created, which tracked the differences between implementations (versions that actually provide code for a set of specifications) and compositions (versions that define new subsystems as groups existing subsystems).



In the LOIPE (Language-Oriented Incremental Programming Environment) system, incremental compilation is performed at the level of an individual procedure. The advantage of this approach is that when a procedure is corrected at the level of local objects or types, only that procedure is recompiled. If the specification changes, then all procedures that depend on it are recompiled. The user interface with the LOIPE system is based on the syntactically oriented editing subsystem ALOE (A Language-Oriented Editor). The purpose of developing this subsystem was to study the possibility of creating and using syntactically oriented editors as a basis for programming environments.

An analysis of the literature of recent years on programming technology shows that a new branch in the technology of industrial development and implementation of complex and significant software systems is CASE technology(Computer Aided Software Engineering).

Initially, CASE technology appeared in projects to create industrial data processing systems. This circumstance left its mark on CASE technology tools, where the most serious attention was paid, at least in early CASE systems, to design support information flows. Currently, there is a shift away from a focus on data processing systems, and CASE technology tools are becoming increasingly versatile.

All CASE technology support tools are divided into two large groups: CASE-Toolkits And CASE-Workbenches. There are no good Russian equivalents for these terms. However, the former are often called “tool chests” (developer packages, technology packages), and the latter are “software production machines” (production lines).

A-priory CASE-Toolkit - a collection of integrated software tools that provide automatic assistance in solving problems of the same type in the process of creating programs.

Such packages use a common “repository” for all technical and management information on the project (repository), are equipped with a common user interface and a unified interface between the individual tools of the package. Typically, CASE-Toolkit centers around supporting the development of one phase of program production or one type of application problem.

All of the above is also true for CASE-WorkBench. But here, in addition, automated support is provided for the analysis of software production tasks being solved, which is based on general assumptions about the process and technology of such activities; automatic transfer of work results from one stage to another is supported, starting from the design stage and ending with the disposal of the created software product and its maintenance.

Thus, CASE-WorkBench is a natural “closure” of the technology for developing, implementing and maintaining software.

Currently, a “typical” CASE technology support system has the functionality shown in Fig. 6.4.

Rice. 6.4. Functionality typical CASE technology support system

As follows from this H-diagram, the CASE environment must support all the main stages of development and maintenance of the processes of creating software systems. However, the level of such support varies significantly. For example, if we talk about the analysis and design stages, most tool packages support screen and reporting forms, prototyping, and error detection. A significant part of these funds is intended for PCs. Many support widely used methodologies such as DeMarco or Gane/Sarson structural analysis, Yourdan/Jackson structural design, and several others. There are specialized development packages for creating information systems, for example Ana Tool (Advanced Logical Software) for Macintosh; CA-Universe/Prototype (Computer Associates International) for PC. There are CASE environments to support the development of real-time systems.

Among software developers, there are two assessments of this approach: some of them believe that CASE technology radically changes the processes of software development and operation, others deny this and leave only the function of automating routine work to CASE tools. However, an analysis of the literature shows that CASE tools still “shift” software development technologies from project management towards the prototyping method. And this shift, in our opinion, is an extremely important trend in modern programming technology.

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

1. Terminology

Before we begin to consider development tools that can be used to create programs, it is necessary to define the basic concepts and terms that will be used in the article. In accordance with the topic of the article, the basic term for us, of course, is “program development tools”. When applied to the field of software development, this definition may sound like this:

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

Taking into account this definition, the term “Software Development” will sound as follows:

Software developmentdifficult a process whose main purpose is to create and maintain 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 the developers, program 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 which tools are used, we highlight the main stages of software development. The following stages of development are of greatest interest for the issues under consideration:

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

The stages associated with writing technical specifications, planning deadlines, budgets, etc. are deliberately omitted here. The reason for this is that at these stages, with rare exceptions, specific development tools are practically not 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 future software architecture.
  3. Development of devices and main software components.
  4. Development of user interface layouts.

The design result is usually a “Schematic Design” (Software Design Document) or “Technical Design” (Software Architecture Document). The Requirements Analysis task is usually performed using systems science (analysis and synthesis) methods, 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 functioning of the program. Depending on the complexity of the process, various methods and auxiliary tools can be used to build these models. In general, the following notations are usually used to describe models (in parentheses are 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 a software product being developed is intended to automate any complex activity, the Analysis (Modeling) task is performed before drawing up the technical requirements for the future product. The results of the analysis allow us to formulate reasonable requirements for one or another functionality of the program being developed and calculate the real benefits from the implementation of the product being developed. Moreover, it sometimes turns out that, based on the results of the analysis, the initial goals and objectives of automation change radically, or based on the results of assessing 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 given list of tasks is to develop a model (description) future system, understandable to the encoder - the person who writes the program code. What is of great importance here is what programming paradigm (the programming paradigm must also be considered as a development tool) should be used when writing a program. As an example of the main paradigms, the following should be cited:

  • 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, and tools available to the development team. 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 approach or another imposes restrictions on the tools 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 PowerDisigner and many others).
  • description of structure modules and their software interface (for example, Sybase PowerDisigner and many others).

Developing user interface layouts involves creating a visual representation of how certain video forms and windows will look in the application being developed. The solution to this problem is based on the use of designer tools, which will not be discussed in this article.

2.2 Tools for implementing program code

At the stage of program code implementation, individual program components are encoded in accordance with the developed technical design. The means that can be used largely depend on what approaches were used during the design and, in addition, on the degree of elaboration of the technical design. However, among the software code development tools, it is necessary to highlight the following main types of tools (examples of tools are given in parentheses): algorithmic methods and techniques.

  • programming languages ​​(C++, C, Java, C#, php and many others);
  • UI tools (MFC, WPF, QT, GTK+, etc.)
  • code version control tools (cvs, svn, VSS).
  • tools for 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 objectives of testing are to check whether the functionality of the developed program meets the initial requirements, as well as to identify errors that appear explicitly or implicitly during program operation. The main testing activities include the following:

  • Failure testing and recovery.
  • Functional testing.
  • Security testing.
  • Interaction testing.
  • Testing the installation process.
  • Usability testing.
  • Configuration testing.
  • Stress Testing.

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

  • code analysis and profiling tools (Code Wizard – ParaSoft, Purify – Rational Softawre. Test Coverage – Semantic, etc.);
  • tools for testing functionality (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 to just 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 look :

Kazakhstan RepublicSyn Ministry

Bilim zhane gylym of education and science

Minister of League of the Republic of Kazakhstan

D. Serikbaev at yndagy EKSTU

ShKMTU named after. D. Serikbaeva

I APPROVED

Dean of FITiB

M. Kylyshkanov

2015

BADARLAMANY ӘZIRLEUDYҢ KURAL-SAYMANDARY

Zhumys moduldik oku bagdarlamasy zhane syllabus

PROGRAM DEVELOPMENT TOOLS

Number of discipline credits: 3

Ust-Kamenogorsk

The working modular curriculum and syllabus were developed at the Department of Information Systems and Computer Modeling on the basis of the State Compulsory Education Standard of the Republic of Kazakhstan State Standard of Education of the Republic of Kazakhstan 5.04.019 - 2011 Higher Education. Bachelor's degree, Working curriculum, Model curriculum and Modular specialty.

Discussed at a meeting of the department “Information systems and computer modeling”

Head department of N. Denisov

Approved by the educational and methodological council of FITiB

Chairman G. Uazyrkhanova

Protocol No. ____ dated ____ ____________ 2015

Developed

Associate Professor of the Department T. Balova

senior lecturer of the department I. Uvalieva

Standards inspector I. Fazylova

1 CHARACTERISTICS OF THE DISCIPLINE, ITS PLACE IN THE EDUCATIONAL PROCESS

1.1 Brief summary of the discipline being studied

The discipline “Program Development Tools” (hereinafter referred to as ISDP) belongs to a mandatory component of the cycle of core disciplines of the educational program of the specialty 5B070400-“Computer Engineering and Software” and is part of the program development module of the modular educational program of the specialty 5B070400-“Computer Engineering and Software” .

The content of the discipline being studied is aimed at developing students’ knowledge in the field modern technologies programming and tools to support them, contributes to the formation of an IT specialist with a broad outlook and culture of thinking, prepared for use in the field of modern CASE tools for designing software products.

1.2 Goals and objectives of studying the discipline

The purpose of studying the discipline “Program Development Tools” is to familiarize students with theoretical knowledge in the field of technologies for designing and ensuring the life cycle of software systems, as well as acquiring practical skills in using modern technologies focused on modeling business processes and designing software systems using CASE technologies ( Computer Aided Software/System Engineering, CASE). The goal of the discipline is consistent with the general goals of the modular educational program of the specialty.

The competency-based approach to teaching the discipline “Program Development Tools” determines its main objectives:

To form a system of knowledge among students in the field of software engineering and computer programming;

To familiarize students with the theoretical foundations of business process modeling, methodologies for designing and developing software products and a set of tools that ensure their life cycle;

Develop skills in using CASE tools for structural and object-oriented modeling and software design.


The objectives of studying the discipline ensure the implementation of the requirements established in the qualification characteristics for the preparation of bachelors in the educational program 5B070400 - “Computer technology and software”.

1.3 Results of studying the discipline

Learning outcomes are determined on the basis of the Dublin descriptors of the corresponding level of education and are expressed through the following competencies:

know and understand:

Software life cycle models and theoretical foundations of software design methodology;

Principles of classification of modern software development tools;

Approaches to modeling and restructuring business processes and systems;

be able to put into practice CASE tools that support:

Functional modeling methodology IDEF0;

IDEF3 event modeling methodology;

DFD data flow modeling methodology;

IDEF1X Semantic Data Modeling Methodology;

Methodology for object-oriented software modeling and UML metamodels;

be prepared to form judgments:

About choosing a life cycle model for a specific project and project;

On issues of improving software within corporate information systems and large government projects(from model AS-IS to model TO-BE);

About the meaning and consequences of your professional activity taking into account social, professional and ethical positions;

develop communication skills, including:

develop learning skills that contribute to:

Professional and personal development, advanced training in the field of international software engineering standards;

Independent acquisition and use in practical activities of new knowledge and skills in working with CASE tools, including in new areas of knowledge not directly related to the field of activity.

The educational and methodological support of the discipline is aimed at the successful formation of these learning outcomes.

1.4 Prerequisites

To fully assimilate the material in the ISPE discipline, you must have knowledge in disciplines related to algorithmization and programming technology.

1.5 Post-requisites

The knowledge gained is necessary for high-quality mastery of the material in the disciplines: interfaces computer systems and Internet technologies; systems and design of personal databases; information systems design and applied programming. The knowledge gained is necessary for successful training in software development.

2.1 Thematic plan


Name of the topic, its content

and other sources

Labor intensity,

Module 1 “CASE-tools for structural and functional design of software”

Lecture classes

Topic 1 “Introduction to the discipline.”

Basic concepts. Classification of modern software development tools. The purpose and objectives of software development tools. History of development of tools.

Topic 2 “Software design methods”.

General requirements for software design methodology and technology. A Guide to the Software Engineering Body of Knowledge SWEBOK. Review of software design methods. Software Design Toolkit Overview

Topic 3 “Fundamentals of software design methodology.”

Designing programs as complex systems. Software life cycle. Basic software life cycle processes. Auxiliary processes of software life cycle. Organizational processes of software life cycle

Topic 4 “Software life cycle models”.

The concept of a software life cycle model. Classic model of the software development process. Prototyping. Incremental development strategy. Spiral process model. RAD Rapid Application Development Model

Topic 5 “Software development methodologies”.

XP - process or extreme programming. Rational Unified Process (RUP) methodology. Flexible (agile) methodologies. Selecting a life cycle model for a specific project. Software Development Procedure

Topic 6 “Modern CASE technologies”.

CASE - technologies and their use. General characteristics and classification of modern CASE tools. Technologies for implementation and development of CASE tools. Evaluation of CASE tools

Topic 7 “Modeling business processes”.

Business process concept. Restructuring of business processes. Business process modeling. Business process modeling methods

Topic 8 “CASE technologies for structural analysis and software design.”

Methodology of structural analysis and design. Functional modeling methodology IDEF0. IDEF3 event modeling methodology. Modeling DFD data flows. Semantic data modeling methodology IDEF1X

Laboratory exercises

Topic 1 “Development of the IDEF0 functional model”

Topic 2 “Model development information processes IDEF3 and DFD data flows"

Topic 3 “Methodology of semantic data modeling IDEF1X”

Topic 1 “Reports and Sibling diagrams of the IDEF0 model”

Topic 2 “Tools for collective development of functional models in the BPwin environment”

Topic 3 “Creating reports in ERwin”

Topic 1 “Creating FEO Diagrams”

Topic 3 “Creating a categorization relationship in the IDEF1X model”

Total modulo 1

Module 2 “CASE tools for object-oriented software design”

Topic 9 “Fundamentals of object-oriented software modeling and UML metamodels.”

Hierarchy of meta-descriptions used in visual software modeling. Purpose and levels of UML models. Representations in UML

21, 22, 23, 24, 25

Topic 10 “Unified modeling language UML. UML Model".

UML is a unified modeling language. Entities in UML. Relationships in UML

22, 23, 24, 25, 26, 27

Topic 11 “Unified modeling language UML. UML Diagrams".

Types of UML diagrams. Common UML diagrams. Special UML Diagrams

22, 23, 24, 25, 26, 27

Topic 12 “Unified modeling language UML. General Mechanisms of UML".

Using common UML mechanisms. General properties of the model. Semantics points

22, 23, 24, 25, 26, 27

Topic 13 " general description systems from the perspective of UML representation."

UML representations from the perspective of generalization of descriptions. Common UML Mechanisms. General Model Properties

22, 23, 24, 25, 26, 27

Topic 14 “Description of software development functionality.”

Project risk management. Software development procedure. Documentation of software. Requirements Management

Topic 15 “Scientific and technological trends and the fastest growing segments in the global IT market.”

Three platforms in the evolution of the IT market. New IT trends: Gartner forecast. Global Top trends in IT development for the next 3-5 years

Laboratory exercises

22, 23, 24, 25, 26, 27

22, 23, 24, 25, 26, 27

22, 23, 24, 25, 26, 27

Independent work of the student under the guidance of a teacher (SIOP)

Topic 4. “Building UML structural diagrams”

22, 23, 24, 25, 26, 27


Topic 5. “Building UML behavioral diagrams”

22, 23, 24, 25, 26, 27


Topic 6. “Generation of program code using the UML model”

22, 23, 24, 25, 26, 27


Student independent work (SRO)

Topic 4. “Building UML structural diagrams”

22, 23, 24, 25, 26, 27

Topic 5. “Building UML behavioral diagrams”

22, 23, 24, 25, 26, 27

Topic 6. “Generation of program code using the UML model”

22, 23, 24, 25, 26, 27

Total modulo 2

Total for discipline, credit of the Republic of Kazakhstan


2.2 Assignments for independent work (SROP, SRO)


Duration of execution, units. a week

form of control

Deadline

(school week number)

The task for the SROP –IDEF0-model should be supplemented with reports and Node Tree diagrams.

The task for the SRO –IDEF0-model is supplemented with an FEO diagram.

Get acquainted with the basic techniques for collective development of functional models in the BPwin environment

Ind. task and additional questions when protecting. Test tasks

SROP assignment:

Split the IDEF0 model and

ABC analysis.

The task for SRO is to study the elements of the simulation model.

Gain practical skills in using tools for collective development of a model with elements of ABC analysis

The task for the SROP is to build a report template for the IDEF1X model.

Assignment for SRO - study the work on creating a categorization link in the IDEF1X model

Learn techniques for creating report templates using Report Builder in the ERwin environment and master the procedures for working with categorization relationships

Ind. assignment and additional questions when defending laboratory work Test tasks

Touch multi-position input and WPF events

Get initial information about ways to interact with a WPF application using

touching the screen for interactive interaction

Ind. assignment and additional questions when defending laboratory work. Test tasks

WPF Property and Event Triggers

Learn how to use WPF triggers to create animation effects

Ind. assignment and additional questions when defending laboratory work. Test tasks

Using the Office API and primary assemblies. Net Microsoft. Office. Interop

Master a simplified mechanism for interacting with COM in order to expand practical methods for organizing inter-program interaction

Ind. assignment and additional questions when defending laboratory work.

Test tasks


2.3 Schedule for completing and submitting assignments for the discipline



Main literature

1 Rambo J. Unified software development process / A. Jacobson, G. Buch, J. Rambo - St. Petersburg: Peter, 2002.-496 pp.: ill.

2 CASE technologies. Modern methods and means of designing information systems / - M.: Finance and Statistics, 1998. - 176 p.

3 Bakhtizin, software development: textbook. allowance / , . - Minsk: BSUIR, 2010. - 267 p. : ill.

4, Analysis and computer modeling of information processes and systems /, .- Dialogue-MEPhI, 2009. - 416 pp.

5 ISO/IEC 12207:2008. Systems and software engineering - Software life cycle processes [ Electronic resource]. - URL: http://www. iso. org/iso/catalogue_detail? csnumber=43447, free. - Cap. from the screen (access date: 10/30/2015)

6 GOST R ISO/IEC 12207-2010 Information technology. System and software engineering. Software life cycle processes. – M. Publishing house of standards, 2011., 115 p.

7 GOST R ISO/IEC 11179-2-2012 Information technology. Metadata registers (MDRs). Part 2. Classification [Electronic resource]. - URL: http:///Catalog/64/6430.shtml, free. - Cap. from the screen (access date: 10/30/2015)

8 GOST R ISO/IEC TO 12182 – 2002. Information technology. Classification of software. – Enter. 2002 – 06 – 11. – M. Standards Publishing House, 2002

9 IEEE Computer Society. SWEBOK [Electronic resource]. - URL: http://puter. org/web/swebok, free. - Cap. from the screen (access date: 10/30/2015)

10, Textbook for practical classes “Structural-functional approach to design and using CASE tools” / Perm. state mother-in-law univ.-t. – Perm, 2005.- 245 p.

11 Mark McGowan Methodology of Structural Analysis and Design SADT [Trans. from English] / arch, AkGowen - M.: MetaTechnology, 1993. -240 p.

12 RD 50.1.028-2001. IDEF0 Functional Modeling Methodology, Guidance Document. Official publication. - M.: IPK Publishing House of Standards, 2000. - 75 p.

13 modeling and analysis of systems. IDEF technologies: workshop/S. Cheremnykh, I. Semenov, V. Ruchkin. - M.: Finance and Statistics, 2006. -192 p.

14, Structural analysis of systems. IDEF - technologies/S. Cheremnykh, I. Semenov, V. Ruchkin. - M.: Finance and Statistics, 2001. – 208 p.

15 structural business models: DFD technologies / A. Kalashyan, G. Kalyanov. - M.: Applied information technologies, 2009. - 256 p.

additional literature

16 IEEE Std. 1320.2–1998. IEEE Standard on the Syntax and Semantics of the IDEFIX97 Conceptual Modeling Language (IDEF Object). - Enter. 1998-06-25. – New York: IEEE, 1998.

17 effective modeling with AllFusion Process Modeler/ V. Dubeikovsky.- M.: Dialogue-MEPhI, -2007.- 384 p.

18 modeling of business processes with AllFusion Process Modeler/ S. Maklakov. - M.: Dialog-MEPhI, -2004.- 240 p.

19 BPwin and Erwin. CASE tools for the development of information systems / S. Maklakov. - Dialogue-MEPhI, 2000. - 320 p.

20, Functional Design Methodology IDEF0. Textbook for the course “Software Development Technology” for students. specialist. 40 01 01 Information technology software full-time education. – Minsk: BSUIR, 2003. – 24 p.: ill.

21, Modeling in UML. Theory, practice, video course. - St. Petersburg, Professional literature, Science and Technology, 2010, 640 p.

22 UML language. User guide. Second edition. - DMK, 2006, 496 p.

23 J. Rambo, M. Blaha, UML 2.0. Object-oriented modeling and development. - Peter, 2007, 544 p.

24 Martin Fowler. UML. Basics. Quick Guide By standard language object modeling. Symbol-Plus, 2011., 192 p.

25 The Unified Modeling Language (UML) [Electronic resource]. - URL: http://www. uml. org/, free. - Cap. from the screen (access date: 10/30/2015)

26 introduction to UML: [Electronic resource] - Open courses of the Internet University of Information Technologies (INTUIT). - Access mode http://www. intuit. ru/studies/courses/1007/229/info (date of access: 10/30/2015)

27 visual modeling in the IBM Rational Rose 2003 environment: [Electronic resource] - Open courses of the Internet University of Information Technologies (INTUIT). - Access mode http://www. intuit. ru/studies/courses/14/14/info (date of access: 10/30/2015)

28 The Gartner Symposium/ITxpo [Electronic resource]. - URL: http://www. /technology/symposium/japan/exhibitor-directory. jsp, free. - Cap. from the screen (access date: 10/30/2015)

29 Review and assessment of development prospects for the global and Russian IT markets / Moscow Exchange company blog, IT standards, IT infrastructure [Electronic resource]. - URL: http://habrahabr. ru/company/moex/blog/250463/, free. - Cap. from the screen (access date: 10/30/2015)

4 KNOWLEDGE ASSESSMENT

4.1 Teacher requirements

Teacher requirements:

Attendance at lectures and laboratory classes, as scheduled, is mandatory;

The presence of students in classes is checked at the beginning of classes; if they are late, the student must silently enter the classroom and get involved in work, and during the break explain to the teacher the reason for being late;

Laboratory work assessed by points must be submitted on time; students who have defended at least one laboratory work of the current rating are allowed to take the midterm testing;

A student will not be allowed to take the midterm test again if he receives an unsatisfactory grade;

During classes Cell phones must be disabled;

The student is required to come to class in business attire.

4.2 Evaluation criteria

All types of assignments are assessed using a 100-point system.

Current control is carried out every week and includes monitoring of attendance at lectures, practical classes and independent work.

Midterm knowledge control is carried out on the 7th and 15th weeks of the semester in the form of testing. The rating consists of the following types of control:



The examination in the discipline takes place during the examination session in the form of testing.

The final assessment of a student’s knowledge in the discipline includes:

40% of the result obtained in the exam;

60% of current academic results.

Formula for calculating the final grade:

where P1, P2 are the digital equivalents of the first and second ratings, respectively; E is the digital equivalent of the exam grade.

The final letter grade and its digital equivalent in points:



4.3 Materials for final control

4.3.1 Module 1 “CASE-tools for structural and functional design of software”

In accordance with international standard ISO and IEC (International Electrotechnical Commission) programming technology is

A) one of the activities included in the software development cycle

B) the process of a programmer (human) creating a program (information structure) intended for subsequent execution (by a computer)

C) a body of generalized and systematized knowledge, or the science of optimal ways to carry out the programming process, ensuring, under given conditions, the production of software products with given properties

D) a set of methods and tools that allow you to organize the production process of creating software

E) an algorithm written in a programming language

F) a sequence of computer commands (operators, instructions), the execution of which leads to the result of solving a problem

Software tools are:

A) browsers providing GUI for interactive search, discovery, viewing and processing of data on the network

B) enterprise software, the functions of which provide financial management, customer relations, human resources management, etc.

C) linkers and debuggers

D) software used in the design, development, modification or development of other software products

E) software for accessing digital content or resources without editing them, examples are media players, web browsers, etc.

The compiler is:

A) a program that converts source text, written in a programming language high level, into executable program code that can be used on other computers without additional transformations

B) a set of tools for developing software products in a specific programming language, including a source text editor, translator or interpreter, linker, debugger, libraries of standard routines, etc.

C) a software package that is designed for the development of software products and integrates source text and resource editors, a compiler or interpreter, a linker, etc.

D) a programming system module or an independent program that assembles the resulting program from object modules and standard library modules

E) a program that provides step-by-step execution of the program, viewing the current values ​​of variables, calculating the value of any program expression and other functions

The main advantages of CASE tools are:

A) Increased development costs

B) Reduced development costs

C) Complicating access to data

D) Increased development time

E) Easier to modify systems

F) Data storage capability

According to the ICAM (Integration of Computer and Industrial Technologies) project, the methodology for functional modeling of a production environment or system is associated with the notation

The main elements of the IDEF3 model include

B) Links

C) external entities

D) Junctions

E) data flows

F) data stores

G) external entities

H) processes or activities (activities)

4.3.2 Module 2 “CASE tools for object-oriented software design”

Risk associated with going over budget, a negative reaction from the customer, or poor communication with users:

A) technical risk

B) calendar risk

C) management risk

D) commercial risk

The modeling principle used by the UML language, according to which the model should include only those elements of the designed system that are directly related to the performance of its functions or its intended purpose, other elements are omitted so as not to complicate the process of analysis and research of the model, is called

A) inheritance

B) encapsulation

C) polymorphism

D) abstraction

E) multi-model

F) hierarchical structure

The following entity types are used in the UML usage diagram

B) Use Cases

C) Actors

D) Interfaces

F) States

G) Objects

Which UML structural entity is outside the modeled system and directly interacts with it?

A) class

B) interface

C) actor

D) use case

E) artifact

F) node

5 BASIC FORMS AND METHODS OF TRAINING

To increase students' motivation to master knowledge in the discipline, the following are used:

Contextual learning, which allows you to identify connections between specific knowledge and its application in practice;

Interactive learning model that includes public advocacy laboratory work in the form of a presentation, message on the topic of SROP and CDS;

Software that allows, when performing laboratory work, to create groups of program developers, to manage the processes of complex debugging, testing and programs, which increases the creative activity of students, stimulates theoretical understanding of knowledge and independent search for solutions to problems of an individual task;

Project technology, which involves individual or collective activities to systematize knowledge in related disciplines (database design and IS design modules) involving a real production topic;

Training is based on the scientific and industrial experience of teachers, which allows students to be activated by associating their own experience with the subject of study;

Distance learning technology.

To formulate individual assignments with elements of scientific research when performing laboratory work, the results of scientific research by scientists of the department are used.

6 CONSULTATION TIME

Consultations are held according to the teacher’s work schedule.