Введение
Тенденции развития современных информационных технологий приводят к
постоянному возрастанию сложности информационных систем (ИС), создаваемых в
различных областях экономики. Современные крупные проекты ИС характеризуются,
как правило, следующими особенностями:
- сложность описания (достаточно большое количество функций, процессов,
элементов данных и сложные взаимосвязи между ними), требующая тщательного
моделирования и анализа данных и процессов;
- наличие совокупности тесно взаимодействующих компонентов (подсистем),
имеющих свои локальные задачи и цели функционирования (например, традиционных
приложений, связанных с обработкой транзакций и решением регламентных задач, и
приложений аналитической обработки (поддержки принятия решений), использующих
нерегламентированные запросы к данным большого объема);
- отсутствие прямых аналогов, ограничивающее возможность использования
каких-либо типовых проектных решений и прикладных систем;
- необходимость интеграции существующих и вновь разрабатываемых приложений;
- функционирование в неоднородной среде на нескольких аппаратных платформах;
- разобщенность и разнородность отдельных групп разработчиков по уровню
квалификации и сложившимся традициям использования тех или иных инструментальных
средств;
- существенная временная протяженность проекта, обусловленная, с одной
стороны, ограниченными возможностями коллектива разработчиков, и, с другой
стороны, масштабами организации-заказчика и различной степенью готовности
отдельных ее подразделений к внедрению ИС.
Для успешной реализации проекта объект проектирования (ИС) должен быть прежде
всего адекватно описан, должны быть построены полные и непротиворечивые
функциональные и информационные модели ИС. Накопленный к настоящему времени опыт
проектирования ИС показывает, что это логически сложная, трудоемкая и длительная
по времени работа, требующая высокой квалификации участвующих в ней
специалистов. Однако до недавнего времени проектирование ИС выполнялось в
основном на интуитивном уровне с применением неформализованных методов,
основанных на искусстве, практическом опыте, экспертных оценках и дорогостоящих
экспериментальных проверках качества функционирования ИС. Кроме того, в процессе
создания и функционирования ИС информационные потребности пользователей могут
изменяться или уточняться, что еще более усложняет разработку и сопровождение
таких систем.
В 70-х и 80-х годах при разработке ИС достаточно широко применялась
структурная методология, предоставляющая в распоряжение разработчиков строгие
формализованные методы описания ИС и принимаемых технических решений. Она
основана на наглядной графической технике: для описания различного рода моделей
ИС используются схемы и диаграммы. Наглядность и строгость средств структурного
анализа позволяла разработчикам и будущим пользователям системы с самого начала
неформально участвовать в ее создании, обсуждать и закреплять понимание основных
технических решений. Однако, широкое применение этой методологии и следование ее
рекомендациям при разработке конкретных ИС встречалось достаточно редко,
поскольку при неавтоматизированной (ручной) разработке это практически
невозможно. Действительно, вручную очень трудно разработать и графически
представить строгие формальные спецификации системы, проверить их на полноту и
непротиворечивость, и тем более изменить. Если все же удается создать строгую
систему проектных документов, то ее переработка при появлении серьезных
изменений практически неосуществима. Ручная разработка обычно порождала
следующие проблемы:
- неадекватная спецификация требований;
- неспособность обнаруживать ошибки в проектных решениях;
- низкое качество документации, снижающее эксплуатационные качества;
- затяжной цикл и неудовлетворительные результаты тестирования.
С другой стороны, разработчики ИС исторически всегда стояли последними в ряду
тех, кто использовал компьютерные технологии для повышения качества, надежности
и производительности в своей собственной работе (феномен "сапожника без
сапог").
Перечисленные факторы способствовали появлению программно-технологических
средств специального класса - CASE-средств, реализующих CASE-технологию создания
и сопровождения ИС. Термин CASE (Computer Aided Software Engineering)
используется в настоящее время в весьма широком смысле. Первоначальное значение
термина CASE, ограниченное вопросами автоматизации разработки только лишь
программного обеспечения (ПО), в настоящее время приобрело новый смысл,
охватывающий процесс разработки сложных ИС в целом. Теперь под термином
CASE-средства понимаются программные средства, поддерживающие процессы создания
и сопровождения ИС, включая анализ и формулировку требований, проектирование
прикладного ПО (приложений) и баз данных, генерацию кода, тестирование,
документирование, обеспечение качества, конфигурационное управление и управление
проектом, а также другие процессы. CASE-средства вместе с системным ПО и
техническими средствами образуют полную среду разработки ИС.
Появлению CASE-технологии и CASE-средств предшествовали исследования в
области методологии программирования. Программирование обрело черты системного
подхода с разработкой и внедрением языков высокого уровня, методов структурного
и модульного программирования, языков проектирования и средств их поддержки,
формальных и неформальных языков описаний системных требований и спецификаций и
т.д. Кроме того, появлению CASE-технологии способствовали и такие факторы, как:
- подготовка аналитиков и программистов, восприимчивых к концепциям модульного
и структурного программирования;
- широкое внедрение и постоянный рост производительности компьютеров,
позволившие использовать эффективные графические средства и автоматизировать
большинство этапов проектирования;
- внедрение сетевой технологии, предоставившей возможность объединения усилий
отдельных исполнителей в единый процесс проектирования путем использования
разделяемой базы данных, содержащей необходимую информацию о проекте.
CASE-технология представляет собой методологию проектирования ИС, а также
набор инструментальных средств, позволяющих в наглядной форме моделировать
предметную область, анализировать эту модель на всех этапах разработки и
сопровождения ИС и разрабатывать приложения в соответствии с информационными
потребностями пользователей. Большинство существующих CASE-средств основано на
методологиях структурного (в основном) или объектно-ориентированного анализа и
проектирования, использующих спецификации в виде диаграмм или текстов для
описания внешних требований, связей между моделями системы, динамики поведения
системы и архитектуры программных средств.
Согласно обзору передовых технологий (Survey of Advanced Technology),
составленному фирмой Systems Development Inc. в 1996 г. по результатам
анкетирования более 1000 американских фирм, CASE-технология в настоящее время
попала в разряд наиболее стабильных информационных технологий (ее использовала
половина всех опрошенных пользователей более чем в трети своих проектов, из них
85% завершились успешно). Однако, несмотря на все потенциальные возможности
CASE-средств, существует множество примеров их неудачного внедрения, в
результате которых CASE-средства становятся "полочным" ПО (shelfware).
В связи с этим необходимо отметить следующее:
- CASE-средства не обязательно дают немедленный эффект; он может быть получен
только спустя какое-то время;
- реальные затраты на внедрение CASE-средств обычно намного превышают затраты
на их приобретение;
- CASE-средства обеспечивают возможности для получения существенной выгоды
только после успешного завершения процесса их внедрения.
Ввиду разнообразной природы CASE-средств было бы ошибочно делать какие-либо
безоговорочные утверждения относительно реального удовлетворения тех или иных
ожиданий от их внедрения. Можно перечислить следующие факторы, усложняющие
определение возможного эффекта от использования CASE-средств:
- широкое разнообразие качества и возможностей CASE-средств;
- относительно небольшое время использования CASE-средств в различных
организациях и недостаток опыта их применения;
- широкое разнообразие в практике внедрения различных организаций;
- отсутствие детальных метрик и данных для уже выполненных и текущих проектов;
- широкий диапазон предметных областей проектов;
- различная степень интеграции CASE-средств в различных проектах.
Вследствие этих сложностей доступная информация о реальных внедрениях крайне
ограничена и противоречива. Она зависит от типа средств, характеристик проектов,
уровня сопровождения и опыта пользователей. Некоторые аналитики полагают, что
реальная выгода от использования некоторых типов CASE-средств может быть
получена только после одно- или двухлетнего опыта. Другие полагают, что
воздействие может реально проявиться в фазе эксплуатации жизненного цикла ИС,
когда технологические улучшения могут привести к снижению эксплуатационных
затрат.
Для успешного внедрения CASE-средств организация должна обладать следующими
качествами:
- Технология. Понимание ограниченности существующих возможностей и
способность принять новую технологию;
- Культура. Готовность к внедрению новых процессов и взаимоотношений
между разработчиками и пользователями;
- Управление. Четкое руководство и организованность по отношению к
наиболее важным этапам и процессам внедрения.
Если организация не обладает хотя бы одним из перечисленных качеств, то
внедрение CASE-средств может закончиться неудачей независимо от степени
тщательности следования различным рекомендациям по внедрению.
Для того, чтобы принять взвешенное решение относительно инвестиций в
CASE-технологию, пользователи вынуждены производить оценку отдельных
CASE-средств, опираясь на неполные и противоречивые данные. Эта проблема
зачастую усугубляется недостаточным знанием всех возможных "подводных
камней" использования CASE-средств. Среди наиболее важных проблем
выделяются следующие:
- достоверная оценка отдачи от инвестиций в CASE-средства затруднительна ввиду
отсутствия приемлемых метрик и данных по проектам и процессам разработки ПО;
- внедрение CASE-средств может представлять собой достаточно длительный
процесс и может не принести немедленной отдачи. Возможно даже краткосрочное
снижение продуктивности в результате усилий, затрачиваемых на внедрение.
Вследствие этого руководство организации-пользователя может утратить интерес к
CASE-средствам и прекратить поддержку их внедрения;
- отсутствие полного соответствия между теми процессами и методами, которые
поддерживаются CASE-средствами, и теми, которые используются в данной
организации, может привести к дополнительным трудностям;
- CASE-средства зачастую трудно использовать в комплексе с другими подобными
средствами. Это объясняется как различными парадигмами, поддерживаемыми
различными средствами, так и проблемами передачи данных и управления от одного
средства к другому;
- некоторые CASE-средства требуют слишком много усилий для того, чтобы
оправдать их использование в небольшом проекте, при этом, тем не менее, можно
извлечь выгоду из той дисциплины, к которой обязывает их применение;
- негативное отношение персонала к внедрению новой CASE-технологии может быть
главной причиной провала проекта.
Пользователи CASE-средств должны быть готовы к необходимости долгосрочных
затрат на эксплуатацию, частому появлению новых версий и возможному быстрому
моральному старению средств, а также постоянным затратам на обучение и повышение
квалификации персонала.
Несмотря на все высказанные предостережения и некоторый пессимизм, грамотный
и разумный подход к использованию CASE-средств может преодолеть все
перечисленные трудности. Успешное внедрение CASE-средств должно обеспечить такие
выгоды как:
- высокий уровень технологической поддержки процессов разработки и
сопровождения ПО;
- положительное воздействие на некоторые или все из перечисленных факторов:
производительность, качество продукции, соблюдение стандартов, документирование;
- приемлемый уровень отдачи от инвестиций в CASE-средства.
|