Задачи и процессы переноса программ и данных на иные платформы

Многочисленное дублирование, по существу, одних и тех же программных средств и информации баз данных на подобных или разных платформах сопряжено со значительными нерациональными затратами на их разработку и с увеличением длительностей создания информационных систем. Для их сокращения необходимы организация, технология и инструментарий, обеспечивающие эффективный перенос готовых программ и данных в пределах одной операционной и аппаратной среды или с иных платформ. Для этого создаются методологии и технологии переноса, а также стандарты, поддерживающие процессы и разработку переносимых программ и данных. В каждом конкретном случае необходима оценка рентабельности переноса с учетом ряда факторов, характеризующих мобильность программ и данных и их среды, по сравнению с полной разработкой аналогичного программного продукта на новой платформе. Использование методического, технологического, алгоритмического и программного задела из предшествующих проектов обеспечивает многократное повышение производительности труда разработчиков систем, сокращение сроков их создания и высокое качество проектов. Под мобильностью переносимостью понимаются:

— процессы переноса программ и данных из одной аппаратной, операционной и пользовательской среды в иную по архитектуре и характеристикам среду с сохранением их целостности или небольшими изменениями функций системы;

— процессы повторного использования готовых программных компонентов и средств, а также информации баз данных возможно в пределах одной архитектуры аппаратной и операционной среды для расширения и изменения функций системы и программного продукта.

Основным стимулом развития и применения мобильных программ и данных явилась необходимость улучшения экономических показателей при создании и эксплуатации сложных систем, а также повышения их качества. Объективные требования заказчиков и пользователей по совершенствованию и снижению затрат на информатизацию объектов и процессов отразились на формировании основных целей создания и применения мобильных программ и данных, которые состоят в следующем:


15.3. Задачи и процессы переноса программ и данных на иные платформы

— обеспечение сохранения инвестиций, вложенных в реализованные и апробированные программные продукты и базы данных, в процессе развития, модификации и появления новых требований к ним, а также при совершенствовании архитектур и возрастании ресурсов и функций аппаратных и операционных платформ;

— снижение трудоемкости, стоимости и длительности непосредственной разработки сложных распределенных программных средств и баз данных;

— обеспечение высокого качества, надежности и безопасности функционирования программных средств и баз данных в системах;

— обеспечение возможности эффективного по экономическим показателям и качеству переноса апробированных программных продуктов, разработанных должным образом, с минимальными изменениями на различные операционные системы и аппаратные платформы;

— экономная реализация совместной работы и расширения функций ПС (интероперабельность) во взаимодействии с другими программами и данными при решении единой целевой задачи на различных локальных и распределенных платформах;

— обеспечение взаимодействия с пользователями в унифицированном стиле, облегчающем им переход к использованию новых или с расширенными функциями системам и программным продуктам (мобильность пользователей);

— снижения зависимости заказчиков конкретных систем от определенных поставщиков аппаратных и операционных платформ, а также от разработчиков некоторых программных продуктов.

Для достижения перечисленных целей в обеспечении мобильности ПС требуются различные ресурсы при их реализации. Потребность в конкретных ресурсах и рентабельность их использования зависят от ряда параметров, которые образуют широкий спектр ситуаций для анализа и применения свойства мобильности программ и данных. Такими ресурсами являются:

— трудовые затраты специалистов и время на создание, приобретение и эксплуатацию инструментальных средств, автоматизирующих разработку и сопровождение мобильных ПС и БД;

— трудовые затраты специалистов и время на создание дополнительных интерфейсных компонентов в программах и данных, обеспечиваю-


Лекция 15. Сопровождение и мониторинг программных средств

щих их эффективную мобильность на определенные типы платформ, например, в соответствии с концепцией и стандартами открытых систем;

— дополнительные ресурсы памяти и производительности вычисли
тельных средств, необходимые для реализации и функционирования ком
понентов в программах и данных, обеспечивающих их высокую мобиль
ность, например, для реализации стандартизированных интерфейсов с
внешней и внутренней средой.

Задачи повторного использования и переноса программ и данных охватывают:

— встраивание готового программного средства и информации базы данных в создаваемую новую систему при условии, что их поставщики гарантируют функционирование на выбранной платформе;

— перенос программ и данных с платформ, в среде которых они были ранее реализованы, на выбранную для системы новую платформу;

— обеспечение доступа к информационным ресурсам других распределенных систем и сетей.

При переносе свойства программных продуктов практически всегда изменяются, что следует учитывать при анализе целесообразности переноса, а также могут быть необходимы их отладка, испытания и сертификация в новой среде. Следует также учитывать, что любой перенос связан с затратами, которые чаще всего требуются для:

— системного анализа рентабельности переноса на иную или ту же платформу и оценки технико-экономических показателей этого процесса;

— реализации самого процесса переноса и интеграции с операционной и внешней средой на новой аппаратной платформе или в существующей среде;

— квалификационного тестирования, испытаний и комплексной проверки функционирования программного продукта в новом окружении или на новой платформе;

— сертификации перенесенного на новую платформу продукта и функционирующего в иной операционной и внешней среде;

— корректировки или дополнения эксплуатационной и технологи
ческой документации.

Два последних вида работ могут выполняться в процессе создания мобильных ПС и БД и отсутствовать при непосредственной реализации переноса. Однако и в этом случае следует избегать излишнего оптимизма


15.3. Задачи и процессы переноса программ и данных на иные платформы

при оценке затрат на перенос, так как при создании мобильных ПС трудно предусмотреть все возможные особенности различных платформ и внешней среды, для которых декларируется мобильность конкретных средств. Эти особенности и возможное расширение окружающих прикладных программ и данных могут преподносить неприятные сюрпризы нестыковки, для ликвидации которых потребуются дополнительные затраты.

Интеграционные тенденции развития современных ПС и БД связаны с сочетанием в них задач, относящихся к разным классам. Это определяет необходимость применения разных инструментальных средств для реализации программ, относящихся к разным классам, а также необходимость обеспечения функционирования создаваемых разными методами программ в единой целевой системе. Анализ мобильности программ и данных в системах касается различных классов задач, однако далее, для определенности, конкретные методы и средства обеспечения мобильности рассматриваются преимущественно применительно к задачам обработки данных в распределенных системах. При этом объектами анализа переносимости являются:

— программные модули и функциональные компоненты ПС;

— готовые (покупные) программные продукты и пакеты прикладных программ;

— крупные программные комплексы определенного функционального назначения;

— системы управления базами данных;

— файлы и информационные массивы баз данных;

— электронные документы на программы и данные.

Основные особенности повторного использования программ и данных в системах определяют две группы задач: структурирование программ и данных на стадиях анализа и проектирования систем, предполагающее последовательную декомпозицию заданных функций системы, что позволяет выделять компоненты, которые могут быть применены повторно как готовые, и описание их взаимодействия с другими компонентами; а также сборку или интеграцию компонентов и комплексное, квалификационное тестирование системы в целом. На обеспечение мобильности программ и данных направлена значительная часть методов и средств современной программной инженерии. Четкое разделение результатов работ,


Лекция 15. Сопровождение и мониторинг программных средств

выполняемых на каждой стадии жизненного цикла ПС, и определенные условия переходов между этапами ЖЦ позволяют выделить следующие уровни переноса и повторного использования ПС:

— модели предметной области и спецификаций требований, возможно, реализуемые разными способами на этапе проектирования ПС;

— проектные спецификации требований на этапе разработки ПС;

— исходные тексты программ на языках программирования, применявшихся при разработке повторно используемых программных компонентов;

— объектные коды программ, когда обеспечена структурная, аппаратная совместимость между исходной и целевой (реализующей) платформами;

— структуры файлов и информация баз данных;

— тесты проверки функционирования компонентов, тесты проверки соответствия повторно используемых программ стандартизированным интерфейсам, комплексных тестов.

Процессы переноса программ и данных на иные платформы, выбор методов обеспечения мобильности ПС и характеристики используемых ресурсов для их реализации, прежде всего, зависят от параметров компонентов, предполагаемых для переноса. Ресурсы требуются в той или иной степени на двух фазах процессов переноса программ и данных:

при создании потенциально переносимых ПС и БД, когда свойства эффективной мобильности предусматриваются и реализуются при их разработке и определяются возможные платформы и области повторного использования таких программ и данных;

при непосредственной реализации с соответствующими затратами процессов переноса ПС и БД, в различной степени подготовленных для переноса на иные платформы или для повторного использования на той же платформе.

При анализе первой фазы следует учитывать, что к настоящему времени накоплен большой объем комплексов и компонентов программ и информации в базах данных, при создании которых не учитывалась возможность их последующего переноса на иные платформы — так называемые унаследованные системы. Более того, из-за ограниченных ресурсов вычислительных средств при реализации крупных функциональных задач


15.3. Задачи и процессы переноса программ и данных на иные платформы

программы и данные в таких системах обычно в максимальной степени адаптировались при разработке к особенностям и параметрам ЭВМ для эффективного использования их ресурсов. Предельным случаем могут служить: бортовые ЭВМ, с соответствующими ПС, для авиационных, ракетных и космических систем, в которых ограничения веса и габаритов аппаратуры вызывают повышенные требования к эффективности использования вычислительных ресурсов.

В зависимости от степени программной совместимости между исходной и новой, целевой платформами можно рассматривать следующие варианты применения мобильности:

— при полной несовместимости платформ может потребоваться разработка всего комплекса программ заново (возможно, с использованием имеющихся спецификаций требований и методов реинжениринга);

— при несовместимости языков программирования или диалектов одного языка требуется переписывание программ ПС на том языке, который принят для проекта новой системы (возможно, с использованием имеющихся проектных спецификаций и встраиваемых повторно используемых компонентов);

— при несовместимости аппаратно-программных платформ, поддерживающих один и тот же язык программирования, требуется перекомпиляция текстов ПС на новой платформе (возможно, с автоматической оптимизацией, обеспечиваемой применяемой системой программирования);

— при обеспечении двоичной совместимости архитектуры исходной и новой платформ перенос достигается непосредственным исполнением ПС на новой платформе (возможно, использующей средства эмуляции некоторых компонентов архитектуры исходной платформы).

Задачи и объекты, связанные с мобильностью ПС и БД в системах и подлежащие рассмотрению при выборе методов и средств обеспечения переносимости, включают:

— унифицированные протоколы и интерфейсы взаимодействия ПС
между собой, с пользователями, с внешней средой, к которым относятся,
прежде всего, интерфейсы прикладного программирования, определяемые
выбранной архитектурой среды системы, включающей интерфейсы опе
рационных систем, сетевые протоколы, спецификации служб организации
процессов, функционирующих поверх операционных систем;


Лекция 15. Сопровождение и мониторинг программных средств

— языки программирования и инструментальные средства, поддерживающие создание переносимых ПС и БД систем и средства программной инженерии — CASE-системы;

— языки баз данных и системы управления базами данных;

— форматы данных, форматы внешних электронных сообщений;

— форматы переносимых электронных документов.
Эффективность выбора и выделения компонентов для повторного

использования и переноса на другие аппаратные и операционные платформы зависит, прежде всего, от их размера и от кратности возможного применения. При разработке ПС небольшого масштаба (порядка тысячи строк исходного текста) поиск и подбор готовых компонентов для их применения в новом ПС чаще всего оказываются нерентабельными. Таким образом, существует некоторый диапазон малых размеров программ и информации баз данных, для которых нецелесообразно применять ранее созданные программы и массивы данных. По этому параметру можно выделить методологии переноса:

— комплексов программных и информационных компонентов, а также операционной среды в целом, решающих все функциональные задачи определенной сложной системы и полностью сохраняющих свою структуру на новой аппаратной платформе;

— достаточно автономных, крупных ПС и массивов информации баз данных, решающих дополнительные, функциональные задачи во взаимодействии с имеющимися на новой аппаратной платформе операционными средствами;

— отдельных модулей или небольших функциональных компонентов программ и информационных массивов данных для расширения и совершенствования функций, ранее реализованных функциональных задач на той же аппаратной и операционной платформах.

Проектирование систем с использованием повторно применяемых компонентов становится особенно рентабельным для крупных ПС, содержащих сотни или тысячи модулей, и с большими объемами обрабатываемой информации. Кратность применения компонентов также значительно влияет на эффективность их переноса. Особенно тщательную отладку, унификацию интерфейсов и оформление документации целесообразно проводить для тех компонентов, которые в перспективе будут использоваться


15.3. Задачи и процессы переноса программ и данных на иные платформы

многократно различными специалистами, в различных вариантах ПС и на той же или различных платформах.

Наиболее широко применяется перенос программ на ЭВМ с иной архитектурой и операционной средой на уровне исходных текстов программ и данных на алгоритмических языках программирования высокого уровня. На практике приходится встречаться с множеством ситуаций переноса программ и данных между несовпадающими аппаратными и операционными платформами, а также с различающимися степенью мобильности исходных ПС и БД, подлежащих переносу, и применяемыми технологиями их создания. Это разнообразие ситуаций определяет широкий диапазон значений эффективности переноса по потребным ресурсам на его проведение и выбор рациональных методов реализации. Поэтому в каждом конкретном случае целесообразно проводить факторный и технико-экономический анализ эффективности переноса и планировать его проведение.

Процессы переноса программных средств и баз данных регламентируются рядом процедур и документов, стандартизированных в ISO 14764 (п. 8.5), который детализирует требования к процессам переноса, определенным в базовом стандарте на жизненный цикл ПС (см. ISO 12207, п. 5.5.5). Специалисты, которые проводят перенос по рекомендациям этих стандартов, должны разработать план переноса, известить пользователей, обучить персонал, выдать предупреждения о завершении переноса, оценить влияние новой версии и внешней среды и архивировать соответствующие данные. Если систему или программный продукт (включая данные) переносят из старой в новую эксплуатационную среду, следует обеспечить, чтобы программный продукт и данные были корректно изменены при переносе. Для этого необходимо решить следующие основные задачи: определить все добавляемые или изменяемые программные компоненты, продукты или данные; проверить соответствие реализации конкретных задач спецификациям требований заказчика на перенесенную версию ПС и БД.

Для контроля переноса системы необходимо разработать, документально оформить и выполнить план переноса программного продукта. К планируемым работам могут быть привлечены пользователи. В содержание плана должны быть включены:

— анализ и формирование требований к результатам переноса;


Лекция 15. Сопровождение и мониторинг программных средств

— разработка (или приобретение) инструментальных средств для выполнения переноса;

— настройка программного продукта и данных к новым условиям и среде эксплуатации;

— выполнение процессов переноса;

— верификация и тестирование результатов переноса;

— обеспечение последующей поддержки прежней среды и программного продукта.

Разработка плана переноса должна быть основана на исходных данных и требованиях заказчика или потенциальных пользователей. После завершения сопроводителем планирования переноса заказчику и пользователям должно быть направлено уведомление о планах и работах по переносу программного продукта и базы данных. В содержание уведомления целесообразно включить: объяснение того, почему прежнюю среду, ПС нельзя больше сопровождать и поддерживать; описание новой среды и программного продукта с указанием даты, с которой они доступны для заказчика и пользователей.

Сопроводитель должен также представить пользователям план процедуры и график (Программу) переноса и решить следующие задачи:

— определить все компоненты, затрагиваемые переносом;

— отработать обратную связь и информацию с заказчиком и пользователями;

— определить специфику пользователей;

— опубликовать график (Программу) переноса.

Для плавного перехода в новую среду пользователями параллельно могут выполняться работы в прежней и новой среде с соответствующими версиями ПС и БД. Сопроводитель должен выполнить следующие работы по обучению персонала:

— определить требования по обучению для реализации переноса;

— запланировать реализацию требований по обучению переноса;

— выполнить проверку результатов обучения после выполнения переноса;

— обновить и откорректировать планы обучения.

После завершения запланированного переноса должны быть посланы соответствующие уведомления всем заинтересованным сторонам. Все связанные с прежней средой документы, журналы регистрации и програм-


15.3. Задачи и процессы переноса программ и данных на иные платформы

мы следует поместить вархивы. После завершения переноса целесообразно провести итоговый анализ для оценки влияния перехода к новой аппа-ратно-операционной среде на различные аспекты эксплуатации перенесенного программного продукта. Результаты анализа должны быть разосланы соответствующим заинтересованным сторонам для информации, руководства и использования в работе.

Отчетными результатами работ по переносу ПС и БД являются:

— перенесенный программный продукт на новой платформе;

— план реализации переноса;

— инструментальные средства для переноса;

— извещения о намерениях по переносу;

— уведомление о завершении переноса;

— архивные данные процессов и результатов переноса. Предельным по сложности и трудоемкости случаем является перенос

унаследованного комплекса программ и информации базы данных на несовместимую, совершенно новую аппаратную и операционную платформу. При этом может требоваться сохранение большой накопленной информации базы данных и пользовательского интерфейса. В этом случае могут сохраняться и переноситься алгоритмы или спецификации задач обработки информации, а также должен быть специально организован перенос накопленной информации базы данных. Изменение платформы и расширение ее параметров может привести к целесообразности модернизации алгоритмов. В результате будет создаваться, по существу, новая система с использованием общего системного задела и информации баз данных.

Существует множество пакетов мобильных прикладных программ, созданных с применением современного инструментария. Эти средства автоматизации разработки ПС и БД резко упростили процессы переноса и свели их в ряде случаев к автоматизированной трансляции и адаптации выбранных пакетов на платформы определенных типов. При этом технология создания ПС и БД путем переноса их на другие аппаратные и операционные платформы претерпела качественное изменение и активно развивается на основе концепции и стандартов открытых систем (см. лекцию 3).

При анализе баз данных, как объектов переноса, целесообразно рассматривать два компонента: системы управления данными (СУБД) и


Лекция 15. Сопровождение и мониторинг программных средств

совокупность данных, упорядоченных по некоторым правилам. Простейший вариант переноса информации БД на иную аппаратную платформу реализуется, когда на обеих платформах имеются апробированные СУБД одного типа и версий. При этом считается, что отсутствуют дополнительные технические ограничения для размещения всей информации БД и нет необходимости изменять и адаптировать ее структуру на новой аппаратной платформе. В этом случае основные работы сводятся к переносу всего объема информации БД и к испытаниям после этого, функционирования СУБД на новой платформе, на соответствие документации исходной версии СУБД с перенесенной информацией. При этом трудоемкость и длительность создания БД на новой платформе определяются в основном работами по переносу информации БД и испытаниями новой системы.

Однако чаще последующий перенос БД не предусматривается при ее первичном формировании и наполнении и возникает после длительной эксплуатации унаследованной системы. Причиной обычно являются неудовлетворительные показатели качества функционирования БД, потребность в дополнительных ресурсах памяти и производительности ЭВМ, недостаточное время реакции на запросы данных. При этом возможна крайняя ситуация, когда необходимо перенести информацию БД с не полностью известной структурой и связями под управление совершенно другого типа СУБД на иную платформу, с большими ресурсами и возможностями. Сложность, трудоемкость и длительность переноса БД в этом случае значительно возрастают и требуют тщательного планирования и организации работ, приближающихся к созданию совершенно новой БД.

Затраты и сложность переноса информации базы данных зависят прежде всего от ее характеристик, которые отражают форматную, лингвисты-ческую и физическую совместимость содержания переносимой БД между рассматриваемыми платформами:

— форматная совместимость характеризуется степенью соответствия данных в БД анализируемых платформ требованиям стандартов на форматы представления данных для документальных, фактографических, словарных или иных баз данных;

— лингвистическая совместимость определяется степенью использования в рассматриваемых БД единых лингвистических средств (классификаторов, рубрикаторов, словарей), формализованных соответствующими стандартами;


15.4. Ресурсы для обеспечения сопровождения и мониторинга программных средств

— физическая совместимость заключается в степени соответствия кодировки информации БД одинаковым стандартам на машиночитаемые носители информации.

Если одновременно с информацией БД переносятся полностью программные средства СУБД, то это обеспечивает сохранение функций управления данными. Однако может потребоваться перенос информации БД на иную аппаратную платформу с другим типом СУБД. Тогда задача переноса усложняется.

Для средних и крупных проектов системный анализ переноса целесообразно завершать оценкой суммарной трудоемкости и длительности переноса программного продукта и их сопоставлением с полной разработкой ПС и БД при некотором использовании алгоритмического и системного задела. Кроме того, полученный комплекс программ следует оценивать по использованию памяти и производительности новой ЭВМ. Такую оценку необходимо проводить с учетом возможного тиража ПС и перспективы длительной его эксплуатации. Ориентация на снижение затрат при переносе программ зачастую отражается значительными потерями в эффективности эксплуатации системы вследствие увеличения объема программ в объектном коде и снижения их производительности, особенно когда программный продукт длительно используется на многих экземплярах ЭВМ в реальном времени.