И. Соммервилл - Инженерия программного обеспечения (1133538), страница 18
Текст из файла (страница 18)
Риски ьгогут также ззключаться в превышении сроков илн стоимости проекта. Таким образолг, уменьшение (разрешение) рисков — важный элемент управления системным проектом. В главе 4, посвященной управлению программными проектами, возможные риски и способы их разрешения рассматрнваютгл бо.
лес детально. Ркс. 3.7. Спирялъкплмодель стдпяил ПО(©! 9ВВ!ЕЕЕ) Порвал итерация создания ПО в спиралыюй модели начинается с тщательной проработки системных показателей (целей системы), таких как эксплуатационные показатели и функциональные возможности системы. Конечно, альтернативных путей достижения этик показателей илн целей можно сформировать бесконечно много. Но каждая альтернатива должна оценивать стоимость достижения каждой сформулированной цели.
Результаты анализа возможных альтернатив служат источником оценки проектного риска. Это происходит на следующей стадии спиральной модели, где для оценки рисков бб Часть У.. Инженерия программнога обеспечения: обзор используются бол<с детальный анализ альтернатив, прототипирование, имитационное моделирование и т.и. С >чстом пол>чеииых оценок рисков выбираетсл тот или иной подход к разработке системных компонентов, далее ои реализуется, затем осуществляется планирование следующего этапа процесса создания ПО.
В спирвлыюй лн>дели нет фиксирован<ых этапов. таких как разработка спецификации или проектирование. Эта молол< может включать в себя любыс др>тие л<одели разработки систем. Например, иа олпом витке спирали может использоваться протипирование для более четкого определения требований (и, следовательно. лля уменьшения соответствующих рисков). Но на слсл>юи<см в<пкс <<ожет применяться каскзднал модель.
Если требования четко сформулпро. ваиы, может и(и<меиятьо< могол 4юрз<алана<х преобразований. 3.3. Спецификация программного обеспечения В этом разделе, а также в трех последующих, рассматриваются основные базовые процесгы создания ПО: формирование спецификации, разработка, аттестация и модернизация программных систем.
Первый из этих процессов, формирование спецификации, предназначен для оирслелсния сервисов, которыми будет обладать проектируемое ПО, а также ограничений, накладываемых на функциональные возможности и разработку программной системы. Эта процесс н настоящее время обычно называют "разработка требований" (гс<ригещепм соби<ос<йпб). РазраГютка требований часто является критическим этапом в созлаиии ПО, поскольку ошибки.
допущенные на этом этапе, ведуг к возникновению проблем иа этапах про< л-гирован<ш и разработки. Схема процесса разработки требований показана на рис. 3.8. Результатом его выполнения является разработка документации, формализующсй требования, иредъявллсмые к систсл<с, т.е. создание системной спецификации. В этой докул<ентации требования обычно прслставлеиы на двух уровнях детализации. На самом верхнем уровне представлены требования, определяемые консчиымн пользователями или заказчи.
кани ПО; ио для разработчиков необходима более детализированная системная спсцификацил. Рнг. 3.8. П)<о<<гсг)<оз)<обомки я<)<гбовоний 3. 11роцесс создания программного обеспсчення 67 Процесс разработки трсбовапий включает чстырс основных этапа. 1. Лргдвлритглънме игглгдсэлнлль Оцсиивзсгсл гтспсць удовлстворснности пользоватслсй сущсствуюьльимн программными продуктами н аппаратными средствами. а такжс экоиомичсская эффективность будущсй систсмы и возможность уложиться в сущсствующис бюджстныс ограннчсния при сс разработкс, Этот этап должси быть по возможности коротким и дсшсвылг. 2. Формировпнке и анализ эребовлни11.
Формируются сисгсьшыс трсбования путем изучения сущсствующик аналогичных снстсм, обсуждспия будущей систсмы с потснциальпымн пользоватслями и заказчиками, анализа задач, каторыс должна решать систсма, и т.и. Этот этап может включать разработку исскольких моделей системы и сс прототипов, что помогает сформировать функциональные трсбованил к системе. 3. Слгцкфккк~мианиг ьллулбаапний Остшсствлястся перевод вссй совокупности информации, собранной па прсдыдущсм этапе, в документ. опрсдсляющий множсство трсбовзиий. Этот докумсит обычно содсржит два типа трсбо наний: пол ьзоватсльс кис — обобщсш лыс прсдставлсиия заюлзчиков и коночных иользоватслсй о системе; сисгсмпыс — дстзлыюс описаиис функциональных покаытслсй систсмы.
4. Уэмерждсяке элулебовпний. Провсрястсл выполнимость, согласованность и полнота множсства требований. В процсссс формированил ограничсний нснзбсжпо возиикиовспис каких-либо ошибок. Нз этбм этапе онн должны быть ьло возможности выявлены и устранены. Конечно, процссс разработки трсбоваиий трудно уложить в описанную послсдова. тсльность этапов. Например, анализ трсбовапий выполплстся па протяасшш вссго процссса их разработки, поэтому внссспис новых или измснснис ужо сформулированных трсбований возможно на любом этапе.
Как правило, этапы разработки трсбоваиий пере. крываются во врсмсни. 3.4. Проектирование и реализация ПО Рсализация программного обсспсчсппя — зто ироцссг псрсвода снстсмной сисцифиюьции в работоспособную систсму. Этап рсзлизацин вссгда вкллочьлст процессы просктирования и программирования. ио сслн для разработки ПО примсиястся эволюционный подход, этап реализации также можст включать процесс внсссппя измсисиий в системную спсцификацию. На этапс прослтнровапия ПО опрсдслястся сго структура.
лаипыс. которыс являются частью системы, интсрфсйсы взаимодсйгтвия сигтсмных компоисптов и иногда исполь. зусмыс злгоритмы. Проектировщики сразу никогда пс получают закоичспььый рсз1льтат— процссс просктировання обычно ироходьп' чсрсз разработку нескольких промеж> гочпых всрсий ПО. Просктнрованис прсдколагаст иослсдоватсльную формализацию и дстализацию создзвасмого ПО с возможностью впсссипя измспсиий в рсшсиня, прииятыс на болсс ранних стадилх просктироваиил.
Процесс просктироваиия можст включать разработку пссколькпх модслсй систсмьь различных 1роансй обобгцсиия. Поскольлу просктироваипс — это процсгс декомпозиции, такис модели помогают выявить ошибки, лоп1'щснпыс на раиппх стадиях прослтпрования, а слсдоватслыю, позволяют внссти измсиснпя в рансс созданныс ьн>дсли. На рис. 1.9 показана слома процссса просктироваиия ПО с указанная рсз1тььтатьл каждого этапа иросктировапия. Эта схсма построена в прсдположсьцш, что всс этапы процесса просктиро- 68 Часть 1. Инженерия программного обеспечеаяяг обзор ванна выполплются последовательно. На практике эти этапы перекрываются вследствие неизбежных обратных свлзей от одного этапа к предыдущему и повторного выполнения некоторых проектных работ.
Результатом каждого этапа проектирования является спецификация, необходимая для выполнения следующего этапа Эта спецификация может быть абстрактной и формальной, т.е. такой, какая необходима для детализации системных требований; но она может быть и частью разрабатываемой системы. Так как процесс проектирования непрерывен, спецификации постепещю становятся все более детализированными.
Конечными результатами процесса проектированил являются точные спецификации на алгоритмы и структуры данных, которые будуг реализованы на следующем этапе создания ПО. Ниже перечислены отдельные этапы процесса проектирования. 1. е)рхииикалурное нраекалировпниа Определяются и документируются подсистемы и взаимосвязи между ними. 2. Ооааи1еннпя слмцнфикпцшл Для каждой подсистемы разрабатывается обобщенная спецификация на ее сервисы и ограничения.
В. Проектировшлие интерфейсов. Для каждой подсистемы определяется и документируется ее интерфейс. Спецификации на эти интерфейсы должны быть точно выраженными и однозначными. чтобы использование подсистем не требовало знаний о том, как они реализуют свои функции. На этом этапе можно применить методы форлгэльных спецификаций, рассмотренные в главе 9. 4. Калноианилное проека1ировпниа Проводи гся распределение системных функций (сер- висов) по различным компонентам и их интерфейсам.
5. Проектирование структур опннъиа Детально разрабатываются структуры данных, не- обходнмыс для реализации программной системы. б. Проекашровпние пиеа)акишев. Детально разрабатываются алгоритмы, предназначенные длл реализации системных сервисов. Рвзуяьтвтм ярвтпи)мазям Рис. 3.9.