- •1. Основные концепции системного анализа и проектирования в ssadm
- •1.1. Цели и концепции
- •1.1.1. Пользователи.
- •1.1.2. Менеджеры.
- •1.1.3. Разработчики.
- •1.2 Структурная модель ssadm, ее назначение, роль и состав.
- •1.2.1 Модули.
- •1.2.2. Входы модулей.
- •1.2.3 Выходы модулей.
- •1.2.4. Обозначения структурной модели
- •Информационная шина.
- •Организационные действия.
- •Соглашения, принятые для облегчения понимания схем.
- •1.2.5 Описания действий.
- •1.3. Жизненный цикл разработки систем
- •1.3.1. Модуль fs - описание действия "анализ реализуемости".
- •Краткое изложение.
- •Участники.
- •Предусловия.
- •1.3.2. Модуль rа - описание действия "анализ требований".
- •Краткое изложение.
- •Участники.
- •Предусловия.
- •1.3.3. Модуль rs - описание действия "спецификация требований".
- •Участники.
- •Предусловия.
- •1.3.4 Модуль ls-определение действия "спецификация логической системы".
- •Краткое изложение.
- •Участники.
- •Предусловия.
- •Участники.
- •Предусловия.
- •1.4. Ключевые понятия и философия
- •1.4.1. Три вида модели.
- •1.4.2. Ориентация на требования.
- •1.4.3. Пользователь, функция и моделирование данных.
- •1.4.4. Варианты организационного управления.
- •1.5. Сценарий применения методов
- •1.5.1. Применение методов в жизненном цикле.
- •1.5.2. Взаимозависимости между методами.
- •1.5.2.1. Взаимодействие методов в модуле fs (Анализ реализуемости).
- •1.5.2.2. Взаимодействие методов в модуле ка (Анализ требований).
- •"Определение требований".
- •"Моделирование потоков данных".
- •1.5.2.3. Взаимодействие методов в модуле rs (Спецификация требований).
- •"Моделирование потоков данных".
- •"Логическое моделирование данных".
- •"Определение функций".
- •"Реляционный анализ данных".
- •"Объектно-событийное моделирование".
- •"Спецификация прототипирования".
- •"Проектирование диалога".
- •Организационное управление.
- •Проектирование базы данных.
- •Проектирование физических процессов.
- •Интерфейс процесс - данные.
- •1.6 Достоинства инвариантности к реализации проектов
- •1.7. Информационно-технологическая поддержка
- •2 Моделирование потоков данных
- •2.1. Назначение метода
- •2.2 Обзор
- •2.3. Место метода моделирования потоков данных в процессе проектирования
- •2.3.1 Этапы
- •2.3.2.Взаимосвязь с другими методами.
- •2.4. Входы мпд
- •2.5 Выходы мпд
- •2.6. Основные понятия и обозначения метода моделирования потоков данных.
- •2.6.1. Обозначения, применяемые при построении схем потоков данных.
- •2.6.1.1. Внешний объект
- •2.6.1.2. Процесс
- •2.6.1.3. Хранилища данных.
- •2.6.1.4. Поток данных
- •2.6.1.5. Двунаправленный поток
- •2.6.1.6. Поток данных между внешними объектами
- •2.6.1.7. Поток ресурса
- •2.6.1.8. Разрешенные спд - соединения
- •2.6.2. Спд - иерархия
- •2.6.3. Правила декомпозиции процесса.
- •2.6.5.Декомпозиция других элементов спд
- •2.7 Техника моделирования потоков данных
- •2.7.1. Модель потоков данных существующей системы (мпд сс)
- •2.7.1.1. Начало моделирования
- •2.7.1.2. Спд нижних уровней
- •2.7.1.3. Контекстные схемы, схемы документопотоков и схемы ресурсопотоков
- •2.7.1.4. Построение и использование контекстной схемы
- •2.7.1.5. Построение и использование схем документопотоков
- •2.7.1.6. Разработка схем документопотоков
- •2.7.1.7. Составление схемы ресурсопотоков
- •2.7.2. Логическая модель потоков данных (лмпд)
- •2.7.2.1. Процедуры приведения мпд сс к логической мпд
- •2.7.2.2. Рационализация хранилищ данных
- •2.7.2.3. Рационализация процессов нижнего уровня
- •2.7.2.4. Реконструирование иерархии
- •2.7.2.5. Общие функциональные признаки
- •2.7.2.6. Проверки полноты и согласованности
- •2.7.2.7. Идентификаторы процесса.
- •2.7.2.8. Избегайте интуитивного синтеза лмпд
- •1.9. Реальные ограничения
- •2.7.2.9. Спд и варианты бизнес-системы.
- •2.7.4. Мпд тс
- •2.7.4.1. Мпд тс и определение функций
- •2.7.4.2. Связь между потоками данных и событиями
- •2.7.4.3. Проверка правильности по другим продуктам технологии
- •2.8. Заключение
- •3. Логическое моделирование данных
- •3.1. Назначение
- •3.2. Обзор
- •3.3. Использование лмд в ssadm – технологии
- •3.3.1. Этапы.
- •3.3.2. Связь с другими методами.
- •3.4. Входы логического моделирования данных
- •3.5 Выходы логического моделирования данных
- •3.6. Основные понятия и обозначения метода логического моделирования данных
- •3.6.1. Объекты.
- •3.6.2. Связи
- •3.6.3. Степень связи.
- •3.6.4. Жесткость.
- •3.6.5. Идентификаторы связи.
- •3.6.6. Фраза-описатель связи.
- •3.6.7. Группы исключающих связей.
- •3.6.8. Рекурсивные связи.
- •3.6.9. Разбиения.
- •3.7. Понятия логического моделирования данных, не изображаемые на лсд
- •3.7.1 Мобильные и немобильные объекты.
- •3.7.3. Обязательные и необязательные атрибуты.
- •3.7.4. Сгруппированные домены.
- •3.7.5. Уникальные идентификаторы.
- •3.8. Вспомогательные понятия
- •3.8.1. Главные и вспомогательные объекты.
- •3.8.2. Ключи.
- •3.8.3. Ссылочные объекты.
- •3.8.4. Простые иерархические ключи.
- •3.8.5 Составные ключи.
- •3.8.6. Более сложные ключи.
- •3.9. Использование метода в процессе проектирования
- •3.9.3. Идентификация связей.
- •3.9.4. Формирование лсд.
- •3.9.5. Присвоение имен связям.
- •3.9.6. Нормализация лмд.
- •3.9.7. Проверка правильности лмд.
- •3.9.8. Удаление лишних связей из лсд.
- •3.9.9. Раскрытие связей типа m:n.
- •3.9.10. Раскрытие связей типа 1:1.
- •Связь 1:1 с одним необязательным концом.
- •Связь 1:1 с двумя необязательными концами.
- •Связь 1:1 с двумя обязательными концами.
- •3.9.11. Определение путей доступа запросов к данным.
- •Б) Уточнение триггера запроса.
- •В) Уточнение пути доступа запроса к данным.
- •3.9.12. Представление лмд пользователю.
- •3.9.13. Документирование лмд.
- •3.10. Краткое изложение процедуры
- •Приложение 1
- •2.2. Руководство по заполнению формы – «Описание объекта» – Часть 2
- •2.3. Руководство по заполнению формы – «Описание связи».
- •2.4. Руководство по заполнению формы – «Описание Атрибут/Элемент данных».
- •2.5. Руководство по заполнению формы «Описание сгруппированного домена».
Б) Уточнение триггера запроса.
Триггер запроса в функциях запросов охватывает входные элементы данных запроса. Обычно это ключ объекта, который является точкой входа в ЛМД, плюс, возможно, некоторый критерий выбора, управляющий выборкой вспомогательных объектов. Триггер запроса обычно документируется как перечень элементов данных на пуп доступа запроса, что необходимо для представления повторяющихся групп. Критерий выбора специфицируется как часть "Описания определения функции". Входные элементы данных будут входными элементами в структурах ввода - вывода и описаниях ассоциированных с методом "Определение функций" ("Описания Вход/Выход" получаются в результате моделирования потоков данных только для основанья, функций системы).
Запрос может поступать на вход системы более чем через одну функцию. Тогда он должен быть отмечен в каждом "Определении функции". Для каждой функции аналитик должен проверить, что элементы данных запроса включены во вход.
В) Уточнение пути доступа запроса к данным.
Базовая процедура включает в свой состав следующие шесть действий:
в1) неформально идентифицировать объекты, достижимость которых необходима для обеспечения данными требуемого выхода системы в соответствии с документацией по структурам ввода - вывода известной функции;
в2) нарисовать требуемый вид ЛМД, показав при этом связи доступа вниз (от главного объекта к вспомогательному) в виде вертикальных линий, а связи доступа вверх (от вспомогательного объекта к главному) в виде горизонтальных линий.
Доступ по рекурсивной связи организуется также как в методах структурного проектирования и структурного программирования Джексона путем создания процесса для одного уровня рекурсивной структуры, который затем при физическом проектировании распространяется на все уровни;
вЗ) изобразить пути доступа в виде структур Джексона с объектами, связанными между собой вертикальными и горизонтальными стрелками в соответствии с видом доступа (нисходящий доступ представляется итеративной структурой чтения данных, к которой, если это необходимо, добавляется операция выбора).
Итеративная структура требуется, если необходимо прочитать более одного экземпляра объекта. При этом имя объекта размещается в итерированной ячейке, а ячейка, располагаемая выше, содержит перед именем объекта слово "Множество...".
Рекурсивные связи обозначаются добавлением возвратной точечной петли со стрелкой.
Здесь стрелки, обозначающие доступ, имеют несколько другой смысл по сравнению с аналогичными стрелками, используемыми в методах структурного проектирования и структурного программирования Джексона, так как они отражают порядок доступа к данным и иногда соединяют компоненты на один уровень ниже, чем обычно используемые стрелки;
в4) перечислить ключевые или неключевые атрибуты для объекта со стрелкой для точки входа объекта (эти атрибуты должны быть частью триггера запроса).
Существует три вида точек входа:
• через первичный ключ объекта;
• через неключевые атрибуты объекта;
• ко всем экземплярам данного объекта (непомеченная стрелка).
По внешнему ключу точка входа никогда не создается. Если это все же необходимо, то такая точка должна быть отмечена в документации как точка входа в соответствующий главный объект. Если точка входа для запроса относится к нескольким объектами, а связи идущие от объекта требуются для выхода, то все эти объекты и связи должны быть включены в путь доступа.
Точка входа через комбинацию внешних ключей документируется как точка входа на главный объект, соответствующий этой комбинации, т.е. его первичный ключ. Если такого объекта нет, то он либо должен быть создан на ЛСД, либо в документацию должно быть внесено процессно-ориентированное решение (например, сортировка выходных данных) в виде сноски внизу схемы "Путь доступа запроса";
в5) после того как установлены все точки входов производится проверка того, чтобы все требуемые данные могли быть получены путем использования следующих видов операции чтения:
• чтение объекта, непосредственно используя ключ;
• чтение следующего вспомогательного объекта для данного главного;
• чтение главного объекта для данного вспомогательного.
Если этих действий недостаточно для получения всех данных, то или должна быть модифицирована ЛСД с целью приведения ее в соответствие требованиям запросов или в документацию должны быть внесены некоторые процессно-ориентированные решения (например, сортировка данных).
Как объяснялось выше, при обсуждении точек входа по внешним ключам, одним
из решений может быть введение нового входного объекта в логическую структуру данных. В других случаях можно расширить ЛСД введением в нее новых объектов и связей, если они отражают важные требования предметной области, которые не были учтены ранее.
Бели правила доступа определены в "Описании объекта" и "Описании атрибута", то необходимо проверить, чтобы было соответствие между ними и доступом, которого требует запрос, Такие же проверки делаются и для запросов, которые заранее не были определены и появятся в разделе "Роль пользователя" "Общего описания функций", уточняющем требуемые данные.
Рассмотренная выше процедура, хотя и применима для разнообразных процессов обработки запросов, но не полностью объясняет такие сложности обработки, какими, являются "структурные столкновения" и "распознавание". Решение проблем, возникающих в этом случае, возможна только использованием процессно-ориентированных решений. Некоторые структурные столкновения могут быть устранены путем введения новых объектов, имеющих только ключевые связи, которые отражают на схеме наиболее существенные деловые связи организациям. Некоторые задачи распознавания легко решаются путем введения в ЛСЯЦЩ дополнительных элементов данных. Эти элементы в большинстве случаев выделяют из данных самого нижнего уровня;
в6) Документирование всех точек входа. В соответствии с правилами физической проектирования базы данных для ЛМД все точки входа должны быть идентифицированы. Они изображаются на схемах в виде стрелок, направленных к соответствующим объектам и помеченных соответствующим элементами данными. Документация по всем точкам входа должна быть оформлена на этапе 360 в один экземпляр ЛСД. В результате на этой структуре к одному объекту может быть направлено несколько стрелок, указывающих на точки входа.
Примеры путей доступа запросов к данным.
Предположим, что запрос является одной из форм простой иерархии и имеет вид: "Перечислить все свободные участки для данного района". Выполнение действия в2 дает рис. 3.17а, а действий вЗ и в4 дает рис. 3.176.
Рис. 3.17. “Для данного района список всех путей в нем”
Другим примером запроса, совмещающего доступ по связи вверх и вниз, является запрос вида: "Перечислить все улицы на данном свободном участке". Выполнение действия в2 дает рис. 3.18а, а действий в З и в4 дает рис. 3.186.
Рис. 3.18. “Список всех улиц для данного пути”
Следующий пример более сложен: "По данному заявлению перечислить все установленные предпочтения и определить характеристики предпочитаемого района или населенного пункта. Для каждого предпочтения перечислить текущие предложения (старые предложения игнорировать)". Выполнение действия в2 дает рис. 3.19а, а представление результата в виде джексоновской структуры дает рис. 3.196. Внесение в структуру выбора и триггеров запроса дает рис. 3.19в.
Рис. 3.19а. “Все дома, которые удовлетворяют условиям данного заявления”
Рис. 3.19б. “Все дома, которые удовлетворяют условиям данного заявления”
В данном примере предполагается, что текущее предложение отыскивается среди различных элементов множества, определенного для объекта «ПРЕДЛОЖЕНИЕ», так как этот объект на ЛСД представляет собой одно целое.
Заключительный пример рассматривает другой тип запроса: «Перечислить по порядку все улицы на данном свободном участке ». Выполнение действия в2 дет рис 3.20а, но это не дает требуемого порядка. Следовательно, должен быть добавлен объект «УЛИЦА НА СВОБОДНОМ УЧАСТКЕ» для того, что бы получить рис.3.20б. Однако если объект, вводимый в ЛСД таким образом, не полностью соответствует терминологии предметной области системы, то обычно предпочитают процессно-ориентированное решение этой задачи (например, путем сортировки данных). В таком случае требования сортировки должны быть отмечены для данного пути доступа запроса к данным.
Для типичной структуры, изображенной на рис. 3.15, характерно, что два различных пути доступа дают возможность получить данные в требуемом порядке. При этом в качестве логического пути доступа необходимо выбрать один из них. Иногда первой мыслью может быть - выполнение множества операций чтения по альтернативным маршрутам. Однако более глубокие рассуждения приводят к мысли, что введение индексов и новых связей при физическом проектировании может более эффективно идентифицировать полностью различные маршруты.
Рис. 3.19в. “Все дома, которые удовлетворяют условиям данного заявления”
Рис. 3.20. “Перечень всех улиц на данном пути, рассортированных по названиям”
Для функций обработки данных пути доступа документируются на "Схемах распространения эффектов".