Автоматизация проектирования ИС
Тенденции развития современных информационных технологий приводят к постоянному возрастанию сложности информационных систем, создаваемых в различных областях экономики и управления. Современные крупные проекты ИС характеризуются, как правило, следующими особенностями:
- сложность описания процессов автоматизации (достаточно большое количество функций, процессов, элементов данных и сложные взаимосвязи между ними), что приводит к необходимости моделирования и анализа данных и процессов;
- сложность структуры создаваемой системы, включающей совокупность тесно взаимодействующих компонентов (подсистем), которые предназначены для решения определенных локальных задач (например, приложения для аналитической обработки данных, использующих нерегламентированные запросы к данным большого объема; подсистемы поддержки принятия решений, использующие в основе обработку экспертных знаний), что приводит к необходимости формализации специальных областей знаний;
- отсутствие подобных аналогов, что ограничивает возможность использования типовых проектных решений или существующих приложений;
- необходимость интеграции существующих и вновь разрабатываемых приложений, что требует тщательной проверки и тестирования на уровне данных, чтобы не было потери или их искажения;
- функционирование распределенной системы в неоднородной среде на различных платформах;
- разобщенность и разнородность отдельных групп разработчиков по уровню квалификации и сложившимся традициям использования тех или иных инструментальных средств;
- существенная временная протяженность проекта, обусловленная, с одной стороны, ограниченными возможностями коллектива разработчиков, и, с другой стороны, масштабами организации-заказчика и различной степенью готовности отдельных ее подразделений к внедрению ИС.
Для успешной реализации проекта на создание ИС объект автоматизации должен быть, прежде всего, адекватно описан, должны быть построены полные и непротиворечивые функциональные, информационные, алгоритмические, математические модели ИС. Накопленный к настоящему времени опыт проектирования ИС показывает, что описание объекта автоматизации представляет собой логически сложную, трудоемкую и длительную по времени работу, которая требует высокой квалификации участвующих в ней специалистов. С учетом этого проектирование сложной ИС на интуитивном уровне с применением неформализованных методов, основанных на искусстве, практическом опыте, экспертных оценках и дорогостоящих экспериментальных проверках качества функционирования ИС, не приводит к нужному или ожидаемому результату. Кроме того, в процессе создания и функционирования ИС информационные потребности пользователей могут изменяться или уточняться, что еще более усложняет разработку и сопровождение больших систем. Для эффективного решения задач проектирования необходимо использовать инструментальные средства, которые основаны на применении определенной методологии. Методология представляет собой учение о методах, способах и стратегиях исследования предмета. Разные методологии различаются технологией выполнения работ и решения задач, т.е. используют разные методы, способы, приемы, средства.
В 70-х и 80-х годах при разработке ИС достаточно широко применялась структурная методология, предоставляющая в распоряжение разработчиков строгие формализованные методы описания ИС и принимаемых технических решений. Структурная методология основана на наглядной графической технике, которая позволяет описать различные модели ИС с использованием схем и диаграмм. Наглядность и строгость средств структурного анализа позволяла разработчикам и будущим пользователям системы с самого начала неформально участвовать в создании ИС, обсуждать технические решения и участвовать в принятии проектных решений. Однако, широкое применение этой методологии и следование ее рекомендациям при разработке конкретных ИС без средств автоматизации было крайне затруднено или практически невозможно. Вручную очень трудно разработать и графически представить строгие формальные спецификации сложной системы, проверить их на полноту и непротиворечивость, вносить изменения. Ручная разработка обычно порождала следующие проблемы:
- неадекватная спецификация требований;
- неспособность обнаруживать ошибки в проектных решениях;
- низкое качество документации, снижающее эксплуатационные качества ИС;
- затяжной цикл и неудовлетворительные результаты тестирования ИС.
Перечисленные факторы способствовали появлению программных средств специального класса - CASE-средств (Computer Aided Software Engineering), позволяющих автоматизировать процесс создания и сопровождения ИС (компьютерная поддержка программной инженерии). Первоначальное значение термина 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-средства.