tehnologia (1018792), страница 7
Текст из файла (страница 7)
Прежде, чем перейти к подробномурассмотрению последних, проанализируем эволюцию схем разработки программногообеспечения от момента их появления до настоящего времени.1.5. Эволюция моделей жизненного циклапрограммного обеспеченияНа протяжении последних тридцати лет в программировании сменились три моделижизненного цикла программного обеспечения: каскадная, модель с промежуточнымконтролем и спиральная.Каскадная модель. Первоначально (1970-1985 годы) была предложена ииспользовалась каскадная схема разработки программного обеспечения (рис. 1.10), котораяпредполагала, что переход на следующую стадию осуществляется после того, как полностьюбудут завершены проектные операции предыдущей стадии и получены все исходные данныедля следующей стадии. Достоинствами такой схемы являются:• получение в конце каждой стадии законченного набора проектной документации,отвечающего требованиям полноты и согласованности;• простота планирования процесса разработки.Именно такую схему и используют обычно при блочно-иерархическом подходе кразработке сложных технических объектов, обеспечивая очень высокие параметрыэффективности разработки.
Однако данная схема оказалась применимой только к созданиюсистем, для которых в самом начале разработки удавалось точно и полно сформулироватьвсе требования. Это уменьшало вероятность возникновения в процессе разработки проблем,связанных с принятием неудачного решения на предыдущих стадиях. На практике такиеразработки встречается крайне редко.32В целом необходимость возвратов на предыдущие стадии обусловлена следующимипричинами:• неточные спецификации, уточнение которых в процессе разработки может привести кнеобходимости пересмотра уже принятых решений;• изменение требований заказчика непосредственно в процессе разработки;• быстрое моральное устаревание используемых технических и программных средств;• отсутствие удовлетворительных средств описания разработки на стадиях постановкизадачи, анализа и проектирования.Отказ от уточнения (изменения) спецификаций приведет к тому, что законченныйпродукт не будет удовлетворять потребности пользователей.
При отказе от учета сменыоборудования и программной среды пользователь получит морально устаревший продукт. Аотказ от пересмотра неудачных проектных решений приводит к ухудшению структурыпрограммного продукта и, соответственно, усложнит, растянет по времени и удорожитпроцесс его создания.
Реальный процесс разработки, таким образом, носит итерационныйхарактер.Модель с промежуточным контролем. Схема, поддерживающая итерационныйхарактер процесса разработки, была названа схемой с промежуточным контролем (рис.1.11). Контроль, который выполняется по данной схеме после завершения каждого этапа,позволяет при необходимости вернуться на любой уровень и внести необходимыеизменения.Основная опасность использования такой схемы связана с тем, что разработка никогдане будет завершена, постоянно находясь в состоянии уточнения и усовершенствования.33Примечание.
Народная мудрость в подобных случаях говорит «лучшее - враг хорошего». Осталось толькопонять, что можно считать «хорошим» и как все-таки добиться лучшего...Спиральная модель. Для преодоления перечисленных проблем в середине 80-х годовXX в. была предложена спиральная схема (рис. 1.12). В соответствии с данной схемойпрограммное обеспечение создается не сразу, а итерационно с использованием методапрототипирования, базирующегося на создании прототипов. Именно появлениепрототипирования привело к тому, что процесс модификации программного обеспеченияперестал восприниматься, как «необходимое зло», а стал восприниматься как отдельныйважный процесс.Прототипом называют действующий программный продукт, реализующий отдельныефункции и внешние интерфейсы разрабатываемого программного обеспечения.На первой итерации, как правило, специфицируют, проектируют, реализуют и тестируютинтерфейс пользователя.
На второй – добавляют некоторый ограниченный набор функций.На последующих этапах этот набор расширяют, наращивая возможности данного продукта.Основным достоинством данной схемы является то, что, начиная с некоторой итерации,на которой обеспечена определенная функциональная полнота, продукт можнопредоставлять пользователю, что позволяет:• сократить время до появления первых версий программного продукта;• заинтересовать большое количество пользователей, обеспечивая быстрое продвижениеследующих версий продукта на рынке;34• ускорить формирование и уточнение спецификаций за счет появления практикииспользования продукта;• уменьшить вероятность морального устаревания системы за время разработки.Основной проблемой использования спиральной схемы является определение моментовперехода на следующие стадии.
Для ее решения обычно ограничивают сроки прохождениякаждой стадии, основываясь на экспертных оценках.Изменение жизненного цикла программного обеспечения при использованииCASE-технологий. CASE-технологии представляют собой совокупность методологийанализа, проектирования, разработки и сопровождения сложных программных систем,основанных как на структурном, так и на объектном подходах, которые поддерживаютсякомплексом взаимосвязанных средств автоматизации.
В основе любой CASE-технологиилежит парадигма методология/метод/нотация/средство.Методология строится на базе некоторого подхода и определяет шаги работы, ихпоследовательность, а также правила распределения и назначения методов. Методопределяет способ достижения той или иной цели - выполнение шага работы.35Нотацией называют систему обозначений, используемых для описания некоторогокласса моделей. Нотации бывают графические (предоставление моделей в виде графов,диаграмм, таблиц, схем и т.п.) и текстовые (описания моделей на формальных иестественных языках).
В CASE-технологиях нотации используют для описания структурыпроектируемой системы, элементов данных, этапов обработки и т.п.Средства — инструментарий для поддержки методов: средства создания иредактирования графического проекта, организации проекта в виде иерархии уровнейабстракции, а также проверки соответствия компонентов разных уровней.
Различают:• CASE-средства анализа требований, проектирования спецификаций и структуры,редактирования интерфейсов (первое поколение CASE-I);• CASE-средства генерации исходных текстов и реализации интегрированногоокружения поддержки полного жизненного цикла разработки программного обеспечения(второе поколение CASE-II).CASE-I в основном включают средства для поддержки графических моделей,проектирования спецификаций, экранных редакторов и словарей данных.
CASE-IIотличается существенно большими возможностями, обеспечивая: контроль, анализ исвязывание системной информации и информации по управлению процессомпроектирования, построение прототипов и моделей системы, тестирование, верификацию ианализ сгенерированных программ.Автоматизируя трудоемкие операции, современные CASE-средства существенноповышают производительность труда программистов и улучшают качество создаваемогопрограммного обеспечения. Они:• обеспечивают автоматизированный контроль совместимости спецификаций проекта;• уменьшают время создания прототипа системы;• ускоряют процесс проектирования и разработки;• автоматизируют формирование проектной документации для всех этапов жизненногоцикла в соответствии с современными стандартами;• частично генерируют коды программ для различных платформ разработки;• поддерживают технологии повторного использования компонентов системы;• обеспечивают возможность восстановления проектной документации по имеющимсяисходным кодам.Появление CASE-технологий изменило все этапы жизненного цикла программногообеспечения, при этом наибольшие изменения касаются анализа и проектирования, которыепредполагают строгое и наглядное описание разрабатываемого программного обеспечения.В табл.
1.1 показано, какие качественные изменения процесса разработки программногообеспечения происходят при переходе к использованию CASE-средств.36Таблица 1.1Традиционная разработкаОсновные усилия накодирование и тестирование«Бумажные» спецификацииРучное кодированиеРучное документированиеТестирование кодовСопровождение кодовРазработка с использованием CASEсредствОсновные усилия на анализ ипроектированиеБыстрое итерационноепрототипированиеАвтоматическая генерация кодовАвтоматическая генерациядокументацииАвтоматический контроль проектаСопровождение спецификацийпроектированияТаблица 1.2Трудозатраты этапа разработки, %Способ разработкиАнализ ПроектированиеТрадиционная разработкаСтруктурный подходCASE-технологий203040153040КодированиеТестирование20155452515Использование CASE-средств позволяет существенно снизить трудозатраты наразработку сложного программного обеспечения (табл.
1.2 [30]) в основном за счетавтоматизации процессов документирования и контроля. Однако следует иметь в виду, чтосовременные CASE-средства дороги, а их использование требует более высокойквалификации разработчиков. Следовательно, их имеет смысл использовать в сложныхпроектах, причем, чем сложнее разрабатываемое программное обеспечение, тем большевыигрыш от использования CASE-технологий. На сегодняшний день практически всепромышленно производимое сложное программное обеспечение разрабатывается сиспользованием CASE-средств.1.6.
Ускорение разработки программного обеспечения. Технология RADРазработка спиральной модели жизненного цикла программного обеспечения и CASEтехнологий позволили сформулировать условия, выполнение которых сокращает срокисоздания программного обеспечения.37Современная технологии проектирования, разработки и сопровожденияпрограммного обеспечения, должна отвечать следующим требованиям:• поддержка полного жизненного цикла программного обеспечения;• гарантированное достижение целей разработки с заданным качеством и вустановленное время;• возможность выполнения крупных проектов в виде подсистем, разрабатываемыхгруппами исполнителей ограниченной численности (3-7 человек) с последующейинтеграцией составных частей, и координации ведения общего проекта;• минимальное время получения работоспособной системы;• возможность управления конфигурацией проекта, ведения версий проекта иавтоматического выпуска проектной документации по каждой версии;• независимость выполняемых проектных решений от средств реализации (СУБД,операционных систем, языков и систем программирования);• поддержкакомплексомсогласованныхCASE-средств,обеспечивающихавтоматизацию процессов, выполняемых на всех стадиях жизненного цикла.Этим требованиям отвечает технология RAD (Rapid Application Development – Быстраяразработка приложений).
Эта технология ориентирована, как следует из названия, намаксимально быстрое получение первых версий разрабатываемого программногообеспечения. Она предусматривает выполнение следующих условий:• ведение разработки небольшими группами разработчиков (3-7 человек), каждая изкоторых проектирует и реализует отдельные подсистемы проекта – позволяет улучшитьуправляемость проекта;• использование итерационного подхода способствует уменьшению времени полученияработоспособного прототипа;• наличие четко проработанного графика цикла, рассчитанного не более чем на тримесяца, существенно увеличивает эффективность работы.Процесс разработки при этом делится на следующие этапы: анализ и планированиетребований пользователей, проектирование, реализация, внедрение.На этапе анализа и планирования требований формулируют наиболее приоритетныетребования, что ограничивает масштаб проекта.На этапе проектирования, используя имеющиеся CASE-средства, детально описываютпроцессы системы, устанавливают требования разграничения доступа к данным иопределяют состав необходимой документации.