Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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

Поиск

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

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

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

По стандарту процесс разработки включает следующие действия:

- подготовительную работу – выбор модели жизненного цикла (см. далее), стандартов, методов и средств разработки, а также составление плана работ;

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

Рис.1.2. Структура процессов жизненного цикла

программного обеспечения

 

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

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

- детальное проектирование программного обеспечения – подробное описание компонентов программного обеспечения и интерфейсов между ними, обновление пользовательской документации, разработка и документирование требований к тестам и плана тестирования компонентов программного обеспечения, обновление плана интеграции компонентов;

- анализ требований к системе – определение ее функциональных возможностей, пользовательских требований, требований к надежности и безопасности, требований к внешним интерфейсам и т. д.;

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

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

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

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

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

- установку программного обеспечения - установку программного обеспечения на оборудовании заказчика и проверку его работоспособности;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

 

2. РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММЫ
И МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 836; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.209.231 (0.008 с.)