Ошибки проектирования информационных систем

Проектирование информационных систем

Часть 2. Этапы разработки проекта: определение стратегии тестирования
и проектирование

Определение стратегии тестирования

Проектирование

   Журнал проектирования

   Планирование этапа проектирования

   Перепланирование

Ранние стадии

   Рассмотрение результатов анализа

   Семинары

   Критические участки

   Оценка ограничений

   Определение целевой архитектуры

   Выделение потенциальных узких мест в информационной системе

   Продукты третьих фирм

   Использование CASE-средств

   Инфраструктура

   Проектирование базы данных

   Построение модели данных

   Создание базы данных для разработчика

   Проектирование процессов и кода

   Выбор средств разработки

   Отображение функций на модули

   Интерфейсы программ

   Интегрирование и наследование механизмов обмена данными

   Определение спецификаций модулей

Пример журнала проектирования

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

Определение стратегии тестирования

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

Для автоматизации тестирования следует использовать системы отслеживания ошибок
(bug tracking). Это позволяет иметь единое хранилище ошибок, отслеживать их
повторное появление, контролировать скорость и эффективность исправления ошибок,
видеть наиболее нестабильные компоненты системы, а также поддерживать связь
между группой разработчиков и группой тестирования (уведомления об изменениях
по e-mail и т.п.). Чем больше проект, тем сильнее потребность в bug tracking.

Проектирование

На этапе проектирования формируется модель данных. Проектировщики в качестве
исходной информации получают результаты анализа. Конечным продуктом этапа проектирования
являются:

  • схема базы данных (на основании ER-модели, разработанной на этапе анализа);
  • набор спецификаций модулей системы (они строятся на базе моделей функций).

Если проект небольшой, то в качестве аналитиков, проектировщиков и разработчиков
могут выступать одни и те же люди. Возникает вопрос: насколько вообще актуальна
передача результатов самому себе? Думаем, что актуальна. Представьте себе, что
вы передаете данные кому-либо, кто мало знает о системе. Зачастую это помогает,
например, найти не описанные вообще, нечетко описанные, противоречиво описанные
компоненты системы.

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

Журнал проектирования

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

Такой журнал может вестись как на этапе анализа, так и на этапе разработки и
тестирования.

Планирование этапа проектирования

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

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

Перепланирование

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

Задачи проектирования.

Ранние стадии

Рассмотрение результатов анализа

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

Семинары

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

Критические участки

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

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

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

Такие моменты могут инициировать не только изменение информационной модели,
но и смену СУБД.

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

Оценка ограничений

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

Решения относительно выбора аппаратной платформы, как правило, необратимы, поскольку
тесно связаны со сметой затрат и наличием обслуживающего персонала. Например,
решения на платформе RS/6000 и Intel с точки зрения сметы затрат выглядят одинаково,
но персонала, способного квалифицированно обслуживать RS/6000, нет, и руководство
не согласно оплатить обучение сотрудников, хотя решение на основе RS/6000 обладает
более высокой масштабируемостью. Это может послужить причиной выбора платформы
Intel. Аналогичные причины могут влиять и на выбор операционной системы.

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

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

Определение целевой архитектуры

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

Кроме определения платформы следует выяснить следующее:

  • Будет ли это архитектура «файл-сервер» или «клиент-сервер».
  • Будет ли это 3-уровневая архитектура со следующими слоями: сервер, ПО промежуточного
    слоя (сервер приложений), клиентское ПО.
  • Будет ли база данных централизованной или распределенной. Если база данных
    будет распределенной, то какие механизмы поддержки согласованности и актуальности
    данных будут использоваться.
  • Будет ли база данных однородной, то есть будут ли все серверы баз данных
    продуктами одного и того же производителя (например, все серверы только Oracle
    или все серверы только DB2 UDB). Если база данных небудет однородной, то какое
    ПО будет использовано для обмена данными между СУБД разных производителей
    (уже существующее или разработанное специально как часть проекта).
  • Будут ли для достижения должной производительности использоваться параллельные
    серверы баз данных (например, Oracle Parallel Server, DB2 UDB и т.п.).

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

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

Выделение потенциальных узких мест в информационной системе

Если заказчик заявит, что производительность системы не имеет никакого значения,
примите это замечание с юмором. Это означает лишь то, что время ответа системы
на запрос не является (или не кажется заказчику в данный момент) критическим.
Попробуйте спросить, приемлемо ли время ответа системы, равное одному часу или
одному дню. Вряд ли ответ на этот вопрос будет положительным.

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

В приведенном примере явно видны 3 пика активности системы, максимальный из
которых приходится на 11 часов. Использован тип диаграммы с накоплением.

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

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

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

Продукты третьих фирм

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

Использование CASE-средств

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

Инфраструктура

Для проектирования и реализации необходимы аппаратные ресурсы и специальное
программное обеспечение. Кроме того, требуется механизм, позволяющий контролировать
создаваемую документацию и код. Эти вопросы лучше решать на ранних стадиях проектирования,
а не на стадии разработки. Мы поговорим об этом ниже, в разделе «Проектирование
процессов и кода». При групповой разработке вам понадобятся средства контроля
согласованности кода. Если разработка идет под разными платформами (аппаратная
платформа и ОС), то хорошим решением может оказаться PVCS. Для платформ Windows
98, NT, 2000 может оказаться приемлемым решение, предлагаемое Microsoft — MS
Source Save. Кроме того, многие средства разработки также предоставляют возможности
контроля исходного кода.

Проектирование базы данных

Здесь мы изложим задачи, касающиеся проектирования реальной базы данных.

Построение модели данных

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

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

  • выявление нереализуемых или необычных конструкций в ER-модели и в определениях
    сущностей;
  • разрешение всех дуг, подтипов и супертипов;
  • изучение возможных, первичных, внешних ключей, описание ссылочной целостности
    (в зависимости от реализации декларативно или с использованием триггеров);
  • проектирование и реализация денормализации базы данных в целях повышения
    производительности;
  • определение части бизнес-логики, которую следует реализовать в базе данных
    (пакеты, хранимые процедуры);
  • реализация ограничений (ограничений и триггеров), отражающих все централизованно
    определенные бизнес-правила, генерация ограничений и триггеров;
  • определение набора бизнес-правил, которые не могут быть заданы как ограничения
    в базе данных;
  • определение необходимых индексов, кластеров (если таковые реализованы в
    СУБД), определение горизонтальной фрагментации таблиц (если это реализовано
    в СУБД);
  • оценка размеров всех таблиц, индексов, кластеров;
  • определение размеров табличных пространств и особенностей их размещения
    на носителях информации, определение спецификации носителей информации для
    промышленной системы (например, тип raid-массивов, их количество, какие табличные
    пространства на них размещаются), определение размеров необходимых системных
    табличных пространств (например, системного каталога, журнала транзакций,
    временного табличного пространства и т.п.);
  • определение пользователей базы данных, их уровней доступа, разработка и
    внедрение правил безопасности доступа, аудита (если это необходимо), создание
    пакетированных привилегий (в зависимости от реализации СУБД это роли или группы),
    синонимов;
  • разработка топологии базы данных в случае распределенной базы данных, определение
    механизмов доступа к удаленным данным.

Подробнее на каждом из перечисленных пунктов мы остановимся в части «Схема базы
данных».

Создание базы данных для разработчика

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

Проектирование процессов и кода

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

Выбор средств разработки

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

Отображение функций на модули

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

Интерфейсы программ

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

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

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

Интегрирование и наследование механизмов обмена данными

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

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

Определение спецификаций модулей

Это основная часть функционального проектирования. Здесь решаются следующие
задачи:

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

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

КомпьютерПресс 11’2001

ПРОБЛЕМЫ РАЗРАБОТКИ ИНФОРМАЦИОННЫХ СИСТЕМ

Аннотация. Данная робота рассматривает
наиболее часто встречающиеся проблемы возникающие в процессе разработки
информационных систем.

Abstract. Paper examines the most common
problems encountered in the development of information systems.

Ключевые слова: Проблемы, внедрение,
информационная система.

Keywords: Problems, implementation,
information system.

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

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

1.            Непонимание руководством всего
процесса разработки.

2.            Отсутствие четкого проекта
автоматизации.

3.            Время разработки

4.            Другие проблемы

1.            Время разработки

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

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

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

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

2.            Непонимание руководством всего
процесса разработки.

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

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

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

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

3.            Отсутствие четкого проекта
автоматизации.

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

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

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

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

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

На этом этапе могут проявиться некоторые
неожиданные проблемы:

1.            Отсутствие формализованных
процессов на предприятии.

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

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

4.            Другие проблемы:

Помимо проблем, рассмотренных выше, это далеко
не все трудности, с которые возникают в процессе разработки информационной
системы. Помимо

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

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

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

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

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

Список используемой литературы:

1.            Гладышева Алла Викторовна,
Горбунова О. Н. Взаимодействие информационной системы управления и предприятия
// Социально- экономические явления и процессы. 2011. №8: сайт Киберленинка.
[Электронный ресурс]. URL: https://cyberleninka.ru/article/n/ vzaimodeystvie-
informatsionnoy-sistemy-upravleniya-i-predpriyatiya (дата обращения:
24.12.2018).

2.            Агафонов А.А. Информационные
технологии и бизнес: сайт Консалтинговая       группа        Интарис.        [Электронный       
ресурс]. URL: http://www.intaris.ru/experience/articles/142/(дата обращения:
11.12.2018).

3.            Каюченко А.В. Информационные
технологии управления предприятием как современный фактор конкурентоспособности
предприятия: сайт    Креативная       экономика.       [Электронный ресурс].
URL:http://www.creativeconomy.ru/articles/ 2738/ (дата обращения: 11.12.2018).

Автоматизированным информационным системам могут угрожать случайные или умышленные сбои. Случайные сбои непреднамеренны, они могут быть вызваны либо ошибками, либо естественными причинами. Умышленные сбои являются результатом атаки, фальсификации, злоумышленного кодирования или взлома.
Ошибки
Проблемы с информационными системами чаще всего возникают из-за ошибок. Иногда небольшая ошибка в программе может привести к серьезным последствиям, например, система пошлет чек на миллион в ответ на обычный счет. Обычно ошибки делают люди, а не машины. В число таких ошибок входят:
1. Ошибки в процессе изготовления или при сборке технического оборудования: компоненты (в частности, механические составляющие, диски или принтеры) не соответствуют друг другу или неправильно собраны в процессе производства или в процессе текущего или профилактического обслуживания.
2. Ошибки при проектировании системы, обычно связанные с упущениями при анализе задачи.
3. Ошибки ввода данных: опечатки, западание курсора или некорректный выбор, сделанный оператором.
4. Ошибки программирования при разработке программного обеспечения на соответствующем языке программирования.
5. Небрежность или обычная невнимательность со стороны людей, работающих с данной технологией.
Ошибки всегда были и будут. Ошибки ввода данных преобладали до 1980-х гг., затем их количество удалось существенно снизить благодаря технологиям фиксации данных, например благодаря использованию штрих-кодов и автоматического распознавания текста. Позднее на первое место вышли ошибки проектирования и программирования. Небрежность тоже бывает весьма разнообразна: клерк может пролить кофе на компьютер, а фермер может случайно перерезать оптико-волоконный кабель.

sboi_info_system
Природные явления
Природные явления — это неожиданное насильственное нарушение работоспособности системы без вмешательства человека. Природные явления включают повреждения механических или электрических компонент и последствия стихийных бедствий: наводнений, гроз, землетрясений или торнадо. К отказам компонент системы относят не только компьютерные сбои, но и перебои электропитания или электрические помехи.
Атаки
Атаки — это самый простой и частый вид умышленных угроз со стороны «чужих». Эти угрозы включают материальные повреждения компьютерного или телекоммуникационного оборудования, носителей, мебели, рабочих комнат, строений и вспомогательных устройств. Это также и физические атаки на компьютерные установки, такие как злоупотребления, подслушивание, взлом, заимствование прав.
Если система безопасности слаба, то незапертая дверь даст нарушителям доступ к незащищенной компьютерной системе. Такие физические атаки примитивны, просты и очень эффективны. Это и просмотр мусора в поисках конфиденциальной информации, идентификаторов пользователей и паролей или документации на программное обеспечение. Физические атаки включают и телефонные мистификации или «социальную инженерию», когда злоумышленники путем обмана «выуживают» у пользователей или системных администраторов конфиденциальную информацию о системе.
Фальсификация
Фальсификация — это наиболее распространенная умышленная угроза со стороны «своих». Эта угроза включает ввод ложной информации в систему, использование компьютерных технологий для создания неверных данных или замену исходной информации. Информационная система продолжает нормально работать, но цели ее работы изменены. Сама природа автоматизированных информационных систем часто допускает возможность проведения необычных транзакций, которые долгое время могут оставаться незамеченными. Хорошо спроектированная информационная система менее уязвима в отношении ввода ложных данных — она отмечает расхождения с шаблоном входных данных. Фальсификации составляют большую часть мошенничества в области компьютерных технологий.
Злоумышленное кодирование
Злоумышленное кодирование — это нелегальные программы и фрагменты программ, выполняемые на системных компьютерах. Эти программы могут перенаправлять компьютерные ресурсы, изменять данные или делать доступной секретную информацию. Поскольку такие программы невидимы для пользователей компьютера, то злоумышленное кодирование — это самый зловещий способ привлечь компьютер к собственному уничтожению. Очень трудно защитить информационную систему от ее собственных программ. Вот различные типы злоумышленного кодирования:
• «логические бомбы» — выполняют деструктивные процедуры (например, уничтожение файлов, сбой в системе и т. д.) при определенных условиях (например, в пятницу 13-го);
• «Троянский конь» — программа, замаскированная под другую программу, например компьютерную игру; такая программа может незаметно копировать личные файлы игрока, пока он занят игрой;
• «вирус» — фрагмент кода, способный при активизации нелегально присоединяться к другим программам, найденным в компьютере; обычно вирусы содержат и «логическую бомбу»;
• «червяк» — это еще один вид самовоспроизводящейся программы, но она не присоединяется к другим программам, а сама распространяется по сетям или системным устройствам (например, используя электронную почту);
• «черный ход» — неавторизованные фрагменты кода, которые обходят систему защиты и другие стандартные процедуры (часто используются программистами при разработке программы и иногда случайно остаются в системе);
• «салями-коды» — программы, которые срезают «по кусочку» с каждой из транзакций и аккумулируют эти кусочки на счете похитителя;
• «мистификаторы» — программы, которые притворяются другими программами; например фальсификатор входа в систему притворяется системной утилитой, а на самом деле копирует идентификаторы и пароли пользователей и записывает их в скрытый файл.
Взлом
Взлом, или хакерство, — это проникновение в компьютерную систему или программу путем разгадывания или расшифровки кодов доступа, номеров счетов, паролей и файлов. Взломщики (или менее точно хакеры) — это компьютерные вандалы, которые проникают в защищенные системы и загружают нелегальные программы, разрушают файлы пользователя или закрывают доступ к ресурсам компьютера. При взломе систем хакеры часто прибегают к сканированию коммуникационных сетей и массивов данных. Взлом требует хорошего понимания атакуемых технологий. Кроме актов вандализма по отношению к системе взломщики совершают также следующие действия:
1. Просмотр файлов и электронной почты или просмотр неиспользованной памяти и диска (часто система физически не удаляет информацию из областей памяти, уже освобожденных программами, а это значит, что фрагменты программ и данных могут быть восстановлены талантливыми хакерами).
2. Компрометация баз данных, включая использование механизма запросов для получения или отслеживания ранее неизвестной информации об индивидууме.
3. Получение неавторизованных или неоплачиваемых телефонных или информационных услуг (часто со взломом телекоммуникационного оборудования). Умышленные угрозы имеют дополнительный параметр — мотив. Мотивы умышленных нарушений ~ это мошенничество, шпионаж и вандализм.
Мошенничество
Мошенничество — это использование информационных ресурсов путем умышленного обмана в целях получения незаконной прибыли. Поскольку большинство ценных товаров (деньги, ценные металлы, сырье) запрашиваются через компьютеры, то простое коммерческое мошенничество все чаще осуществляется путем компьютерных атак. Кроме незаконного использования информационных систем для перевода денежных средств распространены и другие виды мошенничества:

1. Взлом банкоматов, заключающийся в использовании краденых или фальшивых банковских и кредитных карточек.
2. Использование пиратского программного обеспечения, что включает подделку коммерческих пакетов программ и незаконное копирование программного обеспечения внутри или вне предприятия.
3. Хищение ресурсов, т. е. использование информационных ресурсов организации в своих целях, что может включать использование компьютеров фирмы, копировальных автоматов, телефонов и незаконный обмен данными.
Шпионаж
Шпионаж имеет целью получение информации, не подлежащей огласке. Шпионаж обычно включает три ступени: получение доступа к секретным данным, сбор данных и анализ данных. Конечным результатом шпионажа является неизбежное снижение информационной ценности данных. Ведь данные, которые пытаются украсть, обычно и считаются секретными именно из-за того, что они представляют ценность. Если данные публикуются или становятся известны конкурентам, то их ценность падает. Шпионажем может заниматься злоумышленник, получивший несанкционированный доступ к компьютерной системе путем мошенничества или взлома; предприятие, которое получает права авторизованного пользования компьютером, что позволяет получить доступ и к секретным данным в том числе; или другие лица, имеющие доступ к компьютерам.
Для многих фирм одним из главных мотивов предотвращения шпионажа является защргта частной жизни. Целый ряд международных соглашений, национальных и региональных законов, условия контрактов требуют от организаций принятия мер по защите персональной информации о людях от случайного или преднамеренного раскрытия. Коммерческие организации должны особо тщательно заботиться о потоках данных через границу государства, так как передача частных данных о гражданах может привести к нарушению законов.
Вандализм
Вандализм — это преднамеренное или злоумышленное повреждение компьютерных ресурсов, включая оборудование, данные и программное обеспечение. Мотивы вандализма:
• Озорство юных программистов-взломщиков, пробующих свои силы в освоении компьютерных систем.
• Личная месть со стороны уволенных служащих или потребителей, желающих навредить фирме, разрушив ее информационную систему.
• Общественные беспорядки, бессмысленный вандализм как часть общественных волнений.
• Терроризм, экстремальное разрушение информационных систем социального масштаба организованными группами, преследующими политические или идеологические цели.
• Военные атаки; обычно они направлены на военные или имеющие к ним отношение промышленные компьютеры, могут включать чрезвычайно интенсивные нападения (например, диверсионные отряды), хакерство (например, суперкомпьютерный криптоанализ) и злоумышленное кодирование (например, «логические бомбы» в компьютере наведения ракет на цель).

  • Ошибки проекта частного дома
  • Ошибки продажи на валберис
  • Ошибки продавцов при продажах недвижимости
  • Ошибки продавцов на алиэкспресс
  • Ошибки продавца при продаже квартиры