- •Черновик системотехническое проектирование
- •Компоненты проектирования иус Исходные данные для проектирования иус
- •Риск проекта иус
- •Компоненты проектирования. Стадии разработки, модели представления, уровни детализации Функциональные спецификации (фс) в проектировании систем
- •Компоненты проектирования ис
- •Информационно-логическая модель иус Общая схема информационно-логической модели. Определение структуры иус
- •Модели представления иус
- •Функциональная модель иус Описание функциональной модели (фм) Основные виды элементов фм
- •Диаграммы потоков действий-данных (модель деМарко)
- •Стратегии построения схем требований действий
- •Основные схемы декомпозиции действий и данных фм
- •Общая схема разработки функциональной модели
- •Функциональная модель области деятельности Модели данных Иерархия моделей данных
- •Некоторые концептуальные модели данных
- •Модель с классификацией информационных объектов
- •Нормализация концептуальной модели данных и целостность данных. Нормальные формы модели данных
- •Параметризация модели данных.
- •Пример нормализации реляционной модели
- •Пример нормализации функциональной модели данных.
- •Ссылочная целостность
- •Агрегирование объектов в предметные базы данных.
- •Концептуальные модели предметной области на основе логики предикатов
- •Сравнение различных моделей данных концептуального уровня.
- •Методики конструирования моделей данных Методика построения локальных моделей данных на основе выделения баэовых действий.
- •Методика построения локальных моделей данных на основе выделения баэовых объектов.
- •Методика раэработки типов данных на основе синтаксиса языка управления эаданиями.
- •Определение объекта.
- •Определение атрибута
- •Спецификация атрибутов
- •Объекты модели представления
- •События
- •Различные подходы к событийному управлению
- •Генераторы событий и процедуры формирования событий
- •Внешние события
- •Спецификация использования события
- •Спецификация предоставления события
- •Состояния
- •Спецификация автоматов с использованием механизма событий
- •Структура модулей Описание структуры модулей
- •Область видимости и время жизни переменных и констант
- •Процедуры
- •Пакеты, модуль (Unit)
- •Задачи и обмены Вэаимодействия задач
- •Пользовательский интерфейс
- •Конструирование последовательных управляющих структур
- •Приемы структурирования для последовательных управляющих структур
- •Логика модулей
- •Методика раэработки логики модулей на основе автоматной модели
- •Таблицы решений
- •Проектирование логики на основе асинхронных взаимодействий Базовые варианты обработки точек входа
- •1. Фиксированный порядок обработки входов.
- •2. Селективный выбор входов.
- •3. Селективный выбор с механизмом защиты.
- •4. Селективный выбор с выделением лимита времени.
- •5. Ответ всем запросившим.
- •6. Фиксированный порядок с использованием атрибута входа "count.
- •Логика асинхронных взаимодействий.Доступ к переменн-
- •Примеры конструирования логики с использованием асинхронных взаимодействий
- •Прочность и сцепление компонентов иус
- •Анализ информационной связности действий
- •Анализ функциональной связности систем
- •Анализ функциональной связности данных
- •Анализ информационной связности систем
- •Распределение обработки данных на основе анализа структур иус Формы распределенных данных
- •Синхронные и несинхронные данные Обеспечение синхронности данных
- •Регламент
- •Компоновка распределенной обработки
- •Анализ функциональных потребностей пользователей.
- •Анализ информационных потребностей пользователей.
- •Компоновка функциональных возможностей арм
- •Распределение данных по арм
- •Доступ к данным в локальной сети
Область видимости и время жизни переменных и констант
Области видимости:
глобальная (gl);
модуль (м);
процедура (pr);
дерево вызовов (call-pr).
Место объявления:
головной модуль программы (gl);
модуль (м);
процедура (pr).
Время жизни переменной:
глобальная (gl);
модуль (m);
процедура (pr).
Классы переменных :
public;
private;
static;
local.
На рис.6.1. представлена таблица, характеризующая место объявления, область видимости и время жизни переменных различных классов.
Класс переменной |
Место объявления |
Облась видимости |
Время жизни |
public |
gl m pr |
gl m |
gl ? ? |
private |
gl m pr |
m ? call-pr |
m ? pr |
static |
gl m pr |
m m ? |
gl gl ? |
local |
gl m pr |
m m pr |
gl m pr |
Рис.6.1.
Процедуры
По количеству выполняемых действий будем различать
однофункциональные процедуры;
многофункциональные процедуры.
По связи с внешними данными будем различать
контекстно-свободные процедуры - процедуры, которые не имеют свзи по входу - выходу с внешними данными;
контекстно-связанные процедуры - процедуры, которые имеют свзи по входу - выходу с внешними данными.
Управляющие параметры для многофункциональных процедур - параметры-команды.
Пакеты, модуль (Unit)
Секции модуля
unit <имя модуля>
Interface
uses
<спецификация использования>;
<спецификация предоставления>;
Implementation
<описание элементов модуля>
[initialization
<описание блока инициализации>]
end.
Декларативный пакет- пакет, который не предоставляет и не использует процедур.
Процедурный пакет- пакет, который предоставляет в окружение процедуры и/или функции.
Пакет с внутренним контекстом- пакет, который имеет в своем теле переменные, глобальные по времени существования.
Пакет с внешним контекстом- пакет, процедуры которого используют внешние данные.
Контекстно-независимый пакет- пакет, который не имеет в своем теле переменных, глобальных по времени существования и процедуры которого не используют внешних данных.
Процедуры настройки контекста пакета .
Рабочие процедуры пакета.
Сохранение и восстановление контекста в долговременной памяти.
Моделирование объектов.
Возможная форма спецификации пакетов представлена в приложении 2.
Задачи и обмены Вэаимодействия задач
Обмен- зто средство взаимодействия группы задач с неко торой эадачей - владельцем ресурса по обработке данных, обеспечивающее доступ каждой эадачи иэ группы к зтому ресурсу череэ соответствующую точку входа эадачи - владельца ресурса.
Для эадач, эапрашивающих точку входа, выэов ее не отличается от выэова процедуры и выполняется операцией вида 'эапрос'.
Для эадачи - владельца ресурса с соответствующей точкой входа обработка эапросов к точке входа осуществляется путем выполнения операции типа 'ответ'. Операция вида 'ответ' может содержать формальные параметры. Тогда соответствующая операция вида 'эапрос' будет содержать фактические параметры.
Запросы к точке входа устанавливаются в очередь и, если не оговорено отдельно, обслуживаются путем выполнения операции вида 'ответ' в порядке поступления.
В простейшем случае задача, выполняя оператор вида 'ответ' при отсутствии эапросов ожидает поступления хотя бы одного запроса.
Задача, выполняющая оператор вида 'эапрос', приостанавливается до момента, когда ее эапрос не будет обработан соответствующим оператором вида 'ответ'.
С каждым оператором вида 'ответ' свяэывается предопределенный атрибут <имя_обмена>'N, укаэывающий текущее количество эаявок к соответствующей точке входа.
Для обработки нескольких точек входа вводится специальный оператор вида 'отбор'. Оператор отбора выполняется следующим обраэом:
- при отсутствии эапросов к точкам входа эадача приоста навливается до появления хотя бы одного эапроса хотя бы к одной точке входа;
- при наличии эапросов только к одной точке входа обрабатывается один эапрос;
- при наличии эапросов к двум и более точкам входа случайно выбирается один иэ операторов ответа и обрабатывается один эапрос.
Ветви оператора отбора могут помечаться дополнительными условиями, которые должны выполняться для выбора нужной ветви.
Классы
Объявление класса имеет следующую структуру:
<имя класса> = class [(<имя родительского класса>)]
protected
{объявление защищенных элементов класса}
private
{объявление закрытых элементов класса}
published
{объявление опубликованных элементов класса}
public
{объявление открытых элементов класса}
/**automated
{объявление автоматизированных элементов класса}**/
Секция protected
Элементы класса, объявленные в этой секции, видимы только в порожденных от него классах. Область видимости защищенных элементов класса не ограничивается пределами модуля.
Секция private
Элементы класса, объявленные в этой секции, полностью видимы только внутри модуля. Поля метода обычно объявляются как закрытые (private). Для каждого закрытого поля должен быть предусмотрен открытый или защищенный метод доступа (по умолчанию их называют Get и Set).
Секция public
Элементы класса, объявленные в этой секции, видимы полнлстью и не ограничены пределами своего модупя.
Секция published
Элементы класса, объявленные в этой секции, имеют ту же видимость, что открытые. Для опубликованных элементов класса генерируется динамическая информация о типе (RTTI - RunTime Type Information). RTTI представляет собой специальный интерфейс приложения. Этот интерфейс предоставляет возможность получения во время выполнения приложения некоторых дополнительных видов информации.
Объявление элементов класса включает в себя объявление методов, полей, свойств
Объвление поля класса:
<имя поля>[, <имя поля>] : <имя типа>;
Объвление метода класса - это объявление процедуры или функции:
procedure <имя процедуры> [<список формальных параметров>] ;
function <имя функции> [<список формальных параметров>] : < имя типа> ;
Объявление свойства каласса:
property <имя свойства> : <имя типа> [read <имя метода>] [write <имя метода>];
Свойства события
Свойства события объявляются так же, как и другие свойства. Тип для свойств событий предопределен - TNotifyEvent. С каждым событием связан метод обработки события с указанием соответствующего сообщения из очереди сообщений Windows, которые сигнализируют о наступлении новых событий. Код процедуры обработки события является предметом разработки приложения.