Разработка диаграммы классов программной системы

Страницы работы

Содержание работы

7.160101.1381.03

Зм.

Лист

№ Докум

Підпис

Дата

Багнюк В.В.

Лабораторная работа №3

Разработка диаграммы классов  программной системы.

Лim

Лисm

Листів

Студент

Белов А. С.

17.05

1

5

Билый Т.В

НУК

Викладач

Покровский

Лабораторная работа №3

          Тема:  Разработка диаграммы классов программной системы для имитационного моделирования динамических режимов работы системы управления.

          Цель: научиться разрабатывать диаграммы классов программной системы для имитационного моделирования динамических режимов работы системы управления на языке Object Pascal.

Теоретические сведения

          В системе автоматизированного моделирования нелинейных динамических систем проходит ряд процессов:

Функциональное назначение команды

Идентификатор команды

1.

Создание пустой системы

Create_System

2.

Добавление блока

Add

3.

Редактирование блока

Edit

4.

Формирование связей между блоками

Connect

5.

Разрыв связей между блоками

Disconnect

6.

Удаление блока

Delete

7.

Сохранение системы

Save

8.

Загрузка системы

Load

9.

Активация системы*

Select

10.

Печатанье существующих систем

List

11.

Удаление системы из памяти

Clear

12.

Запуск системы имитационного моделирования

Run

13.

Представления результатов в виде графиков

Plot

14.

Сохранение результатов в таблице в текстовом файле

Print

15.

Исполнение макрокоманды

Macro

Задание 1

          Построить диаграмму классов в нотации Буча для программной системы автоматизированного моделирования:

Лист

2

Зм.

Лист

№ Докум

Підпис

Дата

Задание 2

          Необходимо проанализировать приведённый список и установить нити передачи сообщений, которые отвечают каждому из процессов.

Задание 3

          Определить способ обеспечения видимость объектов для каждой связи.

Задание 4

          На основе связи определить список свойств и методов всех классов.

Задание 5

          Разработать и скомпилировать код, который содержит полные заголовки классов.

Код

unit Pmg;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, OpenGL, StdCtrls, ExtCtrls;

type

  TValueTable = class (TList)

    procedure Input(x:Real);

    function Output(i:longint):real;

  end;

  TJoin = class (TObject)

    NameInBlock,NameOutBlock:string[15];

    Number: integer;

    value:real;

    constructor Create (Name1,Name2:String; num: integer);

  end;

  TBlock = class (TObject)

    Name:string[15];

    NextValue:Real;

    ValueTable:TValueTable;

    Input1:  TJoin;

    Input2:  TJoin;

    Output1: TJoin;

    constructor Create;

    procedure Clear;virtual;abstract;

    procedure Edit;virtual;abstract;

    procedure ConnectInput(Join:TJoin;n:integer; var Report:TStringList; var Valid: Boolean);virtual;abstract;

    procedure ConnectOutput(Join:TJoin; var Report:TStringList; var Valid: Boolean);

    procedure DisconnectInput(n:integer; var Report:TStringList);virtual;abstract;

    procedure DisconnectOutput(var Report:TStringList);

    procedure Run;virtual;abstract;

    procedure Testing(var Report:TStringList;Passed:Boolean); virtual; abstract;

    procedure SafeBlock(var Report:TStringList); virtual; abstract;

  end;

Лист

3

Зм.

Лист

№ Докум

Підпис

Дата

  TSource = class (TBlock)

    procedure ConnectInput(Join:TJoin;N:integer;var report:TStringList; var Valid: Boolean); override;

    procedure DisconnectInput(N:integer;var report:TStringList); override;

    procedure TestingBlock(var Report:TStringList;var Passed:Boolean); override;

    procedure SafeBlock(var Report:TStringList); override;

  end;

  TOperation = class (TBlock)

    procedure ConnectInput(Join:TJoin;N:integer;var report:TStringList; var Valid: Boolean); override;

    procedure DisconnectInpu(N:integer;var report:TStringList); override;

    procedure TestingBlock(var Report:TStringList;var Passed:Boolean); override;

    procedure SafeBlock(var Report:TStringList); override;

  end;

  TDynamic = class (TBlock)

    procedure setinput(Join:TJoin;N:integer;var report:TStringList; var Valid: Boolean); override;

    procedure disconnectinput(N:integer;var report:TStringList); override;

    procedure Check(var Report:TStringList;var Passed:Boolean); override;

    procedure SafeBlock(var Report:TStringList); override;

  end;

  type TSystem = class (TList)

     Name: string;

     Blocks: TList;

     Joins: TList;

     constructor Create (NName: string);

     procedure Clear;

     procedure Add(Command: TStringList;var Report: TStringList;Valid: Boolean);

     procedure Run(Command: TStringList;var Report: TStringList;Valid: Boolean);

     procedure Connect( Command: TStringList;var Report: TStringList;Valid: Boolean);

     function FindBlock(BlockName: string) : TBlock;

     procedure Test(var Report: TStringList;Passed: boolean);

  end;

  TModellingApplication=class(TForm)

    Sys:TSystem;

    DialogWindow:TMemo;

    InputCommand:TEdit;

    Grahpik: TPaintBox;

    Constructor Create;

    procedure Create_System(Sender: TObject);

    procedure Free(Sender: TObject);

    procedure List(Sender: TObject);

    procedure PressEnter(Sender: TObject);

    Procedure Print(Sender: TObject);

Лист

4

Зм.

Лист

№ Докум

Підпис

Дата

    procedure Plot(Sender: TObject);

    procedure CommandExecution (Command: TStringList;var Report: TStringList);

  end;

var

  AppWindow:TModellingApplication;

implementation

{$R *.dfm}

end.

Вывод

          При  разработке и написании кода к диаграмме классов программной системы для имитационного моделирования динамических режимов работы системы управления на языке Object Pascal в Borland Delphi я сначала проанализировал диаграмму классов и установил нити передачи и рассылки сообщений к каждому процессу в результате чего определил список свойств и методов классов. На этой базе мне составило особого труда разработать код.

Лист

5

Зм.

Лист

№ Докум

Підпис

Дата

 

Похожие материалы

Информация о работе