Изменение данных

До сих пор все обсуждаемые изменения касались в основном программ и систем. Одна­ко в некоторых случаях придется столкнуться с проблемой изменения данных. Хранение, структура и формат данных, с которыми работает наследуемая система, должны измениться, чтобы соответствовать изменениям в программном обеспечении. Изменение дан­ных — это процесс анализа и реорганизации структуры данных, а иногда еще и изменение значений системных данных.

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

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

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

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

Как и в случае с реинженирингом программ, изменение данных имеет свои подходы и методы, которые перечислены в табл. 1.

Таблица 1. Методы изменения данных

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

Рис.7. Миграция данных

Проблемы с данными, возникающие в наследуемых системах, состоящих из нескольких программ коллективного пользования:

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

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

3. Проблема организации записей. Записи, относящиеся к одному и тому же элементу, в разных программах могут быть представлены по-разному. Обычно эта проблема возникает с такими языками программирования, как COBOL, где физическая орга­низация записей определяется программистом. В языках типа C++ или Java такой проблемы не существует, так как физической организацией записей занимается компилятор.

4. Проблема констант. Константы (литеральные величины), например налоговые ставки, часто определены в программе, что затрудняет создание символьных ссылок на них.

5. Отсутствие словаря данных. Часто отсутствует словарь данных, в котором отображе­ны применяемые имена, их представления и использование.

Если определения данных несовместимы или противоречивы, их значения могут хра­ниться и обрабатываться некорректно. Примеры несовместимости и противоречивости данных приведены в табл. 2. После изменения определений данных их значения преобразуются так, чтобы соответствовать новой структуре данных.

Таблица 2. Примеры несовместимости и противоречивости значений данных

Данные Описание
Различные значения по умолчанию В различных программах одному и тому же логическому элементу данных могут быть присвоены разные значения по умолчанию. Это вызывает трудности в работе программ, которые обрабатывают эти данных. Особая проблема: недопустимое значение присваивается по умолчанию как допустимое
Различные единицы измерения Разные программы представляют одинаковую информацию в разных единицах измерения. Например, в США и Великобритании вес может измеряться в фунтах (если взять более старую программу) и в килограммах (в современных системах). Проблема такого же рода возникла в Европе с введением единой валюты. Пришлось изменять системы, рассчитанные на работу с национальной валютой, для того чтобы они смогли работать с евро
Несовместимость правил проверки данных В разных программах различные правила проверки данных. Данные, приемлемые для одной программы, могут не восприниматься другой. Особая проблема возникает с архивными данными, которые не обновлялись в соответствии с изменениями правил проверки
Противоречия в семантике представлений Программы могут присваивать значения в зависимости от способа представления элементов. Например, в некоторых программах текст в верхнем регистре означает адрес. Программы используют различные соглашения о представлении данных и поэтому могут не воспринимать данные, хотя они и будут верными
Несогласованность при обработке отрицательных величин В некоторых программах величинам, которые должны быть всегда положительными, не может быть присвоено отрицательное значение. Другие программы при предъявлении отрицательных величин могут конвертировать их в положительные и т.д.

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

На первом этапе процесса изменения данных модифицируются определения данных. На сами данные такая модификация не оказывает влияния. Чтобы автоматизировать этот процесс, можно использовать системы сопоставления с образцом. Несмотря на это, ручной работы над данными практически невозможно из­бежать. Если ставится цель улучшить понимаемость определений данных, то работу мож­но остановить на этой стадии. Если же имеются проблемы со значениями данных, опи­санные выше, следует начать второй этап процесса изменения данных.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: