МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Федеральное государственное бюджетное образовательное учреждение высшего
образования
«ДАГЕСТАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Юридический институт
Кафедра информационного права и информатики
Бахмудов Бегамагомед Ахмедович
Проектирование юридических информационных систем
Электронный курс лекций
для обучающихся по специальности 09.03.03 – «Прикладная информатика»
Профиль подготовки: Прикладная информатика в юриспруденции
Содержание
Tема 1. Введение
и основные понятия. Исторические аспекты проектирования ИС
Тема 2. Структура и модели жизненного цикла
Тема 3. Моделирование и представление структуры предприятия. Стандарт IDEF0
Тема 4. Проектирование АИС методом диаграмм потоков данных (DFD)
Тема 5. Логическое проектирование БД. ER-диаграммыа
Тема 6. Техническое задание на создание автоматизированной системы (пример)
Тема1. Введение и основные понятия.
Исторические аспекты проектирования ИС
Введение
Современные компании и организации функционируют в условиях большого объема
постоянно изменяющейся информации, которую необходимо оперативно анализировать и принимать
правильные решения. Бурно развивается вычислительная техника и информационные
технологии. Трудно найти сейчас компанию, не занимающуюся развитием
информационных технологий. Современные руководители фирм полностью отдают себе
отчет в том, что в настоящее время успешность и прибыльность компании полностью
зависят в том числе, и от уровня развития IT-технологий, скорости и качества обработки информации, обоснованности и
взвешенности принимаемых решений.
Большой ошибкой является позиция руководителей компаний, которые, внедрив
однажды информационную систему, перестают ею заниматься. Поэтому процесс
проектирования информационных систем в настоящее время становиться
обязательным.
Этим объясняется бурное развитие технологий проектирования информационных
систем (ИС) в последние годы. Прежде всего, создание CASE- технологий, которые во много сокращают сроки проектирования ИС, позволяют
организовать одновременную коллективную работу, оперативно вносить изменения и
быстро реагировать на изменение обстановки на предприятии.
Основные понятия и определения
Информация – «сведения (сообщения, данные) независимо от формы их
представления»[1].
Информационные технологии – «процессы, методы поиска, сбора, хранения,
обработки, предоставления, распространения информации и способы осуществления
таких процессов и методов» [1].
Информационная система – «совокупность содержащейся в базах данных
информации и обеспечивающих ее обработку информационных технологий и
технических средств» [1].
Проектирование информационных систем – это упорядоченная совокупность
методологий и средств создания или модернизации информационных систем.
Управление информационными системами – «применение методов управления
процессами планирования, анализа, дизайна, создания, внедрения и эксплуатации
информационной системы организации для достижения ее целей»[4].
Жизненный цикл информационных системы – «развитие рассматриваемой системы
во времени, начиная от замысла и кончая списанием» [2].
Модель жизненного цикла – «структурная основа процессов и действий,
относящиеся к жизненному циклу, которая служит в качестве общей ссылки для
установления связей и взаимопонимания сторон» [2].
Архитектура информационных систем – это концепция, определяющая модель,
структуру, выполняемые функции и взаимосвязь компонентов информационной
системы.
Бизнес-процесс – это цепочка взаимосвязанных действий, направленных на
создание товарной продукции или услуги.
Регламент бизнес-процесса – это четко определенный порядок выполнения
бизнес-процесса, определяющий состав и действия участников.
Модель данных – это система организации данных и управления ими.
Методология проектирования информационных систем – это совокупность
принципов проектирования (моделирования), выраженная в определенной концепции.
Средства моделирования – это программы описания и моделирования систем.
Типовое проектное решение (ТПР) – это многократно используемое проектное
решение.
Нотации – это определенные способы представления элементов информационной
системы.
Реинжиниринг бизнес-процессов – это фундаментальная реорганизация
бизнес-процессов с целью повышения их эффективности.
Системный подход – процесс рассмотрения любой системы в качестве
совокупности взаимосвязанных элементов.
Процессный подход – представление любой системы в качестве совокупности
процессов.
Функциональный подход – предусматривает четкое закрепление за каждой
структурной единицей набора функций.
Техническое задание – документ, используемый заказчиком в качестве средства
для описания и определения задач, выполняемых при реализации договора [3].
Исторические аспекты развития
технологий проектирования ИС
Середина прошлого столетия ознаменовалась началом активного развития
информационных техно- логий. Прежде всего, военные ведомства и передовые
предприятия многих стран понимают важность и ценность создания и развития
информационных систем. С появлением вычислительной техники обработка больших
объемов информации и автоматизация основных производственных процессов и
органов управления на всех уровнях становятся наиважнейшей задачей для
обеспечения военного превосходства наиболее развитых государств и конкурентных
преимуществ коммерческих компаний. Разработчики национальных и крупномасштабных
информационных систем стали первыми осознавать необходимость создания
специальных средств проектирования и моделирования бизнес-процессов,
позволяющими сделать их работу более эффективной и сократить не только сроки
создания информационных систем, но минимизировать ошибки. Ошибки и неточности
встречаются постоянно, чем раньше они диагностируется и локализуется, тем
меньше стоимость переделки. Известно, что стоимость выявление и устранение
ошибки на стадии проектирования в два раза обходится дороже, на стадии
тестирования информационной системы в десять раз, а на стадии эксплуатации в
сто раз, чем на стадии анализа бизнес-процессов и разработки технического
задания.
При создании сложных информационных систем зачастую очень трудно понять
требования персонала заказчика. Они могут быть сформулированы некорректно, а в
процессе анализа конкретных бизнес-процессов даже измениться. Поэтому появление
методологий современного проектирования и моделирования информационных систем
было насущной задачей, над которой работали специалисты разных стран.
Появление автоматизированных систем управления в шестидесятых годах
прошлого столетия определялось получением начальных знаний и опыта их
разработки и внедрения. Анализировались все успехи и неудачи создания первых
АСУ, но бесспорным было сокращение времени обработки информации,
производственных и управленческих затрат и как следствие персонала.
Опыт зарубежных компаний по разработке и внедрению корпоративных
информационных систем свидетельствует о появлении программ, в первую очередь
связанных с автоматизацией учетных функций бухгалтерий, отдела кадров и
складов. И намного позже появляются другие автоматизированные системы
управления производством, логистикой, взаимоотношениями с клиентами и
поставщиками. На последнем этапе разрабатываются информационные системы
управления всей компанией, позволяющие полностью перейти к электронному
документообороту и автоматизировать все сферы деятельности фирмы. С появлением
персональных компьютеров происходит децентрализация процессов управления, все
чаще внедряются модули с распределенными системами обработки информации.
70-е - пришло понимание, что информация – стратегический ресурс любой
компании, который необходимо грамотно использовать. В тоже время главными
потребителями информации являются руководители. Зарождаются идеи создания
распределенных ИС (ИС которые при выходе из строя одного узла не приводит к
полной остановке всей системы)
80-е - появлением специализированных методологий проектирования
информационных систем и CASE-средств. На их
основе разрабатываются первые программные средства, а персональные компьютеры
позволяют приступить к созданию децентрализованных информационных систем.
Различные персональные компьютер объединяются в локальную сеть. Этот период
характеризуется интеграций информационных систем и появлением различных
концепций управления ими на единой методологической основе.
90-е – Разрабатываются корпоративные информационные системы, реализующие
принципы распределенной обработки данных. Становится возможным автоматизация
всех отделов и служб компаний, а не только бухгалтерии. Появляются системы
электронного документооборота, в том числе для предприятий с развитой
филиальной сетью в разных городах и регионах. Сокращаются сроки обработки
данных, производственных, складских и прочих управленческих отчетов.
Тема 2 Структура и модели
жизненного цикла.
Методология
проектирования информационных систем описывает процесс создания и сопровождения
систем в виде жизненного цикла (ЖЦ) ИС, представляя его как некоторую
последовательность стадий и выполняемых на них процессов. Для каждого этапа
определяются состав и последовательность выполняемых работ, получаемые
результаты, методы и средства, необходимые для выполнения работ, роли и
ответственность участников и т.д. Такое формальное описание ЖЦ ИС позволяет
спланировать и организовать процесс коллективной разработки и обеспечить
управление этим процессом.
Жизненный цикл ИС можно представить как ряд событий,
происходящих с системой в процессе ее создания и использования.
Модель жизненного цикла отражает различные состояния системы, начиная с момента
возникновения необходимости в данной ИС и заканчивая моментом ее полного выхода
из употребления. Модель жизненного цикла - структура, содержащая процессы,
действия и задачи, которые осуществляются в ходе разработки, функционирования и
сопровождения программного продукта в течение всей жизни системы, от
определения требований до завершения ее использования.
В настоящее время известны и используются следующие
модели жизненного цикла:
Каскадная
модель (рис. 1) предусматривает последовательное выполнение
всех этапов проекта в строго фиксированном порядке. Переход на следующий этап
означает полное завершение работ на предыдущем этапе.
Рис. 1 Каскадная модель ЖЦ ИС
Поэтапная модель с промежуточным контролем (рис.
2). Разработка ИС ведется итерациями с циклами обратной связи между этапами.
Межэтапные корректировки позволяют учитывать реально существующее взаимовлияние
результатов разработки на различных этапах; время жизни каждого из этапов
растягивается на весь период разработки.
Рис. 2 Поэтапная модель с промежуточным контролем
Спиральная модель (рис. 3) На каждом
витке спирали выполняется создание очередной версии продукта, уточняются
требования проекта, определяется его качество и планируются работы следующего
витка. Особое внимание уделяется начальным этапам разработки - анализу и
проектированию, где реализуемость тех или иных технических решений проверяется
и обосновывается посредством создания прототипов (макетирования).
Рис. 3 Спиральная модель ЖЦ ИС
В ранних проектах
достаточно простых ИС каждое приложение представляло собой единый,
функционально и информационно независимый блок. Для разработки такого типа
приложений эффективным оказался каскадный способ. Каждый этап завершался после
полного выполнения и документального оформления всех предусмотренных работ.
Можно выделить
следующие положительные стороны применения каскадного подхода:
·
на каждом этапе формируется законченный набор
проектной документации, отвечающий критериям полноты и согласованности;
·
выполняемые в логической последовательности этапы
работ позволяют планировать сроки завершения всех работ и соответствующие
затраты.
Каскадный подход хорошо
зарекомендовал себя при построении относительно простых ИС, когда в самом
начале разработки можно достаточно точно и полно сформулировать все требования
к системе. Основным недостатком этого подхода является то, что реальный процесс
создания системы никогда полностью не укладывается в такую жесткую схему,
постоянно возникает потребность в возврате к предыдущим этапам и уточнении или
пересмотре ранее принятых решений. В результате реальный процесс создания ИС
оказывается соответствующим поэтапной модели с промежуточным контролем.
Однако и эта схема не
позволяет оперативно учитывать возникающие изменения и уточнения требований к
системе. Согласование результатов разработки с пользователями производится
только в точках, планируемых после завершения каждого этапа работ, а общие
требования к ИС зафиксированы в виде технического задания на все время ее
создания. Таким образом, пользователи зачастую получают систему, не
удовлетворяющую их реальным потребностям.
Спиральная модель ЖЦ
была предложена для преодоления перечисленных проблем. На этапах анализа и
проектирования реализуемость технических решений и степень удовлетворения
потребностей заказчика проверяется путем создания прототипов. Каждый виток
спирали соответствует созданию работоспособного фрагмента или версии системы.
Это позволяет уточнить требования, цели и характеристики проекта, определить
качество разработки, спланировать работы следующего витка спирали. Таким
образом углубляются и последовательно конкретизируются детали проекта и в
результате выбирается обоснованный вариант, который удовлетворяет
действительным требованиям заказчика и доводится до реализации.
Итеративная
разработка отражает объективно существующий спиральный цикл создания сложных
систем. Она позволяет переходить на следующий этап, не дожидаясь полного
завершения работы на текущем и решить главную задачу - как можно быстрее
показать пользователям системы работоспособный продукт, тем самым активизируя
процесс уточнения и дополнения требований.
Основная проблема спирального цикла - определение
момента перехода на следующий этап. Для ее решения вводятся временные
ограничения на каждый из этапов жизненного цикла, и переход осуществляется в
соответствии с планом, даже если не вся запланированная работа закончена.
Планирование производится на основе статистических данных, полученных в
предыдущих проектах, и личного опыта разработчиков.
Несмотря на настойчивые рекомендации компаний –
вендоров (поставщики услуг) и
экспертов в области проектирования и разработки ИС, многие компании продолжают
использовать каскадную модель вместо какого-либо варианта итерационной модели.
Основные причины, по которым каскадная модель сохраняет свою популярность,
следующие:
- Привычка - многие
ИТ-специалисты получали образование в то время, когда изучалась только каскадная
модель, поэтому она используется ими и в наши дни.
- Иллюзия снижения рисков участников проекта
(заказчика и исполнителя). Каскадная модель предполагает разработку законченных
продуктов на каждом этапе: технического задания, технического проекта, программного
продукта и пользовательской документации. Разработанная документация позволяет
не только определить требования к продукту следующего этапа, но и определить
обязанности сторон, объем работ и сроки, при этом окончательная оценка сроков и
стоимости проекта производится на начальных этапах, после завершения
обследования. Очевидно, что если требования к информационной системе меняются в
ходе реализации проекта, а качество документов оказывается невысоким
(требования неполны и/или противоречивы), то в действительности использование
каскадной модели создает лишь иллюзию определенности и на деле увеличивает
риски, уменьшая лишь ответственность участников проекта. При формальном подходе
менеджер проекта реализует только те требования, которые содержатся в спецификации,
опирается на документ, а не на реальные потребности бизнеса. Есть два основных
типа контрактов на разработку ПО. Первый тип предполагает выполнение
определенного объема работ за определенную сумму в определенные сроки (fixed price). Второй тип
предполагает повременную оплату работы (time work). Выбор того или
иного типа контракта зависит от степени определенности задачи. Каскадная модель
с определенными этапами и их результатами лучше приспособлена для заключения
контракта с оплатой по результатам работы, а именно этот тип контрактов
позволяет получить полную оценку стоимости проекта до его завершения. Более
вероятно заключение контракта с повременной оплатой на небольшую систему, с
относительно небольшим весом в структуре затрат предприятия. Разработка и
внедрение интегрированной информационной системы требует существенных
финансовых затрат, поэтому используются контракты с фиксированной ценой, и,
следовательно, каскадная модель разработки и внедрения. Спиральная модель чаще
применяется при разработке информационной системы силами собственного отдела ИТ
предприятия.
- Проблемы внедрения при использовании итерационной
модели. В некоторых областях спиральная модель не может применяться,
поскольку невозможно использование/тестирование продукта, обладающего неполной
функциональностью (например, военные разработки, атомная энергетика и т.д.).
Поэтапное итерационное внедрение информационной системы для бизнеса возможно,
но сопряжено с организационными сложностями (перенос данных, интеграция систем,
изменение бизнес-процессов, учетной политики, обучение пользователей).
Трудозатраты при поэтапном итерационном внедрении оказываются значительно выше,
а управление проектом требует настоящего искусства. Предвидя указанные
сложности, заказчики выбирают каскадную модель, чтобы "внедрять систему
один раз".
Каждая из стадий
создания системы предусматривает выполнение определенного объема работ, которые
представляются в виде процессов ЖЦ. Процесс определяется как совокупность
взаимосвязанных действий, преобразующих входные данные в выходные. Описание
каждого процесса включает в себя перечень решаемых задач, исходных данных и
результатов.
Стандарты,
регламентирующие ЖЦ.
Существует целый ряд стандартов, регламентирующих ЖЦ
ПО, а в некоторых случаях и процессы разработки. Среди наиболее известных
стандартов можно выделить следующие:
ГОСТ 34 - распространяется на автоматизированные
системы и устанавливает стадии и этапы их создания. Кроме того, в стандарте
содержится описание содержания работ на каждом этапе. Стадии и этапы работы
закреплены в стандарте и соответствуют каскадной модели жизненного цикла.
ISO/IEC
12207 - стандарт на процессы и организацию жизненного цикла. Распространяется
на все виды заказного ПО. Стандарт не содержит описания фаз, стадий и этапов.
В соответствии с базовым международным стандартом ISO/IEC 12207 все процессы
ЖЦ ПО делятся на три группы:
1) Основные процессы: приобретение; поставка;
разработка; эксплуатация; сопровождение.
2) Вспомогательные процессы: документирование;
управление конфигурацией; обеспечение качества; разрешение проблем; аудит;
аттестация; совместная оценка; верификация.
3) Организационные процессы: создание инфраструктуры;
управление; обучение; усовершенствование.
Тема 3 Моделирование и представление структуры
предприятия. Стандарт IDEF0.
В основе проектирования ИС лежит моделирование
предметной области. Для того чтобы получить адекватный предметной области
проект ИС в виде системы правильно работающих программ, необходимо иметь
целостное, системное представление модели, которое отражает все аспекты
функционирования будущей информационной системы. При этом под моделью
предметной области понимается некоторая система, имитирующая структуру или
функционирование исследуемой предметной области и отвечающая основному
требованию – быть адекватной этой области.
Предварительное моделирование предметной области позволяет сократить время и
сроки проведения проектировочных работ и получить более эффективный и
качественный проект. Без проведения моделирования предметной области велика
вероятность допущения большого количества ошибок в решении стратегических
вопросов, приводящих к экономическим потерям и высоким затратам на последующее
перепроектирование системы. Вследствие этого все современные технологии
проектирования ИС основываются на использовании методологии моделирования
предметной области.
К моделям предметных областей предъявляются следующие
требования:
1) формализация, обеспечивающая однозначное описание
структуры предметной области;
2) понятность для заказчиков и разработчиков на основе
применения графических средств отображения модели;
3) реализуемость, подразумевающая наличие средств
физической реализации модели предметной области в ИС;
4) обеспечение оценки эффективности реализации модели
предметной области на основе определенных методов и вычисляемых показателей.
Для реализации перечисленных требований, как правило,
строится система структурных моделей, которая отражает следующие аспекты
функционирования предметной области:
1) объектной структуры, отражающей состав
взаимодействующих в процессах материальных и информационных объектов предметной
области;
2) функциональной структуры, отражающей взаимосвязь
функций (действий) по преобразованию объектов в процессах;
3) структуры управления, отражающей события и
бизнес-правила, которые воздействуют на выполнение процессов;
4) организационной структуры, отражающей
взаимодействие организационных единиц предприятия и персонала в процессах;
5) технической структуры, описывающей топологию
расположения и способы коммуникации комплекса технических средств.
Для отображения структурного аспекта моделей
предметных областей в основном используются графические методы, которые должны
гарантировать представление информации о компонентах системы. Главное
требование к графическим методам документирования — простота.
Графические методы должны обеспечивать возможность
структурной декомпозиции спецификаций системы с максимальной степенью
детализации и согласований описаний на смежных уровнях декомпозиции. IDEF0 является наиболее распространенным стандартом построения
таких моделей.
История возникновения стандарта IDEF0.
Методологию IDEF0 можно считать
следующим этапом развития хорошо известного графического языка описания
функциональных систем SADT (Structured Analysis and Design Teqnique). Несколько лет назад в России небольшим тиражом
вышла одноименная книга, посвященная описанию основных принципов построения SADT-диаграмм. Исторически, IDEF0,
как стандарт был разработан в 1981 году в рамках обширной программы
автоматизации промышленных предприятий, которая носила обозначение ICAM (Integrated Computer Aided Manufacturing) и была предложена департаментом Военно-Воздушных Сил
США. Собственно семейство стандартов IDEF унаследовало свое
обозначение от названия этой программы (IDEF=ICAM DEFinition). В процессе практической
реализации, участники программы ICAM столкнулись с
необходимостью разработки новых методов анализа процессов взаимодействия в
промышленных системах. При этом кроме усовершенствованного набора функций для
описания бизнес-процессов, одним из требований к новому стандарту было наличие
эффективной методологии взаимодействия в рамках “аналитик-специалист”. Другими
словами, новый метод должен был обеспечить групповую работу над созданием
модели, с непосредственным участием всех аналитиков и специалистов, занятых в
рамках проекта.
В результате поиска соответствующих решений родилась методология
функционального моделирования IDEF0. C 1981 года стандарт IDEF0
претерпел несколько незначительных изменения, в основном ограничивающего
характера, и последняя его редакция была выпущена в декабре 1993 года
Национальным Институтом По Стандартам и Технологиям США (NIST).
Основные элементы и понятия IDEF0.
Графический язык IDEF0
удивительно прост и гармоничен. В основе методологии лежат четыре основных
понятия:
Первым из них является понятие функционального
блока (Activity Box).
Функциональный блок графически изображается в виде прямоугольника (см. рис. 1)
и олицетворяет собой некоторую конкретную функцию в рамках рассматриваемой
системы. По требованиям стандарта название каждого функционального блока должно
быть сформулировано в глагольном наклонении (например, “производить услуги”, а
не “производство услуг”).
Каждая из четырех сторон функционального блока имеет
своё определенное значение (роль), при этом:
1) Верхняя сторона имеет значение “Управление” (Control);
2) Левая сторона имеет значение “Вход” (Input);
3) Правая сторона имеет значение “Выход” (Output);
4) Нижняя сторона имеет значение “Механизм” (Mechanism).
Каждый функциональный блок в
рамках единой рассматриваемой системы должен иметь свой уникальный
идентификационный номер.
Рисунок 1. Функциональный блок
Вторым “китом” методологии IDEF0
является понятие интерфейсной дуги (Arrow). Также интерфейсные
дуги часто называют потоками или стрелками. Интерфейсная дуга отображает
элемент системы, который обрабатывается функциональным блоком или оказывает
иное влияние на функцию, отображенную данным функциональным блоком.
Графическим отображением интерфейсной дуги является однонаправленная стрелка.
Каждая интерфейсная дуга должна иметь свое уникальное наименование (Arrow Label). По требованию
стандарта, наименование должно быть оборотом существительного.
С помощью интерфейсных дуг отображают различные
объекты, в той или иной степени определяющие процессы, происходящие в системе.
Такими объектами могут быть элементы реального мира (детали, вагоны, сотрудники
и т.д.) или потоки данных и информации (документы, данные, инструкции и т.д.).
В зависимости от того, к какой из сторон подходит
данная интерфейсная дуга, она носит название “входящей”, “исходящей” или
“управляющей”. Кроме того, “источником” (началом) и “приемником” (концом)
каждой функциональной дуги могут быть только функциональные блоки, при этом
“источником” может быть только выходная сторона блока, а “приемником” любая из
трех оставшихся.
Необходимо отметить, что любой функциональный блок по
требованиям стандарта должен иметь по крайней мере одну управляющую
интерфейсную дугу и одну исходящую. Это и понятно – каждый процесс должен
происходить по каким-то правилам (отображаемым управляющей дугой) и должен
выдавать некоторый результат (выходящая дуга), иначе его рассмотрение не имеет
никакого смысла.
При построении IDEF0 –
диаграмм важно правильно отделять входящие интерфейсные дуги от управляющих,
что часто бывает непросто. К примеру, на рисунке 2 изображен функциональный
блок “Обработать заготовку”.
В реальном процессе рабочему, производящему обработку,
выдают заготовку и технологические указания по обработке (или правила техники
безопасности при работе со станком). Ошибочно может показаться, что и заготовка
и документ с технологическими указаниями являются входящими объектами, однако
это не так. На самом деле в этом процессе заготовка обрабатывается по правилам
отраженным в технологических указаниях, которые должны соответственно
изображаться управляющей интерфейсной дугой.
Рисунок 2.
Другое дело, когда технологические указания обрабатываются главным технологом и
в них вносятся изменения (рис. 3). В этом случае они отображаются уже входящей
интерфейсной дугой, а управляющим объектом являются, например, новые
промышленные стандарты, исходя из которых производятся данные изменения.
Рисунок 3.
Приведенные выше примеры подчеркивают внешне схожую природу входящих и
управляющих интерфейсных дуг, однако для систем одного класса всегда есть
определенные разграничения. Например, в случае рассмотрения предприятий и
организаций существуют пять основных видов объектов: материальные потоки
(детали, товары, сырье и т.д.), финансовые потоки (наличные и безналичные,
инвестиции и т.д.), потоки документов (коммерческие, финансовые и
организационные документы), потоки информации (информация, данные о намерениях,
устные распоряжения и т.д.) и ресурсы (сотрудники, станки, машины и т.д.). При
этом в различных случаях входящими и исходящими интерфейсными дугами могут
отображаться все виды объектов, управляющими только относящиеся к потокам
документов и информации, а дугами-механизмами только ресурсы.
Обязательное наличие управляющих интерфейсных дуг является одним из главных
отличий стандарта IDEF0 от других методологий классов DFD (Data Flow Diagram) и WFD (Work Flow Diagram).
Третьим основным понятием стандарта IDEF0 является декомпозиция (Decomposition).
Принцип декомпозиции применяется при разбиении сложного процесса на
составляющие его функции. При этом уровень детализации процесса определяется
непосредственно разработчиком модели.
Декомпозиция позволяет постепенно и структурировано представлять модель системы
в виде иерархической структуры отдельных диаграмм, что делает ее менее
перегруженной и легко усваиваемой.
Модель IDEF0 всегда начинается с
представления системы как единого целого – одного функционального блока с
интерфейсными дугами, простирающимися за пределы рассматриваемой области. Такая
диаграмма с одним функциональным блоком называется контекстной диаграммой, и
обозначается идентификатором “А-0”.
В
пояснительном тексте к контекстной диаграмме должна быть указана цель (Purpose) построения диаграммы в виде краткого описания и
зафиксирована точка зрения (Viewpoint).
Определение и формализация цели разработки IDEF0 – модели является крайне важным моментом. Фактически
цель определяет соответствующие области в исследуемой системе, на которых
необходимо фокусироваться в первую очередь. Например, если мы моделируем
деятельность предприятия с целью построения в дальнейшем на базе этой модели
информационной системы, то эта модель будет существенно отличаться от той,
которую бы мы разрабатывали для того же самого предприятия, но уже с целью
оптимизации логистических цепочек.
Точка зрения определяет основное направление развития модели и уровень
необходимой детализации. Четкое фиксирование точки зрения позволяет разгрузить
модель, отказавшись от детализации и исследования отдельных элементов, не
являющихся необходимыми, исходя из выбранной точки зрения на систему. Например,
функциональные модели одного и того же предприятия с точек зрения главного
технолога и финансового директора будут существенно различаться по
направленности их детализации. Это связано с тем, что в конечном итоге,
финансового директора не интересуют аспекты обработки сырья на производственных
станках, а главному технологу ни к чему прорисованные схемы финансовых потоков.
Правильный выбор точки зрения существенно сокращает временные затраты на построение
конечной модели.
В процессе декомпозиции, функциональный блок, который
в контекстной диаграмме отображает систему как единое целое, подвергается
детализации на другой диаграмме. Получившаяся диаграмма второго уровня содержит
функциональные блоки, отображающие главные подфункции функционального блока
контекстной диаграммы и называется дочерней (Child diagram) по отношению к нему
(каждый из функциональных блоков, принадлежащих дочерней диаграмме
соответственно называется дочерним блоком – Child Box). В свою очередь,
функциональный блок - предок называется родительским блоком по отношению к
дочерней диаграмме (Parent Box), а диаграмма, к которой он принадлежит –
родительской диаграммой (Parent Diagram). Каждая из подфункций дочерней диаграммы может быть
далее детализирована путем аналогичной декомпозиции соответствующего ей
функционального блока. Важно отметить, что в каждом случае декомпозиции
функционального блока все интерфейсные дуги, входящие в данный блок, или
исходящие из него фиксируются на дочерней диаграмме. Этим достигается
структурная целостность IDEF0 – модели. Наглядно
принцип декомпозиции представлен на рисунке 4. Следует обратить внимание на
взаимосвязь нумерации функциональных блоков и диаграмм - каждый блок имеет свой
уникальный порядковый номер на диаграмме (цифра в правом нижнем углу
прямоугольника), а обозначение под правым углом указывает на номер дочерней для
этого блока диаграммы. Отсутствие этого обозначения говорит о том, что
декомпозиции для данного блока не существует.
Часто бывают случаи, когда отдельные интерфейсные дуги
не имеет смысла продолжать рассматривать в дочерних диаграммах ниже какого-то
определенного уровня в иерархии, или наоборот - отдельные дуги не имеют
практического смысла выше какого-то уровня. Например, интерфейсную дугу,
изображающую “деталь” на входе в функциональный блок “Обработать на токарном
станке” не имеет смысла отражать на диаграммах более высоких уровней – это
будет только перегружать диаграммы и делать их сложными для восприятия. С
другой стороны, случается необходимость избавиться от отдельных
“концептуальных” интерфейсных дуг и не детализировать их глубже некоторого
уровня. Для решения подобных задач в стандарте IDEF0
предусмотрено понятие туннелирования. Обозначение “туннеля” (Arrow Tunnel) в виде двух круглых
скобок вокруг начала интерфейсной дуги обозначает, что эта дуга не была
унаследована от функционального родительского блока и появилась (из “туннеля”)
только на этой диаграмме. В свою очередь, такое же обозначение вокруг конца
(стрелки) интерфейсной дуги в непосредственной близи от блока – приёмника
означает тот факт, что в дочерней по отношению к этому блоку диаграмме эта дуга
отображаться и рассматриваться не будет. Чаще всего бывает, что отдельные
объекты и соответствующие им интерфейсные дуги не рассматриваются на некоторых
промежуточных уровнях иерархии – в таком случае, они сначала “погружаются в
туннель”, а затем, при необходимости “возвращаются из туннеля”.
Последним из понятий IDEF0
является глоссарий (Glossary). Для каждого из
элементов IDEF0: диаграмм, функциональных блоков, интерфейсных дуг
существующий стандарт подразумевает создание и поддержание набора
соответствующих определений, ключевых слов, повествовательных изложений и т.д.,
которые характеризуют объект, отображенный данным элементом. Этот набор
называется глоссарием и является описанием сущности данного элемента. Например,
для управляющей интерфейсной дуги “распоряжение об оплате” глоссарий может
содержать перечень полей соответствующего дуге документа, необходимый набор виз
и т.д. Глоссарий гармонично дополняет наглядный графический язык, снабжая
диаграммы необходимой дополнительной информацией.
Принципы ограничения
сложности IDEF0-диаграмм.
Обычно IDEF0-модели несут в себе
сложную и концентрированную информацию, и для того, чтобы ограничить их
перегруженность и сделать удобочитаемыми, в соответствующем стандарте приняты
соответствующие ограничения сложности:
1) Ограничение количества функциональных блоков на
диаграмме тремя-шестью. Верхний предел (шесть) заставляет разработчика
использовать иерархии при описании сложных предметов, а нижний предел (три)
гарантирует, что на соответствующей диаграмме достаточно деталей, чтобы
оправдать ее создание;
2) Ограничение количества подходящих к одному
функциональному блоку (выходящих из одного функционального блока) интерфейсных
дуг четырьмя.
Разумеется, строго следовать этим ограничениям вовсе необязательно, однако, как
показывает опыт, они являются весьма практичными в реальной работе.
Дисциплина групповой
работы над разработкой IDEF0-модели.
Стандарт IDEF0 содержит набор
процедур, позволяющих разрабатывать и согласовывать модель большой группой
людей, принадлежащих к разным областям деятельности моделируемой системы.
Обычно процесс разработки является итеративным и состоит из следующих условных
этапов:
1) Создание модели группой специалистов, относящихся к
различным сферам деятельности предприятия. Эта группа в терминах IDEF0 называется авторами (Authors).
Построение первоначальной модели является динамическим процессом, в течение которого
авторы опрашивают компетентных лиц о структуре различных процессов. На основе
имеющихся положений, документов и результатов опросов создается черновик (Model Draft) модели.
2) Распространение черновика для рассмотрения,
согласований и комментариев. На этой стадии происходит обсуждение черновика
модели с широким спектром компетентных лиц (в терминах IDEF0-
читателей) на предприятии. При этом каждая из диаграмм черновой модели
письменно критикуется и комментируется, а затем передается автору. Автор, в свою
очередь, также письменно соглашается с критикой или отвергает её с изложением
логики принятия решения и вновь возвращает откорректированный черновик для
дальнейшего рассмотрения. Этот цикл продолжается до тех пор, пока авторы и
читатели не придут к единому мнению.
3) Официальное утверждение модели. Утверждение
согласованной модели происходит руководителем рабочей группы в том случае, если
у авторов модели и читателей отсутствуют разногласия по поводу ее адекватности.
Окончательная модель представляет собой согласованное представление о
предприятии (системе) с заданной точки зрения и для заданной цели.
Наглядность графического языка IDEF0 делает модель вполне читаемой и для лиц, которые не
принимали участия в проекте ее создания, а также эффективной для проведения
показов и презентаций. В дальнейшем, на базе построенной модели могут быть
организованы новые проекты, нацеленные на производство изменений на предприятии
(в системе).
При проведении сложных проектов обследования предприятий, разработка моделей в
стандарте IDEF0 позволяет наглядно и эффективно отобразить весь
механизм деятельности предприятия в нужном разрезе. Однако самое главное – это
возможность коллективной работы, которую предоставляет IDEF0.
Часто построение модели осуществляется с прямой помощью сотрудников различных
подразделений. При этом, консультант за достаточно короткое время объясняет им
основные принципы IDEF0 и обучает работе с
соответствующим прикладным программным обеспечением. В результате, сотрудники
различных отделов создавали IDEF-диаграммы
деятельности своего функционального подразделения, которые должны были ответить
на следующие вопросы:
-
Что поступает в подразделение “на входе”?
-
Какие функции, и в какой последовательности выполняются в рамках
-
подразделения?
-
Кто является ответственным за выполнение каждой из функций?
-
Чем руководствуется исполнитель при выполнении каждой из функций?
-
Что является результатом работы подразделения (на выходе)?
После согласования черновиков диаграмм внутри каждого
конкретного подразделения, они собираются консультантом в черновую модель
предприятия, в которой увязываются все входные и выходные элементы. На этом
этапе фиксируются все неувязки отдельных диаграмм и их спорные места. Далее,
эта модель вновь проходит через функциональные отделы для дальнейшего
согласования и внесения необходимых корректив. В результате, за достаточно
короткое время и при привлечении минимума человеческих ресурсов со стороны
консультационной компании (а эти ресурсы, как известно, весьма недешевы),
получается IDEF0-модель предприятия по принципу “Как есть”, причем,
что немаловажно, она представляет предприятие с позиции сотрудников, которые в
нем работают и досконально знают все нюансы, в том числе неформальные. В
дальнейшем, эта модель будет передана на анализ и обработку к
бизнес-аналитикам, которые будут заниматься поиском “узких мест” в управлении
компанией и оптимизацией основных процессов, трансформируя модель “Как есть” в
соответствующее представление “Как должно быть”. На основании этих изменений и
выносится итоговое заключение, которое содержит в себе рекомендации по
реорганизации системы управления.
Разумеется, подобный
подход требует ряда организационных мер, в первую очередь со стороны
руководства обследуемого предприятия. Это обусловлено тем, что эта техника
подразумевает возложение на некоторых сотрудников дополнительных обязанностей
по освоению и практическому применению новых методологий. Однако в конечном
итоге это оправдывает себя, так как дополнительные один-два часа работы
отдельных сотрудников в течение нескольких дней позволяют существенно экономить
средства на оплату консультационных услуг сторонней компании (которые в любом
случае будут отрывать от работы тех же работников анкетами и вопросами).
Тема 4 Проектирование
АИС методом диаграмм потоков данных (DFD)
1. Диаграммы потоков данных (DFD)
2. Основные символы диаграмм.
3. Детализация процессов.
4. Декомпозиция данных.
5. Построение модели.
6. Словарь данных.
DFD —
общепринятое сокращение от англ. data flow diagrams — диаграммы потоков данных.
Так называется методология графического структурного анализа, описывающая
внешние по отношению к системе источники и адресаты данных, логические функции,
потоки данных и хранилища данных, к которым осуществляется доступ.
Диаграммы
потоков данных (DFD) являются
основным средством моделирования функциональных требований проектируемой
системы. С их помощью эти требования разбиваются на функциональные компоненты
(процессы) и представляются в виде сети, связанной потоками данных. Главная
цель таких средств продемонстрировать, как каждый процесс преобразует свои
входные данные в выходные, а также выявить отношения между этими процессами.
Диаграммы потоков данных известны очень давно.
Приведем пример использования DFD для реорганизации
переполненного клерками офиса, относящийся к 20-м годам. Осуществлявший
реорганизацию консультант обозначил кружком каждого клерка, а стрелкой - каждый
документ, передаваемый между ними. Используя такую диаграмму, он предложил
схему реорганизации, в соответствии с которой двое клерков, обменивающиеся множеством
документов, были посажены рядом, а клерки с малым взаимодействием были посажены
на большом расстоянии. Так родилась первая модель, представляющая собой
потоковую диаграмму - предвестника DFD.
Для
изображения DFD традиционно используются две различные нотации:
Йодана (Yourdon) и Гейна-Сарсона (Gane-Sarson). Мы будем при построении примеров использовать
нотации Йодана.
Основные
символы диаграммы
Основные
символы DFD изображены на рис.3.
|
Рис.3 Основные компоненты диаграммы потоков данных
Опишем их назначение.
На диаграммах функциональные требования представляются с помощью процессов и
хранилищ, связанных потоками данных.
ПОТОКИ ДАННЫХ являются механизмами,
использующимися для моделирования передачи информации (или даже физических
компонент) из одной части системы в другую. Важность этого объекта очевидна: он
дает название целому инструменту. Потоки на диаграммах обычно изображаются
именованными стрелками, ориентация которых указывает направление движения
информации.
Иногда информация
может двигаться в одном направлении, обрабатываться и возвращаться назад в ее
источник. Такая ситуация может моделироваться либо двумя различными потоками,
либо одним - двунаправленным.
Назначение ПРОЦЕССА состоит
в продуцировании выходных потоков из входных в соответствии с действием,
задаваемым именем процесса. Это имя должно содержать глагол в неопределенной
форме с последующим дополнением (например, ВЫЧИСЛИТЬ МАКСИМАЛЬНУЮ ВЫСОТУ).
Кроме того, каждый процесс должен иметь уникальный номер для ссылок на него
внутри диаграммы. Этот номер может использоваться совместно с номером диаграммы
для получения уникального индекса процесса во всей модели.
ХРАНИЛИЩЕ (НАКОПИТЕЛЬ) ДАННЫХ позволяет на
определенных участках определять данные, которые будут сохраняться в памяти
между процессами. Фактически хранилище представляет "срезы" потоков
данных во времени. Информация, которую оно содержит, может использоваться в
любое время после ее определения, при этом данные могут выбираться в любом
порядке. Имя хранилища должно идентифицировать его содержимое и быть
существительным. В случае, когда поток данных
входит или выходит в/из хранилища, и его структура соответствует структуре
хранилища, он должен иметь то же самое имя, которое нет необходимости отражать
на диаграмме.
ВНЕШНЯЯ СУЩНОСТЬ (или ТЕРМИНАТОР) представляет сущность
вне контекста системы, являющуюся источником или приемником системных данных.
Ее имя должно содержать существительное, например, СКЛАД ТОВАРОВ.
Предполагается, что объекты, представленные такими узлами, не должны участвовать
ни в какой обработке.
Контекстная диаграмма
и детализация процессов
Декомпозиция DFD осуществляется на основе процессов: каждый процесс
может раскрываться с помощью DFD нижнего уровня.
Важную специфическую
роль в модели играет специальный вид DFD - контекстная диаграмма,
моделирующая систему наиболее общим образом. Контекстная диаграмма отражает
интерфейс системы с внешним миром, а именно, информационные потоки между
системой и внешними сущностями, с которыми она должна быть связана. Она
идентифицирует эти внешние сущности, а также, как правило, единственный
процесс, отражающий главную цель или природу системы насколько это возможно. И
хотя контекстная диаграмма выглядит тривиальной, несомненная ее полезность
заключается в том, что она устанавливает границы анализируемой системы. Каждый
проект должен иметь ровно одну контекстную диаграмму, при этом нет
необходимости в нумерации единственного ее процесса.
DFD первого уровня
строится как декомпозиция процесса, который присутствует на контекстной
диаграмме.
Построенная диаграмма
первого уровня также имеет множество процессов, которые в свою очередь могут
быть декомпозированы в DFD нижнего уровня.
Таким образом строится иерархия DFD с контекстной
диаграммой в корне дерева. Этот процесс декомпозиции продолжается до тех пор,
пока процессы могут быть эффективно описаны с помощью коротких (до одной
страницы) миниспецификаций обработки (спецификаций процессов).
При таком построении
иерархии DFD каждый процесс более низкого уровня необходимо
соотнести с процессом верхнего уровня. Обычно для этой цели используются
структурированные номера процессов. Так, например, если мы детализируем процесс
номер 2 на диаграмме первого уровня, раскрывая его с помощью DFD, содержащей три процесса, то их номера будут иметь
следующий вид: 2.1, 2.2 и 2.3. При необходимости можно перейти на следующий
уровень, т.е. для процесса 2.2 получим 2.2.1, 2.2.2. и т.д.
Проиллюстрируем
контекстную диаграмму на примере.
Пример. Рассмотрим
процесс СДАТЬ ЭКЗАМЕН. У нас есть две сущности СТУДЕНТ и ПРЕПОДАВАТЕЛЬ. Опишем
потоки данных, которыми обменивается наша проектируемая система с внешними
объектами.
|
Рис. 4 DFD-диаграмма
процесса "Сдать экзамен"
Со стороны сущности
СТУДЕНТ опишем информационные потоки. Для сдачи экзамена необходимо, чтобы у
СТУДЕНТА была ЗАЧЕТКА, а также чтобы он имел ДОПУСК К ЭКЗАМЕНУ. Результатом
сдачи экзамена, т.е. выходными потоками будут ОЦЕНКА ЗА ЭКЗАМЕН и ЗАЧЕТКА, в
которую будет проставлена ОЦЕНКА.
Со стороны сущности
ПРЕПОДАВАТЕЛЬ информационные потоки следующие. ЭКЗАМЕНАЦИОННАЯ ВЕДОМОСТЬ
согласно которой будет известно, что СТУДЕНТ допущен до экзамена, а также
официальна бумага, куда будет занесен результат экзамена, т.е. ОЦЕНКА ЗА
ЭКЗАМЕН, ПРОСТАВЛЕННАЯ В ВЕДОМОСТЬ.
Теперь детализируем
процесс 1.СДАЧА ЭКЗАМЕНА. Этот процесс будет содержать следующие процессы:
1.1. Вытянуть билет
1.2. Подготовиться к
ответу
1.3. Ответы на билет
1.4. Проставление оценки
|
Рис. 5 Декомпозиция 1-го уровня
Декомпозиция данных и
соответствующие расширения диаграмм потоков данных
Индивидуальные данные
в системе часто являются независимыми. Однако иногда необходимо иметь дело с
несколькими независимыми данными одновременно. Например, в системе имеются
потоки ЯБЛОКИ, АПЕЛЬСИНЫ и ГРУШИ. Эти потоки могут быть сгруппированы с помощью
введения нового потока ФРУКТЫ. Для этого необходимо определить формально поток
ФРУКТЫ как состоящий из нескольких элементов-потомков. Такое определение
задается с помощью формы Бэкуса-Наура
(БНФ) в словаре данных (эту форму рассмотреть
самостоятельно). В свою очередь поток ФРУКТЫ сам может содержаться в
потоке-предке ЕДА вместе с потоками ОВОЩИ, МЯСО и др. Такие потоки,
объединяющие несколько потоков, получили название групповых.
Обратная операция,
расщепление потоков на подпотоки, осуществляется с использованием группового узла,
позволяющего расщепить поток на любое число подпотоков. Возможный способ изображения узлов приведен на рис. 6.
|
Рис. 6 Элементы, используемые при расщеплении
При расщеплении также
необходимо формально определить подпотоки в словаре данных (с помощью БНФ).
Аналогичным образом
осуществляется и декомпозиция потоков через границы диаграмм, позволяющая
упростить детализирующую DFD. Пусть имеется поток
ФРУКТЫ, входящий в детализируемый процесс. На детализирующей этот процесс
диаграмме потока ФРУКТЫ может не быть вовсе, но вместо него могут быть потоки
ЯБЛОКИ и АПЕЛЬСИНЫ (как будто бы они переданы из детализируемого процесса). В
этом случае должно существовать БНФ-определение потока ФРУКТЫ, состоящего из
подпотоков ЯБЛОКИ и АПЕЛЬСИНЫ, для целей балансирования.
Применение этих
операций над данными позволяет обеспечить структуризацию данных, увеличивает
наглядность и читабельность диаграмм.
Для обеспечения
декомпозиции данных и некоторых других сервисных возможностей к DFD добавляются следующие типы объектов:
1) ГРУППОВОЙ УЗЕЛ. Предназначен
для расщепления и объединения потоков. В некоторых случаях может отсутствовать
(т.е. фактически вырождаться в точку слияния/расщепления потоков на диаграмме).
2) УЗЕЛ-ПРЕДОК. Позволяет
увязывать входящие и выходящие потоки между детализируемым процессом и
детализирующей DFD.
3) НЕИСПОЛЬЗУЕМЫЙ УЗЕЛ. Применяется
в ситуации, когда декомпозиция данных производится в групповом узле, при этом
требуются не все элементы входящего в узел потока.
4) УЗЕЛ ИЗМЕНЕНИЯ ИМЕНИ. Позволяет
неоднозначно именовать потоки, при этом их содержимое эквивалентно. Например,
если при проектировании разных частей системы один и тот же фрагмент данных
получил различные имена, то эквивалентность соответствующих потоков данных
обеспечивается узлом изменения имени. При этом один из потоков данных является
входным для данного узла, а другой - выходным.
5) Текст в свободном
формате в любом месте диаграммы.
Построение
модели
Главная
цель построения иерархического множества DFD
заключается в том, чтобы сделать требования ясными и понятными на каждом уровне
детализации, а также разбить эти требования на части с точно определенными
отношениями между ними. Для достижения этого целесообразно пользоваться
следующими рекомендациями:
1.
Размещать на каждой диаграмме от 3 до 6-7 процессов. Верхняя граница
соответствует человеческим возможностям одновременного восприятия и понимания
структуры сложной системы с множеством внутренних связей, нижняя граница
выбрана по соображениям здравого смысла: нет необходимости детализировать
процесс диаграммой, содержащей всего один или два процесса.
2.
Не загромождать диаграммы несущественными на данном уровне деталями.
3.
Декомпозицию потоков данных осуществлять параллельно с декомпозицией процессов;
эти две работы должны выполняться одновременно, а не одна после завершения
другой.
4.
Выбирать ясные, отражающие суть дела, имена процессов и потоков для улучшения
понимаемости диаграмм, при этом стараться не использовать аббревиатуры.
5.
Однократно определять функционально идентичные процессы на самом верхнем
уровне, где такой процесс необходим, и ссылаться к нему на нижних уровнях.
6.
Пользоваться простейшими диаграммными техниками: если что-либо возможно описать
с помощью DFD, то это и необходимо делать, а не использовать для
описания более сложные объекты.
7.
Отделять управляющие структуры от обрабатывающих структур (т.е. процессов),
локализовать управляющие структуры.
В
соответствии с этими рекомендациями процесс построения модели разбивается на
следующие этапы:
1)
Расчленение множества требований и организация их в основные функциональные
группы.
2)
Идентификация внешних объектов, с которыми система должна быть связана.
3)
Идентификация основных видов информации, циркулирующей между системой и
внешними объектами.
4)
Предварительная разработка контекстной диаграммы, на которой основные
функциональные группы представляются процессами, внешние объекты - внешними
сущностями, основные виды информации - потоками данных между процессами и
внешними сущностями.
5)
Изучение предварительной контекстной диаграммы и внесение в нее изменений по
результатам ответов на возникающие при этом изучении вопросы по всем ее частям.
6)
Построение контекстной диаграммы путем объединения всех процессов
предварительной диаграммы в один процесс, а также группирования потоков.
7)
Формирование DFD первого уровня на базе процессов предварительной
контекстной диаграммы.
8)
Проверка основных требований по DFD первого уровня.
9)
Декомпозиция каждого процесса текущей DFD с помощью
детализирующей диаграммы или спецификации процесса.
10)
Проверка основных требований по DFD соответствующего
уровня.
11)
Добавление определений новых потоков в словарь данных при каждом их появлении
на диаграммах.
12)
Параллельное (с процессом декомпозиции) изучение требований (в том числе и
вновь поступающих), разбиение их на элементарные и идентификация процессов или
спецификаций процессов, соответствующих этим требованиям.
13)
После построения двух-трех уровней проведение ревизии с целью проверки
корректности и улучшения понимаемости модели.
14)
Построение спецификации процесса (а не простейшей диаграммы) в случае, если
некоторую функцию сложно или невозможно выразить комбинацией процессов.
БНФ
– нотации самостоятельно
Тема 5 Логическое проектирование БД. ER-диаграммы
Процесс
проектирования данных можно условно разделить на два этапа: логическое моделирование и физическое
проектирование. Результатом первого из них является так называемая
логическая (или концептуальная) модель данных, выражаемая обычно диаграммой
«сущность-связь» или ER (Entity-Relationship) диаграммой, которая представлена в одной из
стандартных нотаций, принятых для отображения подобных диаграмм. Результатом
второго этапа является готовая база данных либо DDL-скрипт для ее создания (можно создать такой скрипт на основе ERD).
Логическая модель
данных описывает факты и объекты, подлежащие регистрации в будущей базе данных.
Основными компонентами такой модели являются сущности, их атрибуты и связи между ними. Как правило, физическим
аналогом сущности в будущей базе данных является таблица, а физическим аналогом
атрибута —
поле этой таблицы. С логической точки зрения сущность представляет собой
совокупность однотипных объектов или фактов, называемых экземплярами этой
сущности. Физическим аналогом экземпляра обычно является запись в таблице базы
данных. Как и записи в таблице реляционной СУБД, экземпляры сущности должны
быть уникальными, то есть полный набор значений их атрибутов не должен
дублироваться. И так же, как и поля в таблице, атрибуты могут быть ключевыми и
неключевыми. На этапе логического проектирования для каждого атрибута обычно
определяется примерный тип данных (строковый, числовой, BLOB и др.). Конкретизация происходит на этапе физического
проектирования, так как различные СУБД поддерживают разные типы данных и
ограничения на их длину или точность.
Моделирование данных
Одной из основных
частей информационного обеспечения является информационная база, которая
представляет собой совокупность данных, с помощью которых удовлетворяются
информационные потребности управленческих процессов и решаемых задач.
Разработка БД выполняется с помощью моделирования данных. Цель моделирования
данных состоит в обеспечении разработчика ИС концептуальной схемой базы данных
в форме одной модели или нескольких локальных моделей, которые относительно
легко могут быть отображены в любую систему баз данных. Наиболее
распространенным средством моделирования данных являются диаграммы "сущность-связь" (ERD). С помощью ERD осуществляется детализация накопителей данных DFD – диаграммы, а также документируются информационные
аспекты бизнес-системы, включая идентификацию объектов, важных для предметной
области (сущностей), свойств этих объектов (атрибутов) и их связей с другими
объектами (отношений).
Базовые понятия ERD
Сущность (Entity) — множество
экземпляров реальных или абстрактных объектов (людей, событий, состояний, идей,
предметов и др.), обладающих общими атрибутами или характеристиками. Любой
объект системы может быть представлен только одной сущностью, которая должна
быть уникально идентифицирована. При этом имя сущности должно отражать тип или
класс объекта, а не его конкретный экземпляр (например, АЭРОПОРТ, а не
ВНУКОВО).
Сущность можно
определить как объект, событие или концепцию, информация о которых должна
сохраняться. сущности должны иметь наименование с четким смысловым значением,
именоваться существительным в единственном числе, не носить
"технических" наименований и быть достаточно важными для того, чтобы
их моделировать. Именование сущности в единственном числе облегчает в
дальнейшем чтение модели. Фактически имя сущности дается по имени ее
экземпляра. Примером может быть сущности Заказчик (но не Заказчики!) с
атрибутами Номер заказчика, Фамилия заказчика и Адрес заказчика. На уровне
физической модели ей может соответствовать таблица Customer с колонками Customer_number, Customer_name и Customer_address. Каждая сущность должна быть полностью определена с
помощью текстового описания.
Каждая сущность может обладать любым количеством связей с другими сущностями
модели.
Связь (Relationship) — поименованная ассоциация
между двумя сущностями, значимая для рассматриваемой предметной области. Связь
— это ассоциация между сущностями, при которой каждый экземпляр одной сущности
ассоциирован с произвольным (в том числе нулевым) количеством экземпляров
второй сущности, и наоборот.
Связь
может дополнительно определяться с помощью указания степени или мощности
(количества экземпляров сущности-потомка, которое может порождать каждый
экземпляр сущности-родителя). В модели могут быть
выражены следующие мощности связей:
·
каждый экземпляр
сущности-родителя может иметь ноль, один или более одного связанного с ним
экземпляра сущности-потомка;
·
каждый экземпляр
сущности-родителя должен иметь не менее одного связанного с ним экземпляра
сущности-потомка;
·
каждый экземпляр
сущности-родителя должен иметь не более одного связанного с ним экземпляра
сущности-потомка;
·
каждый экземпляр
сущности-родителя связан с некоторым фиксированным числом экземпляров
сущности-потомка.
Атрибут (Attribute) — любая
характеристика сущности, значимая для рассматриваемой предметной области и
предназначенная для квалификации, идентификации, классификации, количественной
характеристики или выражения состояния сущности. Атрибут представляет тип
характеристик или свойств, ассоциированных с множеством реальных или
абстрактных объектов (людей, мест, событий, состояний, идей, предметов и т.д.).
Экземпляр атрибута — это определенная характеристика отдельного элемента
множества. Экземпляр атрибута определяется типом характеристики и ее значением,
называемым значением атрибута. На диаграмме "сущность-связь" атрибуты
ассоциируются с конкретными сущностями. Таким образом, экземпляр сущности
должен обладать единственным определенным значением для ассоциированного
атрибута.
Связь
с логической точки зрения представляет собой соотношение между сущностями,
которое нередко может быть выражено обычными фразами, например: «Клиент
размещает заказ» («A customer places an order» — этой фразой вполне можно
описать связь, изображенную на рис. 1), где существительными являются названия
связанных между собой сущностей. Подавляющее большинство средств проектирования
данных позволяют создавать ER-диаграммы визуально, изображая сущности и соединяя их
связями с помощью мыши. Интерфейс таких средств нередко настолько прост, что
позволяет освоить логическое проектирование данных не только разработчику, но и
пользователю-непрограммисту, если таковой участвует в проектировании данных как
эксперт в предметной области. Отметим, что на этапе логического проектирования
можно описать поведение СУБД при нарушении правил ссылочной целостности,
определяемых данной связью (например, при удалении сведений о заказчике,
разместившем хотя бы один заказ, для связи, изображенной на рис. 1).
Рис.
1. Пример связи между сущностями логической модели
Для этого многие (но
не все!) средства проектирования данных обладают языком шаблонов, не зависящим
от СУБД, на котором можно описать алгоритм обработки подобной ситуации,
например с помощью соответствующих триггеров или иных объектов базы данных, а
также набором стандартных шаблонов, реализующих некоторые типовые алгоритмы
подобной обработки (например, отказ от удаления с последующей генерацией
диагностического сообщения, каскадное удаление дочерних записей и др.). В
процессе создания физической модели эти
шаблоны преобразуются в код на процедурном расширении языка SQL, применяемом в конкретной СУБД.
Ряд публикаций
проводит градацию категорий логических моделей по степени детализации описания
сущностей, атрибутов и связей. Модель, обсуждаемая с заказчиком, являющимся
обычно экспертом в подлежащей автоматизации предметной области, а не
программистом или аналитиком, должна содержать, например, основные сущности и
связи, но не обязана иметь их детальную техническую проработку (в частности,
описания алгоритмов обработки нарушений ссылочной целостности). Такие модели
называют концептуальными. В то же время модель, служащая основой технического
задания на разработку клиентских приложений, обязана содержать детальное
представление структуры данных, ключевых атрибутов, их текстовое описание, а
также представлять сущности в нормализованном виде. Обычно говоря о логической
модели имеют в виду именно такую модель (иногда ее такая называют полной
атрибутивной моделью). Иными словами, нормализация модели данных обычно
происходит на этапе логического проектирования.
Отметим, что
логическая модель данных, как правило, не связана с конкретной СУБД и не
учитывает технические особенности конкретных платформ, применяемых при ее
последующей физической реализации.
Некоторые
средства проектирования данных позволяют хранить их модели в специальных
репозитариях, а также осуществлять коллективное проектирование. Нередко
средства проектирования данных дают возможность также присваивать таблицам и
полям так называемые расширенные атрибуты, то есть свойства, связанные с
отображением их в клиентских приложениях, созданных с помощью какого-либо
средства разработки, а также генерировать код приложений для ввода и
отображения данных.
Нотации
Нотация
Питера Чена.
Множества
сущностей изображаются в виде прямоугольников, множества отношений изображаются
в виде ромбов. Если сущность участвует в отношении, они связаны линией. Если
отношение не является обязательным, то линия пунктирная. Атрибуты изображаются
в виде овалов и связываются линией с одним отношением или с одной сущностью.
Предложенная Ченом графическая нотация ERD включает в себя следующие элементы.
Независимая сущность отображается на
диаграммах прямоугольником с одинарной рамкой, зависимая – с двойной.
|
|
|
а)
независимая |
|
б)
зависимая |
Рис. 2 Отображение сущностей в нотации П. Чена
Атрибуты, отображаются за пределами графического
обозначения сущности в виде эллипсов, связанных одинарной линией с ним.
Рис. 3 Отображение атрибутов в нотации П. Чена
Атрибуты, входящие в первичный ключ сущности, выделяются
подчеркиванием имени. Эллипс многозначных атрибутов изображается с двойным контуром, производных – пунктирным. Если атрибут
является составным,
то атрибуты-компоненты отображаются в виде присоединенных к нему эллипсов.
Связь между сущностями показывается в виде ромба с
указанием имени связи внутри него. При этом, если ромб имеет двойную рамку, то
связь – идентифицирующая,
одинарную – неидентифицирующая.
Обязательность связи отображается двойной
линией. В частности (рис. 4б) отдел обязательно должен состоять из сотрудников,
а сотрудник (например, руководитель) необязательно входить в штат отдела. Т.е.
понятие обязательности в данной нотации, в отличие от IDEF1X, носит двухсторонний характер.
а) идентифицирующая
связь
б) неидентифицирующая связь
Рис. 4 Отображение связей в нотации П. Чена
Связь, как и сущность, может иметь собственные
атрибуты, отображаемые в виде присоединенных к ней эллипсов.
Рис. 5. Связь с атрибутами
Мощность (кардинальность) связи обозначается числами или
буквами:
- 1 – один;
- N или M – многие;
- <число> – конкретное количество экземпляров;
- (<Min>, <Max>) – диапазон экземпляров, где в качестве <Min> и <Max> могут использоваться предыдущие обозначения
мощности. В этом случае интерпретация мощности выполняется в «обратную
сторону», т.е. со стороны родительской сущности указывается: сколько
экземпляров дочерней сущности связано с экземпляром родительской сущности, а со
стороны дочерней сущности – сколько экземпляров родительской сущности связано с
экземпляром дочерней сущности.
Примеры указания мощности связи показаны на следующем
рисунке.
а) односимвольное обозначение
б) диапазонное обозначение
Рис. 6. Отображение мощности связей в нотации П. Чена
В первом случае мощность связи (один-ко-многим)
указывается традиционно, как в большинстве нотаций. Т.е. экземпляр родительской
сущности (конкретный отдел) связан с 0, 1 или более экземплярами дочерней
сущности (конкретными сотрудниками). Во втором случае ее следует понимать
следующим образом: экземпляр родительской сущности должен быть связан с 5 или
более экземплярами дочерней сущности (отдел состоит из 5 или более
сотрудников), а экземпляр дочерней сущности связан с 0 или 1 экземпляром
родительской сущности (сотрудник либо не входит, либо входит в отдел).
Crow's Foot
Данная
нотация была предложена Гордоном Эверестом (англ. Gordon Everest) под названием Inverted Arrow («перевёрнутая стрелка»), однако
сейчас чаще называемая Crow's Foot («воронья лапка») или Fork («вилка»).
Согласно
данной нотации, сущность изображается в виде прямоугольника, содержащего её
имя, выражаемое существительным. Имя сущности должно быть уникальным в рамках
одной модели. При этом, имя сущности — это имя типа, а не конкретного
экземпляра данного типа. Экземпляром сущности называется конкретный представитель
данной сущности.
Связь
изображается линией, которая связывает две сущности, участвующие в отношении.
Степень конца связи указывается графически, множественность связи изображается
в виде «вилки» на конце связи. Модальность связи так же изображается графически
— необязательность связи помечается кружком на конце связи. Именование обычно
выражается одним глаголом в изъявительном наклонении настоящего времени:
«Имеет», «Принадлежит» и т. д.; или глаголом с поясняющими словами: «Включает в
себя», и т.п. Наименование может быть одно для всей связи или два для каждого
из концов связи. Во втором случае, название левого конца связи указывается над
линией связи, а правого – под линией. Каждое из названий располагаются рядом с
сущностью, к которой оно относится.
Атрибуты
сущности записываются внутри прямоугольника, изображающего сущность и
выражаются существительным в единственном числе (возможно, с уточняющими
словами). Среди атрибутов выделяется ключ сущности — неизбыточный набор
атрибутов, значения которых в совокупности являются уникальными для каждого
экземпляра сущности.
Тема 6 Техническое задание на создание
автоматизированной системы (пример)
Приведен пример (образец) проектного документа «Техническое задание на
создание автоматизированной системы (АС)» согласно ГОСТ 34.602-89. В качестве
примера АС для заполнения разделов использовались требования на разработку
информационно-аналитической системы «Корпоративное хранилище данных».
Разделы технического задания:
1. Общие сведения
2. Назначение и цели создания системы
- Назначение
системы
- Цели
создания системы
3.
Характеристика объектов автоматизации
4.
Требования к системе
- Требования
к системе в целом
- Требования
к функциям, выполняемым системой
- Требования
к видам обеспечения
5. Состав и содержание работ по созданию системы
6. Порядок контроля и приёмки системы
7. Требования к составу и содержанию работ по подготовке
объекта автоматизации к вводу системы в действие
8. Требования к документированию
9. Источники разработки
1. Общие сведения
1.1. Наименование системы
1.1.1. Полное наименование системы
Например:
Полное наименование: Корпоративное хранилище данных.
1.1.2. Краткое наименование системы
Например:
Краткое наименование: КХД, Система.
1.2. Основания для проведения работ
Перечень документов, на основании которых создается
система, кем и когда утверждены документы. Указывается шифр темы или шифр
(номер) договора, дата договора.
Например:
Работа выполняется на основании договора № … от … между …
1.3. Наименование организаций – Заказчика и Разработчика
1.3.1. Заказчик
Заказчик: ОАО Заказчик
Адрес фактический: г. Москва ...
Телефон / Факс: +7 (495) 2222222
1.3.2. Разработчик
Разработчик: ЗАО Разработчик
Адрес фактический: г. Москва ...
Телефон / Факс: +7 (495) 3333333
1.4. Плановые сроки начала и окончания работы
Указываются плановые сроки начала и окончания работ по созданию системы (на
основании Договора). Если сроки определены не точно, то указать на какой стадии
сроки уточняются.
1.5. Источники и порядок финансирования
Если не
целесообразно указывать эти сведения, то дается ссылка на Договор.
1.6. Порядок оформления и предъявления заказчику
результатов работ
Определяется порядок оформления и предъявления заказчику результатов работ
по созданию системы (ее частей), по изготовлению и наладке отдельных средств
(технических, программных, информационных) и программно-технических
(программно-методических) комплексов системы.
Например:
Работы по созданию КХД сдаются Разработчиком поэтапно в соответствии с
календарным планом Проекта. По окончании каждого из этапов работ Разработчик
сдает Заказчику соответствующие отчетные документы этапа, состав которых
определены Договором.
2. Назначение и цели создания системы
2.1. Назначение системы
Указать вид автоматизируемой деятельности (указать для управления какими
процессами предназначена система).
Указать перечень объектов автоматизации, на которых предполагается использовать
систему, перечень автоматизируемых органов (пунктов) управления объекта
автоматизации и управляемых ими объектов (здесь указать в каких подразделениях
предусматривается устанавливать систему и привести в разрезе подразделений
перечень автоматизируемых бизнес-процессов верхнего уровня).
КХД предназначена для повышения оперативности и качества принимаемых
управленческих решений сотрудниками Заказчика.
Основным назначением КХД является автоматизация информационно-аналитической
деятельности в бизнес-процессах Заказчика.
В рамках проекта автоматизируется информационно-аналитическая деятельность в
следующих бизнес-процессах:
1. анализ финансово-хозяйственной деятельности;
2. информационная поддержка процессов бюджетирования;
3. ...
2.2. Цели создания системы
Наименования и требуемые значения технических, технологических,
производственно-экономических или других показателей объекта автоматизации,
которые должны быть достигнуты в результате создания АИС; критерии оценки
достижения целей создания системы.
КХД создается с
целью:
- обеспечения сбора и первичной обработки исходной информации, необходимой для
подготовки отчетности по показателям деятельности;
- создания единой системы отчетности по показателям деятельности;
- повышения качества (полноты, точности, достоверности, своевременности,
согласованности) информации;
- ...
В результате создания хранилища данных должны быть улучшены значения
следующих показателей:
- время сбора и первичной обработки исходной информации;
- количество информационных систем, используемых для подготовки аналитической
отчетности;
- время, затрачиваемое на информационно-аналитическую деятельность;
- ...
3. Характеристика объектов автоматизации
Приводятся краткие сведения об области деятельности
Заказчика (или подразделения организационной структуры Заказчика, для нужд
которого разрабатывается система) и сферы автоматизации с указанием ссылок на
ранее разработанные документы, содержащие более подробные сведения об
организации заказчика.
<Приводится описание организационной структуры>
Как правило, объектом автоматизации являются
бизнес-процессы, выполняемые в структурных подразделениях Заказчика.
Следовательно, применительно к данному ТЗ, объектами автоматизации будут
являться бизнес-процессы, выполняемые в <указать в каком подразделении>.
Выделены следующие процессы в деятельности <указать подразделение
Заказчика>, в рамках которых производится анализ информации и вынесены
соответствующие выводы о возможности их автоматизации:
Структурное подразделение |
Наименование процесса |
Возможность автоматизации |
Решение об автоматизации в ходе проекта |
Отдел анализа |
Анализ отклонений фактических значений
показателей от плановых |
Возможна |
Будет автоматизирован |
... |
... |
... |
... |
4.
Требования к системе
4.1.
Требования к системе в целом
4.1.1. Требования к структуре и функционированию системы
Определяется перечень функциональных подсистем, их
назначение и основные характеристики, требования к числу уровней иерархии и
степени централизации системы.
Система КХД должна быть централизованной, т.е. все данные
должны располагаться в центральном хранилище. Система КХД должна иметь
трехуровневую архитектуру (можно привести общую схему, на которой определить
уровни. Например, первый - источник, второй - хранилище, третий - отчетность).
В Системе предлагается выделить следующие функциональные подсистемы:
- подсистема сбора, обработки и загрузки данных, которая предназначена для реализации процессов сбора данных из систем источников,
приведения указанных данных к виду, необходимому для наполнения подсистемы
хранения данных;
- подсистема хранения данных, которая
предназначена для хранения данных в структурах, нацеленных на принятие решений;
- подсистема формирования и визуализации отчетности, которая предназначена для формирования бизнес-ориентированных витрин
данных и отчетности.
Указываются требования к способам и средствам информационного обмена между
компонентами системы.
В качестве протокола взаимодействия между компонентами Системы на
транспортно-сетевом уровне необходимо использовать протокол TCP/IP.
Для организации информационного обмена между компонентами Системы должны
использоваться специальные протоколы прикладного уровня, такие как: NFS, HTTP и его расширение HTTPS, NetBios/SMB, Oracle TNS.
Для организации доступа пользователей к отчетности должен использоваться
протокол презентационного уровня HTTP и его расширение HTTPS.
Приводятся требования к характеристикам взаимосвязей со смежными системами.
Смежными системами для КХД являются:
- информационные системы оперативной обработки данных Заказчика;
- информационные системы планирования;
- ...
Источниками данных для Системы должны быть:
- Информационная система управления предприятием (СУБД MS SQL).
- Информационно-справочная система (СУБД MS SQL).
- Информационная система обеспечения бюджетного процесса (СУБД Oracle).
- ...
Перечень предпочтительных способов взаимодействия со смежными
системами приведен ниже.
- Информационная система управления предприятием - с использованием
промежуточной базы данных (ПБД).
- Информационно-справочная система - обмен файлами ОС определенного формата.
- Информационная система обеспечения бюджетного процесса - интеграция «точка –
точка».
- ...
Определяются требования к режимам функционирования
системы.
Например:
Система должна поддерживать следующие режимы функционирования:
- Основной режим, в котором подсистемы КХД выполняют все свои основные функции.
- Профилактический режим, в котором одна или все подсистемы КХД не выполняют
своих функций.
В основном режиме функционирования Система КХД должна обеспечивать:
- работу пользователей в режиме – 24 часов в день, 7 дней в неделю (24х7);
- выполнение своих функций – сбор, обработка и загрузка данных; хранение
данных, предоставление отчетности.
В профилактическом режиме Система КХД
должна обеспечивать возможность проведения следующих работ:
- техническое обслуживание;
- модернизацию аппаратно-программного комплекса;
- устранение аварийных ситуаций.
Общее время проведения профилактических работ не должно превышать X% от общего времени работы системы в основном режиме (Y часов в месяц).
Указываются требования по диагностированию системы (какие
средства будут использоваться или создаваться, чтобы обеспечить диагностику
системы).
Для обеспечения высокой надежности функционирования
Системы как системы в целом, так и её отдельных компонентов должно
обеспечиваться выполнение требований по диагностированию ее состояния.
Диагностирование Системы должно осуществляться следующими штатными средствами,
входящими в комплект поставки программного обеспечения:
- СУБД - <указывается ПО администратора позволяющее проводить
мониторинг>;
- ETL-средство - ..
- средство визуализации - ...
Обязательно ведение журналов инцидентов в электронной форме, а также графиков и
журналов проведения ППР.
Для всех технических компонентов необходимо обеспечить регулярный и постоянный
контроль состояния и техническое обслуживание.
4.1.2. Требования к численности и квалификации персонала
системы и режиму его работы
4.1.2.1. Требования к численности персонала
В состав
персонала, необходимого для обеспечения эксплуатации КХД в рамках
соответствующих подразделений Заказчика, необходимо выделение следующих
ответственных лиц:
- Руководитель эксплуатирующего подразделения - 1 человек.
- Администратор подсистемы сбора, обработки и загрузки данных - 2 человека.
- Администратор подсистемы хранения данных - 2 человека.
- Администратор подсистемы формирования и визуализации отчетности - 1 человек.
Данные лица должны выполнять следующие функциональные обязанности.
- Руководитель эксплуатирующего подразделения - на всем протяжении
функционирования КХД обеспечивает общее руководство группой сопровождения, ...
- Администратор подсистемы сбора, обработки и загрузки данных - на всем
протяжении функционирования КХД обеспечивает контроль процессов ETL, подготовку и загрузка данных из внешних источников в хранилище данных,
...
- Администратор подсистемы хранения данных - на всем протяжении
функционирования КХД обеспечивает распределение дискового пространства, модификацию
структур БД, оптимизацию производительности, ...
- Администратор подсистемы формирования и визуализации отчетности - на всем
протяжении функционирования КХД обеспечивает поддержку пользователей,
формирование отчетности, ...
4.1.2.2. Требования к квалификации персонала
К квалификации персонала, эксплуатирующего Систему КХД, предъявляются следующие
требования.
- Конечный пользователь - знание соответствующей предметной области; знание
основ многомерного анализа; знания и навыки работы с аналитическими
приложениями..
- Администратор подсистемы сбора, обработки и загрузки данных - знание
методологии проектирования хранилищ данных; знание методологии проектирования ETL процедур; знание интерфейсов интеграции ХД с источниками данных; знание
СУБД; знание языка запросов SQL.
- Администратор подсистемы хранения данных - глубокие знания СУБД; знание
архитектуры «Звезда» и «Снежинка»; опыт администрирования СУБД; знание и навыки
операций архивирования и восстановления данных; знание и навыки оптимизации
работы СУБД.
- Администратор подсистемы формирования и визуализации отчетности - понимание
принципов многомерного анализа; знание методологии проектирования хранилищ
данных; знание и навыки администрирования приложения; знание языка запросов SQL; знание инструментов разработки.
4.1.2.3. Требования к режимам работы персонала
Персонал, работающий с Системой КХД и выполняющий функции
её сопровождения и обслуживания, должен работать в следующих режимах:
- Конечный пользователь - в соответствии с основным рабочим графиком
подразделений Заказчика.
- Администратор подсистемы сбора, обработки и загрузки данных – двухсменный
график, поочередно.
- Администратор подсистемы хранения данных – двухсменный график, поочередно.
- Администратор подсистемы формирования и визуализации отчетности – в
соответствии с основным рабочим графиком подразделений Заказчика.
4.1.3. Показатели назначения
4.1.3.1. Параметры, характеризующие степень соответствия
системы назначению
Система должна обеспечивать следующие количественные
показатели, которые характеризуют степень соответствия ее назначению:
- Количество измерений – X.
- Количество показателей – Y.
- Количество аналитических отчетов – Z.
4.1.3.2. Требования к приспособляемости системы к
изменениям
Обеспечение приспособляемости системы должно выполняться
за счет:
- своевременности администрирования;
- модернизации процессов сбора, обработки и загрузки данных в соответствии с
новыми требованиями;
- модификации процедур доступа и представления данных конечным пользователям;
- наличия настроечных и конфигурационных файлов у ПО подсистем;
- ...
4.1.3.3. Требования к сохранению работоспособности
системы в различных вероятных условиях
В зависимости от различных вероятных условий система
должна выполнять требования, приведенные в таблице.
Вероятное условие |
Требование |
Нарушения в
работе системы внешнего электроснабжения серверного оборудования
продолжительностью до 15 мин. |
Функционирование в полном объеме. |
Выход из строя
сервера подсистемы хранения данных |
Уведомление
администратора подсистемы хранения данных и администратора подсистемы сбора,
обработки и загрузки данных |
... |
... |
4.1.4.
Требования к надежности
4.1.4.1. Состав показателей надежности для системы в
целом
Например:
Уровень надежности должен достигаться согласованным применением организационных,
организационно-технических мероприятий и программно-аппаратных средств.
Надежность должна обеспечиваться за счет:
- применения технических средств, системного и базового программного
обеспечения, соответствующих классу решаемых задач;
- своевременного выполнения процессов администрирования Системы КХД;
- соблюдения правил эксплуатации и технического обслуживания
программно-аппаратных средств;
- предварительного обучения пользователей и обслуживающего персонала.
Время устранения отказа должно быть следующим:
- при перерыве и выходе за установленные пределы параметров электропитания - не
более X минут.
- при перерыве и выходе за установленные пределы параметров программного
обеспечением - не более Y часов.
- при выходе из строя АПК ХД - не более Z часов.
Система должна соответствовать следующим параметрам:
- среднее время восстановления Q часов -
определяется как сумма всех времен восстановления за заданный календарный
период, поделенные на продолжительность этого периода;
- коэффициент готовности W - определяется как
результат отношения средней наработки на отказ к сумме средней наработки на
отказ и среднего времени восстановления;
- время наработки на отказ E часов -
определяется как результат отношения суммарной наработки Системы к среднему
числу отказов за время наработки.
Средняя наработка на отказ АПК не должна быть меньше G часов.
4.1.4.2. Перечень аварийных ситуаций, по которым
регламентируются требования к надежности
Например:
Под аварийной ситуацией понимается аварийное завершение процесса, выполняемого
той или иной подсистемой КХД, а также «зависание» этого процесса.
При работе системы возможны следующие аварийные ситуации, которые влияют на
надежность работы системы:
- сбой в электроснабжении сервера;
- сбой в электроснабжении рабочей станции пользователей системы;
- сбой в электроснабжении обеспечения локальной сети (поломка сети);
- ошибки Системы КХД, не выявленные при отладке и испытании системы;
- сбои программного обеспечения сервера.
4.1.4.3. Требования к надежности технических средств и
программного обеспечения
Например:
К надежности оборудования предъявляются следующие требования:
- в качестве аппаратных платформ должны использоваться средства с повышенной
надежностью;
- применение технических средств соответствующих классу решаемых задач;
- аппаратно-программный комплекс Системы должен иметь возможность
восстановления в случаях сбоев.
К надежности электроснабжения предъявляются следующие требования:
- с целью повышения отказоустойчивости системы в целом необходима обязательная
комплектация серверов источником бесперебойного питания с возможностью
автономной работы системы не менее X минут;
- система должны быть укомплектована подсистемой оповещения Администраторов о
переходе на автономный режим работы;
- система должны быть укомплектована агентами автоматической остановки
операционной системы в случае, если перебой электропитания превышает Y минут;
- должно быть обеспечено бесперебойное питание активного сетевого оборудования.
Надежность аппаратных и программных средств должна обеспечиваться за счет
следующих организационных мероприятий:
- предварительного обучения пользователей и обслуживающего персонала;
- своевременного выполнения процессов администрирования;
- соблюдения правил эксплуатации и технического обслуживания
программно-аппаратных средств;
- своевременное выполнение процедур резервного копирования данных.
Надежность программного обеспечения подсистем должна обеспечиваться за счет:
- надежности общесистемного ПО и ПО, разрабатываемого Разработчиком;
- проведением комплекса мероприятий отладки, поиска и исключения ошибок.
- ведением журналов системных сообщений и ошибок по подсистемам для
последующего анализа и изменения конфигурации.
4.1.4.4. Требования к методам оценки и контроля
показателей надежности на разных стадиях создания системы в соответствии с
действующими нормативно-техническими документами.
Проверка выполнения требований по надежности должна
производиться на этапе проектирования расчетным путем, а на этапах испытаний и
эксплуатации - по методике Разработчика, согласованной с Заказчиком.
4.1.5. Требования к эргономике и технической эстетике
Например:
Подсистема формирования и визуализации отчетности данных должна обеспечивать
удобный для конечного пользователя интерфейс, отвечающий следующим требованиям.
В части внешнего оформления:
- интерфейсы подсистем должен быть типизированы;
- должно быть обеспечено наличие локализованного (русскоязычного) интерфейса
пользователя;
- должен использоваться шрифт: ...
- размер шрифта должен быть: ...
- цветовая палитра должна быть: ...
- в шапке отчетов должен использоваться логотип Заказчика.
В части диалога с пользователем:
- для наиболее частых операций должны быть предусмотрены «горячие» клавиши;
- при возникновении ошибок в работе подсистемы на экран монитора должно
выводиться сообщение с наименованием ошибки и с рекомендациями по её устранению
на русском языке.
В части процедур ввода-вывода данных:
- должна быть возможность многомерного анализа данных в табличном и графическом
видах.
К другим подсистемам предъявляются следующие требования к эргономике и
технической эстетике.
В части внешнего оформления:
- интерфейсы по подсистемам должен быть типизированы.
В части диалога с пользователем:
- для наиболее частых операций должны быть предусмотрены «горячие» клавиши;
- при возникновении ошибок в работе подсистемы на экран монитора должно выводиться
сообщение с наименованием ошибки и с рекомендациями по её устранению на русском
языке.
В части процедур ввода-вывода данных:
- должна быть возможность получения отчетности по мониторингу работы подсистем.
4.1.6. Требования к эксплуатации, техническому
обслуживанию, ремонту и хранению компонентов системы
Например:
Условия эксплуатации, а также виды и периодичность обслуживания технических
средств Системы должны соответствовать требованиям по эксплуатации,
техническому обслуживанию, ремонту и хранению, изложенным в документации
завода-изготовителя (производителя) на них.
Технические средства Системы и персонал должны размещаться в существующих
помещениях Заказчика, которые по климатическим условиям должны соответствовать
ГОСТ 15150-69 «Машины, приборы и другие технические изделия. Исполнения для
различных климатических районов. Категории, условия эксплуатации, хранения и
транспортирования в части воздействия климатических факторов внешней среды»
(температура окружающего воздуха от 5 до 40 °С, относительная влажность от 40
до 80 % при Т=25 °С, атмосферное давление от 630 до 800 мм ртутного столба).
Размещение технических средств и организация автоматизированных рабочих мест
должны быть выполнены в соответствии с требованиями ГОСТ 21958-76 «Система "Человек-машина".
Зал и кабины операторов. Взаимное расположение рабочих мест. Общие
эргономические требования».
Для электропитания технических средств должна быть предусмотрена трехфазная
четырехпроводная сеть с глухо заземленной нейтралью 380/220 В (+10-15)% частотой
50 Гц (+1-1) Гц. Каждое техническое средство запитывается однофазным
напряжением 220 В частотой 50 Гц через сетевые розетки с заземляющим контактом.
Для обеспечения выполнения требований по надежности должен быть создан комплект
запасных изделий и приборов (ЗИП).
Состав, место и условия хранения ЗИП определяются на этапе технического
проектирования.
4.1.7. Требования к защите информации от
несанкционированного доступа
4.1.7.1. Требования к информационной безопасности
Например:
Обеспечение информационное безопасности Системы КХД должно удовлетворять
следующим требованиям:
- Защита Системы должна обеспечиваться комплексом программно-технических
средств и поддерживающих их организационных мер.
- Защита Системы должна обеспечиваться на всех технологических этапах обработки
информации и во всех режимах функционирования, в том числе при проведении
ремонтных и регламентных работ.
- Программно-технические средства защиты не должны существенно ухудшать
основные функциональные характеристики Системы (надежность, быстродействие,
возможность изменения конфигурации).
- Разграничение прав доступа пользователей и администраторов Системы должно
строиться по принципу "что не разрешено, то запрещено".
- ...
4.1.7.2. Требования к антивирусной защите
Например:
Средства антивирусной защиты должны быть установлены на всех рабочих местах
пользователей и администраторов Системы КХД. Средства антивирусной защиты
рабочих местах пользователей и администраторов должны обеспечивать:
- централизованное управление сканированием, удалением вирусов и
протоколированием вирусной активности на рабочих местах пользователей;
- централизованную автоматическую инсталляцию клиентского ПО на рабочих местах
пользователей и администраторов;
- централизованное автоматическое обновление вирусных сигнатур на рабочих
местах пользователей и администраторов;
- ведение журналов вирусной активности;
- администрирование всех антивирусных продуктов.
4.1.7.3. Разграничения ответственности ролей при доступе
к <указать объект ограничения (например, отчет, показатель, измерение)>
Требования по разграничению доступа приводятся в виде
матрицы разграничения прав.
Матрица должна раскрывать следующую информацию:
- код ответственности: Ф - формирует, О – отвечает, И – использует и т.п.;
- наименование объекта системы, на который накладываются ограничения;
- роль сотрудника/единица организационной структуры, для которых накладываются
ограничения.
4.1.8. Требования по сохранности информации при авариях
Приводится перечень событий: аварий, отказов технических
средств (в том числе - потеря питания) и т. п., при которых должна быть
обеспечена сохранность информации в системе.
В Системе должно быть обеспечено резервное копирование
данных.
Выход из строя трех жестких дисков дискового массива не должен сказываться на
работоспособности подсистемы хранения данных.
4.1.9. Требования к защите от влияния внешних воздействий
Приводятся требования к радиоэлектронной защите и
требования по стойкости, устойчивости и прочности к внешним воздействиям
применительно к программно-аппаратному окружению, на котором будет
эксплуатироваться система.
Применительно к программно-аппаратному окружению Системы
предъявляются следующие требования к защите от влияния внешних воздействий.
Требования к радиоэлектронной защите:
- электромагнитное излучение радиодиапазона, возникающее при работе
электробытовых приборов, электрических машин и установок, приёмопередающих
устройств, эксплуатируемых на месте размещения АПК Системы, не должны приводить
к нарушениям работоспособности подсистем.
Требования по стойкости, устойчивости и прочности к внешним воздействиям:
- Система должна иметь возможность функционирования при колебаниях напряжения
электропитания в пределах от 155 до 265 В (220 ± 20 % - 30 %);
- Система должна иметь возможность функционирования в диапазоне допустимых
температур окружающей среды, установленных изготовителем аппаратных средств.
- Система должна иметь возможность функционирования в диапазоне допустимых
значений влажности окружающей среды, установленных изготовителем аппаратных
средств.
- Система должна иметь возможность функционирования в диапазоне допустимых
значений вибраций, установленных изготовителем аппаратных средств.
4.1.10. Требования по стандартизации и унификации
В требования к стандартизации и унификации включают:
показатели, устанавливающие требуемую степень использования стандартных,
унифицированных методов реализации функций (задач) системы, поставляемых
программных средств, типовых математических методов и моделей, типовых
проектных решений, унифицированных форм управленческих документов,
установленных ГОСТ 6.10.1, общесоюзных классификаторов технико-экономической
информации и классификаторов других категорий в соответствии с областью их
применения, требования к использованию типовых автоматизированных рабочих мест,
компонентов и комплексов.
Разработка системы должна осуществляться с использованием
стандартных методологий функционального моделирования: IDEF0, DFD и информационного моделирования IE и IDEF1Х в рамках рекомендаций по стандартизации Р50.1.028-2001 «Информационные
технологии поддержки жизненного цикла продукции. Методология функционального
моделирования».
Моделирование должно выполняться в рамках стандартов, поддерживаемых
программными средствами моделирования ERWin 4.х и BPWin 4.х.
Для работы с БД должнен использоваться язык запросов SQL в рамках стандарта ANSI SQL-92.
Для разработки пользовательских интерфейсов и средств генерации отчетов (любых
твердых копий) должны использоваться встроенные возможности ПО <указывается
название BI приложения>, а также, в случае необходимости, языки программирования
<указываются языки программирования и их версии>.
В системе должны использоваться (при необходимости) общероссийские
классификаторы и единые классификаторы и словари для различных видов
алфавитно-цифровой и текстовой информации.
4.1.11. Дополнительные требования
Приводятся требования к оснащению системы устройствами
для обучения персонала (тренажерами, другими устройствами аналогичного
назначения) и документацией на них.
Требования к сервисной аппаратуре, стендам для проверки
элементов системы.
Требования к системе, связанные с особыми условиями
эксплуатации.
Специальные требования по усмотрению разработчика или
заказчика системы.
КХД должно разрабатываться и эксплуатироваться на уже
имеющемся у Заказчика аппаратно-техническом комплексе.
Необходимо создать отдельные самостоятельные зоны разработки и тестирования
системы КХД.
Для зоны разработки и тестирования должны использоваться те же программные
средства, что и для зоны промышленной эксплуатации
4.1.12. Требования безопасности
В требования по безопасности включают требования по
обеспечению безопасности при монтаже, наладке, эксплуатации, обслуживании и
ремонте технических средств системы (защита от воздействий электрического тока,
электромагнитных полей, акустических шумов и т. п.) по допустимым уровням
освещенности, вибрационных и шумовых нагрузок.
При внедрении, эксплуатации и обслуживании технических
средств системы должны выполняться меры электробезопасности в соответствии с
«Правилами устройства электроустановок» и «Правилами техники безопасности при
эксплуатации электроустановок потребителей».
Аппаратное обеспечение системы должно соответствовать требованиям пожарной
безопасности в производственных помещениях по ГОСТ 12.1.004-91. «ССБТ. Пожарная
безопасность. Общие требования».
Должно быть обеспечено соблюдение общих требований безопасности в соответствии
с ГОСТ 12.2.003-91. «ССБТ. Оборудование производственное. Общие требования
безопасности» при обслуживании системы в процессе эксплуатации.
Аппаратная часть системы должна быть заземлена в соответствии с требованиями
ГОСТ Р 50571.22-2000. «Электроустановки зданий. Часть 7. Требования к
специальным электроустановкам. Раздел 707. Заземление оборудования обработки
информации».
Значения эквивалентного уровня акустического шума, создаваемого аппаратурой
системы, должно соответствовать ГОСТ 21552-84 «Средства вычислительной техники.
Общие технические требования, приемка, методы испытаний, маркировка, упаковка,
транспортирование и хранение», но не превышать следующих величин:
- 50 дБ - при работе технологического оборудования и средств вычислительной
техники без печатающего устройства;
- 60 дБ - при работе технологического оборудования и средств вычислительной
техники с печатающим устройством.
4.1.13. Требования к транспортабельности для подвижных
АИС
КСА системы являются стационарными и после монтажа и
проведения пуско-наладочных работ транспортировке не подлежат.
4.2. Требования к функциям, выполняемым системой
В данном подразделе приводят:
1) по каждой подсистеме перечень функций, задач или их комплексов (в том числе
обеспечивающих взаимодействие частей системы), подлежащих автоматизации;
при создании системы в две или более очереди - перечень функциональных
подсистем, отдельных функций или задач, вводимых в действие в 1-й и последующих
очередях;
2) временной регламент реализации каждой функции, задачи (или комплекса задач);
3) требования к качеству реализации каждой функции (задачи или комплекса
задач), форме представления выходной информации, характеристики необходимой
точности и времени выполнения, требования к одновременности выполнения групп
функций, достоверности выдачи результатов;
4) перечень и критерии отказов для каждой функции, по которой задаются
требования по надежности.
4.2.1. Подсистема сбора, обработки и загрузки данных
4.2.1.1 Перечень функций, задач подлежащей автоматизации
Функция |
Задача |
Управляет процессами сбора,
обработки и загрузки данных |
Создание, редактирование и удаление
процессов сбора, обработки и загрузки данных |
Формирование последовательности
выполнения процессов сбора, обработки и загрузки данных (регламентов загрузки данных) |
|
Определение и изменение расписания
процессов сбора, обработки и загрузки данных |
|
Выполнение процессов сбора,
обработки и загрузки данных из источников в ХД |
Запуск процедур сбора данных из
систем источников, загрузка данных в область временного, постоянного хранения |
Обработка и преобразование
извлечённых данных |
|
Поддержка медленно
меняющихся измерений |
|
Протоколирует результаты сбора,
обработки и загрузки данных |
Ведение журналов результатов сбора,
обработки и загрузки данных |
Оперативное извещение пользователей
о всех нештатных ситуациях в процессе работы подсистемы |
4.2.1.2 Временной регламент реализации каждой функции,
задачи
Задача |
Требования к временному регламенту |
Создание, редактирование и удаление
процессов сбора, обработки и загрузки данных |
Весь период функционирования
системы, при возникновении необходимости изменения процессов сбора, обработки
и загрузки данных |
Формирование последовательности
выполнения процессов сбора, обработки и загрузки данных (регламентов загрузки данных) |
Весь период функционирования
системы, при возникновении необходимости модификации регламента загрузки
данных |
Определение и изменение расписания
процессов сбора, обработки и загрузки данных |
Весь период функционирования
системы, при возникновении необходимости изменения расписания процессов |
Запуск процедур сбора данных из
систем источников, загрузка данных в область временного, постоянного хранения |
После готовности данных в системах
источниках, ежедневно во временном интервале 00:00 – 03:00 |
Обработка и преобразование
извлечённых данных |
Ежедневно, после появления всех
извлечённых данных во временном интервале 00:00 – 06:00 |
Поддержка медленно
меняющихся измерений |
Регулярно, при работе подсистемы для
измерений соответствующего типа |
Ведение журналов результатов сбора,
обработки и загрузки данных |
Регулярно, при работе подсистемы |
Оперативное извещение пользователей
о всех нештатных ситуациях в процессе работы подсистемы |
Регулярно, при возникновении нештатной
ситуации в процессе работы подсистемы |
4.2.1.3 Требования к качеству реализации функций, задач
Задача |
Форма представления выходной
информации |
Характеристики точности и времени
выполнения |
Создание, редактирование и удаление
процессов сбора, обработки и загрузки данных |
В стандарте интерфейса ETL средства |
Определяется регламентом
эксплуатации |
Формирование последовательности
выполнения процессов сбора, обработки и загрузки данных (регламентов загрузки данных) |
В стандарте интерфейса ETL средства |
Определяется регламентом
эксплуатации |
Определение и изменение расписания
процессов сбора, обработки и загрузки данных |
В стандарте интерфейса ETL средства |
Определяется регламентом
эксплуатации |
Запуск процедур сбора данных из
систем источников, загрузка данных в область временного, постоянного хранения |
Текстовый файл |
Запуск должен производится точно по
установленному расписанию |
Обработка и преобразование
извлечённых данных |
Текстовый файл. Данные в структурах
БД |
Данные должны быть преобразованы
для загрузки в структуры модели ХД.Не более 2 часов |
Поддержка медленно
меняющихся измерений |
Данные в структурах БД |
Данные должны быть сохранены по
правилам поддержки медленно меняющихся измерений соответствующего типа |
Ведение журналов результатов сбора,
обработки и загрузки данных |
Текстовые файлы |
В момент выполнения сбора,
обработки и загрузки данных |
Оперативное извещение пользователей
о всех нештатных ситуациях в процессе работы подсистемы |
Текстовый файл, оконное сообщение, email |
Не позднее 15 минут после
возникновения нештатной ситуации |
4.2.1.4 Перечень критериев отказа для каждой функции
Функция |
Критерии отказа |
Время восстановления |
Коэффициент готовности |
Управляет
процессами сбора, обработки и загрузки данных |
Не выполняется
одна из задач: <перечисляются задачи, в случае не выполнения которых не
выполняется функция:> |
8 часов |
0.85 |
Запускает
процессы сбора, обработки и загрузки данных из источников в ХД |
Не выполняется
одна из задач функции. |
12 часов |
0.75 |
Протоколирует
результаты сбора, обработки и загрузки данных |
Не выполняется
одна из задач функции. |
12 часов |
0.75 |
Аналогично для каждой подсистемы, определенной в пункте
"6.1.1 Требования к структуре и функционированию системы" настоящего
технического задания.
4.3. Требования к видам обеспечения
4.3.1 Требования к математическому обеспечению
Для математического обеспечения системы приводятся
требования к составу, области применения (ограничения) и способам использования
в системе математических методов и моделей, типовых алгоритмов и алгоритмов,
подлежащих разработке.
Не предъявляются.
4.3.2. Требования к информационному обеспечению
Приводятся требования:
1) к составу, структуре и способам организации данных в системе;
2) к информационному обмену между компонентами системы;
3) к информационной совместимости со смежными системами;
4) по использованию общесоюзных и зарегистрированных республиканских,
отраслевых классификаторов, унифицированных документов и классификаторов,
действующих на данном предприятии;
5) по применению систем управления базами данных;
6) к структуре процесса сбора, обработки, передачи данных в системе и
представлению данных;
7) к защите данных от разрушений при авариях и сбоях в электропитании системы;
8) к контролю, хранению, обновлению и восстановлению данных;
9) к процедуре придания юридической силы документам, продуцируемым техническими
средствами АС (в соответствии с ГОСТ
6.10.4).
4.3.2.1. Требования к составу, структуре и способам
организации данных в системе
Структура хранения данных в КХД должна состоять из следующих основных областей:
- область временного хранения данных;
- область постоянного хранения данных;
- область витрин данных.
Области постоянного хранения и витрин данных должны строиться на основе
многомерной модели данных, подразумевающей выделение отдельных измерений и фактов с их
анализом по выбранным измерениям.
Многомерная модель данных физически должна быть реализована в реляционной СУБД
по схеме «звезда» и/или «снежинка».
4.3.2.2. Требования к информационному обмену между компонентами системы
Информационный обмен между компонентами системы КХД должен быть реализован
следующим образом:
|
Подсистема сбора,
обработки и загрузки данных |
Подсистема хранения данных |
Подсистема
формирования и визуализации отчетности |
Подсистема сбора,
обработки и загрузки данных |
|
X |
|
Подсистема хранения данных |
X |
|
X |
Подсистема
формирования и визуализации отчетности |
|
X |
|
4.3.2.3. Требования к информационной совместимости со
смежными системами
Состав данных для осуществления информационного обмена по каждой смежной
системе должен быть определен Разработчиком на стадии «Проектирование. Разработка эскизного проекта. Разработка
технического проекта» совместно с полномочными представителями Заказчика.
Система не должна быть закрытой для смежных систем и должна поддерживать
возможность экспорта данных в смежные системы через интерфейсные таблицы или
файлы данных.
Система должна обеспечить возможность загрузки данных, получаемых от смежной
системы.
4.3.2.4. Требования по использованию классификаторов, унифицированных
документов и классификаторов
Система, по возможности, должна использовать классификаторы и справочники,
которые ведутся в системах-источниках данных.
Основные классификаторы и справочники в системе (клиенты, абоненты,
бухгалтерские статьи и т.д.) должны быть едиными.
Значения классификаторов и справочников, отсутствующие в системах-источниках,
но необходимые для анализа данных, необходимо поддерживать в специально
разработанных файлах или репозитории базы данных.
4.3.2.5. Требования по применению систем управления базами данных
Для реализации подсистемы хранения данных должна использоваться промышленная
СУБД <указывается название и версия СУБД>.
4.3.2.6. Требования к структуре процесса сбора, обработки, передачи данных в
системе и представлению данных
Процесс сбора, обработки и передачи данных в системе определяется регламентом
процессов сбора, преобразования и загрузки данных, разрабатываемом на этапе
«Проектирование. Разработка
эскизного проекта.Разработка технического проекта».
4.3.2.7. Требования к защите данных от разрушений при авариях и сбоях в
электропитании системы
Информация в базе данных системы должна сохраняться при возникновении аварийных
ситуаций, связанных со сбоями электропитания.
Система должна иметь бесперебойное электропитание, обеспечивающее её нормальное
функционирование в течение 15 минут в случае отсутствия внешнего
энергоснабжения, и 5 минут дополнительно для корректного завершения всех
процессов.
Резервное копирование данных должно осуществляться на регулярной основе, в
объёмах, достаточных для восстановления информации в подсистеме хранения
данных.
4.3.2.8. Требования к контролю, хранению, обновлению и восстановлению данных
К контролю данных предъявляются следующие требования:
- система должна протоколировать все события, связанные с изменением своего
информационного наполнения, и иметь возможность в случае сбоя в работе
восстанавливать свое состояние, используя ранее запротоколированные изменения
данных.
К хранению данных предъявляются следующие требования:
- хранение исторических данных в системе должно производиться не более чем за 5 (пять) предыдущих лет. По
истечению данного срока данные должны переходить в архив;
- исторические данные, превышающие пятилетний порог, должны храниться на
ленточном массиве с возможностью их восстановления.
К обновлению и восстановлению данных предъявляются следующие требования:
- для сервера сбора, обработки и загрузки данных необходимо обеспечить
резервное копирование его бинарных файлов (Home) раз в 2 недели и хранение копии на протяжении 2-х месяцев;
- для сервера базы данных необходимо обеспечить резервное копирование его
бинарных файлов раз в 2 недели и хранение копии на протяжении 2-х месяцев;
- для данных хранилища данных необходимо обеспечить резервное копирование и архивацию
на ленточный массив в следующие промежутки времени:
-холодная копия - ежеквартально;
-логическая копия - ежемесячно (конец месяца);
-инкрементальное резервное копирование - еженедельно (воскресение);
-архивирование - ежеквартально;
4.3.2.9. Требования к процедуре придания юридической силы документам,
продуцируемым техническими средствами системы
Требования не предъявляются.
4.3.3. Требования к лингвистическому обеспечению
Для лингвистического обеспечения системы приводятся
требования к применению в системе языков программирования высокого уровня,
языков взаимодействия пользователей и технических средств системы, а также
требования к кодированию и декодированию данных, к языкам ввода-вывода данных,
языкам манипулирования данными, средствам описания предметной области (объекта
автоматизации), к способам организации диалога.
При реализации системы должны применяться следующие языки
высокого уровня: SQL, Java и д.р.
При реализации системы должны применяться следующие языки и стандарты взаимодействия
КХД со смежными системами и пользователей с КХД: должны использоваться
встроенные средства диалогового взаимодействия BI приложения; Java; Java Script; HTML; др.
Должны выполняться следующие требования к кодированию и декодированию данных: Windows CP1251 для подсистемы
хранения данных; Windows CP1251 информации, поступающей из систем-источников.
Для реализации алгоритмов манипулирования данными в ХД необходимо использовать
стандартный язык запроса к данным SQL и его
процедурное расширение <например для Oracle DB это Oracle PL/SQL>.
Для описания предметной области (объекта автоматизации) должен использоваться Erwin.
Для организации диалога системы с пользователем должен применяться графический
оконный пользовательский интерфейс.
4.3.4. Требования к программному обеспечению
Для программного обеспечения системы приводят перечень
покупных программных средств, а также требования:
к независимости программных средств от используемых СВТ и операционной среды;
к качеству программных средств, а также к способам его обеспечения и контроля;
по необходимости согласования вновь разрабатываемых программных средств с
фондом алгоритмов и программ.
Перечень покупных программных средств:
- указывается название СУБД;
- указывается название ETL-средства;
- указывается название BI-приложения.
СУБД должна иметь возможность установки на ОС HP Unix.
ETL-средство должно иметь возможность установки на ОС HP Unix.
BI-приложение должно иметь возможность установки на ОС Linux Suse.
К обеспечению качества ПС предъявляются следующие требования:
- функциональность должна обеспечиваться выполнением подсистемами всех их
функций.
- надежность должна обеспечиваться за счет предупреждения ошибок - не допущения
ошибок в готовых ПС;
- легкость применения должна обеспечиваться за счет применения покупных
программных средств;
- эффективность должна обеспечиваться за счет принятия подходящих, верных
решений на разных этапах разработки ПС и системы в целом;
- сопровождаемость должна обеспечиваться за счет высокого качества документации
по сопровождению, а также за счет использования в программном тексте описания
объектов и комментариев; использованием осмысленных (мнемонических) и устойчиво
различимых имен объектов; размещением не больше одного оператора в строке
текста программы; избеганием создания фрагментов текстов программ с неочевидным
или скрытым смыслом.
- также на каждом этапе в разработке ПС должна проводится проверка правильности
принятых решений по разработке и применению готовых ПС.
Необходимость согласования вновь разрабатываемых программных средств с фондом
алгоритмов и программ отсутствует.
4.3.5. Требования к техническому обеспечению
Приводятся требования:
1) к видам технических средств, в том числе к видам комплексов технических
средств, программно-технических комплексов и других комплектующих изделий,
допустимых к использованию в системе;
2) к функциональным, конструктивным и эксплуатационным характеристикам средств
технического обеспечения системы.
Система должна быть реализована с использованием
специально выделенных серверов Заказчика.
Сервер базы данных должен быть развернут на HP9000 SuperDome №1, минимальная конфигурация которого должна быть: CPU: 16 (32 core); RAM: 128 Gb; HDD: 500 Gb; Network Card: 2 (2 Gbit); Fiber Channel: 4.
Сервер сбора, обработки и загрузки данных должен быть развернут на HP9000 SuperDome №2, минимальная конфигурация которого должна быть:
CPU: 8 (16 core); RAM: 32 Gb; HDD: 100 Gb; Network Card: 2 (1 Gbit); Fiber Channel: 2.
Сервер приложений должен быть развернут на платформе HP Integrity,
минимальная конфигурация которого должна быть: CPU: 6 (12 core); RAM: 64 Gb; HDD: 300 Gb; Network Card: 3 (1 Gbit).
Приведенные сервера должны быть подключены к дисковому массиву HP XP с организацией
сети хранения данных. Минимальный объем свободного пространства для хранения
данных на дисковом массиве должен составлять 100 Тб.
4.3.6. Требования к метрологическому обеспечению
В требованиях к метрологическому обеспечению приводят:
1) предварительный перечень измерительных каналов;
2) требования к точности измерений параметров и (или) к метрологическим
характеристикам измерительных каналов;
3) требования к метрологической совместимости технических средств системы;
4) перечень управляющих и вычислительных каналов системы, для которых
необходимо оценивать точностные характеристики;
5) требования к метрологическому обеспечению технических и программных средств,
входящих в состав измерительных каналов системы, средств встроенного контроля,
метрологической пригодности измерительных каналов и средств измерений,
используемых при наладке и испытаниях системы;
6) вид метрологической аттестации (государственная или ведомственная) с
указанием порядка ее выполнения и организаций, проводящих аттестацию.
Не предъявляются.
4.3.7. Требования к организационному обеспечению
Приводятся:
1) требования к структуре и функциям подразделений, участвующих в
функционировании системы или обеспечивающих эксплуатацию.
2) требования к организации функционирования системы и порядку взаимодействия
персонала АС и персонала объекта автоматизации.
3) требования к защите от ошибочных действий персонала системы.
Основными пользователями системы КХД являются сотрудники
функционального (например, сотрудники аналитического отдела) подразделения
Заказчика.
Обеспечивает эксплуатацию Системы подразделение информационных технологий
Заказчика.
Состав сотрудников каждого из подразделений определяется штатным расписанием
Заказчика, которое, в случае необходимости, может изменяться.
К организации функционирования Системы КХД и порядку взаимодействия персонала,
обеспечивающего эксплуатацию, и пользователей предъявляются следующие
требования:
- в случае возникновения со стороны функционального подразделения необходимости
изменения функциональности системы КХД, пользователи должны действовать
следующим образом <описать, что должны делать пользователи (кому писать,
звонить, идти) в случае необходимости доработки системы>;
- подразделение, обеспечивающее эксплуатацию системы, должно заранее (не менее
чем за 3 дня) информировать всех пользователей (с указанием точного времени и продолжительности)
о переходе её в профилактический режим.
К защите от ошибочных действий персонала предъявляются следующие требования:
- должна быть предусмотрена система подтверждения легитимности пользователя при
просмотре данных;
- для всех пользователей должна быть запрещена возможность удаления
преднастроенных объектов и отчетности;
- для снижения ошибочных действий пользователей должно быть разработано полное
и доступное руководство пользователя.
4.3.8. Требования к методическому обеспечению
Приводятся требования к составу нормативно-технической
документации системы (перечень применяемых при ее функционировании стандартов,
нормативов, методик и т. п.).
Приводятся название методик, инструкций и ссылки на них
для ПО и АПК каждой из подсистем.
4.3.9. Требования к патентной чистоте
В требованиях по патентной чистоте указывают перечень
стран, в отношении которых должна быть обеспечена патентная чистота системы и
ее частей.
По всем техническим и программным средствам, применяемым
в системе, должны соблюдаться условия лицензионных соглашений и обеспечиваться
патентная чистота.
Патентная чистота – это юридическое свойство объекта, заключающиеся в том, что
он может быть свободно использован в данной стране без опасности нарушения
действующих на ее территории патентов исключительного права, принадлежащего
третьим лицам (права промышленной собственности).
5. Состав и содержание работ по созданию системы
Данный раздел должен содержать перечень стадий и этапов работ по созданию
системы в соответствии с ГОСТ 24.601, сроки их выполнения, перечень организаций - исполнителей работ, ссылки на
документы, подтверждающие согласие этих организаций на участие в создании
системы, или запись, определяющую ответственного (заказчик или разработчик) за
проведение этих работ.
Работы по созданию системы выполняются в три этапа:
Проектирование. Разработка эскизного проекта. Разработка технического проекта
(продолжительность — X месяца).
Разработка рабочей документации. Адаптация программ (продолжительность — Y месяцев).
Ввод в действие (продолжительность — Z месяца).
Конкретные сроки выполнения стадий и этапов разработки и создания Системы
определяются Планом выполнения работ, являющимся неотъемлемой частью Договора
на выполнение работ по настоящему Частному техническому заданию.
Перечень организаций - исполнителей работ, определение ответственных за
проведение этих работ организаций определяются Договором.
Возможно приведение таблицы, в которой будут укрупненно описываться работы по
каждому этапу, выходные результаты, участие Разработчика и ответственность
Заказчика.
6. Порядок контроля и приёмки системы
В разделе указывают:
1) виды, состав, объем и методы испытаний системы и ее составных частей (виды
испытаний в соответствии с действующими нормами, распространяющимися на
разрабатываемую систему);
2) общие требования к приемке работ по стадиям (перечень участвующих
предприятий и организаций, место и сроки проведения), порядок согласования и
утверждения приемочной документации;
З) статус приемочной комиссии (государственная, межведомственная,
ведомственная).
6.1. Виды и объем испытаний системы
Система подвергается испытаниям следующих видов:
1. Предварительные испытания.
2. Опытная эксплуатация.
3. Приемочные испытания.
Состав, объем и методы предварительных испытаний системы определяются
документом «Программа и методика испытаний», разрабатываемым на стадии «Рабочая
документация».
Состав, объем и методы опытной эксплуатации системы определяются документом
«Программа опытной эксплуатации», разрабатываемым на стадии «Ввод в действие».
Состав, объем и методы приемочных испытаний системы определяются документом
«Программа и методика испытаний», разрабатываемым на стадии «Ввод в действие» с
учетом результатов проведения предварительных испытаний и опытной эксплуатации.
6.2. Требования к приемке работ по стадиям
Требования к приемке работ по стадиям приведены в таблице.
Стадия испытаний |
Участники испытаний |
Место и срок проведения |
Порядок согласования документации |
Статус приемочной комиссии |
Предварительные испытания |
Организации Заказчика и Разработчика |
На территории
Заказчика, с dd.mm.yyyy по dd.mm.yyyy |
Проведение
предварительных испытаний. |
Экспертная группа |
Опытная эксплуатация |
Организации Заказчика и Разработчика |
На территории
Заказчика, с dd.mm.yyyy по dd.mm.yyyy |
Проведение
опытной эксплуатации. |
Группа тестирования |
Приемочные испытания |
Организации Заказчика и Разработчика |
На территории
Заказчика, с dd.mm.yyyy по dd.mm.yyyy |
Проведение
приемочных испытаний. |
Приемочная комиссия |
7. Требования к составу и содержанию работ по подготовке
объекта автоматизации к вводу системы в действие
В разделе необходимо привести перечень основных
мероприятий, которые следует выполнить при подготовке объекта автоматизации к
вводу Системы в действие, а также их исполнителей.
В перечень основных мероприятий включают:
1) приведение поступающей в систему информации (в соответствии с требованиями к
информационному и лингвистическому обеспечению) к виду, пригодному для
обработки с помощью ЭВМ;
2) изменения, которые необходимо осуществить в объекте автоматизации;
3) создание условий функционирования объекта автоматизации, при которых гарантируется
соответствие создаваемой системы требованиям, содержащимся в ТЗ;
4) создание необходимых для функционирования системы подразделений и служб;
5) сроки и порядок комплектования штата и обучения персонала.
Для создания условий функционирования КХД, при которых
гарантируется соответствие создаваемой системы требованиям, содержащимся в
настоящем техническом задании, и возможность эффективного её использования, в
организации Заказчика должен быть проведен комплекс мероприятий.
7.1. Технические мероприятия
Силами Заказчика в срок до начала этапа «Разработка рабочей документации.
Адаптация программ» должны быть выполнены следующие работы:
- осуществлена подготовка помещения для размещения АТК системы в соответствии с
требованиями, приведенными в настоящем техническом задании;
- осуществлена закупка и установка необходимого АТК;
- организавано необходимое сетевое взаимодействие.
7.2. Организационные мероприятия
Силами Заказчика в срок до начала этапа работ «Разработка рабочей документации.
Адаптация программ» должны быть решены организационные вопросы по
взаимодействию с системами-источниками данных. К данным организационным
вопросам относятся:
- организация доступа к базам данных источников;
- определение регламента информирования об изменениях структур систем-источников;
- выделение ответственных специалистов со стороны Заказчика для взаимодействия
с проектной командой по вопросам взаимодействия с системами-источниками данных.
7.3. Изменения в информационном обеспечении
Для организации информационного обеспечения системы должен быть разработан и
утвержден регламент подготовки и публикации данных из систем-источников.
Перечень регламентов может быть изменен на стадии «Разработка рабочей
документации. Адаптация программ».
8. Требования к документированию
В данном разделе приводят:
1) согласованный Разработчиком и Заказчиком перечень подлежащих разработке
комплектов и видов документов, соответствующих требованиям ГОСТ 34.201-89 и НТД
отрасли Заказчика;
перечень документов, выпускаемых на машинных носителях;
требования к микрофильмированию документации;
2) требования по документированию комплектующих элементов межотраслевого
применения в соответствии с требованиями ЕСКД и ЕСПД;
3) при отсутствии государственных стандартов, определяющих требования к
документированию элементов системы, дополнительно включают требования к составу
и содержанию таких документов.
Этап |
Документ |
Проектирование. Разработка
эскизного проекта. Разработка технического проекта. |
Ведомость эскизного проекта |
Пояснительная записка к эскизному проекту |
|
Ведомость технического проекта |
|
Пояснительная записка к техническому проекту |
|
Схема функциональной структуры |
|
Разработка рабочей документации.
Адаптация программ |
Ведомость эксплуатационных
документов |
Ведомость машинных носителей
информации |
|
Паспорт |
|
Общее описание системы |
|
Технологическая инструкция |
|
Руководство пользователя |
|
Описание технологического процесса
обработки данных (включая телеобработку) |
|
Инструкция по формированию и
ведению базы данных (набора данных) |
|
Состав выходных данных (сообщений) |
|
Каталог базы данных |
|
Программа и методика испытаний |
|
Спецификация |
|
Описание программ |
|
Текст программ |
|
Ввод в действие |
Акт приёмки в опытную эксплуатацию |
Протокол испытаний |
|
Акт приемки Системы в промышленную
эксплуатацию |
|
Акт завершения работ |
Вся документация должна быть подготовлена и передана как
в печатном, так и в электронном виде (в формате Microsoft Word).
Перечень документов, выпускаемых на машинных носителях:
- Модель хранилища данных.
- Пакет ETL-процедур.
- Объекты базы данных.
- Пакет витрин данных.
9. Источники разработки
Перечисляются документы и информационные материалы
(технико-экономическое обоснование, отчеты о законченных
научно-исследовательских работах, информационные материалы на отечественные,
зарубежные системы-аналоги и др.), на основании которых разрабатывалось ТЗ и
которые должны быть использованы при создании системы.
Настоящее Техническое Задание разработано на основе
следующих документов и информационных материалов:
- Договор № … от … между …
- ГОСТ 24.701-86 «Надежность автоматизированных систем управления».
- ГОСТ 15150-69 «Машины, приборы и другие технические изделия. Исполнения для
различных климатических районов. Категории, условия эксплуатации, хранения и
транспортирования в части воздействия климатических факторов внешней среды».
- ГОСТ 21958-76 «Система
"Человек-машина". Зал и кабины операторов. Взаимное расположение
рабочих мест. Общие эргономические требования».
- ГОСТ 12.1.004-91 «ССБТ. Пожарная безопасность. Общие требования».
- ГОСТ Р 50571.22-2000 «Электроустановки зданий».
- и т.д.
Тема 7. UML
Унифицированный язык объектно-ориентированного
моделирования UnifiedModelingLanguage (UML) явился средством достижения компромисса между этими
подходами. Существует достаточное количество инструментальных средств,
поддерживающих с помощью UML жизненный цикл информационных систем, и, одновременно, UML является
достаточно гибким для настройки и поддержки специфики деятельности различных
команд разработчиков.
Создание UML началось в октябре 1994 г., когда Джим Рамбо и Гради Буч
из RationalSoftwareCorporation стали
работать над объединением своих методов OMT и Booch. В настоящее время консорциум пользователей UML Partners включает в себя представителей таких грандов
информационных технологий, как RationalSoftware, Microsoft, IBM, Hewlett-Packard, Oracle, DEC, Unisys, IntelliCorp, PlatinumTechnology.
UML представляет собой объектно-ориентированный язык моделирования, обладающий следующими основными
характеристиками:
UML — это стандартная нотация визуального
моделирования программных систем, принятая консорциумом ObjectManagingGroup (OMG) осенью 1997 г., и на сегодняшний день она
поддерживается многими объектно-ориентированными CASE-продуктами.
UML включает внутренний набор средств
моделирования, которые сейчас приняты во многих методах и средствах
моделирования. Эти концепции необходимы в большинстве прикладных задач, хотя не
каждая концепция необходима в каждой части каждого приложения. Пользователям языка предоставлены возможности:
Язык UML
Рис. 1. Интегрированная модель сложной
системы в нотации языка UML
Стандарт UML предлагает следующий набор диаграмм для моделирования:
Диаграммы вариантов использования
Понятие варианта использования (usecase) впервые ввел Ивар Якобсон и придал ему такую значимость, что в настоящее время вариант использования превратился в основной элемент разработки и планирования проекта.
Вариант использования представляет собой последовательность действий (транзакций), выполняемых системой в ответ на событие, инициируемое некоторым внешним объектом (действующим лицом). Вариант использования описывает типичное взаимодействие между пользователем и системой. В простейшем случае вариант использования определяется в процессе обсуждения
с пользователем тех функций, которые он хотел бы реализовать. На языке UML вариант использования изображают следующим образом:
Рис.2. Вариант использования
Действующее лицо (actor) – это роль, которую пользователь играет по отношению к
системе. Действующие лица представляют собой роли, а не конкретных людей или наименования работ. Несмотря на то, что на диаграммах вариантов использования они изображаются в виде стилизованных человеческих фигурок, действующее лицо может также быть внешней системой, которой необходима некоторая информация от данной системы. Показывать на диаграмме
действующих лиц следует только в том случае, когда им действительно необходимы некоторые варианты использования. На языке UML действующие лица представляют в виде фигур:
Рис.3.
Действующее лицо (актер)
Действующие лица делятся на три основных типа:
Время становится действующим лицом, если от него зависит
запуск каких-либо событий в системе.
Связи между вариантами использования и действующими лицами
В языке UML на диаграммах вариантов использования
поддерживается несколько типов связей между элементами диаграммы. Это связи коммуникации (communication), включения (include), расширения (extend) и обобщения (generalization).
Связь коммуникации – это связь между вариантом использования и действующим лицом. На языке UML связи коммуникации показывают с помощью
однонаправленной ассоциации (сплошной линии).
Рис.4. Пример связи коммуникации
Связь включения применяется в тех ситуациях, когда имеется какой-либо фрагмент поведения системы, который
повторяется более чем в одном варианте использования. С помощью таких связей обычно моделируют многократно используемую функциональность.
Связь расширения применяется при описании изменений в нормальном поведении системы. Она позволяет
варианту использования только при необходимости использовать функциональные возможности другого.
Рис.5. Пример связи включения и расширения
С помощью связи обобщения показывают, что у нескольких действующих лиц имеются общие черты.
Рис.6. Пример связи обобщения
Диаграммы взаимодействия (interactiondiagrams)
Диаграммы взаимодействия (interactiondiagrams) описывают поведение взаимодействующих групп объектов.
Как правило, диаграмма взаимодействия охватывает поведение объектов в рамках только одного варианта использования. На такой диаграмме отображается ряд объектов и те сообщения, которыми они обмениваются между собой.
Сообщение (message) – это средство, с помощью которого объект-отправитель запрашивает у объекта
получателя выполнение одной из его операций.
Информационное (informative) сообщение – это сообщение, снабжающее объект-получатель некоторой
информацией для обновления его состояния.
Сообщение-запрос (interrogative) – это сообщение, запрашивающее выдачу некоторой
информации об объекте-получателе.
Императивное (imperative) сообщение – это сообщение, запрашивающее у объекта-получателя выполнение
некоторых действий.
Существует два вида диаграмм взаимодействия: диаграммы последовательности (sequencediagrams) и кооперативные диаграммы (collaborationdiagrams).
Диаграмма последовательности (sequencediagrams)
Диаграмма последовательности отражает поток событий,
происходящих в рамках варианта использования.
Все действующие лица показаны в верхней части диаграммы. Стрелки соответствуют сообщениям, передаваемым между действующим
лицом и объектом или между объектами для выполнения требуемых функций.
На диаграмме последовательности объект изображается в виде прямоугольника, от которого вниз проведена пунктирная вертикальная линия. Эта линия называется линией жизни (lifeline) объекта. Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия.
Каждое сообщение представляется в виде стрелки между линиями жизни двух объектов. Сообщения появляются в том порядке, как они показаны на странице сверху вниз. Каждое сообщение помечается как минимум именем сообщения. При желании можно добавить также аргументы и некоторую управляющую информацию.
Можно показать самоделегирование (self-delegation) – сообщение, которое объект посылает самому себе, при
этом стрелка сообщения указывает на ту же самую линию жизни.
Рис. 7. Пример диаграммы последовательности
Диаграмма кооперации (collaboration diagram)
Диаграммы кооперации отображают поток событий через конкретный сценарий варианта использования, упорядочены по времени, а кооперативные диаграммы больше внимания заостряют на связях между объектами.
На диаграмме кооперации представлена вся та информация,
которая есть и на диаграмме последовательности, но кооперативная диаграмма
по-другому описывает поток событий. Из нее легче понять связи между объектами, однако, труднее уяснить
последовательность событий.
На кооперативной диаграмме так же, как и на диаграмме последовательности, стрелки обозначают сообщения, обмен которыми осуществляется в рамках данного варианта
использования. Их временная последовательность
указывается путем нумерации сообщений.
Рис. 8. Пример диаграммы кооперации
Диаграммы классов
Общие сведения
Диаграмма классов определяет типы классов системы и
различного рода статические связи, которые существуют между ними. На диаграммах
классов изображаются также атрибуты классов, операции классов
и ограничения, которые накладываются на связи между классами.
Диаграмма классов UML - это граф, узлами которого являются элементы
статической структуры проекта (классы, интерфейсы), а дугами - отношения между
узлами (ассоциации, наследование, зависимости).
На диаграмме классов изображаются следующие элементы:
Класс
Класс - это группа сущностей (объектов), обладающих
сходными свойствами, а именно, данными и поведением. Отдельный представитель некоторого
класса называется объектом класса или просто объектом.
Под поведением объекта в UML понимаются любые правила взаимодействия объекта с
внешним миром и с данными самого объекта.
На диаграммах класс изображается в виде прямоугольника со
сплошной границей, разделенного горизонтальными линиями на 3 секции:
Любая из секций атрибутов и операций может не
изображаться (а также обе сразу). Для отсутствующей секции не нужно рисовать
разделительную линию и как-либо указывать на наличие или отсутствие элементов в
ней.
На усмотрение конкретной реализации могут быть введены
дополнительные секции, например, исключения (Exceptions).
Рис. 9. Пример диаграммы классов
Стереотипы классов
Стереотипы классов – это механизм, позволяющий разделять классы на категории.
В языке UML определены три основных стереотипа классов:
Граничные классы
Граничными классами (boundaryclasses) называются такие классы, которые расположены на границе системы и всей окружающей среды. Это экранные формы, отчеты, интерфейсы с аппаратурой (такой как принтеры или сканеры) и интерфейсы с другими
системами.
Чтобы найти граничные классы, надо исследовать диаграммы вариантов использования. Каждому
взаимодействию между действующим лицом и вариантом использования должен
соответствовать, по крайней мере, один граничный класс. Именно такой класс позволяет
действующему лицу взаимодействовать с системой.
Классы-сущности
Классы-сущности (entityclasses) содержат хранимую информацию. Они имеют наибольшее значение для пользователя, и потому в их названиях часто используют термины из
предметной области. Обычно для каждого класса-сущности создают таблицу в базе
данных.
Управляющие классы
Управляющие классы (controlclasses) отвечают за координацию действий других классов. Обычно у каждого варианта использования имеется один управляющий класс, контролирующий последовательность
событий этого варианта использования. Управляющий класс отвечает за координацию, но сам не несет в себе никакой
функциональности, так как остальные классы не посылают ему большого количества
сообщений. Вместо этого он сам посылает множество сообщений. Управляющий класс
просто делегирует ответственность другим классам, по этой причине его часто называют
классом-менеджером.
В системе могут быть и другие управляющие классы, общие для нескольких вариантов использования. Например, может быть класс SecurityManager (менеджер безопасности), отвечающий за контроль событий, связанных с безопасностью. Класс TransactionManager (менеджер
транзакций) занимается координацией сообщений, относящихся к транзакциям с базой данных. Могут быть и другие менеджеры для работы с другими элементами
функционирования системы, такими как разделение ресурсов, распределенная обработка данных или обработка ошибок.
Помимо упомянутых выше стереотипов можно создавать и свои собственные.
Атрибуты
Атрибут – это элемент информации, связанный с классом.
Атрибуты хранят инкапсулированные данные класса.
Так как атрибуты содержатся внутри класса, они скрыты от
других классов. В связи с этим может понадобиться указать, какие классы имеют
право читать и изменять атрибуты. Это свойство называется видимостью атрибута (attributevisibility).
У атрибута можно определить четыре возможных значения этого параметра:
В общем случае, атрибуты рекомендуется делать закрытыми или защищенными. Это позволяет лучше контролировать сам
атрибут и код.
С помощью закрытости или защищенности удается избежать ситуации, когда значение атрибута изменяется всеми классами системы. Вместо этого логика изменения атрибута будет заключена в том же классе, что и сам этот атрибут. Задаваемые параметры видимости повлияют на генерируемый код.
Операции
Операции реализуют связанное с классом поведение. Операция включает три части – имя, параметры и тип возвращаемого значения.
Параметры – это аргументы, получаемые операцией «на входе». Тип возвращаемого значения относится к результату
действия операции.
На диаграмме классов можно показывать как имена операций,
так и имена операций вместе с их параметрами и типом возвращаемого значения. Чтобы уменьшить загруженность диаграммы, полезно бывает на некоторых из них показывать только
имена операций, а на других их полную сигнатуру.
В языке UML операции имеют следующую нотацию:
Имя Операции (аргумент: тип данных аргумента,
аргумент2:тип данных аргумента2,...): тип возвращаемого значения
Следует рассмотреть четыре различных типа операций:
· Операции реализации;
· Операции управления;
· Операции доступа;
· Вспомогательные операции.
Операции реализации
Операции реализации (implementoroperations) реализуют некоторые бизнес-функции. Такие операции можно найти, исследуя диаграммы взаимодействия. Диаграммы этого типа фокусируются на бизнес-функциях, и каждое сообщение диаграммы, скорее
всего, можно соотнести с операцией реализации.
Каждая операция реализации должна быть легко прослеживаема до соответствующего требования. Это достигается на различных этапах моделирования. Операция выводится из сообщения на диаграмме взаимодействия, сообщения исходят из подробного описания потока событий, который создается на основе варианта использования, а последний – на основе требований.
Возможность проследить всю эту цепочку позволяет гарантировать, что каждое требование будет реализовано в коде, а каждый фрагмент кода реализует какое-то требование.
Операции управления
Операции управления (manageroperations) управляют созданием и уничтожением объектов. В эту категорию попадают конструкторы и деструкторы классов.
Операции доступа
Атрибуты обычно бывают закрытыми или защищенными. Тем не менее, другие классы иногда должны просматривать
или изменять их значения. Для этого существуют операции доступа (accessoperations). Такой подход
дает возможность безопасно инкапсулировать атрибуты внутри класса, защитив их от других классов, но все же позволяет осуществить к ним контролируемый доступ.
Создание операций Get и Set (получения и изменения значения) для каждого
атрибута класса является стандартом.
Вспомогательные операции
Вспомогательными (helperoperations) называются такие операции класса, которые необходимы ему для выполнения
его ответственностей, но о которых другие классы не должны ничего знать. Это закрытые и защищенные операции класса.
Чтобы идентифицировать операции, выполните следующие
действия:
1. Изучите диаграммы последовательности и кооперативные диаграммы. Большая часть сообщений на этих диаграммах является операциями реализации. Рефлексивные
сообщения будут вспомогательными операциями.
2. Рассмотрите управляющие операции. Может потребоваться добавить конструкторы и деструкторы.
3. Рассмотрите операции доступа. Для каждого атрибута класса, с которым должны будут работать другие классы, надо создать операции Get и Set.
Связи
Связь представляет собой семантическую взаимосвязь между классами. Она дает классу возможность узнавать об
атрибутах, операциях и связях другого класса. Иными словами, чтобы один класс
мог послать сообщение другому на диаграмме последовательности или кооперативной
диаграмме, между ними должна существовать связь.
Существуют четыре типа связей, которые могут быть
установлены между классами: ассоциации, зависимости, агрегации и обобщения.
Ассоциации
Ассоциация (association) – это семантическая связь между классами. Их рисуют на диаграмме классов в виде обыкновенной линии.
Рис. 10. Связь ассоциация
Ассоциации могут быть двунаправленными, как в примере, или однонаправленными. На языке UML двунаправленные ассоциации рисуют в виде простой линии
без стрелок или со стрелками с обеих ее сторон. На однонаправленной ассоциации изображают только одну стрелку, показывающую ее направление.
Направление ассоциации можно определить, изучая диаграммы последовательности и кооперативные диаграммы. Если все сообщения на них отправляются только одним классом и
принимаются только другим классом, но не наоборот, между этими классами имеет место однонаправленная связь. Если хотя бы одно сообщение отправляется в обратную сторону, ассоциация должна быть
двунаправленной.
Ассоциации могут быть рефлексивными. Рефлексивная ассоциация предполагает, что один экземпляр класса взаимодействует с другими экземплярами этого же класса.
Зависимости
Связи зависимости (dependency) также отражают связь между классами, но они всегда однонаправлены и
показывают, что один класс зависит от определений, сделанных в другом. Например, класс A использует методы класса B. Тогда при изменении класса B необходимо произвести соответствующие изменения в классе
A.
Зависимость изображается пунктирной линией, проведенной
между двумя элементами диаграммы, и считается, что элемент, привязанный к концу
стрелки, зависит от элемента, привязанного к началу этой стрелки.
Рис. 11. Связь зависимость
При генерации кода для этих классов к ним не будут
добавляться новые атрибуты. Однако, будут созданы специфические для языка операторы, необходимые для поддержки связи.
Агрегации
Агрегации (aggregations) представляют собой более тесную форму ассоциации. Агрегация – это связь между целым и
его частью. Например, у вас может быть класс Автомобиль, а также классы
Двигатель, Покрышки и классы для других частей автомобиля. В результате объект класса Автомобиль будет состоять из объекта класса
Двигатель, четырех объектов Покрышек и т. д. Агрегации визуализируют в виде линии с ромбиком у класса, являющегося целым:
Рис. 11. Связь агрегация
В дополнение к простой агрегации UML вводит более сильную разновидность агрегации, называемую композицией. Согласно композиции, объект-часть может принадлежать только единственному целому, и, кроме того, как правило, жизненный цикл частей совпадает с циклом целого: они живут и
умирают вместе с ним. Любое удаление целого распространяется на его части.
Такое каскадное удаление нередко рассматривается как часть определения агрегации, однако оно всегда
подразумевается в том случае, когда множественность роли составляет 1..1; например, если необходимо удалить
Клиента, то это удаление должно распространиться и на Заказы (и, в свою
очередь, на Строки заказа).
Обобщения (Наследование)
Обобщение (наследование) - это отношение типа общее-частное
между элементами модели. С помощью обобщений (generalization) показывают связи наследования между двумя классами. Большинство объектно-ориентированных языков непосредственно поддерживают концепцию наследования. Она позволяет одному классу наследовать все атрибуты, операции и связи другого. Наследование пакетов
означает, что в пакете-наследнике все сущности пакета-предка будут видны под
своими собственными именами (т.е. пространства имен объединяются). Наследование
показывается сплошной линией, идущей от класса-потомка к классу-предку (в
терминологии ООП - от потомка к предку, от сына к отцу, или от подкласса к
суперклассу). Со стороны более общего элемента рисуется большой полый
треугольник.
Рис. 12. Пример связи наследование
Помимо наследуемых, каждый подкласс имеет свои собственные уникальные атрибуты, операции и связи.
Множественность
Множественность (multiplicity) показывает, сколько экземпляров одного класса взаимодействуют с помощью этой связи с одним экземпляром другого класса в данный момент
времени.
Например, при разработке системы регистрации курсов в университете можно определить классы Course (курс) и Student (студент). Между ними установлена связь: у курсов могут
быть студенты, а у студентов – курсы. Вопросы, на который должен ответить
параметр множественности: «Сколько курсов студент может посещать в данный момент? Сколько студентов может за раз посещать
один курс?»
Так как множественность дает ответ на оба эти вопроса, её индикаторы устанавливаются на обоих концах линии
связи. В примере регистрации курсов мы решили, что один студент может посещать от нуля до четырех курсов, а один курс могут слушать от 0 до 20 студентов.
В языке UML приняты определенные нотации для обозначения множественности.
Таблица 1 - Обозначения множественности связей в UML
Имена связей
Связи можно уточнить с помощью имен связей или ролевых
имен. Имя связи – это обычно глагол или глагольная фраза, описывающая, зачем
она нужна. Например, между классом Person (человек) и классом Company (компания) может существовать ассоциация. Можно задать в
связи с этим вопрос, является ли объект класса Person клиентом компании, её сотрудником или владельцем? Чтобы
определить это, ассоциацию можно назвать «employs» (нанимает):
Рис. 13. Пример имен связей
Роли
Ролевые имена применяют в связях ассоциации или агрегации
вместо имен для описания того, зачем эти связи нужны. Возвращаясь к примеру с
классами Person и Company, можно сказать, что класс Person играет роль сотрудника класса Company. Ролевые имена – это обычно имена существительные или основанные на них фразы, их показывают на диаграмме рядом с классом, играющим соответствующую роль. Как правило, пользуются или ролевым именем, или именем связи, но не обоими сразу. Как и имена связей, ролевые
имена не обязательны, их дают, только если цель связи не очевидна. Пример ролей приводится ниже:
Рис. 14. Пример ролей связей
Пакет. Механизм
пакетов
В контексте диаграмм классов, пакет - это вместилище для
некоторого набора классов и других пакетов. Пакет
является самостоятельным пространством имен.
Рис. 15. Обозначение пакета в UML
В UML нет каких-либо ограничений на правила, по которым
разработчики могут или должны группировать классы в пакеты. Но есть некоторые
стандартные случаи, когда такая группировка уместна, например, тесно
взаимодействующие классы, или более общий случай - разбиение системы на
подсистемы.
Пакет физически содержит сущности, определенные в нем
(говорят, что "сущности принадлежат пакету"). Это означает, что если
будет уничтожен пакет, то будут уничтожено и все его содержимое.
Существует несколько наиболее распространенных подходов к группировке.
Во-первых, можно группировать их по стереотипу. В таком случае получается один пакет с классами-сущностями, один с граничными классами, один с управляющими классами и т.д. Этот подход может быть полезен с точки зрения размещения готовой системы, поскольку все
находящиеся на клиентских машинах пограничные классы уже оказываются в одном
пакете.
Другой подход заключается в объединении классов по их функциональности. Например, в пакете Security (безопасность) содержатся все классы, отвечающие за
безопасность приложения. В таком случае другие пакеты могут называться EmployeeMaintenance (Работа с сотрудниками), Reporting (Подготовка отчетов) и ErrorHandling (Обработка ошибок). Преимущество этого подхода заключается в возможности повторного использования.
Механизм пакетов применим к любым элементам модели, а не
только к классам. Если для группировки классов не использовать некоторые эвристики, то она становится произвольной. Одна из них, которая в основном используется в UML, – это зависимость. Зависимость между двумя пакетами существует в том случае, если между любыми двумя классами в пакетах существует любая зависимость.
Таким образом, диаграмма пакетов представляет собой диаграмму, содержащую пакеты классов и зависимости между
ними. Строго говоря, пакеты и зависимости являются элементами диаграммы
классов, то есть диаграмма пакетов – это форма диаграммы классов.
Рис. 16. Пример диаграммы пакетов
Зависимость между двумя элементами имеет место в том
случае, если изменения в определении одного элемента могут повлечь за собой изменения в другом. Что касается классов, то
причины для зависимостей могут быть самыми разными:
Если класс меняет свой интерфейс, то любое сообщение,
которое он посылает, может утратить свою силу.
Пакеты не дают ответа на вопрос, каким образом можно
уменьшить количество зависимостей в вашей системе, однако они помогают выделить
эти зависимости, а после того, как они все окажутся на виду, остается только поработать над снижением их количества. Диаграммы пакетов можно считать основным средством управления общей структурой системы.
Пакеты являются жизненно необходимым средством для больших проектов. Их следует использовать в тех случаях, когда диаграмма классов, охватывающая всю систему в целом и размещенная на единственном листе бумаги формата А4,
становится нечитаемой.
Диаграммы состояний
Диаграммы состояний определяют все возможные состояния, в которых может находиться конкретный объект,
а также процесс смены состояний объекта в результате наступления некоторых событий.
Существует много форм диаграмм состояний, незначительно отличающихся друг от друга семантикой.
На диаграмме имеются два специальных состояния –
начальное (start) и конечное (stop). Начальное состояние выделено черной точкой, оно соответствует состоянию объекта, когда он только что был создан. Конечное состояние обозначается черной точкой в белом кружке, оно соответствует состоянию объекта непосредственно перед его уничтожением. На диаграмме состояний может быть одно
и только одно начальное состояние. В то же время, может быть столько конечных состояний, сколько вам нужно, или их может не быть вообще. Когда объект находится в каком-то конкретном состоянии,
могут выполняться различные процессы. Процессы, происходящие, когда объект находится в определенном состоянии, называются действиями (actions).
С состоянием можно связывать данные пяти типов: деятельность, входное действие, выходное действие, событие и история состояния.
Деятельность
Деятельностью (activity) называется поведение, реализуемое объектом, пока он находится в данном
состоянии. Деятельность – это прерываемое поведение. Оно может выполняться до своего завершения, пока объект находится в данном состоянии, или может быть прервано переходом объекта в другое
состояние. Деятельность изображают внутри самого состояния, ей должно
предшествовать слово do (делать) и двоеточие.
Входное действие
Входным действием (entryaction) называется поведение, которое выполняется, когда объект переходит в данное
состояние. Данное действие осуществляется не после того, как объект перешел в
это состояние, а, скорее, как часть этого перехода. В отличие от деятельности, входное действие рассматривается как непрерываемое. Входное действие также показывают внутри состояния, ему предшествует слово entry (вход) и двоеточие.
Выходное действие
Выходное действие (exitaction) подобно входному. Однако, оно осуществляется как составная часть процесса выхода из данного состояния. Оно является частью процесса такого перехода. Как и входное, выходное действие
является непрерываемым.
Выходное действие изображают внутри состояния, ему
предшествует слово exit
(выход) и двоеточие.
Поведение объекта во время деятельности, при входных и
выходных действиях может включать отправку события другому объекту. В этом случае описанию деятельности, входного действия или выходного действия предшествует знак « ^ ».
Соответствующая строка на диаграмме выглядит как
Do: ^Цель.Событие (Аргументы)
Здесь Цель – это объект, получающий событие, Событие – это посылаемое сообщение, а Аргументы являются
параметрами посылаемого сообщения.
Деятельность может также выполняться в результате получения объектом некоторого события. При получении некоторого события выполняется определенная деятельность.
Переходом (Transition) называется перемещение из одного состояния в другое. Совокупность переходов диаграммы показывает, как объект может перемещаться между своими состояниями. На диаграмме все переходы изображают в виде стрелки, начинающейся на
первоначальном состоянии и заканчивающейся последующим.
Переходы могут быть рефлексивными. Объект может перейти в
то же состояние, в котором он в настоящий момент находится. Рефлексивные
переходы изображают в виде стрелки, начинающейся и завершающейся на одном и том
же состоянии.
У перехода существует несколько спецификаций. Они включают события, аргументы, ограждающие условия, действия и посылаемые события.
События
Событие (event) – это то, что вызывает переход из одного состояния в
другое. Событие размещают на диаграмме вдоль линии перехода.
На диаграмме для отображения события можно использовать
как имя операции, так и обычную фразу.
Большинство переходов должны иметь события, так как
именно они, прежде всего, заставляют переход осуществиться. Тем не менее,
бывают и автоматические переходы, не имеющие событий. При этом объект сам
перемещается из одного состояния в другое со скоростью, позволяющей
осуществиться входным действиям, деятельности и выходным действиям.
Ограждающие условия
Ограждающие условия (guardconditions) определяют, когда переход может, а когда не может осуществиться. В противном случае переход не осуществится.
Ограждающие условия изображают на диаграмме вдоль линии перехода после имени события, заключая их в
квадратные скобки.
Ограждающие условия задавать необязательно. Однако если существует несколько автоматических переходов из состояния, необходимо определить для них взаимно исключающие ограждающие условия. Это поможет читателю диаграммы
понять, какой путь перехода будет автоматически выбран.
Действие
Действием (action), как уже говорилось, является непрерываемое поведение, осуществляющееся как часть
перехода. Входные и выходные действия показывают внутри состояний, поскольку
они определяют, что происходит, когда объект входит или выходит из него.
Большую часть действий, однако, изображают вдоль линии перехода, так как они не должны осуществляться при входе или выходе из
состояния.
Действие рисуют вдоль линии перехода после имени события,
ему предшествует косая черта.
Событие или действие могут быть поведением внутри объекта, а могут представлять собой сообщение, посылаемое другому объекту. Если событие или действие посылается другому объекту, перед ним на диаграмме помещают знак « ^ ».
Рис. 17. Пример диаграммы состояний
Диаграммы состояний не надо создавать для каждого класса, они применяются только в сложных случаях. Если объект класса может существовать в нескольких состояниях и в каждом из них ведет себя по-разному, для него может потребоваться такая
диаграмма.
Диаграммы размещения
Диаграмма размещения (deploymentdiagram) отражает физические взаимосвязи между программными и аппаратными компонентами системы. Она является хорошим средством для того, чтобы показать маршруты перемещения объектов и компонентов в распределенной системе.
Каждый узел на диаграмме размещения представляет собой некоторый тип вычислительного устройства – в большинстве случаев, часть аппаратуры. Эта аппаратура может быть
простым устройством или датчиком, а может быть и мэйнфреймом.
Диаграмма размещения показывает физическое расположение
сети и местонахождение в ней различных компонентов.
Рис. 19. Пример диаграммы размещения
Диаграмма размещения используется менеджером проекта, пользователями, архитектором системы и
эксплуатационным персоналом, чтобы понять физическое размещение системы и расположение её отдельных подсистем.
Диаграммы компонентов
Диаграммы компонентов показывают, как выглядит модель на физическом уровне. На них изображены компоненты программного обеспечения и связи между ними. При этом на
такой диаграмме выделяют два типа компонентов: исполняемые компоненты и
библиотеки кода.
Каждый класс модели (или подсистема) преобразуется в
компонент исходного кода. После создания они сразу добавляются к диаграмме компонентов. Между отдельными компонентами
изображают зависимости, соответствующие зависимостям на этапе компиляции или выполнения программы.
Рис. 18. Пример диаграммы компонентов
Диаграммы компонентов применяются теми участниками
проекта, кто отвечает за компиляцию системы. Из нее видно, в каком порядке надо
компилировать компоненты, а также какие исполняемые компоненты будут созданы системой. На такой диаграмме показано соответствие классов реализованным компонентам. Она нужна там, где начинается генерация кода.
Объединение диаграмм компонентов и развертывания
В некоторых случаях допускается размещать
диаграмму компонентов на диаграмме развертывания. Это позволяет показать какие
компоненты выполняются и на каких узлах.