Case of control system design technologies. Classification of Modern Case Tools. Characteristics of modern CASE tools

Characteristics of CASE funds

The main characteristics of CASE tools, important from the point of view of modeling and optimization of business processes, are the following:

  • Availability of a graphical interface. To represent CASE process models, tools must be able to display processes as diagrams. Diagrams are much easier to use than various text and numerical descriptions. This allows you to obtain easily manageable model components with a simple and clear structure.
  • Availability of a repository. The repository is common base data, which contains a description of process elements and relationships between them. Each repository object must have a list of properties specific only to this object.
  • Flexibility of application. This characteristic makes it possible to represent business processes in various options, important from the point of view of analysis. CASE tools should allow you to analyze processes and create models focused on various aspects of the enterprise.
  • Possibility of team work. Process analysis and modeling may require collaboration several people. To simultaneously work on CASE process models, tools must provide change management for any fragments of models and their modification with collective access.
  • Building prototypes. Process prototypes are necessary so that in the early stages of process change it is possible to understand how well the process will meet the requirements.
  • Generating reports. CASE tools should ensure the construction of reports on all process models, taking into account the relationship of elements. Such reports are necessary to analyze models and identify optimization opportunities. Reports provide control over the completeness and sufficiency of models, the level of decomposition of processes, the correctness of the syntax of diagrams and the types of elements used.

Selection of CASE funds

The choice of CASE tools for analyzing and modeling processes depends on many factors - financial opportunities, functional characteristics, personnel training, information technology tools used, etc. It makes no sense to provide an exhaustive list of these factors, because in a situation of choice for each specific case, this composition will change. However, it is possible to define a set of “basic” factors on the basis of which the criteria for selecting CASE funds are determined.

Over the past decade, a new direction in software engineering has emerged - CASE (Computer-Aided Software/System Engineering) - literally translated - development software information systems supported (using) a computer. Currently, there is no generally accepted definition of CASE; the term CASE is used in a very broad sense. The original meaning of the term CASE, limited to issues of automation of the development of software only, has now acquired a new meaning, covering the process of developing complex automated information systems generally. Now the term CASE tools refers to software tools that support the processes of creating and maintaining IS, including analysis and formulation of requirements, design of application software (applications) and databases, code generation, testing, documentation, quality assurance, configuration management and project management, as well as other processes. CASE tools, together with system software and hardware, form a complete IS development environment.

CASE tools allow you not only to create the “correct” products, but also to ensure the “correct” process for creating them. The main goal of CASE is to separate the design of an IS from its coding and subsequent development stages, and also to hide from developers all the details of the development environment and operation of the IS. When using CASE technologies, all stages change life cycle software (more on this will be discussed below) of the information system, while the most Big changes relate to the analysis and design stages. Most existing CASE tools are based on structural (mostly) or object-oriented analysis and design methodologies, using specifications in the form of diagrams or texts to describe external requirements, relationships between system models, system behavior dynamics and architecture software. Such methodologies provide a rigorous and visual description of the designed system, which begins with its general overview and then becomes detailed, acquiring a hierarchical structure with an increasing number of levels. CASE technologies are successfully used to build almost all types of integrated circuits, but they occupy a stable position in the following areas:

    ensuring the development of business and commercial IP, the widespread use of CASE technologies is due to the widespread nature of this application area, in which CASE is used not only for the development of IP, but also for the creation system models helping to solve problems of strategic planning, financial management, determining company policies, personnel training, etc. (this area received its own name - business analysis);

    development of system and control information systems. The active use of CASE technologies is associated with the great complexity of this problem and with the desire to increase work efficiency.

CASE is not a revolution in software engineering, but the result of the natural evolutionary development of the entire industry of tools, previously called instrumental or technological. Since its inception, CASE technologies have evolved to overcome the limitations of the structural design methodologies of the 60s and 70s. XX century (difficulty of understanding, high labor intensity and cost of use, difficulty in making changes to design specifications, etc.) due to their automation and integration of supporting tools. Thus, CASE technologies cannot be considered independent methodologies; they only develop structural methodologies and make their application more efficient through automation.

In addition to the automation of structural methodologies and, as a consequence, the possibility of using modern methods of system and software engineering, CASE tools have the following main advantages:

    improve the quality of created IP using funds automatic control(primarily project control);

    allow for a short time create a prototype future system, which allows you to assess the expected result at an early stage;

    speed up the design and development process;

    free the developer from routine work, allowing him to concentrate entirely on the creative part of development;

    support development and maintenance of development;

    support development component reuse technologies.

The emergence of CASE technology and CASE tools was preceded by research in the field of programming methodology. Programming has acquired the features of a systematic approach with the development and implementation of languages high level, methods of structured and modular programming, design languages ​​and means of supporting them, formal and informal languages ​​for describing system requirements and specifications, etc. In the 70-80s. a structural methodology has begun to be used in practice, putting at the disposal of developers strict formalized methods for describing IP and adopted technical solutions. It is based on a visual graphic technique: diagrams and diagrams are used to describe various types of IC models. The visibility and rigor of structural analysis tools allowed developers and future users of the system to informally participate in its creation from the very beginning, discuss and consolidate an understanding of the main technical solutions. However, the widespread use of this methodology and following its recommendations in the development of contact ICs was quite rare, since with non-automated (manual) development this is practically impossible. This contributed to the emergence of a special class of software and hardware tools - CASE tools that implement the CASE technology for creating and maintaining IS.

It is necessary to understand that the successful use of CASE tools is impossible without understanding the underlying technology on which these tools are based. CASE software tools themselves are tools for automating the processes of designing and maintaining information systems. Without understanding the IS design methodology, it is impossible to use CASE tools.

Approaches to IS design.

There are two main approaches to the design of information systems:

· structural

· process .

Structural approach is based on the use of the organizational structure of the company, when the system design is carried out according to structural divisions. Activity technologies in this case are described through the operating technologies of structural units and their interaction.

If the company is a complex structure such as a holding company, or an enterprise-network, then it is also necessary to have a model of the interaction of all its constituent elements, which will reflect not only technological, but also financial and legal aspects.

The main disadvantage The structural approach is tied to the organizational structure, which changes very quickly, so changes have to be made frequently to the system design of the information system. And changing a finished IP is usually a rather labor-intensive, lengthy and tedious process.

Process approach is focused not on the organizational structure, but on business processes, i.e. for example, a company supplies equipment, supplies components and spare parts, maintains equipment, etc. These will be its business processes, which must be analyzed at the 1st stage of IS design.

The process approach is more promising, because business processes, unlike the organizational structure, change less frequently. Moreover, there are few main business processes in an enterprise, usually no more than ten.

In modern conditions, the complexity of creating information systems is very high. Therefore, CASE technology has now become widely used in IC design.

CASE technology - This software package, automating all technological process analysis, design, development and maintenance of complex software.

Modern CASE tools cover a wide range of support for numerous IC design technologies: from simple remedies analysis and documentation to full-scale automation tools covering the entire software life cycle.

The most labor-intensive stages of IS development are the stages of analysis and design, during which CASE tools provide high quality technical decisions taken and preparation of project documentation. In this case, they play an important role graphic tools modeling subject area, which allow developers to visually study the existing IS and rebuild it in accordance with their goals and existing limitations.

Integrated CASE tools have the following characteristic features :



· ensuring management of the IS development process;

· use of a specially organized storage of project metadata (repository).

Integrated CASE tools contain the following components:

· graphical analysis and design tools used to describe and document IS;

· application development tools, including programming languages ​​and code generators;

· a repository that provides storage of versions of the project being developed and its individual components, synchronization of information received from various developers during group development, control of metadata for completeness and consistency;

· tools for managing the IS development process;

· documentation tools;

· testing tools;

· reengineering tools that provide analysis of program codes and database schemas and generation based on them various models and design specifications.

All modern CASE tools are divided into two groups. First group organize tools built into the implementation system, in which all design and implementation decisions are tied to the selected database management system. Second group organize means of implementation independent of the system, in which all design decisions are focused on unifying the initial stages of the life cycle and the means of documenting them. These tools provide greater flexibility in choosing implementation tools.

Basics dignity CASE technologies – support for teamwork on a project due to the ability to work in local network, export and import of individual project fragments between developers, organized management project.

As stages creation software products for information systems the following can be distinguished:

1. The operating environment is determined. At this stage, a set of IS life cycle processes is determined, the scope of the IS is determined, and the size of supported applications is determined, i.e. limits are set on values ​​such as the number of lines program code, database size, number of data elements, number of control objects, etc.

2. Charts and graphical analysis are carried out. At this stage, diagrams are built that establish connections with information sources and consumers, defining the processes of data conversion and the location of their storage.

3. Specifications and requirements for the system are determined (type of interface, type of data, system structure, quality, performance, technical means, total costs, etc.).

4. Data modeling is performed, i.e. information is entered that describes the system data elements and their relationships.

5. Process modeling is performed, i.e. information is entered that describes the system processes and their relationships.

6. The architecture of the future software is being designed.

7. Simulation modeling is carried out, i.e. Modeling various aspects of system operation based on requirements specifications and/or design specifications.

8. Prototyping, i.e. a preliminary version of the entire system or its individual components is created.

9. Tracing, an analysis of the functioning of the system is performed from the specification of requirements to the final results.

10. Program code is generated, compiled and debugged.

11. Testing of the resulting software. Analysis and evaluation of the results obtained.

Characteristics of modern operating systems

Year after year, the structure and capabilities of operating systems evolve. IN Lately New operating systems and new versions of existing operating systems have included some structural elements that have brought major changes to the nature of these systems. Modern operating systems meet the demands of constantly evolving hardware and software. They are able to manage the operation of multiprocessor systems that work faster ordinary cars, high-speed networking devices and a variety of storage devices, the number of which is constantly increasing. Applications that have influenced the design of operating systems include multimedia applications, Internet access tools, and the client/server model.

The steady increase in requirements for operating systems leads not only to improvements in their architecture, but also to the emergence of new ways of organizing them. A wide variety of approaches and building blocks have been tried in experimental and commercial operating systems, most of which can be grouped into the following categories.

· Microkernel architecture.

· Multithreading.

· Symmetric multiprocessing.

· Distributed operating systems.

· Object-oriented design.

Distinctive feature Most operating systems today have a large monolithic kernel. The kernel of the operating system provides most of its capabilities, including scheduling, working with the file system, network functions, the operation of various device drivers, memory management and many others. Typically, a monolithic kernel is implemented as a single process, all of whose elements share the same address space. In a microkernel architecture, the kernel is allocated only a few of the most important functions, which include working with address spaces, interprocess communication (IPC), and basic scheduling. Other operating system services are provided by processes that are sometimes called servers. These processes run in user mode and the microkernel treats them in the same way as other applications. This approach allows you to divide the task of developing an operating system into kernel development and server development. Servers can be customized to suit requirements specific applications or environment. The inclusion of a microkernel in the system structure simplifies the implementation of the system, ensures its flexibility, and also fits well into a distributed environment. In fact, the microkernel interacts with the local and remote server according to the same scheme, which simplifies the construction of distributed systems.

Multithreading is a technology in which the process running an application is divided into several simultaneously executing threads. Below are the main differences between a thread and a process.

· Flow. A dispatchable unit of work that includes a processor context (which includes the contents of the program counter and stack pointer), as well as its own stack area (for organizing subroutine calls and storing local data). The thread's commands are executed sequentially; a thread can be interrupted when the processor switches to process another thread 4.Process. A collection of one or more threads and the associated threads system resources(such as the memory area that contains code and data, open files, various devices). This concept is very similar to the concept of a running program. By splitting an application into multiple threads, the programmer takes full advantage of the application's modularity and the ability to control application-related timing events.

Multithreading is very useful for applications that perform multiple independent tasks that do not require sequential execution. An example of such an application is a database server that simultaneously receives and processes multiple client requests. If multiple threads are being processed within the same process, then switching between different threads requires less CPU overhead than switching between different processes. Threads are also useful in structuring processes that are part of the operating system kernel, as described in later chapters.

Until recently, everything personal computers, designed for one user, and workstations contained one virtual microprocessor general purpose. As a result of ever-increasing performance requirements and decreasing costs of microprocessors, manufacturers have moved toward producing computers with multiple processors. To increase efficiency and reliability, symmetric multiprocessing (SMP) technology is used. This term refers to architecture hardware computer, as well as to the way the operating system behaves corresponding to this architectural feature. Symmetric multiprocessing can be defined as autonomous computer system with the following characteristics.

1. The system has several processors.

2. These processors, interconnected by a communications bus or some other circuit, share the same main memory and the same input/output devices.

3. All processors can perform the same functions (hence the name symmetric processing).

An operating system running on a symmetric multiprocessing system distributes processes or threads across all processors. Multiprocessor systems have several potential advantages over single-processor systems, including the following.

· Performance. If a job to be performed by a computer can be arranged so that parts of the job are executed in parallel, this will result in improved performance compared to a single-processor system with the same type of processor. The position formulated above is illustrated in Fig. 2.12. In multi-task mode, only one process can be running at the same time, while other processes are forced to wait their turn. In a multiprocessor system, multiple processes can be running simultaneously, each running on a separate processor.

· Reliability. In symmetric multiprocessing, the failure of one processor will not stop the machine because all processors can perform the same functions. After such a failure, the system will continue to operate, although its performance will decrease slightly.

· Building up. Adding to the system additional processors, the user can improve its performance.

· Scalability. Manufacturers may offer their products in a variety of price and performance configurations designed to work with different amounts processors.

It is important to note that the benefits listed above are potential rather than guaranteed. To properly realize the potential contained in multiprocessor computing systems, the operating system must provide an adequate set of tools and capabilities

Rice. 2.12. Multitasking and multiprocessing

You can often find joint discussion multithreading and multiprocessing, but these two concepts are independent. Multithreading is a useful concept for structuring application and kernel processes, even on a single processor machine. On the other hand, a multiprocessor system can have advantages over a single-processor system, even if the processes are not threaded, because it is possible to run multiple processes at the same time. However, both of these possibilities are in good agreement with each other, and their sharing can give a noticeable effect.

An attractive feature of multiprocessor systems is that the presence of multiple processors is transparent to the user - the operating system is responsible for distributing threads between processors and synchronizing different processes. This book examines the scheduling and synchronization mechanisms that are used to ensure that all processes and processors are visible to the user as unified system. Another higher-level task is to represent a cluster of several individual computers. In this case, we are dealing with a set of computers, each of which has its own main and secondary memory and its own input/output modules. A distributed operating system creates visibility single space main and secondary memory, as well as a single file system. Although the popularity of clusters is steadily increasing and more and more cluster products are appearing on the market, modern distributed operating systems still lag behind single- and multiprocessor systems in development. You will become acquainted with such systems in the sixth part of the book.

One of the latest innovations in operating systems is the use of object-oriented technologies. Object-oriented design helps bring order to the process of adding to the main small core additional modules. At the operating system level, the object-oriented structure allows programmers to customize operating system without violating its integrity. In addition, this approach facilitates the development of distributed tools and full-fledged distributed operating systems.