Информационная система и уровни архитектуры
Перед построением модели нужно определить, что именно моделируется. В контексте разработки ПО удобно считать, что модель описывает информационную систему.
Формально понятие информационной системы шире, чем понятие программного обеспечения.
Информационная система — это вся инфраструктура предприятия, задействованная в процессе управления всеми информационно-документальными потоками, включающая в себя следующие обязательные элементы:
- Информационная модель, представляющая собой совокупность правил и алгоритмов функционирования ИС.
- Регламент развития информационной модели и правила внесения в неё изменений.
- Кадровые ресурсы (департамент развития, привлекаемые консультанты), отвечающие за формирование и развитие информационной модели.
- Программное обеспечение, конфигурация которого соответствует требованиям информационной модели (программное обеспечение является основным движителем и, одновременно, механизмом управления ИС).
- Кадровые ресурсы, отвечающие за настройку и адаптацию программного обеспечения, и его соответствие утвержденной информационной модели.
- Регламент внесения изменений в настраиваемые структуры (специфические настройки, структуры баз данных и т.д.) и конфигурацию программного обеспечения и состав его функциональных модулей.
- Аппаратно-техническая база, соответствующая требованиям по эксплуатации программного обеспечения.
- Правила использования программного обеспечения и пользовательские инструкции, регламент обучения и сертификацию пользователей.
Нас во всей этой истории интересуют пункты про информационную модель (не путать с моделью ИС), программное обеспечение, кадровые ресурсы и аппаратно-техническую базу: как раз это является частью модели самой системы и может быть отражено с помощью UML.
Информацонную систему можно рассматривать на различных уровнях архитектуры, которые хорошо соотносятся с разными представлениями UML: функциональная, информационная, системная, программная, данных.
Функциональная архитектура описывает ИС с точки зрения функциональных подсистем и их взаимодействия между собой. Этот уровень архитектуры полезно выделять, поскольку именно на таком уровне решение показывается стейкхолдерам и пользователям. Также удобно показывать ИС с точки зрения взаимозаменяемых функциональных модулей, образующих конфигурацию.
Информационная архитектура описывает ИС с точки зрения информационных объектов, с которыми она может работать. Информационный объект — это сформированные по определённым правилам данные, трактуемые ИС (и пользователями) как единое целое. Совокупность таких объектов образует наполнение ИС.
Системная архитектура описывает взаимодействие программных и аппаратных компонентов системы и её пользователей, реализующие информационные процессы (сбор, хранение, передача, обработка и представление информации).
Программная архитектура описывает структурные элементы программного ИС и взаимодействие между ними. На этом уровне архитектуры необязательно применяется объектно-ориентированная парадигма, можно использовать модульную организацию кода, например.
Архитектура данных описывает формат хранения данных с точки зрения СУБД. Отличается от информационной архитектуры погружением в техническую организацию хранения и сериализации данных. В рамках курса мы не будем рассматривать этот уровень архитектуры, но его всегда удобно представить в виде ER-диаграммы.