20 object-oriented approach to system modeling. Object-oriented modeling based on UML


7. Geometric modeling. Types of modeling systems. Internal representation of models.

Geometric modeling.

Two tasks can be distinguished:

1.Construction of a geometric model of an existing body.

2. Synthesis of a geometric model of a new object.

When solving the 1st problem, it is necessary to specify a large number of points belonging to the surface of the object. When solving the 2nd task of geometric modeling, performed interactively, the main requirement for the means of generating and presenting a geometric model is ease of manipulating the model. There are 3 types of geometric models: frame, surface, solid.

A frame model represents a set of vertices and a set of edges that connect these vertices.

Surface model: First, a three-dimensional frame is created, onto which various types of mathematical surfaces are then “stretched.” Surface modeling systems support different types of surfaces: ruled surfaces, kinematic surfaces, and sculptured surfaces. The following operations can be performed on surfaces: cutting off a surface to another surface or a spatial curve on a surface, constructing smooth transitions or roundings between surfaces.

The advantage of surface modeling is that you can create geomes. objects of any degree of complexity.

Disadvantage: surfaces have no thickness, and real objects are a kind of closed volume.

The surface model of an object is a “shell”, inside of which there is emptiness, because of this, problems arise when dividing the object into finite elements when calculating mass-inertial characteristics and when monitoring the interpenetration of parts in an assembly. Surface modeling of phenomena. A painstaking process - requires knowledge of drawing geom. and developed spatial thinking.

A solid model is built from basic elements using appropriate operations: Boolean operations, extrusion, rotation, lofting, separation of solid bodies. CAD allows the following additional features: operations:

constructing fillets, constructing holes on faces, constructing stiffening ribs, constructing chamfers.

The solid model is stored in CAD in the form of a construction tree.

Advantage of solid modeling:

1.Easy parameterization.

2. Possibility of calculating mass-inertial characteristics and breaking them down into a finite element mesh.

3.Relative simplicity of modeling.

Disadvantage: limited design forms of the created models.

The data pages used to describe solid bodies are usually divided into three types depending on what bodies they are described.

1 page represents tree , describing the history of applying Boolean operations to primitives. The transaction log is called constructive representation of volumetric geometry (Constructive Solid Geometry C.S.G. representation). The tree is called treeC.S.G. (GSG tree).

2 pages contains information about the boundaries of the volume (vertices, edges, faces and their connection to each other). This view is called boundary representation (boundary representation- IN-rep), and the data structure is structureB- rep (B- rep data structure).

Third structure represents volume as a combination of elementary volumes (for example, cubes). You can come up with many decomposition models, choosing different elementary volumes, but none of them can accurately describe a volumetric body.

Modeling - one of the main methods of cognition, which manifests itself in isolating certain parts from a complex phenomenon (object) and substituting them with other objects that are more understandable and convenient for understanding, explanation and development.

Model - a real physical object or process, a theoretical concept, an ordered set of data that reflects some elements or properties of the object or phenomenon being studied, which are significant from the point of view of modeling.

Mathematical model model of an object, process or phenomenon. which represents mathematical patterns with the help of which the main characteristics of the modeled object, process or

Geometric modeling section of mathematics

modeling allows you to solve a variety of problems in two-dimensional, three-dimensional, etc. in the general case, in a multidimensional space.

Geometric model includes systems of equations and algorithms for their implementation. The mathematical basis for constructing a model are equations that describe the shape and movement of objects. The entire variety of geometric objects is a combination of various primitives ■ simple figures, which in turn consist of graphic elements - points, lines and surfaces.

Currently, geometric modeling is successfully used in management and other areas of human activity. There are two main areas of application of geometric modeling; design and scientific research.

Geometric modeling can be used in the analysis of numerical data. In such cases, the original numerical data is associated with some geometric interpretation, which is then analyzed, and the results of the analysis are interpreted in terms of the original data.

Stages of geometric modeling:

Statement of a geometric problem corresponding to the original applied problem or part of it:

Development of a geometric algorithm for solving the problem;

Implementation of the algorithm using tools:

Analysis and interpretation of the results obtained. Geometric modeling methods:

Analytical:

Graphic;

Graphic, using computer graphics tools:

Graphic-analytical methods.

Graphanalytical methods are based on sections computationally!! geometry, such as the theory of R-functions. Koons' theory of surfaces. theory of Bezier curves, spline theory, etc.

Modern scientific research is characterized by the use, along with two-dimensional and three-dimensional, multidimensional geometric models (particle physics, nuclear physics, etc.).

8. High-level graphic languages.

There are two approaches to building programming systems with high-level computer geometry and graphics languages. First the approach is to create an autonomous language, second– in the necessary modification of one or another original algorithmic language.

The first approach allows you to create a language that best suits the specifics of working with graphic and geometric information, but only in the class of applications for which the language was intended. Historically, the main application areas of such languages ​​are:

    automation of programming for CNC equipment;

    automation systems for design and engineering work that require tools for working with data that are not available in widely used algorithmic languages;

    geometric modeling systems.

One of the first problem-oriented languages ​​that had tools for describing geometric information was the language ART(AUTOMATED PROGRAMMING TOOLS). This language served as the basis for the development of various automation programming systems for CNC machines.

Examples of systems with an autonomous high-level language include systems for geometric modeling of three-dimensional bodies - COMPAC and SIMAC-D.

System COMPAC(COMPUTER ORIENTED PART CODING) is intended for generating a description of volumetric bodies from volumetric shape elements - (constructive geometry method). In addition to the three basic volumetric elements (cubes, cylinders, cones), profiled parts can be used, obtained by moving a closed contour along a straight line or arc, as well as bodies of revolution, obtained by rotating a closed contour around an axis. Elements are specified, positioned and measured by language constructs reminiscent of ART. Composing a part from volumetric elements is carried out using the operations of union, subtraction and cutting.

Differences SIMAC-D from COMPAC consist of a slightly different input language and a different set of basic shape elements, including a point, a plane, a cuboid, circular cylinders and a cone.

Autonomous graphical languages, like any specialized development, are highly effective in their application area, but the development and use of such languages ​​is associated with a number of problems:

    quite significant costs for creating a language and a translator from it;

    costs of implementation, of including the language in a working programming system and of training users who are not always willing to take on learning another language, but prefer to use procedural extensions of the ones they know algorithmic languages: ALGOL, FORTRAN, PL-1, PASCAL, etc.;

    difficulties with subsequent expansion of the language;

    Currently known computer geometry and graphics languages, unlike procedural extensions, as a rule, do not provide an interactive mode, but are intended for writing passive programs;

    It is difficult to combine graphical and geometric actions and conventional calculations within one application program, which is easily implemented in the case of procedural extensions.

9. Object-oriented modeling.

Object-oriented modeling (feature- based modeling) allows the designer to create three-dimensional bodies using familiar form elements (features). The created body carries information about these elements in addition to information about ordinary geometric elements (vertices, edges, faces, etc.). For example, a designer can give commands like “make a hole of such and such a size in such and such a place” or “make a chamfer of such and such a size in such and such a place,” and the resulting figure will contain information about the presence of a hole (or chamfer) in a specific place ) specific size. The set of form elements available in a particular program depends on the range of applications of this program.

Most object-oriented modeling systems support elements that are used in the manufacture of parts: chamfers, holes, fillets, grooves, recesses, etc. Such elements are called production , since each of them can be obtained as a result of a specific production process. For example, a hole is created by drilling, and a recess is created by milling. Therefore, based on information about the presence, size and location of production elements, you can try to automatically generate a process plan. Automatic process planning, if developed at a practical level, will provide a bridge between CAD and CAM, which currently exist separately from each other. Thus, at the moment it is better to model objects like the one shown in Fig. 5.20, using the object-oriented modeling commands Cut and Hole rather than just Boolean operations. A model created using such commands will facilitate process planning, if not make it completely automatic. The use of production elements in modeling is illustrated in Fig. 5.21.

One of the disadvantages of object-oriented modeling is that the system cannot provide all the elements needed for all possible applications. Each task may require its own set of elements. To overcome this disadvantage, most object-oriented modeling systems support some kind of language in which the user can define his own elements if necessary. After defining an element, you need to set parameters that indicate its size. Elements, like primitives, can be of different sizes, and the sizes are set by parameters at the time of element creation. Creating elements of different sizes by assigning different values ​​to the corresponding parameters is a form of parametric modeling.

Discipline “Linguistic and CAD software” (Bespalov V.A.)

    The concept of design automation and its linguistic support

    Basic and control linguistic support.

    Organization of dialogue in CAD, means of ensuring dialogue mode.

    Principles of organizing translators.

    Generalized compiler structure.

    Syntactical analyzer.

    Design and programming languages.

    Fundamentals of the theory of languages ​​and formal grammars.

    Ways to write language syntax. Organization of lexical analysis.

    Principles of operation of lexical and syntactic analyzers.

    The concept of design automation and its linguistic support.

Design automation characterizes any activity in which a computer is used to perform labor-intensive calculations, organize search and storage of information, geometric modeling and graphical display of results, as well as editing documentation in order to develop analysis and modification of products and processes. Design automation is implemented using CAD.

LO CAD is a set of languages, terms, definitions necessary for the implementation of an automated project. LO takes place along with: technical, mathematical, information, software, methodological and organizational support of CAD. The basis of LO CAD is special. language tools (design languages) designed to describe automated procedures. pr-i and design solutions. They are usually called problem-oriented languages ​​(POLs). 2 types of construction of the BPO:

1. Description of any task by using terms of physical and functional content. The transition to programs is realized using a translator.

2. POY combines the means of an algorithmic language with special language tools for modeling geometric objects.

POLY is a complex of linguistic and software, cat. should include the following. elements:

    POYA terminal character set

    POYA interpreter

    parsing tools

    directive packaging tools

    libraries of basic software functions

interface for communication with the DBMS

Interpreter- a program or device that carries out operator-by-operator translation and execution of the original program.

A macroprocessor is a program that replaces one sequence of characters with another.

    Basic and control linguistic support.

The linguistic support of well-developed CAD systems can be divided into two relatively separate parts - basic and control, communication between which is carried out using specialized language processors-compilers, interpreters, etc.

Basic linguistic support is the language basis of CAD software and consists mainly of existing programming languages, with the help of which, in a complex of CAD tools, computational and modeling procedures of a generalized design algorithm are implemented, and also the solution of service problems is provided.

Management linguistic support consists of specialized problem-oriented languages ​​that describe a generalized design algorithm in terms of design operations, procedures and tasks. These languages ​​develop vocabulary, syntax and semantics that are essentially related to a specific design domain. The creation and use of problem-oriented languages ​​allows you to organize a highly efficient and ergonomic process for managing computer-aided design. In particular, there is an opportunity for dialogue between the designer and the complex technical means CAD approaching the natural speech request-response design mode.

As a rule, requests for a generalized design algorithm, even at the level of design operations with their intermediate results, require the complex implementation of various computational and modeling procedures, i.e., the systemic activation of a number of elements and fragments of basic linguistic and CAD software. Thus, the languages ​​of the control part of the linguistic support must correspond to a certain system aggregation

... » Issues of construction are considered subsystems CAD meteorological support (MP... practical training on discipline"concepts of modern... intellectual data analysis. Intellectual analysis, parallel algorithms, intellectual ...

  • A course of lectures on the discipline “Theory of information processes and systems” for VlSU students studying in the direction 230400. 62 Information systems and technologies

    Document

    Near CAD systems, which... Subsystem quality control 2. Subsystem process control 3. Subsystem... development of natural sciences disciplines(these are differential... carrying out information and intellectual production support...

  • Abstract to the work program of the discipline “Mathematical Logic and Theory of Algorithms” in the direction 230100. 62 Informatics and Computer Science

    Document

    Files. 11. Programs CAD, their graphic capabilities. ...software intellectual systems Summary disciplines. Artificial intelligence... . Functional subsystems ASOIU: structure of functional subsystems, functional...

  • Textbook for discipline 1722 “Design of computer systems” in specialty 230102 Automated information processing and control systems Faculty of IT

    Analysis

    Systems imitate intellectual processing processes... design ( CAD) - intended... Subsystem Marketing Production subsystems Financial and accounting subsystems Subsystem...maintain a comfortable discipline maintenance, modifications...

  • ArCon. Interior design and architectural modeling for everyone Kidruk Maxim Ivanovich

    Object-oriented modeling

    The generally accepted philosophy in most modern graphics systems when creating drawings on a computer is to use the simplest geometric primitives: points, segments and arcs. By using various combinations of the listed primitives, by assigning certain values ​​to their geometric properties (meaning the coordinates of characteristic points, lengths, radii, etc.), as well as using the editing commands built into the program, the user can create an arbitrarily complex image. You could argue that almost any graphics system also contains many more commands for constructing, say, Bezier curves or NURBS curves. However, don’t let this fool you: at the hardware level, all these curves and splines are still translated into a sequential set of segments that approximate the real curve (that is, as close as possible to the actual position of the curve). The approach in three-dimensional solid modeling is approximately the same: a complex three-dimensional object is created through sequential combinations of various basic three-dimensional shapes (cube, sphere, cone, torus, etc.), as well as using basic shaping operations (extrusion, rotation, Boolean operation and etc.).

    In most cases, this approach is quite satisfactory for users, since it allows you to create images and models of virtually any shape. However, this comes at the cost of time spent learning functionality graphic system, as well as the time required to create each such drawing or three-dimensional model. The fee, in essence, is not that high, but soon this approach ceased to suit users. The reason for this, first of all, should be considered the fact that when designing, the user creates a model or image of a real (albeit not yet existing) material object. Any such real-world object is endowed with very specific properties that cannot always be conveyed through the image of a regular drawing or 3D model. It should be noted that such a possibility, with the development of means and, accordingly, design requirements, would be far from superfluous. It was this that served as the impetus that forced individual developers to take a slightly different path, as a result of which the object approach was invented.

    In object-oriented modeling, the user operates not with the simplest geometric primitives, but with specific objects. For example, when constructing a floor plan of a building, now instead of points, segments and arcs, walls, windows, doors, individual rooms, etc. are used. Each such object is endowed with a certain set of properties that are specified (or assigned by default) when creating an object and are stored in a document file along with the drawing image or the geometry of a 3D model. For windows, these properties may include dimensions and a description of the window shape (rectangular, semicircular, arched or any other shape), optical properties of the glazing, material and texture of the frame. For walls - the thickness, length and height of the wall, the material of the wall, the texture of the external and internal surfaces, the presence of windows or doors on a given wall, as well as links to objects corresponding to these windows or doors.

    In three-dimensional modeling, a 3D scene is also built from individual objects that the system offers the user to choose from. For example, if specific program is intended for modeling the design of residential rooms or commercial premises, then the database of such a program can be represented by a set of various upholstered or office furniture, cabinets, tables, etc. Each three-dimensional interior object also has specific properties that allow it to be modified in within certain limits(change color, configuration, select material and other properties).

    Application object approach provides many benefits.

    The speed of creating plans and drawings increases by an order of magnitude.

    The drawing or model becomes more informative: when selecting (or editing) an object, you can easily determine (replace) its properties, and most of these properties, as a rule, cannot be displayed on a regular drawing or model.

    The database of objects is sometimes filled not just with arbitrary, previously prepared, but with completely real objects (for example, real-life pieces of furniture from various companies, materials from specific manufacturers, etc.). In such cases, the program must provide the addresses of supplier companies and manufacturers, to which you can immediately contact and order the necessary materials and other objects immediately after completing the project.

    Objects are easy to change and modify, and the program monitors the correctness of setting the values ​​of certain properties (for example, you cannot create a window larger than the dimensions of the wall on which it is placed). This makes your work easier and avoids unintentional errors.

    The constructed model (drawing) can be presented in the form of a hierarchical tree (Fig. 1.1), which makes it easier to navigate the project, search and edit its individual parts.

    Rice. 1.1. An example of a hierarchical representation of a construction plan created based on the object approach

    Note

    Hierarchical representation is far from new in computer-aided design. However, in in this case The nodes of the tree are not individual parts of the graphic image, which, as a rule, are uninformative and do not carry any semantic load, but specific objects divided according to a certain criterion.

    One of the main, but not at all obvious advantages object-oriented approach to creating graphic images is the ability to quickly and completely automatic transition to a three-dimensional image (in other words, the ability to automatically generate a three-dimensional model of the designed object). Taking into account the fact that the set of objects with which the user can operate is in any case limited, and also taking into account the fact that enough information can be included in the properties of each object to get a complete picture of its shape, it becomes possible to implement “raising” a graphic image in 3D without any effort on the part of the user (this is exactly the approach implemented in the ArCon system). As a result, the user almost instantly receives a three-dimensional representation of his project, without spending almost any effort. The resulting three-dimensional model can then be visualized and get a realistic picture or transferred to another system for further editing or engineering calculations. Moreover, in this case the user does not need any special 3D modeling skills at all.

    Note

    More attention should be paid to this property, since generating a three-dimensional model from drawings has long been a stumbling block for all developers of engineering graphic systems. In fact, in practice, the exact opposite principle is implemented - generating a drawing (essentially a projection of a 3D model) based on a finished model. An attempt to implement the reverse action (transition from a two-dimensional image to 3D) took place in some well-known CAD systems (in particular, in SolidWorks), but it can hardly be called successful. Too strict restrictions are imposed on the two-dimensional image, which does not allow the declared functionality to be applied everywhere. The object approach provides the opportunity to obtain a completed three-dimensional model, of course, taking into account the specifics of specific objects.

    Despite a large number of Although the advantages listed above, the object-oriented approach also has disadvantages.

    First of all (and this is obvious) this is the limited set of ready-made objects, as well as the impossibility of changing them arbitrarily. This takes away flexibility from the program, which means that the principle of object-based design can only be applied in specialized systems (such as, for example, ArCon, Professional Home Design Platinum, etc.). Developers of such systems need to thoroughly take into account the specifics of the industry for which the software product is intended to automate and solve problems, and also maximize the ability to customize the properties of the proposed objects.

    Here the issue of cost and functionality of the system comes to the fore. If you are 100% sure that this or that specialized program suitable for your purposes, there should be no doubt when purchasing it. Otherwise, you need to study the functionality in more detail to make sure whether it will be possible to solve the assigned tasks or, in the worst case, you will have to spend money on a “regular” and expensive CAD editor.

    The second disadvantage of object-oriented graphical engineering systems is the problem of integration with other graphic systems. We are not talking about any problems with data transfer - the exchange of both two-dimensional and three-dimensional information has long been considered a standard for any commercial programs. The essence of the problem lies precisely in the loss of object property values, as well as all hierarchical relationships built between objects. The reason is clear: the system to which you plan to export the project may not support the object approach or may have a list of properties for its own objects that is different from this one. For this reason, when saving a project from the ArCon program to some other format (not an ArCon object), only the graphic image is exported.

    Note

    Looking ahead, I will say that ArCon+ 2005 projects can be exported to various 2D and 3D formats using the File? command group. Export in format (Fig. 1.2). It is important to note that the program supports such well-known data exchange formats as VRML, DXF, the 3ds Max system format, as well as the ability to save the project into an executable EXE file (more on this below).

    Rice. 1.2. Supported formats for exporting projects from ArCon

    The situation is even worse when importing data from other systems. If they are not brought to a specific format, it is impossible to “take” them into a specialized object system. For example, when importing a drawing from AutoCAD into ArCon, only the image can be loaded. At the same time, ArCon will not be able to independently recognize where in open image windows, doors, walls, etc., and even more so to assign completely reasonable properties to individual objects. This means that further editing of the drawing in ArCon, as well as “raising” it in 3D, is impossible. Importing essentially becomes meaningless, which is why the vast majority of object-oriented design systems do not have functions for reading graphic data from the outside.

    However, despite such significant shortcomings, ease of work, and most importantly, the speed and clarity of project implementation prevail. As a result, recently systems like the ArCon program discussed in this book have found wide application in solving various design problems.

    From the book Python - modules, packages, classes, instances. author Broitman Oleg

    Object-Oriented Programming Python is an object-oriented language with multiple inheritance. We can say that Python supports the classic OO model with some features. Classes in Python can have static variables that are shared

    From the book 3ds Max 2008 author Workbench Vladimir Antonovich

    Object-Oriented Modeling 3ds Max 2008 is an object-oriented program, meaning everything created in the program is an object. The geometry, cameras, and lights in the scene are objects. Objects are also modifiers, controllers, raster

    From the book Using C++ Effectively. 55 Sure Ways to Improve the Structure and Code of Your Programs by Meyers Scott

    Chapter 6 Inheritance and Object-Oriented Design Object-oriented programming (OOP) has been around for almost 20 years, so you probably have some understanding of inheritance, derived classes, and virtual functions. Even if you

    From the book Fundamentals of Object-Oriented Programming by Meyer Bertrand

    Object-Oriented Software Design We have already accumulated enough evidence to try to define object-oriented software design. This will be just a first draft, a more specific definition will follow in the next lecture. OO software design (definition 1)

    From the book Programming in Ruby language[Ideology of language, theory and practice of application] by Fulton Hal

    Designing Object-Oriented Software We have already given a definition of object-oriented software design: being very general, it represents the method as follows: “to base the architecture of any software system on modules derived from the types of objects with which

    From the book VBA for Dummies by Steve Cummings

    1.1. Introduction to Object-Oriented Programming Before we start talking about the Ruby language itself, it would be nice to talk about object-oriented programming in general. Therefore, we will now briefly review the general ideas, only touching lightly

    From the book Programming for Pocket PCs author Volkov Vladimir Borisovich

    From the book Basics of Java Programming author Sukhov S. A.

    11.1. Routine object-oriented tasks Of his quick objects hath the mind no part, Nor his own vision holds what it doth catch... William Shakespeare. Sonnet 113 If you are not at all familiar with OOP, then this chapter will teach you nothing. And if you understand what OOP is in Ruby, then it’s probably not worth reading.

    From the C++ book for beginners by Lippman Stanley

    Object-Oriented Programming and VBA As a result of its evolution Visual Basic evolved into an (almost) object-oriented programming language. Although mastering the techniques of working with objects is a bit of a challenge when you first get started with VBA, you can expect

    From the author's book

    Chapter 12. Object-oriented programming. In This Chapter...~ Conceptualizing Objects~ Understanding the Properties, Methods, and Events - the Main Components of VBA Objects~ Working with Object Models~ Using Forms as Objects~ Finding and Setting Object Properties~

    From the author's book

    Object-oriented programming Abstraction, inheritance, polymorphism, encapsulation When talking about OOP (object-oriented programming), we cannot ignore these four basic concepts. Therefore, a brief description of them will be given below. Abstraction -

    From the author's book

    OBJECT-ORIENTED PROGRAMMING IN JAVA 7. CLASSES The basic element of object-oriented programming in Java language is the class. In this chapter, you will learn how to create and extend your own classes and work with instances of these classes. Let us remind you that

    From the author's book

    2.4. Object-Oriented Approach Recall our array specification in the previous section. We talked about how some users might want an ordered array, while most would probably be happy with an unordered one. If

    From the author's book

    Procedural-Oriented Programming Part II introduced the basic components of the C++ language: built-in data types (int and double), class types (string and vector), and the operations that can be performed on data. In Part III we will see how these components are used to build

    From the author's book

    V. Object-Oriented Programming Object-oriented programming extends object programming by introducing type-subtype relationships through a mechanism called inheritance. Instead of reimplementing common properties, the class

    From the author's book

    17.1.1. Object-Oriented Design What makes up object-oriented design for the four types of queries discussed above? How are the problems of their internal representation solved? Using inheritance, you can determine the relationships between

    There are several approaches to modeling in software development. The most important of them are algorithmic (structural) and object-oriented.

    The structured method represents the traditional approach to creating software. The basic building block is a procedure or function, and attention is paid primarily to issues of control transfer and decomposition of large algorithms into smaller ones.

    The most modern approach to software development is object-oriented. Here the basic building block is an object or class. In the most general sense, an object is an entity, usually retrieved from a dictionary subject area or solutions, and a class is a description of a set of objects of the same type. Each object has an identity (it can be named or otherwise distinguished from other objects), a state (usually there is some data associated with the object) and behavior (you can do something with it or it itself can do something with other objects).

    As an example, consider a three-tier billing system architecture consisting of a user interface, middleware, and a database. The interface contains specific objects - buttons, menus and dialog boxes. The database also consists of specific objects, namely tables representing domain entities: customers, products and orders. Middleware includes objects such as transactions and business rules, as well as more abstract representations of domain entities (customers, products, and orders).

    If you accept an object-oriented view of the world, you need to answer a number of questions. What structure should a good object-oriented architecture have? What artifacts should be created during the project? Who should create them? And finally, how to evaluate the result?

    Visualization, specification, construction and documentation of object-oriented systems is the purpose of the UML language.

    Object-oriented modeling languages ​​emerged from the mid-70s to the late 80s, when researchers, faced with the need to take into account the new capabilities of object-oriented programming languages ​​and the demands of increasingly complex applications, were forced to begin developing various alternative approaches to analysis and design.

    The technology for developing software systems, which is based on the paradigm of representing the surrounding world in the form of objects that are instances of the corresponding classes, is called object-oriented analysis and design (OOAP) - OOA&D (Object-Oriented Analysis/Design). Within this technology, the UML language is a means of graphically representing the results of modeling not only software, but also broader classes of systems and business applications, using object-oriented concepts. At the same time, the relationship between the basic concepts for conceptual and physical level models is explicitly ensured, and model scalability is achieved, which is especially important for complex multi-purpose systems.

    The language developers themselves define it as "a general-purpose visual modeling language designed for specifying, visualizing, designing, and documenting software components, business processes, and other systems".

    Mikhail Vasiliev, Igor Khomkov, Sergei Shapovalenko

    At almost all stages of the life cycle information systems(IS) - both design, when the basic characteristics of the system are laid down, and maintenance and management of an already built IS - many questions arise that are of paramount importance. Will this IS architecture meet growing needs? Which bottlenecks require the most attention? What investments are needed for IP to remain working condition in a year?.. three years?.. five years? What is the effectiveness of the IP used?

    Answering all these questions is by no means easy. It's even harder to answer them correctly. Analyzing a corporate information system at any stage of its existence is a complex matter.

    We can say that the complexity of corporate information systems is not accidental, but rather a necessary property. It is determined by a number of reasons, among which are the following:

    The complexity of the problem being solved;

    Complexity of IS development;

    The difficulty of ensuring such parameters as adequacy, scalability, reliability, cost-effectiveness and security;

    Difficulty in describing individual IS subsystems.

    Objective assessments can be provided by the use of modeling technologies. Building a model, analyzing it and obtaining answers to the questions “what will happen if...?” allow us to predict the behavior of the IS in different situations. Bench prototyping and construction of computer models of ICs are most often used.

    Currently, there are three leaders in the information systems modeling tools market. These are American companies MIL3 (OPNET modeling system), Make Systems (NetMaker XA system) and CACI Products Company (COMNET system). In Fig. 1 shows the main window of the OPNET system. (In PC Week/RE, No. 34/98, p. 36, Fig. 2 shows a window for graphical presentation of results in the OPNET system.) Let us dwell on one of these systems and the approach implemented in it in more detail.

    IC modeling technology using COMNET III

    The obvious way to model complex systems is to decompose them according to the ancient principle of Divide et impera (Divide and conquer - Latin). Hierarchical representation of complex IS as a set of interconnected subsystems is the key to uncovering the situation. The subsystems obtained as a result of such decomposition can, in turn, be divided into subsystems of the next level of the hierarchy, and so on ad infinitum. It is the ability to decompose complex systems that allows us to create their models. However, on this path it is extremely important to be able to stop in time.

    The final stage of the decomposition process is determined by the lowest level of abstraction applied in each specific model. Excessively detailed fragmentation can lead to a result that is exactly the opposite of what was expected: instead of simplifying the modeled system, you can end up with its complexity, in what is called “you can’t see the forest for the trees.” Thus, choosing the right level of abstraction is essential for successful modeling.

    The next step to facilitate the modeling of complex systems is the discovery and isolation of common abstractions. Let's assume that we have already decomposed the modeled IS and obtained a certain hierarchy of entities. For example, Cisco router 7500 and the NS7000 computer, equipped with several network cards and performing software routing can be considered both as two completely different objects, and as two objects belonging to the same class of routers. Decomposition of the system using the class metaphor in combination with a correctly selected level of abstraction allows you to radically simplify the construction of an IS model.

    Rice. 1. Main window of the OPNET system

    Usually, two main types of decomposition are considered: algorithmic, which divides the system under study according to its active principles, i.e., the processes occurring in it in a certain order, and object-oriented, which makes it possible to divide the system under study into classes of similar abstractions. Both types of decomposition have found their way into COMNET III.

    The approach to building models in COMNET III can be presented as a standard sequence of steps:

    Description of the IC topology and determination of equipment parameters;

    Description of traffic sources and their behavior, description of network load;

    Definition of the simulation scenario.

    Determining the IS topology and the connections between traffic sources and topology nodes is an ideal field for applying object-oriented decomposition. Algorithmic decomposition is required to describe the behavior of traffic sources and changes in network load over time.

    As already mentioned, the boundary conditions for IS decomposition depend on the required level of abstraction. Abstraction allows the developer creating an IS project, or the system administrator maintaining it, to separate the most significant features of its behavior from how exactly they are implemented. “A good abstraction is one that emphasizes the details that are essential for consideration and use and omits those that are not this moment are insignificant or distracting”*1. So, in one situation, when describing a computer, it is enough to define it as a source of traffic, without going into a detailed description of the architecture, while in another, a detailed consideration of such characteristics as, say, the number of processors and disk subsystem parameters may be required.

    *1. Shaw M. Abstraction Techniquest in Modern Programming Languages. - IEEE Software, Oct. 1984, v. 1(4), p.10.

    The COMNET system fully applies the object-oriented decomposition method, which can significantly reduce modeling time and make its process intuitive, clearly correlated with real system. The model is created from objects, a kind of “building blocks”, familiar to the user from experience real life. The COMNET system comes with a large library of such objects - models of real network equipment and methods of access to the environment. Let's take a closer look at the COMNET object model (Fig. 2).

    Rice. 2. Basic COMNET III class library

    Objects in this system can be divided into two classes: those used, firstly, to describe the topology and, secondly, to describe the traffic and load characteristics of the network. The basic COMNET III screen with a set of library classes is shown in Fig. 3.

    Rice. 3. COMNET system main screen

    Description of topology in COMNET III

    Such basic topology concepts in the COMNET III system as nodes, connections, arcs were described in PC Week/RE, No. 34/98, p. 34.

    In addition to nodes, connections and arcs for describing hierarchical topologies and modeling independent routable domains, the COMNET system includes another additional class, the objects of which can also be located at the vertices of the graph - a subnet.

    The use of inheritance mechanisms, including multiple ones, expands the range of classes used.

    The node class is inherited by four new classes.

    Class “Computer and Communications Node” (C&C Node, Computer and Communications Node)

    These objects can serve as sources or receivers of traffic, and are also used to model complex software systems that take into account the load of the processor and disk subsystems. IC nodes described using C&C Node can also be used to model software routers.

    Computer Group Node class

    The object can only be used for modeling computer systems, since their functionality includes only a source and receiver of traffic. As a rule, it is used to describe groups of computers that have identical behavior.

    Router Node class

    Objects of this type are used to model hardware routers. Just like C&C Node, Router Node can act as both a source and receiver of traffic and run applications that use the node’s hardware resources (processors, disk subsystems). For a more detailed description of the hardware implementation of the simulated objects, a number of additional properties have been introduced, such as the presence and parameters of the internal bus, which allows you to simulate the internal passage of traffic between the input and output ports of the object.

    Switch Node class

    Objects of the Switch Node type, having the ability to route, are used to model switches that spend a negligible amount of time transmitting traffic between internal ports. However, these objects, unlike the three previous ones, cannot be used either as a source or as a receiver of traffic.

    Objects of the C&C Node, Computer Group Node and Router node classes for modeling complex software systems include a repository of commands that use the already mentioned object properties, such as the characteristics of the disk subsystem. The constantly updated library of objects of various classes that are part of COMNET includes a wide range of models of real-life hardware devices.

    The link object inherits two new objects.

    Class “Point-to-Point Link”

    This class is used to describe channels between two nodes. Examples of such connections include leased lines connecting routers in wide area networks or connections in circuit-switched networks.

    Class “Multiaccess link”

    The application field for this class is situations where several nodes have access to the same data transmission medium. In turn, this object is inherited by a number of new objects that describe specific facts of the implementation of the medium access method, such as Carrier Detection, Token Passing, SONET, etc. (see Fig. 2).

    So far we have considered cases where a parent object is inherited by a single child object. However, the object-oriented approach also allows for more complex situations with multiple inheritance. This form of inheritance is also applicable in the COMNET system. Here, multiple inheritance is used to create objects of such important classes as Transit Network and WAN Cloud.

    Both classes are descendants of two parent classes - Subnet and Link. The form of inheritance is shown in Fig. 2. Let's consider this option in more detail.

    Subnet class

    An extremely important class. Used to create hierarchical IC topologies, it allows you to correctly describe subnets with different routing algorithms, independent of the algorithm used on the backbone. In addition, subnets are used to hide excessive detail when modeling complex ICs. In COMNET, they are used to describe systems with arbitrary nesting depth. Connections between the internal subnet topology and the backbone topology are made using access points, the number of which can be arbitrary (see Fig. 3).

    Class “Transit Net”

    A child of subnets and connections is an object that combines the properties of its parent objects. A transit network can be considered both a connection and a subnetwork at the same time. As a connection, it forwards packets from the output buffer of one node to the input buffer of another. In the form of a subnet, the transit network creates within its boundaries an area with its own routing algorithm.

    Class “Cloud” (WAN Cloud)

    Objects of this class, which allow you to create abstract representations for global networks, also inherit the properties of their parent objects - Subnet and Link. From a topology perspective, the WAN Cloud object functions like a connection object, with its icon connecting directly to nodes. In terms of its internal structure, the cloud consists of a set of virtual circuits and access links, a type of point-to-point connection for modeling global networks.

    Description of traffic and network load in COMNET III

    As we have already said, the IS model in COMNET includes two parts: a description of the system topology and a description of traffic sources and network load. We have looked at the basic range of objects associated with topology. Now let's turn to objects that describe traffic.

    COMNET provides a wide range of tools for describing traffic.

    Message class

    Objects belonging to this class allow you to send a single message to either one recipient object or multiple objects. Forwarding such messages is treated as a sequence of datagrams, where each packet is routed independently of the others.

    Class “Response”

    Objects of this class can only be used to send response messages. They are controlled by the arrival of messages created by objects of the Message or Response classes. The recipient of messages of the Response class will always be an object of the Node class to which the source of control messages (of the Response or Message class) is connected.

    Class “Call”

    Objects of the Call class are used to create models of circuit-switched networks. The call source is described by a set of parameters such as distribution law, duration and, taking into account the routing class, bandwidth requirements.

    Session class

    These objects are used to model sessions that include sets of messages or messages routed over virtual connections. A session is initiated by sending a session setup packet and receiving an acknowledgment packet. Subsequently, an arbitrary number of messages can be sent within the session, also described in the Session class object. Such messages are routed either as datagrams or virtual connections- depending on the routing algorithm on the highway or in the subnet containing this object.

    Note also that COMNET III uses so-called external traffic files, which can be obtained using various traffic analyzers.

    Of particular interest are objects of the “Application” class, which is the result of multiple inheritance of the Message, Response, Call and Session classes (see Fig. 2). Its objects allow you to most flexibly describe the workload of the network and the behavior of traffic sources within the model. Moreover, when using them, almost any type of software system can be easily simulated, including distributed ones, such as DBMS, postal systems etc.

    The real application described by objects of this class includes three components. First, these are the parameters of the node to which the Application class object is connected. Using these parameters, you set the characteristics and number of required processors and disk subsystems. Secondly, these are the so-called command repositories that use the above-mentioned node characteristics. And thirdly, this is the Application object itself, which controls the sequence of execution of these commands.

    The node's command repository, and therefore the Application class object, can contain the following commands:

    Transport Message (transmit message). This command is the result of an object inherited by the Application class from a parent object of the Message class.

    Setup is the result of inheriting the Session class.

    Answer Message is an inheritor of the Response class.

    Filter Message (filter messages). This command allows you to pause all operations described in the Application class object until a message is received that satisfies the filtering conditions.

    Process. This command simulates processing that causes CPU load.

    Read and Write (read and write). These two commands also allow you to simulate the busyness of the host processor, but in the context of interaction with the disk subsystem for reading and writing files.

    Thus, using the Application, Message, Response, Session and Call classes, it is possible to both flexibly model the current network load and provide a detailed description of the behavior of the software systems included in the IS. It is extremely important that these classes allow you to model complex distributed software systems and their impact on the existing network infrastructure of the network.

    COMNET III Objects: Parametric Abstraction

    When talking about the core set of COMNET III classes, it is extremely important to mention the applicability of so-called parametric abstraction to them. This approach allows you to create new objects - instances of a class with different properties. Such important technological decisions as, say, Gigabit Ethernet, can be very simply modeled by changing the parameters of the abstraction in question - the properties of the selected class.

    Let's look at an example. Let's say we simulate local network, which uses a random access method with carrier sensing and collision detection at the MAC sublayer (CSMA/CD, a class of multiple access connections), however, the link layer standard proposed by the network equipment manufacturer is somewhat different from the “native” IEEE 802.3. This situation, when using a product that does not implement an object-oriented approach, could cause some inaccuracies. The developer would be forced to use the standard offered by the product manufacturer, most likely classic 802.3. In Fig. Figure 4 shows the COMNET III interface window, with which the user can edit the parameters of this standard - the number of retransmissions in case of collision detection, the length of the frame header, etc. In other words, the user himself performs the parameterization of the object.

    Rice. 4. Parameterization of 10BaseT connection according to IEEE 802.3 standard

    So, we decide on the correspondence between the reference standard and the manufacturer's standard. Our further actions boil down to replenishing the library of CSMA/CD class objects with a new standard defined by the user. To do this, just add new parameters. We can do the same with hardware nodes, traffic sources, WAN Cloud parameters, etc.

    This shows that parameterization provides ample opportunities to expand the basic library of objects, allowing the model developer to make more flexible decisions.

    Expand basic set classes is possible with further use mechanism of inheritance.

    Intermodel copy-paste mode

    Let's assume that we are building a large model that has a very complex topological description. Here we can go in two ways: combine the entire system topology in one file or build several fragments and subsequently combine them. The second option is more convenient for the developer for a number of reasons. This includes ease of debugging of each individual fragment, good visibility, and, ultimately, greater reliability.

    In the future, the whole problem is to transfer objects from one model to another. To solve this, it is convenient to use the COMNET III Intermodel copy-paste mode (copying and pasting an external model), which ensures the transfer from model to model of newly created objects with all properties except those that are local to the source model.

    Let's give an example. Let's say we transfer a network fragment that has some load from one model to another. Traffic is described by objects of the Message class. A property of such objects that is local to the source model is its destination. The remaining properties will be transferred without changes from objects that inherit the Node classes (C&C node, Computer group, Router, Switch), Link, etc., not tied to the source model.

    The parameterization procedure in this case is very simple. In particular, for a message you can specify its direction in accordance with the list of names from the new model, which is automatically attached to the object.

    The use of the described method opens up wide possibilities for constructing any models from a flexible, expandable set of objects - building blocks, allowing you to significantly reduce modeling costs.

    Modular construction nodes

    Let's consider the procedure for creating an object of a new class based on multiple inheritance.

    Suppose a developer is given the task of building detailed model hardware device (for example, a router, several interface modules of which are connected by an interface bus). The purpose of building the model is to determine the delay on the interface bus. In the standard description of COMNET III, the bus is described by two parameters: bandwidth and frequency. It is clear that such a description is not enough for us. However, we have an object at our disposal that allows us to describe the tire as separate device, - connection. In general, this is not a completely standard solution, but by carrying out the necessary parameterization of the Link class object, we will obtain a model of the bus as a fully functional device that implements, for example, an arbitration function. Shown in Fig. 5, the MPRouter object is modeled in exactly this way. The interface bus here works using the Token Bus algorithm.

    Rice. 5. Parameterization of traffic source during transfer

    model fragment to another model (Session Source)

    It should be said that the developer should not abuse such techniques, since, as already mentioned, too precise a description of each object in some situations can have the opposite effect, which is expressed in reducing the reliability of the model as a whole. This technique is applicable in cases where a detailed description of the characteristics of objects is necessary.

    Ability to set object states

    Any object in COMNET can be in several states. For example, for objects of the Link and Node classes, the possible states are up, down, failure (on, off, error). You can also simulate transitions between these states and analyze the effect of the transition on the simulated IC (Fig. 6).

    Rice. 6. Determining the parameters of the current state of the object (Node Properties)

    This gives the developer ample opportunity to create dynamic scenarios like “what happens if...?” and thereby significantly increases the flexibility of the created model.

    So, we looked at the main tools and the most common techniques for building models in COMNET III. The authors plan to devote further articles to modeling various solutions widely used in modern IS.

    The most obvious formalization of the systems approach to the study of complex systems is carried out on the basis of the concept “ an object” as a basic element of the system. An object approach will be called a system approach formalized on the basis of the concept of an object. Technologies built on the basis of the object approach will be called object-oriented technologies(OOT).

    Object-oriented modeling(OOM) provides a number of significant advantages:

    1. The use of an object-based approach significantly increases the level of development unification and suitability for reuse models that have already been created and proven to work.

    2. The use of OOM leads to the construction of systems based on stable intermediate descriptions, which simplifies the process of making changes. This allows the system to develop gradually and does not lead to its complete redesign even in the event of significant changes in the original requirements.

    3. Object-oriented models are often more compact. This means not only a reduction in the volume of program code, but also a reduction in the cost of the project due to the use of previous developments, which results in a gain in cost and time.

    4. An object model reduces the risk of developing complex systems through clearly defined design steps and an integrated model creation process that extends over the entire development period rather than becoming a one-time event.

    5. The object model allows you to fully use the expressive capabilities of modern object-oriented programming languages.

    Comparison of object definitions in the literature revealed important points of OOM:

    Object analysis reveals behavior and structure for objects;

    Ambiguity in the representation is resolved by assigning the term to the concepts "Class", and for specific physical objects the term "an object".

    Thus, OOM involves support for classes and instances of (static and dynamic) objects, encapsulation, inheritance and polymorphism. The concepts of class and instance are supported either explicitly or implicitly by almost all simulation languages. Otherwise, it is quite difficult to model systems with many similar blocks and impossible to model systems with a dynamic structure.

    More complex OOM concepts are inheritance and polymorphism. Inheritance allows you to transfer elements of the description of an existing class into the description of a new class with the addition of new ones. Polymorphism means the possibility of using an instance of any of its derived classes instead of an instance of a block of some base class.

    Another principle of OOM is the principle modularity, which involves dividing the system into parts called modules, each of which contains groups of classes. The presence of extensive class libraries is a serious advantage of a particular simulation modeling system. In this case, the model can be built mechanically from instances of standard classes with their parametric settings. Based on the developed class libraries, a bank of blocks is created for constructing simulation models of various subject areas.


    The object form of representation best meets the tasks of simulation modeling, since it allows each object, phenomenon or process of the real world and their relationships to be uniquely assigned to the corresponding information analogue.

    Currently, the recognized standard for modeling complex systems is the unified modeling language UML ( Unified Modeling Language). The UML language was developed by Rational Software and its partners. It is the successor to modeling languages ​​based on Booch's object analysis and design methods. OOSE Jacobson, OMT Rambo et al.

    Visual models provide a clear representation of the selected architectural solutions and allow you to understand the system being studied or developed in its entirety. The complexity of systems and projects continues to increase, and therefore the relevance of creating modeling complexes using visual modeling technology is increasing.

    One of the few MI tools that uses UML structure diagrams as a basis is AnyLogic, which is mainly used to study dynamic continuous systems, through the use of “hybrid” state maps and UML-RT active objects created specifically for representing dynamic real-time systems. System Model Vision Studio is a simplified (laboratory) version of the system AnyLogic.





    

    2024 gtavrl.ru.