tehnologia (1018792), страница 6
Текст из файла (страница 6)
IEC -International Electrotechnical Commission – Международная комиссия поэлектротехнике.Этот стандарт описывает структуру жизненного цикла программного обеспечения и егопроцессы. Процесс жизненного цикла определяется как совокупность взаимосвязанныхдействий, преобразующих некоторые входные данные в выходные. На рис.
1.9 представленыпроцессы жизненного цикла по указанному стандарту. Каждый процесс характеризуетсяопределенными задачами и методами их решения, а также исходными данными ирезультатами.Процесс разработки (development process) в соответствии со стандартомпредусматривает действия и задачи, выполняемые разработчиком, и охватывает работы посозданию программного обеспечения и его компонентов в соответствии с заданнымитребованиями, включая оформление проектной и эксплуатационной документации, а такжеподготовку материалов, необходи-27мых для проверки работоспособности и соответствия качества программных продуктов,материалов, необходимых для обучения персонала, и т.д.
По стандарту процесс разработкивключает следующие действия:• подготовительную работу – выбор модели жизненного цикла (см. далее), стандартов,методов и средств разработки, а также составление плана работ;• анализ требований к системе – определение ее функциональных возможностей,пользовательских требований, требований к надежности и безопасности, требований квнешним интерфейсам и т.д.;• проектирование архитектуры системы – определение состава необходимогооборудования, программного обеспечения и операций, выполняемых обслуживающимперсоналом;• анализ требований к программному обеспечению – определение функциональныхвозможностей, включая характеристики производительности, среды функционированиякомпонентов, внешних интерфейсов, специфика-28ций надежности и безопасности, эргономических требований, требований киспользуемым данным, установке, приемке, пользовательской документации,эксплуатации и сопровождению;• проектирование архитектуры программного обеспечения – определение структурыпрограммного обеспечения, документирование интерфейсов его компонентов,разработку предварительной версии пользовательской документации, а такжетребований к тестам и плана интеграции;• детальное проектирование программного обеспечения – подробное описаниекомпонентов программного обеспечения и интерфейсов между ними, обновлениепользовательской документации, разработка и документирование требований ктестам и плана тестирования компонентов программного обеспечения, обновлениеплана интеграции компонентов;• кодирование и тестирование программного обеспечения – разработку идокументирование каждого компонента, а также совокупности тестовых процедур иданныхдляихтестирования,тестированиекомпонентов,обновлениепользовательской документации, обновление плана интеграции программногообеспечения;• интеграцию программного обеспечения – сборку программных компонентов всоответствии с планом интеграции и тестирование программного обеспечения насоответствие квалификационным требованиям, представляющих собой наборкритериев или условий, которые необходимо выполнить, чтобы квалифицироватьпрограммный продукт, как соответствующий своим спецификациям и готовый киспользованию в заданных условиях эксплуатации;• квалификационное тестирование программного обеспечения – тестированиепрограммного обеспечения в присутствии заказчика для демонстрации егосоответствия требованиям и готовности к эксплуатации; при этом проверяется такжеготовность и полнота технической и пользовательской документации• интеграцию системы – сборку всех компонентов системы, включаяпрограммное обеспечение и оборудование;• квалификационное тестирование системы – тестирование системы насоответствие требованиям к ней и проверка оформления и полноты документации;• установку программного обеспечения – установку программного обеспечения наоборудовании заказчика и проверку его работоспособности;• приемку программного обеспечения – оценку результатов квалификационноготестирования программного обеспечения и системы в целом и документированиерезультатов оценки совместно с заказчиком, окончательную передачу программногообеспечения заказчику.Указанные действия можно сгруппировать, условно выделив следующиеосновные этапы разработки программного обеспечения [10] (в скобках29указаны соответствующие стадии разработки по ГОСТ 19.102-77 «Стадии разработки»):• постановка задачи (стадия «Техническое задание»);• анализ требований и разработка спецификаций (стадия «Эскизный проект»);• проектирование (стадия «Технический проект»);• реализация (стадия «Рабочий проект»).Традиционно разработка также включала этап сопровождения (началу этого этапасоответствует стадия «Внедрение» по ГОСТ).
Однако по международному стандарту всоответствии с изменениями, произошедшими в индустрии разработки программногообеспечения, этот процесс теперь рассматривается отдельно.Условность выделения этапов связана с тем, что на любом этапе возможно принятиерешений, которые потребуют пересмотра решений, принятых ранее (см. § 1.5).Постановка задачи. В процессе постановки задачи четко формулируют назначениепрограммного обеспечения и определяют основные требования к нему.
Каждое требованиепредставляет собой описание необходимого или желаемого свойства программногообеспечения. Различают функциональные требования, определяющие функции, которыедолжно выполнять разрабатываемое программное обеспечение, и эксплуатационныетребования, определяющие особенности его функционирования.Требования к программному обеспечению, имеющему прототипы, обычно определяютпо аналогии, учитывая структуру и характеристики уже существующего программногообеспечения. Для формулирования требований к программному обеспечению, не имеющемуаналогов, иногда необходимо провести специальные исследования, называемыепредпроектными. В процессе таких исследований определяют разрешимость задачи,возможно, разрабатывают методы ее решения (если они новые) и устанавливают наиболеесущественные характеристики разрабатываемого программного обеспечения.
Длявыполнения предпроектных исследований, как правило, заключают договор на выполнениенаучно-исследовательских работ. В любом случае этап постановки задачи заканчиваетсяразработкой технического задания, фиксирующего принципиальные требования, ипринятием основных проектных решений (см. гл. 3).Анализ требований и определение спецификаций. Спецификациями называют точноеформализованное описание функций и ограничений разрабатываемого программногообеспечения. Соответственно различают функциональныеи эксплуатационныеспецификации. Совокупность спецификаций представляет собой общую логическую модельпроектируемого программного обеспечения.Для получения спецификаций выполняют анализ требований технического задания,формулируют содержательную постановку задачи, выбирают30математический аппарат формализации, строят модель предметной области, определяютподзадачи и выбирают или разрабатывают методы их решения.
Часть спецификаций можетбыть определена в процессе предпроектных исследований и, соответственно, зафиксированав техническом задании.На этом этапе также целесообразно сформировать тесты для поиска ошибок впроектируемом программном обеспечении, обязательно указав ожидаемые результаты.Проектирование. Основной задачей этого этапа является определение подробныхспецификаций разрабатываемого программного обеспечения. Процесс проектированиясложного программного обеспечения обычно включает:• проектирование общей структуры – определение основных компонентов и ихвзаимосвязей;• декомпозицию компонентов и построение структурных иерархий в соответствии срекомендациями блочно-иерархического подхода;• проектирование компонентов.Результатом проектирования является детальная модель разрабатываемогопрограммного обеспечения вместе со спецификациями его компонентов всех уровней.
Типмодели зависит от выбранного подхода (структурный, объектный или компонентный) иконкретной технологии проектирования. Однако в любом случае процесс проектированияохватывает как проектирование программ (подпрограмм) и определение взаимосвязей междуними, так и проектирование данных, с которыми взаимодействуют эти программы илиподпрограммы.Принято различать также два аспекта проектирования:• логическое проектирование, которое включает те проектные операции, которыенепосредственно не зависят от имеющихся технических и программных средств,составляющих среду функционирования будущего программного продукта;• физическое проектирование – привязка к конкретным техническим и программнымсредствам среды функционирования, т.е.
учет ограничений, определенных в спецификациях.Реализация. Реализация представляет собой процесс поэтапного написания кодовпрограммы на выбранном языке программирования (кодирование), их тестирование иотладку.Сопровождение. Сопровождение – это процесс создания и внедрения новых версийпрограммного продукта. Причинами выпуска новых версий могут служить:• необходимость исправления ошибок, выявленных в процессе эксплуатациипредыдущих версий;• необходимость совершенствования предыдущих версий, например, улучшенияинтерфейса, расширения состава выполняемых функций или повышения егопроизводительности;31• изменение среды функционирования, например, появление новых технических средстви/или программных продуктов, с которыми взаимодействует сопровождаемое программноеобеспечение.На этом этапе в программный продукт вносят необходимые изменения, которые так же,как в остальных случаях, могут потребовать пересмотра проектных решений, принятых налюбом предыдущем этапе.
С изменением модели жизненного цикла программногообеспечения (см. далее) роль этого этапа существенно возросла, так как продукты теперьсоздаются итерационно: сначала выпускается сравнительно простая версия, затемследующая с большими возможностями, затем следующая и т.д. Именно это и послужилопричиной выделения этапа сопровождения в отдельный процесс жизненного цикла всоответствии с стандартом ISO/IEC 12207.Рассматриваемый стандарт только называет и определяет процессы жизненного циклапрограммного обеспечения, не конкретизируя в деталях, как реализовывать или выполнятьдействия и задачи, включенные в эти процессы. Эти вопросы регламентируютсясоответствующими методами, методиками и т.п.