Методология информационного моделирования
C точки зрения системного подхода первоначальным этапом любого анализа, проектирования, разработки является выделение предметной области и элементов в ней, то есть выделение того, что мы собираемся моделировать.
Для правильного отображения взаимодействий элементов информационной системы разработаны разные методологии, из которых можно выделить две: функционально-ориентированные и объектно-ориентированныеметодологии.
Функциональные модели представляются диаграммами. Главными структурными элементами этих диаграмм являются операции, действия, работы, т. e. функции. Основным достоинством функциональных моделей является реализация структурного подхода, в котором осуществляются принципы модульности и проектирования «сверху вниз». При функциональном подходе объектные модели данных разрабатываются отдельно в виде так называемых ER-диаграмм[1] «объект – свойство – связь». Основные недостатки функционального моделирования:
• недостаточная ясность отображения динамических свойств процессов;
• трудности в выделении повторно используемых модулей, что приводит к их повторному проектированию.
Указанные недостатки отсутствуют в объектно-ориентированных моделях. Объектно-ориентированный подход к проектированию информационных систем определяет этапы процесса проектирования. Сначала выделяются классы объектов, что позволяет выявить общие функциональные процедуры (методы), затем определяются конкретные объекты и их свойства, что обеспечивает наилучшую реализацию динамического поведения информационных систем.
Методология информационного моделирования развивалась неравномерно. Бурное развитие компьютерной техники, программирования привело к такому состоянию информатики в 70-е годы прошлого столетия, что A. П. Ершов заявил: «мы не можем внедрить ЭВМ в повседневную жизнь, выделяя касту жрецов-посредников. He хватит никаких сил, чтобы снабдить эти миллионы интерфейсов специализированными языками и процессорами». To есть, в программировании наступил этап, после которого экстенсивный, эволюционный путь развития невозможен, пришлось бы за каждый персональный компьютер посадить программиста, да и не одного, по аналогии с большими компьютерами тех лет.
B 80-е годы прошлого века сменилась, как теперь принято говорить, парадигма программирования. Выше уже отмечалось, что слово парадигма означает модель, и его употребление вызвано желанием подчеркнуть революционную смену моделей – от алгоритмической модели к объектно-ориентированной. Объектно-ориентированная модель программирования в корне изменила состояние дел в программировании, потому что решила две кардинальные проблемы: ускорила создание программ за счет введения классов и возможности наследования свойств; повысила надежность программ, так как позволила программному объекту не заботиться о том, как устроен другой объект, которому посылается сообщение(свойство инкапсуляции). Тимоти Бадд об инкапсуляции (от лат. in – в + capsula – ящичек) пишет так: «Объектно-ориентированное программирование рассматривает инкапсуляцию как главную цель. Хорошо разработанный объект старается инкапсулировать состояние и поведение, необходимые для выполнения задачи, и в то же время скрывает как можно больше деталей внутреннего устройства. Bo многих предшествующих объектно-ориентированных библиотеках этот философский подход воплощался в контейнерных классах, обладающих широкой функциональностью и богатым интерфейсом».
Методология – безусловно важный вопрос в процессе проектирования новых и реконструкции (реинжиниринга) старых систем, но не главный. Главным следует считать «с виду простой, но на самом деле достаточно сложный и важный вопрос: «Правильна ли создаваемая система?». По-видимому, необходимо такого типа вопросы включить в методологию проектирования систем на так называемом «нулевом уровне». Ответ на этот вопрос может дать только квалифицированный разработчик, учитывающий множество неформальных факторов. M. Фаулер пишет, что «Том Хэдфилд удачно сформулировал эту проблему: объектные языки обладают преимуществами, но не предоставляют их автоматически».
Поддержка методов информационного моделирования осуществляется с помощью CASE-технологии (Computer Aided Software Engineering – компьютерная поддержка разработки программных средств).
[1] ER – Entity-Relationship – от англ. Entity – сущность, объект; Relationship – отношение, связь.