Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Примеры описания жизненного цикла

КОНСПЕКТ ЛЕКЦИЙ

По дисциплине «Прикладное программирование»

 

Лекция №3 (2 часа).

Тема: « Жизненный цикл и этапы разработки программного обеспечения (ОП) »

Тип урока: изучение нового материала.

Цели урока: изучить понятие жизненного цикла ПО согласно международным стандартам.

 

Жизненным циклом программного обеспечения называют период от момента появления идеи создания некоторого программного обеспечения до момента завершения его поддержки фирмой–разработчиком или фирмой, выполнявшей сопровождение.

Состав процессов жизненного цикла регламентируется международным стандартом ISO/1EC 12207: 1995 «Information Technologe – Software Life Cycle Processes» («Информационные технологии – Процессы жизненного цикла программного обеспечения»), ISO – International Organization for Standardization – Международная организация по стандартизации, ГЕС – International Electrotechnical Commission – Международная комиссия по электротехнике.

Этот стандарт описывает структуру жизненного цикла программного обеспечения и его процессы. Процесс жизненного цикла определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. На рисунке 1 представлены процессы жизненного цикла по указанному стандарту. Каждый процесс характеризуется определенными задачами и методами их решения, а также исходными данными и результатами. Процесс разработки (development process) в соответствии со стандартом предусматривает действия и задачи, выполняемые разработчиком, и охватывает работы по созданию программного обеспечения и его компонентов в соответствии с заданными требованиями, включая оформление проектной и эксплуатационной документации, а также подготовку материалов, необходимых для проверки работоспособности и соответствия качества программных продуктов, материалов, необходимых для обучения персонала, и т. д.

Рисунок 1 - Процессы жизненного цикла программного обеспечения.

В соответствии со стандартом ISO/IEC 12207 все процессы жизненного цикла программного обеспечения разделены на три группы:

1. Основные процессы (приобретение, поставка, разработка, эксплуатация, сопровождение);

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

3. Организационные процессы (управление, создание инфраструктуры, усовершенствование, обучение).

 

1. Содержание основных процессов:

1.1. Процесс приобретения состоит из действий и задач заказчика, приобретающего программное обеспечение.

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

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

1.4. Процесс эксплуатации охватывает действия и задачи оператора - организации, эксплуатирующей систему.

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

 

2. Содержание вспомогательных процессов:

2.1 Процесс документирования предусматривает формализованное описание информации, созданной в течение жизненного цикла программного обеспечения.

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

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

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

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

2.6. Процесс совместной оценки предназначен для оценки состояния работ по проекту и программного обеспечения, создаваемого при выполнении данных работ (действий). Он сосредоточен в основном на контроле планирования и управления ресурсами, персоналом, аппаратурой и инструментальными средствами проекта.

2.7. Процесс аудита представляет собой определение соответствия требованиям, планам и условиям договора.

2.8. Процесс разрешения проблем предусматривает анализ и решение проблем (включая обнаруженные несоответствия) независимо от их происхождения или источника, которые обнаружены в ходе разработки, эксплуатации, сопровождения или других процессов.

3. Содержание организационных процессов:

3.1. Процесс управления состоит из действий и задач, которые могут выполняться любой стороной, управляющей своими процессами. Данная сторона (менеджер) отвечает за управ­ление выпуском продукта, управление проектом и управление задачами соответствующих процессов, таких, как приобретение, постав­ка, разработка, эксплуатация, сопровождение и др.

3.2. Процесс создания инфраструктуры охватывает выбор и поддержку (сопровождение) технологии, стандартов и инструментальных средств, выбор и установку аппаратных и программных средств, используемых для разработки, эксплуатации или сопровождения программного обеспечения.

3.3 Процесс усовершенствования предусматривает оценку, измерение, контроль и усовершенствование процессов жизненного цикла программного обеспечения.

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

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

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

Примеры описания жизненного цикла

Рассмотрим несколько описаний жизненного цикла программного обеспечения, которые послужат своеобразным комментарием этапам обобщенного жизненного цикла.

В отечественных нормативных документах (например, ГОСТ ЕСПД) принято следующее разграничение на этапы, которое приводится с указанием аналогий из списка, данного в начале раздела:

· разработка технического задания;

· технический проект;

· рабочий проект;

· экспериментальное внедрение;

· сдача в промышленную эксплуатацию;

· промышленная эксплуатация.

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

Рисунок 2 - Пример жизненного цикла программных систем

 

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

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

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

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

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

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

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

8. Интеграция программного обеспечения. Тестирование работоспособности и функциональной законченности программных частей системы в предсказуемом окружении (аппаратуре и окружающей среде).

9. Квалификационное тестирование программного обеспечения. Тестирование программного обеспечения в присутствии заказчика для демонстрации его соответствия требованиям и готовности к эксплуатации; при этом проверяется также готовность и полнота технической и пользовательской документации.

10. Интеграция системы. Тестирование работоспособности и функциональной законченности частей общей системы в целом.

11. Квалификационное тестирование системы – тестирование системы на соответствие требованиям к ней и проверка оформления и полноты документации.

12. Установка программного обеспечения. Установка программного обеспечения на оборудовании заказчика и проверку его работоспособности.

13. Приемка программного обеспечения. Оценка результатов квалификационного тестирования программного обеспечения и системы в целом и документирование результатов оценки совместно с заказчиком, окончательную передачу программного обеспечения заказчику.

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

15. Завершение проекта. Формирование посториорной модели проектных действий с анализом достоинств, недостатков и т.д., и использование их в качестве основания для улучшения процесса разработки.

 

Указанные действия можно сгруппировать, условно выделив следующие основные этапы разработки программного обеспечения (в скобках указаны соответствующие стадии разработки по ГОСТ 19.102-77 «Стадии разработки»):

- постановка задачи (стадия «Техническое задание»);

- анализ требований и разработка спецификаций (стадия «Эскизный проект»);

- проектирование (стадия «Технический проект»);

- реализация (стадия «Рабочий проект»).

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

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

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

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

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

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

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

- проектирование общей структуры - определение основных компонентов и их взаимосвязей;

- декомпозицию компонентов и построение структурных иерархий в соответствии с рекомендациями блочно-иерархического подхода;

- проектирование компонентов.

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

- логическое проектирование, которое включает те проектные операции, которые непосредственно не зависят от имеющихся технических и программных средств, составляющих среду функционирования будущего программного продукта;

- физическое проектирование - привязка к конкретным техническим и программным средствам среды функционирования, т. е. учет ограничений, определенных в спецификациях.

Реализация. Реализация представляет собой процесс поэтапного написания кодов программы на выбранном языке программирования (кодирование), их тестирование и отладку.

На рисунке 3 представлена схема процесса подготовки программы к выполнению.

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

 

Рисунок 3. Схема процесса подготовки программы к выполнению

 

Затем программу необходимо перевести в последовательность машины команд (машинный код). Для этого запускают специальную программу: переводчик–компилятор. В процессе разбора и преобразования программы компилятор может обнаружить ошибки. Тогда он аварийно завершает работу, выдав программисту сообщения об ошибках компиляции. Для исправления этих ошибок обычно достаточно внимательно изучить соответствующий фрагмент с учетом текста сообщения об ошибке и внести требуемое изменение в программу. После исправления ошибок процесс компиляции повторяют. Если с точки зрения компилятора программа написана правильно, то он строит так называемый объектный код, содержащий текст программы на машинном языке. В среде программирования Borland Pascal этот код не переписывается в файл, а сохраняется в памяти до выполнения следующего этапа. В других средах и языках программирования на диске создаётся объектный файл, как правило, с расширением.obj.

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

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

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

Контрольные вопросы

 

1. Сформулируйте определение термина «технология программирования».

2. Перечислите составляющие технологических инструкций.

3. Перечислите известные вам виды технологий.

4. Сформулируйте определение термина «жизненный цикл программного обеспечения».

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

 

Домашнее задание:

Ознакомиться с понятием жизненный цикл и этапами разработки программного обеспечения.

 

Литература: Игнатьев, А. В. Методы и средства проектирования информационных систем и технологий [Электронный ресурс]: учебное пособие / А. В. Игнатьев; М-во образования и науки Рос. Федерации, Волгогр. гос. архит.- строит. ун-т. - Электронные текстовые и графические данные (0,9 Мбайт). - Волгоград: ВолгГАСУ,2014. - Учебное электронное издание сетевого распространения. - Систем. требования: РС 486 DX-33; Microsoft Windows XP; Internet Explorer 6.0;Adobe Reader 6.0. - Официальный сайт Волгоградского государственногоархитектурно-строительного университета.

Режим доступа:http://www.vgasu.ru/publishing/on-line/

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...