3.1. Обновление
Назначение данного раздела - очертить преимущества и недостатки каждого приема и помочь организаторам проектов в определении самой лучшей стратегии обновления.
Обновление является процессом, с помощью которого в проекте 2000 года решаются проблемы структуры даты. Существует в основном четыре типа приемов обновления: расширение, работа с окнами, кодирование или сжатие и последовательная дата (serial date).
Проблемы
- Определение полей даты и переменных, которые должны соответствовать 2000 году, в качестве входных для процесса обновления.
- Процесс обновления предполагает, что исходный код доступен для всех Приложений, требующих обновления.
- Приложения разбиваются на обновляемые модули. Неиспользуемый исходный текст ("мертвый" код) не обновляется.
Приемы
Внутри приложения наилучшие результаты может дать один прием или их комбинация.
- Приемы расширения:
четырехзначный формат; односимвольный код столетия: внешний код столетия; вложенный код столетия.
- Приемы работы с окнами:
фиксированное окно; скользящее окно.
- Приемы кодирования или сжатия.
- Прием последовательной даты.
Приемы расширения
Когда следует использовать приемы расширения
Когда даты переходят границу 100-летнего окна и столетие не может быть получено недвусмысленно (например, в дате рождения).
Для элемента даты, который является частью ключа или индекса.
В относительно новой системе, которая может иметь долгую жизнь.
В системе большого объема, где на время отклика в режиме он - лайн может неблагоприятно влиять получение столетий программным путем.
В приложениях с многочисленными интерфейсами к другим приложениям, внутренним или внешним, особенно когда внешний источник диктует использование четырехзначной даты в качестве условия ведения бизнеса.
Когда технологией является база данных, контролируемая системой управления базами данных (СУБД); структуры таблицы / записи изменяются однажды, а ссылка на них содержится в многочисленных приложениях.
Когда следует избегать приемов расширения
Когда стратегией преобразования является постоянное сопровождение, непрактично делать изменения структур данных специально.
Когда имеется ограниченное устройство хранения прямого доступа (DASD) / дополнительная память, чтобы сохранить столетия.
Когда приложение имеет короткий жизненный цикл и расширение поля является дорогостоящей альтернативой.
В случаях только отображения, когда двузначная дата не будет интерпретироваться двусмысленно (например, дата формирования отчета).
Четырехзначный формат
Преимущества
Обеспечивает четырехзначный формат года; рассматривается как полное, постоянное и очевидное решение.
Использует формат ISO (YYYY - MM - DD) по умолчанию.
Обеспечивает в настоящее время усиленную защиту против потенциально неприемлемых решений, если отображаемые даты выборочно игнорируются.
Недостатки
Во всех случаях требуется преобразование года из двузначного формата в формат с четырьмя цифрами.
Смежные поля в макете поля даты переопределяются, и размеры записей увеличиваются.
Требуется увеличение используемой DASD / памяти.
Односимвольный код столетия
Внешний код столетия
Преимущества
Формат базы данных может быть преобразован, а программы модифицированы позже.
Обеспечивает простое решение для преобразования данных в новый формат.
Недостатки
Требуется дополнительная логика для программ, выполняющих вычисления даты.
Последовательность подборки некорректна, если поле даты используется как ключ, пока к ключу не добавлен код столетия.
Размеры записей должны увеличиться.
Требуется увеличение используемой DASD / памяти.
Встроенный код столетия
Преимущества
Сохраняется правильное упорядочение данных.
Не требуется дополнительного дискового пространства.
Недостатки
Данные года должны быть преобразованы из двузначного в трехзначный формат.
Требуется преобразование данных формата YY в формат CYY.
Приемы работы с окнами
Когда следует использовать прием окон
Когда расширение поля будет слишком дорогостоящим, если даты, как ожидается, останутся в пределах 100-летнего периода.
Когда недостаточно времени, чтобы выполнить расширение четырехзначного поля.
При преобразовании приложения, замену которого первоначально планировалось выполнить до критической точки, а время истекает.
Как быстрое решение, когда дефектные программы изменяются как часть продолжающегося сопровождения.
Когда не следует использовать прием окон
При обработке дат со значениями, выходящими за пределы 100-летнего периода.
При частой обработке дат; постоянное формирование дат может создать недопустимую дополнительную нагрузку.
При неуверенности в том, что одно и то же правило формирования будет использоваться при формировании столетия несколькими приложениями для одного и того же элемента даты.
Когда рассматриваемая дата является частью ключа или используется в отсортированном наборе данных в некоторой системе управления базами данных.
Фиксированное окно и скользящее окно
Преимущества
Нет необходимости расширять формат года с двузначного до четырехзначного.
Обеспечивает формат года с четырьмя знаками для обращения к данным.
Различает годы разных столетий, используя двузначный формат (исходя из предположения, что обрабатываемые годы находятся в 100-летнем диапазоне).
Полезно в том случае, если отдельная программа выводится из использования поэтапно; временное решение.
Недостатки
Потенциальные риски существуют, когда / если функционирование программного приложения требует обрабатывать годы вне 100-летнего диапазона.
Влияние на производительность прямо пропорционально количеству обрабатываемых дат вследствие дополнительной нагрузки преобразования года из двузначного формата в четырехзначный.
Для программ, использующих метод фиксированного окна, может потребоваться ежегодное обновление вручную.
Все программы, принимающие выходные данные, получаемые с помощью приема фиксированного окна, должны использовать те же самые предположения (например, окна текущей даты, прошлой даты и будущей даты).
Приемы кодирования или сжатия
Преимущества
Нет необходимости преобразовывать год из двузначного в четырехзначный формат данных.
Различают годы разных столетий, используя двузначный формат года.
Юлианский формат с флагом (CYYDDD) использует С как признак столетия.
Недостатки
В зависимости от представления данных схема может применяться к ограниченному диапазону.
Все программы, использующие эту схему и обращающиеся к результату двухсимвольного преобразования, должны изменяться одновременно.
Вследствие преобразования данных влияние на производительность может быть прямо пропорциональным количеству дат, обрабатываемых конкретным приложением.
В зависимости от выбора реализованного представления данных может происходить неправильная сортировка данных, если не расширена логика программирования.
Закодированные даты требуют преобразования всякий раз при работе с данными; присутствие закодированных дат добавит к задачам другой уровень сложности.
Данные должны быть преобразованы прежде, чем они смогут отображаться в григорианском формате; некоторые закодированные данные могут просматриваться только в шестнадцатеричном формате.
Прием последовательной даты
Преимущества
Во многих случаях форматы записи не должны изменяться.
Недостатки
Он сложен; должен быть хорошо задокументирован.
Может влиять на производительность при преобразовании дат из последовательного значения или в него.