И. Соммервилл - Инженерия программного обеспечения (1133538), страница 14
Текст из файла (страница 14)
Допустим, вы инженер, включенный в группу разработчиков финансовой системы. В процессе инсталляции системы вы обнаруживаете, что ее внедрение е организации может привести к увольнению большога числа людей. Персонал организации не предоставляет вам информацию, необходимую для завершения инсталляции системы. Что вы будете делать в этой ситуации как инженерсистемотехник? Будете ли вы с чувством профессиональной ответственности стремиться к завершению ее внедрения системы, что требуется от вас контрактом? Или же просто прекратите работу до тех пор, пока организация не разберется со своими проблемами? Процесс создания программного обеспечения ',,4" '! 4 '!Г 'Е гвз ь т".
~'А Е 'г Цель настоящей главы — представить основные идеи лежащие в основе процесса создания програмвгногг обсспеченнл. Прочитав эту главу, вы лолжпы: знать схему построения моделей процесса фор мировання требований к ПО, его разработки тестирования и модернизации; иметь понятие о САЯЕ-технологиях.
прелиазпа ченных для поддержки процесса создания ПО. 4, :,Содержание'-'-",' ' Фь "., 'Фф 3.1. Модели процесса создания ПО 3.2. Итерационные модели разработки ПО 3.3. Спецификация программного обссисчсппя 3лй Проектирование и реализация ПО 3.5. Аттестация программнгях систем 3.6. Эволюция программных систем 3.7. Автоматизированные средства разработки ПО гг С) знать осповныс концепции, лсжаагпс в основ< процесса создания ПО и молслей этого процесса; 0 иметь представление об основных моделях про цесса создания ПО и понимать, когда какую и: них использовать; 54 Насть 1. Инженерия программного обеспечения: обзор Как отмсчътось в главе 1, процесс создания программного обеспечения — это множество взаимосвлза иных процессов и результатов их выполнения, которые ведут к созданию программного продукта. Процесс создания ПО может начинаться с разработки программной системы "с нуля", но чаще новос ПО разрабатывается на основе существующих программных систем путем их модификации.
Процесс создания ПО, как и любая другая интеллектуальная деятельность, основан на человеческих суждениях и умозаключениях, т.е. является творческим. Вследствие этого вес попытки автоматизировать процесс создания ПО имеют лишь ограниченный успех. СА5Е-средства (обсужлаются в разделе 3.7) мог) г помочь в реализации некоторых этапов процесса разработки ПО, ио по крайней мере в ближайшие несколько лет не стоит ожилать от пих существенного продвижения в автоматизации тех этапов создания ПО, где су.
щсственен фактор творческого подхода к разработке ПО. Одна из причин ограниченного применения автоматизированных средств к процессу созлания ПΠ— огромное многообразие видов деятельности, связанных с разработкой программных продуктов. Кроме того, организации-разработчики используют разные подхолы к разработке ПО. Также различаются характеристики и возможности создаваемых систем, что требует особого внимания к определенным сторонам процесса разработки.
Поэтому даже в одной организации при создании разных программных систем могут использоваться различные подходы и технологии. Несмотря на то что наблюдается огромное многообразие подходов, методов и технологий создания ПО, существуют футшамснтальные базовые процессы, без реализации ко. торых нс может обойтись нн олпа технология разработки программных продуктов. Перечислим этн процессы. 1. рязряботка сгмккфкклккк ПО. Зто фундамент любой программной системы. Спецификация определяет все функции н действия, которые будет выполнять разрабатываемая система.
2. Прлгкткровпккг и Репяшлукл (прокзвэдгмво) ПО. Зто процесс непосредственного создания ПО на основе спецификации. 5. Лэнкссжайкя ПО. Разработанное программное обеспечение должно быть аттестовано па соответствие требованиям заказчика. 4. Звшюдия ПО. Любые програминыс системы должны модифицироваться в соответствии с изменениями требований заказчика. В данной главе приведен обзор этих процессов, более подробно онн рассматриваются в последующих частях книги.
Хотя не существует "идеального" процесса создания ПО, во многих оргаиизацняхразработчиках пытаются его усовершенствовать, поскольку он может опираться на устаревшие технологии и не включать лучших методов современной инженерии программного обеспечения. Кроме того, многие организации постоянно используют одни и те же технологии (котла-то ранее хорошо себя зарекомендовавшие) и им также необходимы методы современной инженерии ПО. Совершенствовать процесс создания программных систем можно разными путями.
Например. п)тем стандартизации, которал уменывнт разнородносзь используемых в данной организации технологий. Зто, в свою очередь, приведет к совершенствованию внутренних комзптникзций в организации, уменьшению времени обучения персонала и сделает эконо. мпчески выголпыл» процесс автоматизации разработок.
Стандартизация обычно является первым шагом к внедрению новых мстолов и техншюгий инженерии ПО, Тема совершенствования процесса разработки программных продуктов освещается в главе 25. 3. Процесс создания програымного обеспечения 55 3.1. Модели процесса создания ПО Как отмечалось в главе 1, модель процесса создания программного обеспеченил — это общее абстрактное представление данного процесса. Клждвл такая модель представляет процесс создания ПО в каком-то своем "разрезе", используя только определенную часть всей информации о процессе.
В настоящем разделе представлены обобщенные модели, основанные на архитектурном подходе. В этом случае можно увидеть всю структуру процесса создания ПО, абстрагируясь от частных деталей отдельных составляющих его этапов. Эти обобщенные модели не содержат точного описанил всех стадий процесса создания ПО. Напротив, они являются полезными абстракциями, помошющими "прилож<ггь" различные подходы и технологии к процессу разработки. Кроме того, очевидно, что процесс создания больших систем не является единым, а состоит из множества различных процессов, ведущих к созданию отдельных частей большой системы. В этой главе рассматриваются следующие модели создания программного обеспечения.
1. Ка<кадв<я модык Основные базовые виды деятельности, выполняемые в процессе соз. дания ПО (такие, как разработка спецификации, проектирование и производство, атгесгация и модернизацил ПО), представляются как отдел ы<ыс жгзпы этого процесса. 2. Эв<мюкиэнмпя модс<ь раз)м<ээвкы ПО. Здесь последовательно перемежаются этапы формирования требований, разработки ПО и его аттестации. Первоначэльнал программная система быстро разрабатывается па основе некоторых абстрактных общих требований. Затем опи )точнлются и детализируются в соответствии с тре. бованиями заказчика. Далее система дорабатывается и зттестуется э соответствии с новыми уточненными требованиями.
3. Модель формальной ум<э)юмом<мы п<смюи<. Ошн<вапа на разработке формалыюй математической спецификации программной системы н п)зсобраз<ншпип этой спецификации посредством специальных математических методов э исполняемые про. граммы. Проверка соответствия спецификации и системных компонентов также выполняется математическими методами. 4. Мв)э<а [<лз)к<вам<ми ПО ма оа<ове рамии газдлмкык камлояю<эюв.
Предполагает, что отдельные составные части програл<мной системы уже существуют, т.'с. созданы ранее. В этом случае технологический процесс создан<и ПО основнос внимание уделяет интеграции отдельных компонентов в общее целое, а пе их созданию. Касющная и эволюционная модели разработки широко используются на пракгнкс. Модель формальной разработки систем успешно применялась во мноп|х проектах [219, 239, 8*, 18*), по количество орщнизаций-разработчиков, постоянно использукнцих этот метод, невелико. Использование готовых системных компонентов практикустсл повсеместно, но болылнпство организаций нс придерживаются в точности мололи разработки ПО па основе рзпес созданных компонентов.