Сравнительный анализ каскадной и спиральной моделей разработки программного обеспечения

Министерство образования РФ

Воронежский Государственный Университет

Факультет Компьютерных Наук









































Сравнительный анализ каскадной и спиральной моделей разработки программного обеспечения





















































Выполнил : Шумлянский Михаил Сергеевич

















Воронеж 2003



















































































Содержание







Введение	………………………………………………………………………………………………..2

Водопадная модель процесса разработки	……………………………………………………………..3

Спиральная модель процесса разработки	……………………………………………………………..4

Итерации по спирали	………………………………………………………………………………4

Общие характеристики этапов разработки программного обеспечения	…………………………..5

	Этап планирования  и анализа требований		…………………………………………….5

	Этап  разработки	………………………………………………………………………………6

	Реализация	………………….…………………………………………………………………...10

	Внедрение	………………………………………………………………………………………10

Сопровождение и Эксплуатация	……………………………………………………………………..10

Заключение	………………………………………………………………………………………………..11

Список источников	……………………………………………………………………………………….11



























































































Введение







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


      Существует несколько моделей жизненного цикла. Традиционно выделяют следующие основные этапы жизненного цикла :


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



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

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













































































Водопадная модель процесса разработки



К середине 80-х годов наибольшее распространение получил "водопадный" (waterflow) или "каскадный" процесс создания программного обеспечения. Схема "водопадного" процесса приведена на рис. 1.1. Его основной характеристикой является разбиение всей разработки на этапы, причем переход с одного этапа на следующий происходит только после того, как будет полностью завершена работа на текущем. Каждый этап завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков. 



Рис 1.1. "Водопадный" процесс 

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





Рис 1.2. Реальный процесс  "водопадной" схемы

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























Спиральная модель процесса разработки



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

 



          Рис 1.3. Спиральная модель

Итерации по спирали

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



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



Шесть шагов спиральной модели

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

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

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



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

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

Этот шаг выполняется, как правило, в два и большее число итерационных циклов. 

5. Готовится план работ. Он ориентирован на сроки, определенные на третьем этапе, и нацелен на скорейшую реализацию ядра системы. Взаимодействуя с работающим прототипом, заказчик быстрее и точнее вырабатывает и уточняет дальнейшие требования и корректирует приоритеты.

6. Разработка системы в соответствии с планом. 

Для этого этапа характерны три типичных класса проблем: 

- изменения в требованиях к проекту;

- изменения параметров самого проекта (сроков, бюджета, качества);

- временные задержки, связанные с текущими вопросами (техникой, персоналом). 

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

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





Общие характеристики этапов разработки программного обеспечения



Этап планирования  и анализа требований

Цель:
- получение требований ;
- выработка производных от них требований для этапа оценки безопасности.
Входные данные:
- требования к системе, аппаратный интерфейс, архитектура системы;
- план разработки ПО;
- стандарты на требования к ПО.

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





На этапе планирования разработки ПО создаются планы и выбираются стандарты, которые направляют этап разработки и интегрированный этап. Его целью является определение средств для создания ПО, которое будет удовлетворять требования, предъявляемые к нему и обеспечивать достаточный уровень надежности. На этом этапе производиться:
определение действий на этапах разработки и интегрированном этапе, которые будут посвящены определению системных требований и уровня ПО;
определение ЖЦ ПО, включая взаимодействие между этапами, механизм взаимного влияния этапов, критерии оценки ПО при переходе от одного этапа к другому;
определение среды ЖЦ, т.е. методы и инструментальные средства, используемые на каждом этапе;
формирование дополнительных замечаний к ПО;
рассмотрение стандартов разработки ПО, соотношение их с системными целями безопасности, относящиеся к разрабатываемому ПО;
разработка плана создания ПО;
доработка и проверка плана создания ПО.
Эффективность планирования - определяющий фактор при разработке ПО. Основные руководящие принципы этого этапа следующие.
1. План разработки ПО должен быть разработан в такой момент ЖЦ, чтобы обеспечить своевременное управление конкретными действиями на этапе разработки и интегрированном этапе.
2. Стандарты разработки ПО, используемые в проекте, должны быть строго определенными и четкими.
3. Выбранные методы и инструментальные средства должны быть такие, чтобы обеспечили предотвращение ошибок на этапе разработки или свели их к минимуму.
4. Этап планирования разработки ПО должен обеспечить координацию между остальными этапами с целью согласования их стратегий в плане разработки ПО.
5. Этап планирования разработки ПО должен включать в себя средства проверки плана на этапе реализации проекта.
6. На завершающей стадии этапа планирования, план и стандарты разработки ПО должны быть проанализированы на предмет полноты и непротиворечивости.
Другие этапы ЖЦ могут быть начаты до окончания этапа планирования при условии, что имеются планы и процедуры для действий на этих этапах. 




Этап  разработки



Цель:

- создание архитектуры ПО и требований НУ;
- выработка производных от них требований для этапа оценки безопасности.
Входные данные:
- данные о требованиях к ПО;
- план разработки ПО;
- стандарты проектирования ПО.

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



Процесс разработки содержит действия и задачи разработчика. Процесс содержит действия для анализа требований, проектирования, программирования, интеграции, тестирования и инсталляции и приемки, относящейся к программному обеспечению. 
Перечень действий: Этот процесс состоит из следующих видов деятельности.
1. Инструментарий процесс. Это действие состоит из следующих задач:
Если не оговорено в контракте, разработчик должен определить или выбрать модель жизненного цикла программного обеспечения в соответствии с назначением, значимостью и сложностью проекта. Действия и задачи этого процесса должны быть выбраны и отображены в модели жизненного цикла. Эти действия и задачи могут перекрываться или взаимодействовать и могут быть исполнены итеративно или рекурсивно.
Разработчик должен выполнять следующее:
документировать результаты в соответствии с процессом документирования;
разместить результаты (выходы) в процессе конфигурации  и выполнить контроль изменений в соответствии с этим;
документировать и разрешить проблемы и несоответствия, найденные в программном продукте и задачах в соответствии с процессом разрешения проблем ;
другие сопроводительные процессы , как определено в контракте.
Разработчик должен выбрать, довести и использовать внутренние стандарты, методологии, процедуры и языки программирования (если это не оговорено в контракте), которые должны быть зарегистрированы, соответствуют и установлены организацией для исполнения действий процесса разработки и процесса поддержки.
Разработчик должен разработать планы управления действиями в процессе разработки. Планы должны включать особые стандарты, методы, средства, действия и обязанности, связанные с разработкой и квалификацией всех требований, включая надежность и безопасность. Эти планы должны быть зарегистрированы и исполнены.
Официально непоставляемые элементы могут быть использованы в разработке или сопровождении программного обеспечения. Однако должна быть гарантия того, что эксплуатация и поддержка поставляемого программного обеспечения после его поставки заказчику не зависит от таких элементов, другими словами, эти элементы становятся официально поставляемыми. 
2. Анализ системных требований. Это действие состоит из следующих задач, которые разработчик должен исполнить или поддерживать, как требуется по контракту.
Особое предполагаемое использование разрабатываемых систем должно быть проанализировано для определения системных требований. Спецификация системных требований должна описывать: функции и возможности системы; надежность, защиту, разработку, интерфейс требования по эксплуатации и поддержке; ограничения проектирования и квалификационные требования. Спецификации системных требований должны быть зарегистрированы.
Системные требования должны быть оценены с позиций следующих критериев: прослеживаемость потребностей заказчика, согласованность с потребностями заказчика, тестируемость, выполнимость системного проектирования, осуществимость эксплуатации и поддержки.
3. Системное проектирование. Это действие состоит из следующих задач, которые разработчик должен выполнить или поддерживать, как требуется контрактом.
Должна быть представлена архитектура верхнего уровня системы. Архитектура должна определять элементы аппаратного, программного обеспечения и ручные операции. Должна быть гарантия того, что все системные требования полностью распределены среди элементов. Эти элементы должны быть впоследствии определены как элементы аппаратной конфигурации (ЭАК), элементы конфигурации программного обеспечения (ЭКПО) и соответственно ручные операции. Архитектура системы и системные требования, распределенные между элементами аппаратной, конфигурации, конфигурации ПО и ручными операциями, должны быть зарегистрированы.
Архитектура системы и требования для элементов конфигурации и ручных операций должны быть оценены в соответствии со следующими критериями:
различимость системных требований;
согласованность с системными требованиями;
соответствие стандартам и используемым методам проектирования;
осуществимость наполнения элементов конфигурации ПО распределенными для них требованиями;
выполнимость эксплуатации и поддержки.
4. Анализ требований к программному обеспечению. Для каждого ЭКПО это действие состоит из следующих задач, которые разработчик должен исполнить.
Разработчик должен представить и зарегистрировать требования к программному обеспечению, включая спецификации характеристик качества, описанных ниже:
спецификации функций и возможности, включая исполнение, физические характеристики, условия окружающей среды, при которых выполняется программное обеспечение;
внешний интерфейс ЭКПО;
квалификационные требования;
спецификации безопасности, включая относящиеся к методами эксплуатации и поддержки, влиянию окружающей среды и повреждению персоналом;
спецификации защиты, включая касающиеся особой информации и материалов;
человеческий фактор и спецификации человеко-машинного взаимодействия, включая относящиеся к ручным операциям, человеко-машинным взаимодействиям, ограничениям на персонал и области, требующие концентрации человеческого внимания, чувствительные с точки зрения ошибок человека и его опыта;
требования определения данных и требования к базам данных;
требования по инсталляции и приемке поставляемого программного обеспечения в эксплуатацию и сопровождение;
документация пользователя;
требования по эксплуатации пользователя и исполнению;
требования по пользовательскому сопровождению.
Разработчик должен оценить требования к программному обеспечению, руководствуясь приведенными ниже критериями:
прослеживаемость системных требований и системного проекта;
внешняя согласованность с системными требованиями;
внутренняя согласованность;
тестовое покрытие требований;
тестируемость;
выполнимость проектирования программного обеспечения;
осуществимость эксплуатации и сопровождения.
После успешного завершения обзора должна быть представлена основа для требований к ЭКПО.
5. Проектирование программного обеспечения. Для каждого ЭКПО это действие состоит из следующих задач, которые разработчик должен быть выполнить.
Разработчик должен преобразовать требования для ЭКПО в архитектуру, описывающую структуру его верхнего (высшего) уровня и определяющую главные компоненты. Должна быть гарантия того, что требования к ЭКПО полностью распределены между его компонентами и далее уточнены для облегчения детального проектирования. 
Разработчик должен разработать и зарегистрировать:
проект высшего уровня для внешнего взаимодействия с ЭКПО и между компонентами программного обеспечения;
проект высшего уровня для баз данных;
предварительные версии руководства для пользователя;
предварительные тестовые требования и план интеграции программного обеспечения.
Разработчик должен оценить архитектуру ЭКПО и проекты интерфейса и баз данных, руководствуясь приведенными ниже критериями:
прослеживаемость требований к ЭКПО;
внешняя согласованность с требованиями к ЭКПО;
внутренняя согласованность между компонентами;
соответствие методов проектирования и стандартов, которые были использованы; 
выполнимость детализированного проектирования
осуществимость эксплуатации и сопровождения.
6. Детальное проектирование программного обеспечения. Для каждого ЭКПО это действие состоит из следующих задач, которые разработчик должен выполнить.
Разработчик должен разработать детальный проект для каждого компонента программного обеспечения ЭКПО. Компоненты программного обеспечения должны быть уточнены на нижних уровнях, содержащих модули программного обеспечения, которые могут кодироваться, компилироваться и тестироваться. Должна быть гарантия того, что требования к программному обеспечению полностью локализованы в модулях программного обеспечения. Детализированный проект должен быть зарегистрирован.
Разработчик должен разработать и задокументировать детальный проект для внешнего интерфейса ЭКПО между компонентами программного обеспечения и между модулями программного обеспечения. Детальный проект интерфейса должен позволять писать код программы без необходимости в дополнительной информации.
Разработчик должен разработать и зарегистрировать детальный проект базы данных.
Разработчик должен обновить руководство пользователя насколько это необходимо.
Разработчик должен определить и задокументировать тестовые требования и расписание тестирования блоков программного обеспечения. Тестовые требования должны включать испытания программного обеспечения на пределе требований. 
Разработчик должен обновить тестовые требования и расписание интеграции программного обеспечения.
Разработчик должен оценить детальный проект программного обеспечения и тестовые требования с точки зрения критериев, приведенных ниже:
прослеживаемость требований ЭКПО;
внешняя согласованность с архитектурой проекта;
внутренняя согласованность между компонентами и модулями;
соответствие методов проектирования и используемых стандартов;
выполнимость тестирования;
выполнимость эксплуатации и сопровождения.
7. Программирование и отладка. Для каждого ЭКПО это действие состоит из следующих задач, которые должен выполнить разработчик.
Разработчик должен разработать и задокументировать следующее:
а) каждый модуль программного обеспечения и базы данных;
б) процедуры тестирования и данные для тестирования каждого модуля и базы данных.
Разработчик должен тестировать каждый модуль ПО и базы данных, убеждаясь в том, что они удовлетворяют требованиям. Результаты тестирования должны быть задокументированы.
Разработчик должен обновить руководство пользователя, тестовые требования и расписание интеграции ПО, оценить код ПО и результаты теста в соответствии с критериями, приведенными ниже:
прослеживаемость требований ЭКПО и проекта;
внешняя согласованность с требованиями ЭКПО и архитектурой проекта;
внутренняя согласованность между требованиями модулей;
тестирование модулей;
соответствие методов кодирования и используемых стандартов;
выполнимость интеграции ПО и тестирования;
выполнимость эксплуатации и сопровождения.
8. Интеграция программного обеспечения. Для каждого ЭКПО это действие состоит из следующих задач, которые должен выполнить разработчик.
Разработчик должен разработать план интеграции для объединения модулей ПО и компонентов в ЭКПО. План должен включать требования, процедуры, данные, ответственность и расписание. 
Разработчик должен объединить модули ПО и компоненты. Должна быть гарантия того, что каждый компонент удовлетворяет требованиям  и  полностью интегрирован как результат этой деятельности. Интеграция и результаты теста должны быть задокументированы. 
Разработчик должен обновить руководство пользователя, если это требуется.
Разработчик должен разработать и задокументировать для каждого квалификационного требования ЭКПО полный набор тестов, ситуаций (вход, выход, критерии тестирования) и процедуры тестирования для управления квалификационным тестированием ПО.
Разработчик должен оценить план интеграции, проект, код, тесты, результаты тестирования и руководства пользователя с точки зрения критериев, приведенных ниже:
отслеживаемость системных требований;
внешняя согласованность с системными требованиями; 
внутренняя согласованность; 
тестирование ЭКПО требований;
соответствие используемых стандартов и методов тестирования;
соответствие с ожидаемыми результатами;
выполнимость квалификационного тестирования ПО;
выполнимость эксплуатации и сопровождения.
9. Квалификационное тестирование программного обеспечения. Для каждого ЭКПО это действие состоит из следующих задач, которые должен выполнить разработчик:
Разработчик должен руководить квалификационным тестированием в соответствии с квалификационными требованиями, особыми для ЭКПО. Должно быть гарантировано, что реализация каждого требования к ПО полностью протестирована. Результаты квалификационного тестирования должны быть зарегистрированы.
Разработчик должен оценить проект, код, тесты, результаты тестирования и руководство пользователя в соответствии с приведенными ниже критериями:
тестирование требований к ЭКПО;
согласованность с ожидаемыми результатами;
выполнимость системной интеграции и тестирования;
выполнимость эксплуатации и сопровождения.
Результаты аудита должны быть задокументированы. Если разрабатываются или интегрируются ПО и аппаратное обеспечение, аудит может быть отложен до квалификационного тестирования системы.
После успешного завершения аудита, если предписано, разработчик должен:
а) обновить и подготовить к поставке ПО для системной интеграции, квалификационного тестирования системы, инсталляции или поддержки приема ПО, как полагается;
б) представить основную линию проектирования и кодирования ЭКПО;
10. Системная интеграция. Это действие состоит из следующих задач, которые должен выполнить разработчик. 
ЭКПО должен быть интегрирован с ЭАК, руководством по эксплуатации и другими системами в единую систему. Составляющие должны быть протестированы на соответствие требованиям. Интеграция и результаты тестирования должны быть задокументированы.
Для каждого квалификационного требования к системе должны быть разработаны и задокументированы полный набор тестов, ситуаций (входных, выходных, критериев тестирования), процедур тестирования. Разработчик должен гарантировать, что интегрированная система готова для квалификационного тестирования.
Интегрированная система должна быть оценена в соответствии с приведенными ниже критериями:
зона тестирования требований к системе;
приемлемость используемых методов и стандартов тестирования;
согласованность с ожидаемыми результатами;
выполнимость квалификационного тестирования системы;
выполнимость эксплуатации и сопровождения.
11. Квалификационное тестирование системы. Это действие состоит из следующих задач, выполняемых разработчиком.
Квалификационное тестирование системы должно руководствоваться в соответствии с квалификационными требованиями, определенными для системы. Должно быть гарантировано, что выполнение каждого требования к системе протестировано полностью и система готова к поставке. Результаты квалификационного тестирования должны быть задокументированы.
Система должна быть оценена в соответствии с приведенными ниже критериями:
зона тестирования требований к системе;
подтверждение ожидаемыми результатами;
выполнимость эксплуатации и сопровождения.
После успешного завершения аудита, если предписано, разработчик должен:
обновить и подготовить к поставке ЭКПО для инсталляции ПО и его приемки;
обосновать основные направления для проектирования и кодирования ЭКПО.
12. Инсталляция ПО. Это действие состоит из следующих задач, выполняемых разработчиком.
Разработчик должен разработать план инсталляции ПО в намеченную среду. Ресурсы и информация, необходимые для установки ПО, должны быть определены и доступны. Разработчик должен помогать поставщику при установке. После того, как ПО установлен в существующую систему, Разработчик должен поддерживать некоторые параллельно выполняемые действия. План установки должен быть задокументирован.
Разработчик должен установить ПО в соответствии с планом установки. Должно быть гарантировано, что ПО и базы данных инициализируются, функционируют и прекращают работу, как указано в контракте. Процесс установки и результаты должны быть задокументированы.
12. Поддержка приемки ПО. Это действие состоит из следующих задач, выполняемых разработчиком.
Разработчик должен поддерживать процесс приемки поставщиком и тестирование ПО. Приемка и тестирование должны основываться на общем обзоре, аудите, квалификационном тестировании, квалификационном тестировании системы (если оно выполнялось). Результаты приемки и тестирования должны быть задокументированы.





Реализация 

Целью является получение исходного кода, который должен допускать трассировку, проверку, быть непротиворечивым и корректно реализовывать требования НУ.
Входные данные:
- требования НУ;
- архитектура ПО;
- план разработки ПО;
- стандарты кодирования ПО

Первичный результат - исходный код и объектный код.
Основные принципы:
- исходный код должен реализовывать требования НУ и соответствовать архитектуре ПО;
- исходный код должен соответствовать стандартам кодирования ПО;
- исходный код должен сводиться к описанию проекта;
- неадекватные или некорректные входные данные должны быть переданы либо подэтапу разработки требований к ПО, либо подэтапу проектирования ПО, либо этапу планирования разработки ПО по принципу обратной связи для разъяснения или исправления.





Внедрение

Целью является загрузка исполняемого объектного кода в аппаратное или программно-аппаратное обеспечение.
Входные данные:
- архитектура ПО;
- исходный код;
- объектный код.



Результат - исполняемый объектный код, а также компонуемые и загружаемые данные.
Основные принципы:
- исполняемый объектный код должен быть сгенерирован из исходного кода и компонуемых и загружаемых данных;
- ПО должно быть загружено в целевой компьютер для программно-аппаратной интеграции;
- неадекватные или некорректные входные данные должны быть переданы либо подэтапу разработки требований к ПО, либо подэтапу проектирования ПО, либо подэтапу кодирования ПО, либо этапу планирования разработки ПО по принципу обратной связи для разъяснения или исправления.





Сопровождение и Эксплуатация



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





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







Заключение



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

 





































Список источников:

www.aanet.ru

www.interface.com

www.setevoi.ru 

Дж. Фокс “Программное обеспечение и его разработка”  1985 г.



































   									SMS® www.shms@box.vsi.ru  

									www.cs.vsu.ru/~shumlyansky 

2