И. Соммервилл - Инженерия программного обеспечения (1133538), страница 5
Текст из файла (страница 5)
граммного продукта. Подобные модели, несмотря на их разнообразие, служат абстрактным представлением реального процесса создания ПО. Модели могут отображать процессы, которые являются частью технологического процесса создания ПО, компоненты программных продуктов и действия людей, участвующих в создании ПО. Опишем кратко типы моделей технологического процесса создания программного обеспечения. 1. Модель язслгдовлэмлькасзяи рабоэь Показывает последовательность этапов, выполняемых в процессе создания ПО, включая начало и завершение каждого этапа, а также зависимость между выполнением этапов. Этапы в этой модели соответствуют определенным работам. выполняемым разработчиками ПО.
2. Модеаи яоэюкоз данных к я)юкгссов В них процесс создания ПО представляется в виде множества активностей (процессов), в коде реализации которых выполняются преобразования определенных данных. Например, на вход активности (процесса) создания спецификации ПО поступают определенные данные, на выходе этой активности получают данные, которые поступают на вход активности, соответствующей проектированию ПО, и т.д. Активность в такой модели часто является процессом более низкого порядка, чем этапы работ в модели предыдущего типа. Преобразования данных при реализации активностей могут выполнять как разработчики ПО, так и компьютеры. 3. Ролевая мэдгла Модель этого типа представляет роли людей, включенных в процесс создания ПО, и действил, выполняемые ими в этих ролях.
Существует также большое количество разнообразных моделей процесса разработки программного обеспечения (т.е. подходов к процессу разработки). 1. Кпскадкый лодхад. Весь процесс создания ПО разбивается на отдельные этапы: формирование требований к ПО, проектирование и разработка программного продукта, его тестирование и т.д. Переход к следующему этапу осуществляется только после того, как полностью завершаются работы на предыдущем. 2. Эвазмцкоккый подход.
Здесь последовательно перемежаются этапы формирования требований, разработки ПО и его аттестации. Первоначальнал программная сис. тема быстро разрабатывается на основе некоторых абстрактных (общих) требований. Затем они угочняются и детализируются в соответствии с требованиями заказчика. Далее система дорабатывается и атгестуется в соответствии с новыми угочненными требованиями. Такая последовательность действий может повто. риться несколько раз.
3. Формальные я(моЕмзозанкя Основан на разработке формальной математической спецификации программной сисгемы и преобразовании этой спецификации посредством специальных математических методов в программы. Такое преобразо- 24 к4асть 1. Инзиеиерия программного обеспечению обзор ванне удовлетворяет условию "сохранения корректности". Это означает, что полу. ченная программа будет в точности соответствовать разработанной спецификации.
4. Сбоужа проераммпого продукта иэ)ганзе аиданкыл какпопептоо. Предполагается, что отдельные составные части программной системы уже существуют, т.е. созданы ранее. В этом случае технологический процесс создания ПО основное внимание уделяет интеграции отдельных компонентов в общее целое, а не созданию этих компонентов. Эта технология более подробно рассматривается в главе 14. В главе Я мы вернемся к моделям технологического процесса создания программного обеспечения. 1.1.7. Структура затрат на создание ПО Точная структура затрат на создание программного обеспечения сущеспзенно зависит от процессов, используемых при разработке ПО, а также от типа разрабатываемого программно. го продукта.
Если принять общую стоимость создания ПО за 100 единиц, то распределение стоимостей отдельных этапов производства может иметь такой вид, как на рис. 1.1. 100 Спяцифмпцзи Проектировкам Разрз бэпп Сбции и тестиревае Рпс 1. 1. Раси)мделенке стоимостей отдельных ээшаоо пфокэоодеима ПО Примерно такая структура затрат возможна тогда, когда затраты на создание спецификации, проектирование ПО, его разработку и сборку подсчитываются отдельно.
Отметим, что часто стоимость этапа сборки и тестирования превышает сгоимость этапа непосредственно разработки ПО. Например, на рис. 1.1 показана структура затрат, при которой на тестиро. ванне программной системы приходится примерно 40% общей стоимости затрат.
Вместе с тем лля некоторых критических систем эта статья расходов может превышать 50%. При использовании эволюционного подхода к разработке ПО практически невозможно провести четкое разграничение между этапами создания спецификации, проектирования и разработки ПО. Поэтому структуру затрат, представленную на рис.
1.1, следует изменить так, как показано на рис. 1.2. Здесь оставлен отдельный этап разработки спецификации, поскольку общая спецификация высшего уровня создается еще до начала создания программного продукта. Создание спецификации нижнего уровня, проектирование, реализация, сборка и тестирование ПО при таком подходе выполняются параллельно на этапе разработки программной системы. Вместе с тем этот подход требует выполнения отдельного этапа тестирования системы после окончания начального этапа ее разработки.
75 Спецификация Эвояацигтная разработка Тестирояатм системы Рке. 1 2. Сэзруктуда затРат при шпзмьзооапии зоолюциоппоео подхода краз)кабтзке ПО В стоимость создания ПО также могут включаться затратм на его модернизацию после начала эксплуатации программного продукта Для многих программных систем затраты на со. вершепсгвование системы могут превышать стоимость разработки в Я или 4 раза (рис. 1.Я). 1. Введение 29 Разработш системы Стюршенспоштт сисшыы Рис 1З. Злтспэзм кп Разработку и сааартеитаааапиие ПО Структура затрат на создание заказного программного обеспечения (т.е. когда гребо.
вания к системе устанавливаются заказчиком и разработка ПО выполняется по контракту) примерно такая же, как показано выше, но стоимость различных этапов создания программного продукта может значительно разниться. Это относится, в частности, к программам, разрабатываемым для персональных компьютеров.
Как правило, такое про. граммное обеспечение разрабатывается на основе эволюционного подхода с использованием уже готового эскиза спецификации. Поэтому стоимость разработки требований к ПО относительно низкая. Вместе с тем такие программные продукты предназначены для работы на разных компьютерных платформах, что существенно повышает затраты на тео тирование систем. На рис. 1.4 показана типовал структура затрат на создание такого ПО. 25 75 Саецнфишцкэ Рюрабопц Тестирование системы Рис 1.4. Стр)итурп зпэзрпт ил создание зпипзиаю ПО Стоимость модерниэации общих программных продуктов (т.е.
тех, которые продаютсл на открьпом рынке программ) с трудом поддается оценке. Во многих случаях осуществляется небольшая формальная модернизация. Обычно с началом реализации созданного программного продукта начинается работа с его следующей версией. Но исходя из требований маркетинга предпочтительнее предстатпь новую версию как новый (но совместимый со старой версией) программный продукт, а не как модифицированную версию того продукта, которую пользова.
тель уже купил. Поэтому стоимость модерниэации ПО обычно не подсчитывается отделыю, как это делается при модерниэации заказных программных продуктов, а просто входит в стоимость разработки следующей версии программной систеиы. Структура затрат на создание систем для электронной комлгерции в 1пгегпег обычно отличается от того, что описано выше. В таких системах вместо создания программных модулей, управляющих информацией, обычно используют готовое программное обеспе. чение, а основные затраты приходятся на разработку пользовательских интерфейсов.
На момент написания данной книги такие системы только начали разрабатываться и исполь зоваться, поэтому я, к сожалению, не располагаю подходящей схемой, иллюстрирующей структуру затрат на создание такого типа програимного обеспечения. 1.1.8. Методы инженерии программного обеспечения Эти методы представляют собой структурный подход к созданию ПО, который способствует производству высококачественного программного продукта эффектнвныи. в экономическом аспекте, способом. Такие методы, как структурный анализ (91] и )Я) (метод Джексона разработки систем) (18Ц, впервые были представлены еще в 1970-х го. дах.