АИС КХП, лучшее решение для отрасли
= Автоматизированная информационная система комбината хлебопродуктов =

Статьи

Методика создания программного обеспечения
для систем управления предприятиями с использованием
типовых программных компонентов


К. Мышенков, А. Трофимов

Разработка и внедрение современных систем управления предприятиями требует привлечения значительных ресурсов как разработчика, так и заказчика системы. Стоимость поставки и внедрения комплексной системы управления для промышленного предприятия среднего размера начинается от нескольких десятков тысяч долларов в нижнем ценовом диапазоне и практически не имеет верхней ценовой границы. Совокупная стоимость владения информационной системой для предприятия складывается из стоимости поставки программного обеспечения (ПО) и технических средств, стоимости внедрения и стоимости сопровождения. Причем, достаточно распространенной ошибкой при выборе системы управления является учет только стоимости поставки системы. Тогда как затраты на внедрение и сопровождение системы управления предприятием, которая должна работать десятилетиями, по данным консалтинговой фирмы GARTNER GROUP, превышают первоначальные капитальные вложения в 2-3 раза.
В настоящее время методы и средства уменьшения трудоемкости разработки и сопровождения ПО, а значит и его стоимости, разработаны достаточно широко. Это следующие методы создания сложных систем: разработка открытых систем [1], разработка принципов оптимального разбиения систем на модули [2], методы объектно-ориентированного анализа и проектирования систем [3]. В настоящее время, для разработки ПО различного назначения широко применяется повторное использование программных объектов и программных компонентов [4], предлагаемых производителями средств ускоренной разработки приложений (rapid application development-RAD). Использование CASE-средств [5], также, позволяет значительно сократить трудоемкость проектирования и сопровождения ПО. Результатом использования перечисленных методов и средств при проектировании систем управления является минимизация стоимости создания и сопровождения ПО. Однако, дополнительные резервы можно обнаружить в структуре ПО системы, оптимизация которой обеспечивает дополнительное снижение стоимости внедрения и сопровождения ПО. Необходимо отметить, что средств позволяющих разрабатывать легко сопровождаемые и дешевые программные системы, еще не создано [6], и предлагаемый подход требует дальнейших исследований.
Необходимо подчеркнуть, что речь идет об оптимизации структуры программного обеспечения. Не секрет, заданную функциональность модуля можно реализовать различными методами, причем, не всегда рассчитанными на дальнейшее сопровождение. Здесь можно отметить особенности реализации при помощи различных языков программирования и личные предпочтения того или иного программиста. Последнее часто доминирует при слабом контроле или отсутствием такового со стороны руководителя проекта. Многие решения, в этом случае, отдаются на откуп программисту, который может не иметь должной квалификации для создания действительно легко сопровождаемой программной системы. При этом, структуру программного продукта трудно определить по внешнему виду. Если система отвечает заявленной функциональности, то неизвестно, использованы ли в создаваемом ПО эффективные конструкции языка программирования, создано ли оно на основе взаимодействующих объектов или написано при помощи операторов условных и безусловных переходов. Трудно, да часто и невозможно проконтролировать весь текст программного обеспечения системы. И уже через некоторое время выяснятся, что для того, чтобы внести изменения в модуль, написанный программистом-контрактником, заинтересованным в быстром создании необходимой функциональности модуля, необходимо частично или полностью переписать недокументированный, неструктурированный, написанный без учета дальнейшего сопровождения текст программы.
Для решения этих проблем, существуют CASE-средства, однако, это только средства, а структура ПО разрабатываться проектировщиком системы до начала этапа программирования. Однако и в этом случае, процесс разработки осуществляется без использования неких общих законов, как, например, законов физики в строительстве, и полностью основывается на методах проб и ошибок [7]. Таких законов для разработки ПО пока не существует, потому что научные основы для создания ПО только разрабатываются. Таким образом, предоставление программисту готовой структуры ПО, построенной на основе объективных исследований конкретной предметной области, и методических рекомендаций по созданию ПО на основе разработанной структуры может значительно уменьшить трудоемкость создания и, что более важно, сопровождения системы и уберечь от дорогостоящих логических ошибок при создании программных модулей.
Для решения поставленной задачи на кафедре "Автоматизированные системы и вычислительная техника" МГУПП разработана методика создания программного обеспечения для систем управления предприятиями с использованием типовых программных компонентов (ТПК). Термин "типовой программный компонент" определяет набор программных объектов, учитывающих особенности предметной области, неотделимых друг от друга в рамках выполнения определенного класса задач, имеющих унифицированный интерфейс, позволяющий различным ТПК взаимодействовать между собой без дополнительного координирующего кода, и имеющих возможность изменения своих свойств без внесения изменений в программный код.
Основой ТПК является динамически создаваемое представление данных, использующее для этого хранимую в профиле пользователя информацию, которая представляет собой описатели обрабатываемых полей таблиц, шаблонов ввода-вывода и ссылок на другие таблицы. При этом, все алгоритмы добавления, удаления, редактирования записей, вывода на печать, поиска и группировки реализованы независимо от обрабатываемой информации. Для заполнения ссылочной части таблиц предусмотрен интерфейс для взаимодействия с тем же модулем, но настроен-ный для работы с другими данными, т.е. предусматривается рекурсивный вызов. Функциональная диаграмма ТПК приведена на рис 1.
Рис 1. Функциональная диаграмма ТПК
Методика создания ПО на основе типовых программных компонентов состоит из следующих этапов:
1. Создание ТПК - наиболее трудоемкий и дорогостоящий этап, который должен быть выполнен квалифицированным программистом. Он включает в себя следующие шаги:
  • выбор средства создания ПО (RAD,CASE);
  • определение необходимого набора функций ТПК;
  • определение необходимого объема адаптации;
  • создание иерархии классов;
  • создание исполняемого кода ТПК.
2. Анализ предметной области и синтез структуры ПО системы - определение перечня модулей системы и их связей между собой. Каждый модуль системы должен выполнять строго определённый набор функций управления (как правило, выполняемых одним пользователем системы) и функционировать на строго ограниченном подмножестве информационной модели системы. Этот этап выполняется аналитиком системы и не включает в себя непосредственно программирования. Его можно разбить на следующие шаги:
  • определение перечня модулей;
  • определение выполняемых модулем функций и квалификации пользователей;
  • определение набора информационных журналов для работы ТПК;
  • определение структуры информационных журналов, форматов полей данных и их связей.
3. Разработка модулей системы на основе ТПК и профилей пользователей. Этот этап выполняется программистами средней квалификации и включает основной объем работ по созданию ПО системы. Этот этап разбивается на следующие шаги:
  • создание структуры для динамического формирования представлений данных и, при необходимости, дополнительных программных модулей для их обработки на основе шаблонов ТПК;
  • заполнение структуры для динамического формирования представлений данных согласно структурам информационных журналов, форматам полей и их связям;
  • предварительное заполнение профилей пользователей согласно функциям и квалификации пользователей.
4. Настройка ПО осуществляется отделом внедрения и сопровождения непосредственно на предприятии и включает в себя следующие шаги:
  • конфигурирование системы под программно-техническую структуру объекта;
  • заполнение эталонов адресов хранения файлов;
  • окончательная настройка профилей пользователей системы согласно функциям и квалификации конкретных пользователей, разграничение прав доступа пользователей к ресурсам, адаптация входных интерфейсов и бланков выходных документов.
Предложенная методика была использована при разработке Автоматизированной информационной системы комбината хлебопродуктов (АИС КХП), успешно эксплуатирующейся на десятках предприятий отрасли хлебопродуктов. Она позволила сократить расходы на создание и сопровождение ПО за счет сокращения размера программного кода, требующего дальнейшего сопровождения, и повышения его гибкости, что позволяет осуществлять адаптацию ПО к изменяющимся услови-ям эксплуатации силами специалистов предприятия без привлечения программистов разработчика. Снижаются требования к квалификации программистов, повышается общая надежность ПО системы за счет использования многократно протестированных компонентов.

Литература.
  1. Липаев В.В., Филинов Е.Н. Мобильность программ и данных в открытых информационных системах. -М.: Научная книга, 1997. - 368 с.
  2. Мамиконов А.Г., Методы разработки автоматизированных систем управления. -М.: Энергия, 1973. - 336 с.
  3. Буч Г., Объектно-ориентированный анализ и проектирование с примерами приложений на С++: Пер. с англ. -М.: -СПб.: Издательство Бином, Невский диалект, 1999. -560 с.: ил.
  4. Zubeck J., Повторное использование объектов в системах укоренной разработки приложений // COMPUTERWEEKLY. - 1998. - №7.- C.24-28
  5. Трофимов С.А., CASE-технологии: практическая работа в Rational Rose. -M: ЗАО Издательство БИНОМ, 2001 г. -272 с.: ил.
  6. Брукс Ф., Мифический человеко-месяц или как создаются программные системы.- Пер. с англ. - СПб.: Символ-Плюс, 1999. - 304 с.: ил.
  7. Бюрер К., От ремесла к науке: поиск основных принципов разработки ПО. (http://interface.ru/rational/science.htm)
 
= Автоматизированная информационная система комбината хлебопродуктов =
© AO "ИНФО" 1996г , http://www.aiskhp.ru