Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Разработка сложных программных изделийСтр 1 из 26Следующая ⇒
РАЗРАБОТКА СЛОЖНЫХ ПРОГРАММНЫХ ИЗДЕЛИЙ Венчковский Л.Б.
Введение......................................................................................................................................................................................... 3 Раздел 1. СТРУКТУРНЫЕ МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ........... 5 Глава 1. Структурные методы в программотехнике................................................................................................... 5 1.1. Эволюция структурных методов.............................................................................................................................. 5 1.2. Основные идеи и принципы структурной методологии..................................................................................... 7 1.3. Принципы программотехники.................................................................................................................................... 8 1.4. Принципы информационной инженерии.................................................................................................................. 8 1.5. Автоматизация проектирования.............................................................................................................................. 9 Глава 2. Структурные методы анализа и проектирования...................................................................................... 9 2.1. Структурный системный анализ............................................................................................................................... 9 2.2. Нисходящее проектирование................................................................................................................................... 10 2.3. Структурное проектирование, управляемое потоками данных.................................................................... 11 2.4. Методы проектирования, управляемые структурами данных...................................................................... 12 Глава 3. Структурные методы программирования.................................................................................................... 13 3.1. Особенности структурных программ.................................................................................................................... 13 3.2. Цели структурного программирования................................................................................................................. 15 3.3. Программирование с использованием пошаговой детализации.................................................................... 15 3.4. Нисходящее и восходящее программирование.................................................................................................... 16 Глава 4. Модульное программирование......................................................................................................................... 16 4.1. Основные понятия и определения............................................................................................................................ 16 4.2. Программные модули и схема модуляризации..................................................................................................... 17
4.3. Оценка качества модульной программы............................................................................................................... 19 Глава 5. Модели разработки программных изделий................................................................................................. 20 5.1. Модель жизненного цикла программного изделия.............................................................................................. 20 5.2. Модель "возрастающей выдачи"............................................................................................................................ 21 5.3. Модель с использованием прототипа................................................................................................................... 21 5.4. Спиральная модель...................................................................................................................................................... 22 Раздел 2. ФАЗЫ ЖИЗНЕННОГО ЦИКЛА ПРОГРАММНОГО ИЗДЕЛИЯ............................................................ 23 Глава 6. Определение требований пользователя и требований к программному изделию.................... 23 6.1. Требования пользователя.......................................................................................................................................... 23 6.2. Требования к программному изделию..................................................................................................................... 24 6.3. Разработка логической модели программного изделия.................................................................................... 24 6.4. Классификация требований к программному изделию..................................................................................... 25 6.5. Атрибуты требований к программному изделию.............................................................................................. 26 6.6. Документ Требования к программному изделию................................................................................................. 26 6.7 Техническое задание на разработку программного изделия............................................................................. 27 Глава 7. Архитектурное проектирование программного изделия...................................................................... 28 7.1. Общее содержание работ фазы.............................................................................................................................. 28 7.2. Виды деятельности..................................................................................................................................................... 29 7.3. Критерии качества архитектурного проекта................................................................................................... 29 Глава 8. Детальное проектирование и изготовление программного изделия.............................................. 30 8.1. Основные виды деятельности.................................................................................................................................. 30
8.2. Кодирование модулей................................................................................................................................................. 31 8.3. Тестирование программного изделия..................................................................................................................... 32 8.4. Документирование работ по проектированию программного изделия....................................................... 32 Глава 9. Отладка программ................................................................................................................................................... 34 9.1. Трудности отладки..................................................................................................................................................... 34 9.2. Средства и методы отладки................................................................................................................................... 35 9.3. Категории ошибок в программном обеспечении................................................................................................ 36 9.4. Рекомендации по отладке......................................................................................................................................... 38 Глава 10. Эксплуатация и сопровождение программного изделия.................................................................. 38 10.1. Передача программного изделия в эксплуатацию........................................................................................... 38 10.2. План испытаний......................................................................................................................................................... 39 10.3. Работы по эксплуатации и сопровождению программного изделия........................................................ 40 10.4. Задачи службы сопровождения программного изделия................................................................................ 40 Раздел 3. УПРАВЛЕНИЕ РАЗРАБОТКОЙ ПРОГРАММНОГО ИЗДЕЛИЯ.......................................................... 41 Глава 11. Управление жизненным циклом программного изделия................................................................... 41 11.1. Виды деятельности, связанные с управлением жизненным циклом программного изделия................. 41 11.2. Измерения в программотехнике............................................................................................................................. 42 11.3. Управление проектированием программного изделия.................................................................................... 43 11.4. Методы получения оценок для проекта программного изделия.................................................................. 45 11.5. Управление рисками.................................................................................................................................................. 48 11.6. Планирование разработки программного изделия.......................................................................................... 49 Глава 12. Управление качеством программного изделия...................................................................................... 50 12.1. Качество программного изделия........................................................................................................................... 50 12.2. Обеспечение качества программного изделия................................................................................................... 51 12.3. Измерение качества программного изделия....................................................................................................... 52 12.4. Управление конфигурацией программного изделия......................................................................................... 53 Литература................................................................................................................................................................................. 55
В конце 60-х — начале 70-х годов появились первые признаки кризиса в области программирования — колоссальные успехи в области развития средств вычислительной техники пришли в противоречие с низкой производительностью труда программистов и низкими темпами ее роста. В связи с усложнением программных систем стало очевидным, что их трудно проектировать, кодировать, тестировать и особенно трудно понимать, когда возникает необходимость их модификации в процессе сопровождения. Появилась жизненная потребность в создании технологии разработки программных средств и инженерных методов их проектирования для существенного улучшения производительности труда разработчиков.
Кардинальные изменения в области создания программного обеспечения были обусловлены и быстрым ростом рыночного программного продукта — той части разработанных программ, которая приобреталась пользователем в виде готовых к эксплуатации пакетов программ различного назначения. Несмотря на то, что значительная часть создаваемого программного обеспечения не доводится до коммерческого использования, т.е. не выходит за пределы фирмы-разработчика, она представляет большую ценность для последующих разработок и для накопления опыта и знаний. Уже к началу 80-х годов только в США было создано программного обеспечения на сотни миллиардов долларов. Внедрение компьютерных технологий в разнообразные сферы человеческой деятельности привело к возникновению и бурному развитию новой отрасли общественного производства — промышленности обработки данных, суммарный объем продаж продукции в которой быстро оставил позади все традиционные отрасли промышленности. Перераспределение числа работающих в сфере материального производства привело к тому, что в наиболее развитых странах более половины работников оказались занятыми обработкой информации. В США в 90-е годы этот показатель достиг 80%. Основа рассматриваемой отрасли в первую очередь — техническое и программное обеспечение систем обработки данных. При этом наиболее наукоемкой остается программная продукция. Естественно, что и в научных исследованиях и в практической деятельности постоянно делались попытки перевести изготовление программной продукции на инженерную основу. Так, в 70-х годах возникла новая инженерная дисциплина — программотехни-к а, или инженерия программного обеспечения (Software Engineering). Программотехника охватывает все виды деятельности по проектированию и разработке программного обеспечения. Программное обеспечение (software) — это программы, выполняемые вычислительной системой. Здесь подразумевается как одна, так и несколько программ, которые может выполнять ЭВМ. Различают системное программное обеспечение, которое нацелено на повышение эффективности работы вычислительной системы и являющееся дополнением к техническим средствам, а также прикладные программы, обеспечивающие выполнение конкретных задач пользователей.
Становлению программотехники способствовало расширение рынка программной продукции, появление мощных фирм, занятых производством исключительно этой продукции, и невиданный рост числа пользователей программных изделий. Под программным изделием понимают программы, которые при выполнении на ЭВМ реализуют требуемые функции и характеристики; данные, которые позволяют программам адекватно обрабатывать и выдавать информацию; документация, описывающая работу и использование программ и организацию их сопровождения. Таким образом, программное изделие включает как программы, так и процедуры и правила их использования, а также всю документацию, необходимую для автоматизированной обработки данных. Программное изделие может быть частью более крупной системы или самостоятельной системой. Программотехника охватывает три ключевых момента создания программной продукции: методы, средства и процедуры. Методы позволяют ответить на вопрос, как создать программное изделие, и охватывают круг задач, связанных с планированием разработки, оценкой сроков и затрат, с анализом требований, проектированием, кодированием и тестированием программ, с сопровождением программного изделия. Средства предназначены для создания автоматизированной или полуавтоматизированной поддержки методов. Сегодня существуют средства практически для каждого из методов. Когда эти средства объединяются в интегрированную среду так, что информация, полученная одним из них, может использоваться другим, создается система поддержки разработки программного обеспечения. Система автоматизации разработки программных средств получила название CASE — Computer-aided software engineering. Процедуры программотехники объединяют в единый технологический процесс методы и средства, позволяя наиболее рационально и эффективно вести разработку программной продукции. Процедуры устанавливают последовательность применения методов, специфику представления требуемых документов, форм и отчетов, последовательность выполнения контрольных и управляющих действий. Программное изделие разрабатывается в четкой последовательности определенных шагов. Последовательность и содержание этих шагов характеризуют модель (парадигму) разработки программного изделия. В программотехнике существует несколько моделей, выбор той или иной из них зависит прежде всего от типа проекта и области приложения. Наибольшее распространение в практике разработки программных средств получила модель жизненного цикла программного изделия (ЖЦПИ). ЖЦПИ — это многошаговый процесс, в котором все программные изделия проходят последовательно через ряд фаз, установленных соответствующими регламентирующими документами.
Трудности разработки и внедрения технологии создания программных изделий во многом определяются особенностями программной продукции как предмета производства. Действительно, программные изделия имеют ряд существенных отличий от других видов продукции, создаваемой в результате человеческой деятельности. 1. В отличие от технического обеспечения, или аппаратных средств (hardware), которые являются физическими объектами, программы представляют собой "неосязаемые" объекты. Программная продукция разрабатывается, а не изготавливается в процессе промышленного производства, несмотря на то, что некоторая аналогия может быть отмечена. Стоимость программного изделия определяется стоимостью инженерной деятельности, а не производственной, поэтому и управление программным проектом осуществляется иначе, чем производственным. 2. Программная продукция "не изнашивается". Известно, что кривая надежности (число отказов в единицу времени) для промышленных изделий имеет начальный участок высокой интенсивности отказов из-за необнаруженных дефектов производства и материалов, затем заметно снижается, оставаясь постоянной до конца срока жизни изделия, когда в результате износа интенсивность отказов опять резко возрастает- У программных изделий на начальном этапе их эксплуатации отмечается наиболее высокий уровень отказов, которые обусловлены необнаруженными ошибками. После исправления ошибок службой сопровождения их интенсивность заметно снижается, однако свести отказы к нулю практически невозможно, так как при внесении исправлений и изменений в программу в ней могут появляться новые необнаруженные ошибки. Следует отметить различия и в содержании понятия отказа для программного изделия. Ошибка (отказ) в программном обеспечении — это ситуация, когда поведение программного обеспечения не соответствует его спецификациям, т.е. требованиям пользователя. Надежность программного обеспечения — свойство программного изделия выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах при выполнении режимов и условий использования ЭВМ. Таким образом, ЖЦПИ заканчивается не в результате износа программного изделия, а из-за его морального "старения", т.е. когда оно перестает удовлетворять актуальным требованиям пользователей и его модификация не выгодна. 3. В отличие от других видов продукции, программные изделия пока не имеют широкого набора запасных частей. Как правило, программное изделие изготавливается в соответствии с требованиями пользователя, а не собирается из существующих компонент, несмотря на то, что в последнее время предпринимаются попытки создания многократно используемых библиотек подпрограмм. 4. Особенность программного изделия состоит в том, что параллельно с эксплуатацией происходит и его совершенствование в процессе сопровождения программного обеспечения. Затраты на сопровождение, включающие затраты на модернизацию и адаптацию продукта к конкретным условиям пользователя, оказываются соизмеримыми с затратами на его разработку, а часто и превышают их. Вот почему основной принцип производства — максимальное увеличение выпуска при минимальных затратах — для программного продукта должен быть расширен с учетом затрат, осуществляемых на протяжении всего ЖЦПИ, включая его эксплуатацию и сопровождение. Перечисленные отличительные черты программных изделий привели к появлению в экономике нового направления, получившего название экономики жизненного цикла программного изделия. Создание программной продукции обязательно должно включать технико-экономический анализ процесса разработки с целью нахождения путей повышения производительности труда разработчиков и уменьшения суммарных затрат за счет совершенствования технологии разработки при обеспечении качества программного изделия- Для проведения технико-экономического анализа используется система технико-экономических показателей и критериев для оценки эффективности проводимых работ. Основной критерий, который стремятся минимизировать, — это суммарные затраты и потери во всех фазах ЖЦПИ. Стоимость разработки при планировании работ оценивается исходя из общих трудозатрат (в человеко-месяцах) и срока разработки изделия (в календарных месяцах или годах), а также их значения по фазам ЖЦПИ. Обычно эти показатели определяются как функция от размера проектируемого программного изделия. Кроме трудозатрат на разработку необходимо установить аналогичные показатели и для фазы сопровождения. Таким образом, разработка сложных программных изделий требует постоянного совершенствования как технологии их создания, так и процессов планирования и управления на основе использования технико-экономического анализа отдельных этапов и всего процесса в целом. В настоящем учебном пособии описаны процедуры разработки программных изделий на основе одного из наиболее распространенных подходов, получивших название жизненного цикла программного изделия. Этот подход нашел отражение в отечественных и зарубежных стандартах, которые регламентируют не только виды деятельности на разных этапах жизненного цикла, но и процедуры управления процессом проектирования, внедрения и сопровождения разработанных программных продуктов. Принципы программотехники Программотехника — более емкая дисциплина по сравнению со структурной методологией. Охватывая структурную методологию, она дополняет ее совокупностью методов и средств разработки программного обеспечения. Базируясь на четырех основных структурных принципах, программотехника включает в себя и пять принципов программотехники. Принцип сокрытия информации предполагает для каждого уровня декомпозиции представление только той информации о модуле, которая необходима для данного уровня детализации. Вся несущественная информация остается скрытой от разработчика. На основе указанного принципа программный модуль рассматривается как «черный ящик», о котором известны входные и выходные данные и функция, выполняемая модулем. Принцип локализации означает группирование логически связанных элементов; это относится к данным и этапам выполнения алгоритмов. Он реализуется через создание как структур данных (массивы, записи), так и программных структур типа отдельных подпрограмм или процедур. Принцип концептуальной целостности требует следовать единому и непротиворечивому плану разработки проекта и принимать на каждом этапе разработки непротиворечивые решения: обеспечивая единый стиль в выполнении работ, унификацию архитектуры системы и четкий согласованный план работ; повышая понимаемость проекта и этапов его выполнения. Принцип полноты (завершенности) определяет необходимость постоянного контроля для гарантии того, что ничто не пропущено и не включено лишнее на каждой фазе ЖЦПИ. Принцип логической независимости предполагает, что при анализе и проектировании программного изделия логические функции полностью независимы от физической реализации, модели данных, представляющие логическую структуру данных, не зависят от их физической реализации, а общие словари данных — от конкретных приложений. Нисходящее проектирование Нисходящее проектирование — неформальная стратегия при разбиении крупной проблемы на подпроблемы меньшего размера. Это пошаговый процесс, начинающийся с общей функции системы, которая разделяется на подфункции; процесс повторяется до тех пор, пока все подфункции не станут достаточно простыми, чтобы их можно было представить на языке программирования. Нисходящее проектирование применимо к проектированию систем, программ, отдельного модуля, а также к проектированию структур данных. Как и другие структурные методы, нисходящее проектирование имеет целью: • систематизировать процесс проектирования; • создать модульный проект программы; • дать структуру для эффективного решения проблемы. Процесс пошаговой детализации — это процесс принятия наилучшего решения на каждом шаге проектирования, основой чему служит опыт и интуиция проектировщика. Хотя метод не предлагает строгих правил для выбора решения, однако можно указать следующие общие руководства: • принимать те решения, которые при разделении проблемы на части обеспечивают наибольшую логическую связность внутри каждой части (подпроблемы); • при принятии решения обязательно рассматривать альтернативные проекты; • на каждом шаге принимать как можно меньше решений; • в первую очередь пытаться выполнять простейшие решения. Для успешного применения метода каждый проектировщик должен следовать следующим основополагающим принципам: 1. Для каждого модуля (на любом уровне иерархии) должны быть определены: функция, его входы и выходы. 2. Функция каждого модуля должна расшифровываться не более, чем на одном листе инструкции (или на экране дисплея). Описание функции модуля верхнего уровня, т.е. всего проекта, не может превышать десяти строк кода или вызовов модулей следующего уровня. 3. Для описания интерфейсов между модулями данным необходимо уделять такое же внимание, как и процедурам обработки. Проект программного изделия, полученный в результате нисходящего проектирования, документируется обычно в графической форме, построенной с использованием структурных средств (структурных схем, схем действий и т.п.). Схема сопровождается описанием модулей в повествовательной форме на естественном языке или на псевдокоде. Спиральная модель Подход к созданию программного изделия на основе спиральной модели охватывает все основные элементы моделей, рассмотренных ранее, но дополнительно включает новый вид деятельности — анализ риска. Общая схема разработки программного изделия представлена на рис. 3 в виде четырех квадрантов, соответствующих четырем видам деятельности, выполняемым последовательно: 1.Планирование, включающее определение целей, возможных альтернативных решений и ограничений. 2. Анализ риска, связанный с анализом альтернативных решений и оценкой возможных рисков и путей их преодоления. 3. Инженерная разработка продукта "следующего уровня". 4. Оценка пользователем (заказчиком) результатов инженерной деятельности, т.е. экспертиза разработанного варианта продукта.
Планирование Сбор первичных требований и планирование проекта Планирование, основанное на замечаниях заказчика Оценка заказчиком Оценка заказчиком Анализ риска Разработка Рис 3. Спиральная модель разработки программного изделия
По мере прохождения указанных четырех этапов создается версия программного изделия, и на каждом следующем витке спирали происходит переход к более совершенной версии. Если на первом витке анализ риска указывает на отсутствие четкости и определенности в требованиях, то может оказаться необходимым создание прототипа, чтобы помочь и разработчику, и заказчику уточнить и согласовать требования. В результате оценки заказчиком результатов инженерной разработки вырабатываются предложения по модификации изделия, и на основе этих предложений начинается новый виток спирали с этапа планирования. На каждом витке высшей точкой является фаза анализа риска, когда принимается решение о продолжении работ. При очень высоком риске проект может быть закрыт. Обычно движение по спирали продолжается, и с каждым витком происходит приближение ко все более совершенному программному изделию. Инженерная разработка в свою очередь может проводиться в соответствии с моделью классического ЖЦПИ. Следует отметить, что спиральная модель (и ее модификации) является одной из наиболее реальных моделей при разработке программных систем большого размера. В качестве эффективного средства снижения риска целесообразно создавать прототип на каждом витке спирали. Спиральная модель не получила такого широкого распространения, как модель ЖЦПИ, поскольку она требует значительных усилий при оценке риска и экспертизе такой оценки.
Требования пользователя Первая фаза жизненного цикла связана с подробным определением решаемой проблемы. Цель этой фазы — сформулировать задачу, которая должна быть выполнена с использованием компьютера, а также определить, что предполагается получить в результате автоматизации. Программное изделие может разрабатываться как по индивидуальному заказу в соответствии с требованиями заказчика, так и для широкого коммерческого применения, в последнем случае роль заказчика выполняет рынок, требования которого обязан всесторонне учитывать разработчик. Поэтому понятие заказчика, или пользователя разрабатываемого изделия, будем трактовать, исходя из этого положения. Считается, что ответственным за определение требований является пользователь (заказчик), и в этой работе ему должны помогать инженеры, знающие компьютерные технологии. Выходным результатом работ на этой фазе служит документ Требования пользователя (ДТП), который утверждается после всестороннего критического обзора и рассмотрения. Основной вид деятельности в этой фазе — сбор требований пользователей и их тщательное документирование в ДТП. Здесь подготавливается и план работ следующей фазы. Сбор требований пользователя к будущей автоматизированной системе осуществляется путем обследования существующей технологии обработки данных (обычно путем изучения документопото-ков), путем опроса специалистов, специально проводимыми интервью с пользователями. Поскольку, по мере сбора, требования могут изменяться, уточняться и добавляться, вся эта деятельность в целом представляет собой итеративный процесс, предполагающий многократные повторения, необходимые для достижения максимальной детализации, четкости и однозначности в формулировке каждого требования, а также достижения полноты охвата всех требований пользователя. Первым шагом в определении требований пользователя должно быть уяснение операционной обстановки, т.е. должна быть выработана четкая картина реальной обстановки, в которой будет функционировать разрабатываемый программный продукт. Повествовательное описание окружающей обстановки и условий работы целесообразно дополнить схемами потоков документов, указав в потоках связи с внешними системами по отношению к рассматриваемой. Все требования пользователей делятся на: 1. Требования, отражающие возможности системы, реализация которых обеспечивает решение поставленной проблемы. 2. Требования, определяющие ограничения на способы и пути решения проблемы или на пути достижения поставленной цели. Требования первой группы описывают функции и операции, необходимые пользователю. Важную часть здесь составляют атрибуты точности. Во многих случаях появляются временные и пространственные требования, которые целесообразно представить в виде последовательности выполняемых операций, в виде регламента подготовки выходных документов с указанием периодичности и сроков их выдачи с привязкой к соответствующим документам. Требования-ограничения могут включать требования использования определенных форм документов для взаимодействия с другими системами, стандартных описаний данных, форматов, а также требования применения определенных компьютеров, операционных систем и т.п. Для диалоговых систем пользователь может пожелать, например, использовать специфические экранные формы или шаблоны, специальные средства помощи, создаваемые программными средствами. Ограничения могут включать и требования качественного типа. Защита данных от несанкционированного доступа, приспособленность изделия к адаптации, переносимость в другие операционные среды — все это может быть отнесено к требованиям-ограничениям. При этом пользователь должен подробно описать потери, порождаемые нарушением подобных требований, чтобы разработчик мог критически оценить каждое требование. Каждое требование пользователя должно описываться следующими атрибутами: 1.Идентификатор, позволяющий проследить выполнение каждого установленного требования через все фазы ЖЦПИ. 2. Уровень важности, устанавливаемый в соответствии со шкалой рейтингов, принятой пользователем для разрабатываемого изделия. 3.Стабильность требования, указывающая степень его постоянства на протяжении ЖЦПИ. При этом должны быть отмечены требования, которые могут быть изменены в результате получения в процессе проектирования новой информации или в результате накопления опыта эксплуатации. 4. Приоритет, указывающий определенную временную последовательность в реализации различных требований, особенно для развивающихся систем, когда, например, отдельные функциональные подсистемы могут разрабатываться достаточно независимо и последовательно. 5. Источник возникновения требования должен указываться либо в виде ссылки на конкретный внешний документ, либо на пользователя (группу пользователей), который установил это требование. 6. Проверяемость требования, т.е. каждое требование должно поддаваться проверке выполнения. Это определяет возможность контроля того, что требование включено в проект и может быть реализовано программными средствами и протестировано. 7.Ясность формулировки, означающая определенность и однозначность требования и отсутствие какой-либо неопределенности. Требования к программному изделию Вторая фаза ЖЦПИ — фаза определения требований к программному изделию, которая является фазой "анализа проблемы". Главной целью этой фазы выступает разработка полной, непротиворечивой и корректной совокупности требований к программному обеспечению на основе всестороннего изучения требований пользователя. За выработку требований отвечает разработчик. В качестве участников этой фазы должны привлекаться пользователи, инженеры-программисты, специалисты по техническим средствам, а также обслуживающий персонал. Ответственным за выполнение работы, как правило, назначается системный аналитик. Руководитель проекта организует взаимные консультации и обсуждения, поскольку участники обсуждений могут иметь разное представление о конечном продукте, и их взгляды должны синтезироваться в четкие и непротиворечивые формулировки требований. Основным выходным результатом этой фазы жизненного цикла является документ Требования к программному изделию (ДТПИ), который определяет, что должен делать программный продукт, а также, как будет осуществляться проверка правильности и полноты выполняемых функций и на этапах проектирования, и при проверке конечного продукта. Работы здесь выполняются в соответствии с планом, разработанным на предыдущем этапе. Основная деятельность — трансформация требований пользователя в требования к программному изделию и составление подробного описания того, что должно выполнять программное изделие. Подготавливаемый документ должен отражать взгляд разработчика на решаемую проблему. Этот взгляд базируется на модели системы обработки данных, построенной на основе структурного системного анализа потоков данных и представленной в виде совокупности схем потоков данных с последовательной пошаговой детализацией функций разрабатываемой системы. Главная задача на этом этапе — согласование представлений и требований пользователя (заказчика) и разработчика программного изделия. Выработка требований к программному изделию может потребовать создания прототипа для проверки, пояснения или уточнения требований и их согласования с заказчиком. Кроме документа Требования к программному изделию, на этой фазе разрабатываются планы работ для следующей фазы. В отечественной практике рассматриваемая фаза завершается созданием Технического задания на программное изделие. Документ Требования к программному изделию Основным выходным материалом рассматриваемой фазы должен быть документ Требования к программному изделию. Главным показателем качества этого документа является полнота охвата требований пользователя. Для контроля и доказательства полноты в документ помещается таблица (матрица), показывающая, как требования пользователя соотносятся с требованиями к программному обеспечению. Таблица позволяет организовать трассировку требований как вручную, так и с привлечением автоматизированных средств. Непротиворечивость описания требований должна проверяться и при проведении критического обзора документа. Основное в документе — функциональные требования, которые структурируются по нисходящему принципу с последовательной детализацией требований предыдущего, более высокого уровня. Нефункциональные требования подключаются к функциональным и могут появиться на всех уровнях иерархии функциональной декомпозиции. Документ не содержит описания деталей реализации программного изделия, т.е. функциональные требования отражают лишь то, что будет выполнять программный продукт. Многие из функциональных требований вытекают из схем потоков данных, которые являются результатом структурного системного анализа проектируемого продукта. При этом схема потоков данных верхнего уровня дает общий обзор функций будущего изделия. В документе каждое требование, снабженное идентификатором и атрибутами степени важности и приоритета, имеет ссылку на документ Требования пользователя для облегчения обратной трассировки. Документ Требования к программному изделию должен быть написан на естественном языке. В его рассмотрении и критическом обзоре, кроме разработчиков, принимают участие пользователи, операционный персонал и менеджеры, поэтому стиль и форма изложения требований должна быть понятна всем участникам этой фазы. Однако при описании ряда специфических требований возможно использование формальных языков описания спецификаций, во избежание нежелательных неточностей и многозначности естественного языка. В этом случае формальное описание (например, в виде таблиц или деревьев решений и т.п.) должно быть дополнено пояснениями на естественном языке. 6.7 Техническое задание на разработку программного изделия
|
|||||||||
Последнее изменение этой страницы: 2017-02-07; просмотров: 207; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.17.74.227 (0.101 с.) |