Предполагается, что на ранних этапах жизненного цикла разработки (планирование, анализ требований и разработка проекта) выполняется конструирование программного продукта в целом. Тогда же определяется и число необходимых инкрементов и относящихся к ним функций. Каждый инкремент затем проходит через оставшиеся фазы жизненного цикла (кодирование и тестирование). Сначала выполняются конструирование, тестирование и реализация базовых функций, составляющих основу программного продукта. Последующие итерации направлены на улучшение функциональных возможностей программного продукта.
Преимущества многопроходной модели: в начале разработки требуются средства только для разработки и реализации основных функций программного продукта; после каждого инкремента получается функциональный продукт; снижается риск неудачи и изменения требований; улучшается понимание как разработчиками, так и пользователями программного продукта требований для более поздних итераций; инкременты функциональных возможностей легко поддаются тестированию.
Недостатки многопроходной модели: не предусмотрены итерации внутри каждого инкремента; определение полной функциональности должно быть осуществлено в самом начале жизненного цикла разработки; может возникнуть тенденция оттягивания решения трудных задач; общие затраты на создание программного продукта не будут снижены по сравнению с другими моделями; обязательным условием является наличие хорошего планирования и проектирования.
Многопроходная модель может быть применена, если большинство требований к программному продукту будут сформулированы заранее, а для выполнения проекта будет выделен большой период времени.
Рис.8 Многопроходная модель
3.7 Спиральная модель
Рис.9 Спиральная модель
Для преодоления проблем, связанных с использованием многопроходной модели, в середине 1980-х годов была предложена спиральная модель жизненного цикла. Ее принципиальная особенность заключается в том, что прикладной программный продукт создается не сразу, как в случае каскадного подхода, а по частям с использованием метода прототипирования. Под прототипом понимается действующий программный компонент, реализующий отдельные функции и внешние интерфейсы разрабатываемого программного продукта. Создание прототипов осуществляется за несколько итераций, или витков спирали. Каждая итерация соответствует созданию фрагмента, или версии программного продукта, на ней уточняются цели и характеристики проекта, оценивается качество полученных результатов и планируется работа следующей итерации. На каждой итерации производится тщательная оценка риска превышения сроков и стоимости проекта с целью определения необходимости выполнения еще одной итерации, степени полноты и точности понимания требований к системе, а также целесообразности прекращения проекта. Спиральная модель (рис.9) избавляет пользователей и разработчиков программного продукта от полного и точного формулирования требований к системе на начальной стадии, поскольку они уточняются на каждой итерации. Таким образом, углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации.
Разработка итерациями отражает объективно существующий спиральный цикл создания системы, позволяя переходить на следующую стадию, не дожидаясь полного завершения работы на текущей стадии, поскольку при итеративном способе разработки недостающую работу можно выполнить на следующей итерации. Главная задача такой разработки – как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Спиральная модель не исключает использования каскадного подхода на завершающих стадиях проекта в тех случаях, когда требования к системе оказываются полностью определенными.
Основная проблема спирального цикла – определение момента перехода на следующую стадию. Для ее решения необходимо ввести временные ограничения на каждую из стадий жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
Спиральная модель обладает следующими достоинствами: заказчик имеет возможность увидеть разрабатываемый программный продукт на ранних стадиях разработки; заказчики принимают активное участие в разработке программного продукта; в модели воплощены преимущества каскадной и многопроходной модели.
Недостатки спиральной модели: спираль может продолжаться до бесконечности, так как каждая ответная реакция заказчика может породить новый цикл.
В качестве модели жизненного цикла разработки программного продукта большое распространение получила улучшенная спиральная модель, показанная на рис. 10.
Рис.10 Улучшенная спиральная модель с указанием вспомогательных процессов
В отличии от ранее рассмотренной спиральной модели эта модель использует каскадный подход на завершающих этапах разработки программного продукта.
Использование спиральной модели целесообразно, если существует хотя бы одна из следующих причин: целесообразно создание прототипа; организация обладает навыками, требуемыми для адаптации модели; требуется выполнять проекты со средней и высокой степенями риска; заказчики не уверены в своих потребностях; требования слишком сложные; проект очень большой.
Заключение
В данной курсовой работе я рассмотрел понятия жизненного цикла автоматизированных информационных систем и программного продукта.
Работа состоит из трех глав.
В первой главе рассказывалось о моделях жизненного цикла автоматизированных информационных системах.
Жизненный цикл автоматизированных информационных систем - это непрерывный процесс, который начинается с момента принятия решения о необходимости создания ИС и заканчивается в момент ее полного изъятия из эксплуатации.
Модель жизненного цикла - структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач, выполняемых на протяжении ЖЦ.
Наибольшее распространение получили две основные модели ЖЦ:
· каскадная модель (70-85 гг.);
· спиральная модель (86-90 гг.).
Структура жизненного цикла базируется на трех группах процессов:
· основные процессы жизненного цикла (приобретение, поставка, разработка, эксплуатация, сопровождение);
· вспомогательные процессы (документирование, управление конфигурацией, обеспечение качества, аттестация, аудит, решение проблем);
· организационные процессы (управление проектами, создание инфраструктуры проекта, улучшение самого жизненного цикла, обучение).
Во второй главе речь шла о CASE-технологиях. CASE-технология - технология, базирующаяся на методологиях подготовки информационных систем и соответствующих комплексах интегрированных инструментальных средств, а также ориентированная на поддержку полного жизненного цикла автоматизированной системы или его основных этапов.
Под термином CASE (Computer Aided Software Engineering) понимаются программные средства, поддерживающие процессы создания и сопровождения автоматизированной системы включая анализ и формулировку требований, проектирование прикладного программного обеспечения и баз данных, генерацию кода, тестирование, документирование, обеспечение качества, конфигурационное управление и управление проектом, а также другие процессы. CASE-средства вместе с системным программным обеспечением и техническими средствами образуют полную среду разработки АС.
В третьей главе - модели жизненного цикла программного продукта.
Под моделью жизненного цикла разработки программного продукта понимается структура, определяющая последовательность выполнения и взаимосвязи процессов, действий и задач, выполняемых на протяжении жизненного цикла разработки программного продукта. Наибольшее распространение получили следующие модели жизненного цикла разработки программного продукта: каскадная модель, или водопад (waterfallmodel); v-образная модель (v-shapedmodel); модель прототипирования (prototypemodel); модель быстрой разработки приложений, или RAD-модель (RAD-rapidapplicationdevelopmentmodel); многопроходная модель (incrementalmodel); спиральная модель (spiralmodel).
Список использованной литературы
1. Вендров А.М. Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2000. – 352с.
2. Канер С., Фолк Д., Кен Нгуен Е. Тестирование программного обеспечения: Пер. с англ. – Киев: ДиаСофт, 2000. – 544с.
3. Соммервилл И. Инженерия программного обеспечения. – М.: СПБ.: Киев: Изд. дом «Вильямс», 2002. – 624с.
4. Фридман А.Л. Основы объектно-ориентированной разработки программных систем. – М.: Финансы и статистика, 2000. – 200с.
5. Гагарина Л.Г. Основы технологии и разработки программных продуктов: Учебник – М ФОРУМ – ИНФРА – М. 2006.
6. Семенов М.И. Трубилин И.Т., Лойко В.И. Барановская Т.П. Архитектура компьютерных систем и сетей Учебное пособие – М Финансы и статистика, 2004. – 320с.
7. Советов Б.Я. Цеханковский В.В. Информационные технологии – М Высшая школа, 2003.
8. Информатика: Учебник под редакцией Макаровой Н.В. – М.:Финансы и статистика., 2005. – 480с.