Проблема 2000 года

РЦБ
Издательский Дом

    О проблеме программного обеспечения 2000 г. активно заговорили во второй половине 90-х годов, хотя осмыслена она была куда раньше.
    Суть дела состоит в том, что в информационных системах, созданных в технологически развитых странах мира и активно эксплуатирующихся уже много лет, под обозначение даты было отведено не четыре, а два символа. Причина этого проста - в то время данные подготавливались и хранились на перфокартах. Оперативная и дисковая память была настолько ограниченна и дорогостояща, что для ее экономии использовались все возможности. А поскольку в 50-х и даже в 60-х годах нельзя было предположить, сколько времени будет эксплуатироваться система, то вместо числа 1966 она работала с числом 66. На тот момент такой способ был удобен и эффективен. В дальнейшем с развитием компьютерных технологий карточные системы были переведены на магнитные носители - диски и ленты, но менять способ хранения даты никому не пришло в голову, поскольку причин для этого вроде бы не было.
    До 90-х годов практически никто всерьез не задумывался о проблеме даты, хотя, например, операционная система MVS фирмы IBM работала к тому времени уже 20 лет. И только в 90-х годах, когда были написаны миллионы программ, использующих двухцифровую кодировку даты (многие из них применяются во всем мире и по сей день), стали понятными масштабы катастрофы.
    Какие же трудности могут возникнуть в 2000 г., когда в систему будет заложена дата нулевого года? Поведение ее может стать непредсказуемым. Если же говорить совсем строго, это может произойти уже в 1999 г., поскольку для многих систем, разработанных в конце 60-х, 70-х и даже в 80-х годах, число 99 - это граничное значение при проверке правильности работы системы. Речь идет о достаточно широком круге систем.
    В первую очередь пострадают те из них, что работают с продолжительным периодом времени: пенсионное обеспечение, обработка страховых полисов, обслуживание кредитов. Могут возникнуть проблемы при обработке информации, записанной на личных кредитных карточках в связи с неопределенной датой. Может произойти путаница с подпиской на газеты, оплатой счетов за электроэнергию и многое другое. Кроме того, во многих системах пароль является производной от текущей даты, и работа предприятий, использующих такие системы, может быть просто парализована. Проблемы будут и при работе со складскими программами. Путаница с датой может привести к ложной отбраковке по сроку годности целых партий товаров.
    В коммерческих пакетах типа экономических электронных таблиц, где есть обращение к функциям работы с календарем, скорее всего произойдут ошибочные вычисления, вследствие чего может выйти из строя большинство финансовых систем.
    Естественно, пострадают системы, разработанные для военного комплекса, поскольку практически все они разрабатывались для больших машин. Возникнут сложности и с Интернетом, поскольку связь в нем осуществляется с помощью телефонной сети, которая тоже попадает в группу риска.
    Таким образом, конец XX в. принесет много хлопот фирмам - производителям различных товаров и услуг и почти всем компаниям, поставляющим программное обеспечение.
    По оценкам экспертов, стоимость работ по анализу и преобразованию программного обеспечения во всем мире, так чтобы оно воспринимало дату после 2000 г., - 600 млрд долл. Цифра кажется фантастической, но, если рассмотреть проблему внимательнее, эта сумма перестанет казаться столь уж большой.
    Следует учесть, что основные информационные системы для промышленности развитых стран были написаны в <золотой век> компьютеров архитектуры IBM 360-370 и реализованы на таких языках программирования, как Ассемблер, PL1, и, конечно же, на наиболее популярном языке программирования экономических приложений - Кобол.
    Еще одним фактором, осложняющим дело, является то, что в методических разработках и идеологических подходах, где отдельно оговаривалось подробное изложение исходных текстов программ, на практике встречаются недокументированные версии и различные искажения программных модулей, а зачастую исходные тексты и вовсе утрачены. Кроме того, осуществление крупного проекта предполагало не только наличие генерального разработчика, но и привлечение соисполнителей. Кроме того, возможно, требовалась комплектация системы готовыми функциональными модулями, разрабатываемыми третьими производителями. Но жизнь не стоит на месте, и среди третьих производителей, как говорится, иных уж нет, а те далече...
    Для любой эксплуатируемой коммерческой, военной или государственной системы, имеющей многолетнюю историю, переделывание заново практически немыслимо. Да это и неоправданно дорого. Поэтому для таких систем стоит задача реинжиниринга. На практике значительно проще оказалось производить новые программные продукты, позволяющие анализировать исходные тексты программ или загрузочные модули для создания их эквивалентов, затем отыскивать <дефектные> точки, в которых используется двухцифровой формат даты, и заменять их на формат, позволяющий перешагнуть 2000 г. Понятно, что использование точек вхождения даты влечет за собой использование производных точек программных модулей, в которых дата может использоваться, например, как константа для различного рода вычислений.
    Программные технологии шагнули далеко вперед, и некогда столь популярные при разработке систем языки программирования становятся экзотикой (другое дело, оправданно или нет), и, как следствие, возникает дефицит специалистов, способных мыслить категориями этих языков. Требуется переподготовка кадров под проблему 2000 г. Не следует думать, что эта проблема касается исключительно систем, работающих на мэйнфреймах, в большинстве персональных компьютеров ранних выпусков в ПЗУ для обозначения даты отведено два символа.
    Аппаратура - только часть проблемы. Даже в самом современном программном обеспечении персональных компьютеров, где декларируется использование 4-символьной даты, как показало независимое тестирование, в коде под дату отведены практически все те же два символа. Беспокойство, охватившее собственников действующих прикладных систем, вызвало массированный поток публикаций в самых престижных мировых изданиях, но на государственном уровне проблема 2000 г. в полном объеме не решена даже в США.
    Само существование проблемы 2000 г. привело к возникновению новых компаний, специализирующихся на ее решении, и формированию специализированных подразделений в ряде крупных компаний.
    В особенно выгодном положении оказались те фирмы, которые традиционно специализировались на работе с программным обеспечением мейнфреймов IBM или работающие в области консультационных услуг для организаций, использующих эти мэйнфреймы.
    В общем виде решение проблемы 2000 г. требует не только технической и организационной поддержки, но и достаточно мощной методологии и бизнес-консалтинга.
    Компания Sapiens наряду с други-ми компаниями предлагает интегрированное решение проблемы 2000 г., в основе которого лежит уникальная технология, базирующаяся на использовании принципов искусственного интеллекта, что собственно и является <изюминкой> подхода Sapiens. Это решение реализовано в пакете инструментальных средств Sapiens Y2K.
    Для Sapiens Y2K ключевой проблемой являются данные, поэтому на первом этапе все данные преобразуемой системы отображаются в центральном репозитории - базе знаний Sapiens. Отображение выполняется специализированными средствами отображения Y2K. Это позволяет наиболее эффективно начать разработку <подозрительных> мест. В процессе отображения выполняется просмотр программ и предложений языка управления заданиями (JCL) и генерация перекрестных ссылок и гиперсвязей.
    Для локализации <дефектных> мест инвентаризируются все структуры данных и интерфейсов приложений. Затем создается первичный список поиска полей с датами. Для этого просматриваются и отмечаются все поля данных, содержащие дату для возможного дальнейшего преобразования с помощью <плавающего> окна или расширения. Просмотр выполняется анализатором Y2K, использующим базу знаний. При отметке каждого <подозрительного> поля ему присваивается фактор сложности. Фактор сложности - это величина, значение которой определено эмпирически, исходя из опыта работы, накопленного в базе знаний Y2K. Все поля, связанные с первичным, помечаются как вторичные <подозрительные> области и им также присваивается фактор сложности. Работа осуществляется в интерактивном режиме. По мере накопления <подозрительных> областей анализатор оценивает их влияние на программный комплекс.
    Средства оценки генерируют две серии простых для сравнения отчетов, содержащих детальный анализ существующих условий и альтернативные планы коррекции, которые могут быть проанализированы разработчиком. Первая серия отражает общее количество и точное расположение мест, подлежащих корректировке, описание конкретных шагов корректировки и рекомендации по оптимальному использованию инструментальных средств Y2K для этих целей. Вторая серия отчетов содержит не столько данные, тесно связанные с корректировкой конкретных мест программного обеспечения средствами Y2K, сколько общую информацию по способам решения возникшей проблемы (если они существуют), временные и стоимостные оценки применения каждого решения.
    Корректировка кода выполняется в интерактивном режиме с помощью конвертера Y2K. Используя базу знаний и результаты анализа, разработчик имеет возможность выделять нужные фрагменты исходного текста программы и, используя оперативную подсказку, корректировать их.
    В общем виде пакет инструментальных средств Y2K - это:

  • методология, включающая методику и технологию, разработанную группой консультантов на базе большого опыта работы над проектами сложных информационных систем (в том числе и в аспекте проблемы 2000 г.);
  • база знаний инструментальных средств, представляющая собой центральный репозиторий на базе центрального программного продукта фирмы Sapiens - ObjectPool, которая содержит всю необходимую информацию о взаимосвязях полей, подлежащих корректировке (по всему актуальному коду), и информацию об управлении проектом в целом;
  • средства отображения данных, обеспечивающие общий интерфейс к часто встречающимся (в плане проблемы 2000 г.) методам доступа к данным (DB2, VSAM, DL1, IMS), а также возможность разработки частных интерфейсов к большому числу других методов доступа (средства отображения данных обеспечивают не только определение <подозрительных> областей, но и позволяют получить доступ к данным для корректировки);
  • средства отображения конфигурации, позволяющие отображать различные составляющие прикладной системы (данные, программы, процедуры и т.д.) в базе знаний Y2K, группировать все компоненты в приложения, обеспечивая для них перекрестные ссылки, определять недостающие файлы, необходимые для полной реализации проекта Y2K;
  • анализатор даты, обеспечивающий ориентированные на пользователя шаблоны <подозрительных> строк с датой, типов данных и т.п. для просмотра и анализа приложений;
  • интеллектуальные инструментальные средства, включающие специализированный текстовый редактор с рядом специфических функций, который обеспечивает удобную навигацию по строкам исходного кода системы и гиперсвязи между всеми полями и определениями данных (с помощью этого редактора можно создавать повторно используемые модели исправлений для дальнейшей работы);
  • конвертер, автоматически преобразующий структуры данных и поля для решения проблемы 2000 г. и потенциально возможных проблем, например введения единой евровалюты;
  • синхронизатор, обеспечивающий сопровождение разработки параллельно с корректировкой данных;
  • программное средство <Машина времени>, позволяющее использовать для моделирования в приложениях любые будущие и прошедшие даты без комплексной прокрутки приложений на дорогом оборудовании и без специальной подготовки среды обработки или изменения кода приложений;
  • интегрированные средства тестирования, работающие на базе репозитория, которые существенно упрощают фазу тестирования и используют изменения, внесенные в структуры данных файлов и описаний интерфейсов (предполагаемые изменения проверяются на достоверность, контролируется корректировка полей, содержащих дату, результаты тестирования копятся в базе знаний Y2K);
  • менеджер проектов, располагающий информацией о компонентах системы (хранится в базе знаний) и обеспечивающий все средства, необходимые для работы над проектом, - от уровня отдельных компонентов (менеджер позволяет разработать конкретные планы, распределить людские и машинные ресурсы, получить отчеты о ходе разработки проекта, имея уверенность в управляемости и контролируемости разработки).
        Несколько особняком, но в русле решения проблемы 2000 г., стоит еще один программный продукт фирмы Sapiens - Falcon2000Є. Это конвертер, позволяющий переводить программные тексты, написанные на языке Ассемблер-370 в программы на ANSI Си, снабженный интерактивным анализатором для решения проблемы 2000 г. В силу особенностей программирования на языке Ассемблер-370 решение проблемы 2000 г. для соответствующих программных модулей - довольно трудоемкая задача.

  • © ЗАО "Группа РЦБ".