Под моделью ЖЦ понимается
структура, определяющая последовательность выполнения и взаимосвязи процессов,
действий и задач, выполняемых на протяжении ЖЦ. Модель ЖЦ зависит от специфики
ИС и специфики условий, в которых последняя создается и функционирует
Стандарт ISO/IEC 12207 не предлагает
конкретную модель ЖЦ и методы разработки программного обеспечения (ПО) и
системы в целом. Его регламенты являются общими для любых моделей ЖЦ, методологий
и технологий разработки. Стандарт ISO/IEC 12207 описывает структуру процессов
ЖЦ, но не конкретизирует в деталях, как реализовать или выполнить действия и
задачи, включенные в эти процессы.
К настоящему времени наибольшее
распространение получили следующие основные модели ЖЦ:
Задачная модель
При разработке системы
"снизу-вверх" от отдельных задач ко всей системе (задачная
модель) единый поход к разработке неизбежно теряется, возникают проблемы при
информационной стыковке отдельных компонентов. Как правило, по мере увеличения
количества задач трудности нарастают, приходится постоянно изменять уже
существующие программы и структуры данных. Скорость развития системы замедляется,
что тормозит и развитие самой организации. Однако в отдельных случаях такая
технология может оказаться целесообразной:
Общий вывод:
достаточно большую эффективную ИС таким способом создать невозможно.
Каскадная модель
В ранних не очень больших по объему
однородных ИС каждое приложение представляло собой единое целое.
Для разработки такого типа приложений применялся каскадный способ. Его
основной характеристикой является разбиение всей разработки на этапы, причем
переход с одного этапа на следующий происходит только после того, как будет
полностью завершена работа на текущем (рис. 1). Каждый
этап завершается выпуском полного комплекта документации, достаточной для того,
чтобы разработка могла быть продолжена другой командой разработчиков.
Положительные стороны применения каскадного
подхода заключаются в следующем [2]:
Рис.
1. Каскадная схема разработки
Каскадный подход хорошо зарекомендовал себя
при построении ИС, для которых в самом начале разработки можно достаточно точно
и полно сформулировать все требования, с тем, чтобы предоставить
разработчикам свободу реализовать их как можно лучше с технической точки
зрения. В эту категорию попадают сложные расчетные системы, системы
реального времени и другие подобные задачи. Однако в процессе использования
этого подхода обнаружился ряд его недостатков, вызванных
прежде всего тем, что реальный процесс создания систем никогда полностью не
укладывался в такую жесткую схему. В процессе создания постоянно возникала
потребность в возврате к предыдущим этапам и уточнении или
пересмотре ранее принятых решений. В результате реальный процесс создания ПО принимал следующий вид (рис. 2):
Рис.
1.2. Реальный процесс разработки ПО по
каскадной схеме
Основным недостатком каскадного подхода
является существенное запаздывание с получением результатов.
Согласование результатов с пользователями производится только в точках,
планируемых после завершения каждого этапа работ, требования к ИС
"заморожены" в виде технического задания на все время ее
создания. Таким образом, пользователи могут внести свои замечания только после
того, как работа над системой будет полностью завершена. В случае неточного
изложения требований или их изменения в течение длительного периода создания ПО, пользователи получают систему,
не удовлетворяющую их потребностям. Модели (как функциональные, так и
информационные) автоматизируемого объекта могут
устареть одновременно с их утверждением. Сущность системного подхода к
разработке ИС заключается в ее декомпозиции (разбиении) на автоматизируемые
функции: система разбивается на функциональные подсистемы, которые в свою
очередь делятся на подфункции, подразделяемые на задачи и так далее. Процесс
разбиения продолжается вплоть до конкретных процедур. При этом автоматизируемая
система сохраняет целостное представление, в котором все составляющие
компоненты взаимоувязаны. Таким образом, данная модель основным достоинством
имеет системность разработки, а основные недостатки - медленно и дорого.
Спиральная модель
Для преодоления перечисленных проблем была
предложена спиральная модель ЖЦ [1] (рис. 3), делающая упор на
начальные этапы ЖЦ: анализ и проектирование. На этих этапах реализуемость
технических решений проверяется путем создания прототипов. Каждый виток
спирали соответствует созданию фрагмента или версии ПО,
на нем уточняются цели и характеристики проекта,
определяется его качество и планируются работы следующего витка спирали. Таким
образом, углубляются и последовательно конкретизируются
детали проекта и в результате выбирается обоснованный вариант, который
доводится до реализации.
Разработка итерациями отражает объективно
существующий спиральный цикл создания системы. Неполное завершение работ на
каждом этапе позволяет переходить на следующий этап, не дожидаясь полного
завершения работы на текущем. При итеративном способе
разработки недостающую работу можно будет выполнить на следующей итерации.
Главная же задача - как можно быстрее показать пользователям системы
работоспособный продукт, тем самым, активизируя процесс уточнения и
дополнения требований.
Основная проблема спирального цикла -
определение момента перехода на следующий этап. Для ее решения необходимо
ввести временные ограничения на каждый из этапов жизненного цикла. Переход
осуществляется в соответствии с планом, даже если не вся запланированная работа
закончена. План составляется на основе статистических данных, полученных в
предыдущих проектах, и личного опыта разработчиков.
Рис 3.
Спиральная модель ЖЦ ИС
Одним из возможных подходов к разработке ПО в рамках спиральной модели ЖЦ
является получившая в последнее время широкое распространение методология
быстрой разработки приложений RAD (Rapid Application Development). Под
этим термином обычно понимается процесс разработки ПО,
содержащий 3 элемента:
Жизненный цикл ПО по методологии RAD состоит из четырех фаз:
Последовательность этапов создания ИС на
фазе определения требований и анализа:
На стадии проектирования ИС модели расширяются, уточняются и дополняются диаграммами,
отражающими структуру программного обеспечения: архитектуру ПО, структурные
схемы программ и диаграммы экранных форм.
Результатами проектирования архитектуры
являются:
модель пользовательского
интерфейса (классификация процессов
на интерактивные и неинтерактивные функции, диаграмма
последовательности форм (FSD - Form Sequence Diagram), показывающая,
какие формы появляются в приложении и в каком порядке. На FSD фиксируется набор и структура вызовов экранных
форм. Диаграммы FSD образуют иерархию, на вершине которой находится главная
форма приложения, реализующего подсистему. На втором уровне находятся формы, реализующие
процессы нижнего уровня функциональной структуры, зафиксированной на диаграммах
SAD.
Литература
2. Марка Д.А., Мак Гоуэн К.
Методология структурного анализа и проектирования. М., "МетаТехнология", 1993.
3. Международные стандарты, поддерживающие жизненный цикл
программных средств. М., МП "Экономика", 1996
Последнее обновление 09.04.