- Главная
- Информатика
- Программная инженерия (технология программирования)
Содержание
- 2. Программная инженерия (технология программирования) -дисциплина, целью которой является сокращение стоимости и сроков разработки программ. Каждый этап
- 3. Проблема: переход от разработки относительно простых программ к разработке сложных программных комплексов ( системы управления космическими
- 4. Проблема. Изменение требований к программе стали возникать не только на стадии сопровождения, но и на стадии
- 5. Инженерия программного обеспечения -инженерная дисциплина, охватывающая все аспекты разработки программного обеспечения Программное обеспечение это набор компьютерных
- 6. Основной принцип программной инженерии состоит в том, что программы создаются в результате выполнения нескольких взаимосвязанных этапов
- 7. Основные проблемы, стоящие перед специалистами по программному обеспечению Проблема наследования ранее созданного ПО. Многие большие программные
- 8. Процесс создания программного обеспечения Создание ПО — это совокупность процессов, приводящих к созданию программного продукта. Существует
- 9. Структура затрат на создание ПО Структура затрат на создание программного обеспечения существенно зависит от процессов, используемых
- 10. Стоимость программы – это стоимость ее разработки - Стоимость коробочных продуктов «размазывается» по копиям - Стоимость
- 11. Стоимость модернизации общих программных продуктов (т.е. тех, которые продаются на открытом рынке программ) с трудом поддается
- 12. Основные показатели качественного программного обеспечения Удобство сопровождения ПО должно быть таким, чтобы существовала возможность его усовершенствования
- 13. Одним из основных понятий программной инженерии является понятие жизненного цикла программного продукта и программного процесса. Жизненный
- 14. Модель программного процесса — это упрощенное описание программного процесса, представленное с некоторой точки зрения. Модель задается
- 15. К первым типам моделей (модели жизненного цикла) относятся модели, в которых описывается порядок выполнения действий по
- 16. Каскадная (водопадная) модель ЖЦ Процесс разбивается на последовательное выполнение стадий; каждая стадия начинается после полного завершения
- 17. Основными принципами каскадной модели являются: Каждая последующая фаза начинается лишь тогда, когда полностью завершено выполнение предыдущей
- 18. Каскадная модель имеет следующие преимущества: · Проста и понятна заказчикам Проста и удобна в применении: способствует
- 19. Спиральная (циклическая) модель спиральная модель ЖЦ делает упор на начальные этапы ЖЦ: анализ и проектирование. На
- 20. Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы
- 21. Инкрементная модель ЖЦ Первая создаваемая промежуточная версия системы (выпуск 1) реализует часть требований, в последующую версию
- 22. Инкрементная разработка представляет собой процесс частичной реализации всей системы и медленного наращивания функциональных возможностей. С помощью
- 23. Данная модель жизненного цикла характерна при разработке сложных и комплексных систем, для которых имеется четкое видение
- 24. Эволюционная модель Эта модель основана на следующей идее: разрабатывается первоначальная версия программного продукта, которая передается на
- 25. В случае эволюционной модели система разрабатывается в виде последовательности блоков структур (конструкций). В отличие от инкрементной
- 26. Быстрая разработка приложений (RAD) Под RAD-разработкой обычно понимается процесс разработки, содержащий 3 элемента: - небольшую команду
- 27. Условия применения методологии RAD: - применима для относительно небольших проектов, разрабатываемых под конкретного заказчика; - неприменима
- 28. Экстремальное программирование ХР-процесс Данный подход ориентирован на разработку информационных систем группами малого и среднего размера в
- 29. - коллективное владение кодом – любой, кто видит возможность улучшить какую-то часть кода, может сделать это
- 30. Анализ предметной области и требования к ПО Для того, чтобы разработать программную систему, приносящую реальные выгоды
- 31. Цикл работы с требованиями Выделение требований (requirements elicitation), нацеленное на выявление всех возможных источников требований и
- 32. Виды требований 1. Пользовательские требования – описание на естественном языке (плюс поясняющие диаграммы) функций, выполняемых системой,
- 33. Пример Пользовательские требования 1. ПО должно предоставить средство доступа к внешним файлам, созданным в других программах.
- 34. Спецификация требований к ПО является основным документом, определяющим план разработки ПО. Все требования, указанные в спецификации,
- 35. Описание требований ПРИМЕРЫ ФУНКЦИОНАЛЬНЫХ ТРЕБОВАНИЙ Система ATM должна проверять действительность вставленной в банкомат карточки. Система ATM
- 36. Разработка требований - это процесс, включающий мероприятия, необходимые для создания и утверждения документа, содержащего спецификацию системных
- 37. Анализ осуществимости Для новых программных систем процесс разработки требований должен начинаться с анализа осуществимости. Началом такого
- 38. Формирование и анализ требований После выполнения анализа осуществимости следующим этапом процесса разработки требований является формирование (определение)
- 39. Опорные точки зрения Любая средняя или большая система ПО обычно имеет различные типы конечных пользователей. Многие
- 40. Подход с использованием различных опорных точек зрения к разработке требований признает эти различные (опорные) точки зрения
- 41. использование метода VORD на первых трех шагах анализа требований для системы управления банкоматами. Банкомат имеет встроенное
- 42. распределение сервисов для некоторых идентифицированных точек зрения
- 43. Точки зрения также определяют входные данные и управляющую информацию для сервисов. Например, банкомат должен определять остаток
- 44. Сценарии Люди обычно легче воспринимают примеры из реальной жизни, чем абстрактные описания. Специалисты могут использовать информацию,
- 45. когда карточка вставлена, запрашивается персональный идентификационный номер клиента (PIN-код). Если карточка действительна, она может обрабатываться банкоматом,
- 46. Варианты использования Варианты использования (use-case)– это методика формирования требований, основанная на сценариях. Они стали основой нотаций
- 47. Этнографический подход Системы программного обеспечения не существуют изолированно от окружающего мира. Они эксплуатируются в определенной социальной
- 48. Этнографический подход позволяет получить требования, которые учитываются в разрабатываемом прототипе. Кроме того, этнографический подход используется при
- 49. Аттестация требований Аттестация должна продемонстрировать, что требования действительно определяют ту систему, которую хочет иметь заказчик. Проверка
- 50. Программные документы
- 52. Скачать презентацию
Слайд 2Программная инженерия (технология программирования) -дисциплина, целью которой является сокращение стоимости и сроков
Программная инженерия (технология программирования) -дисциплина, целью которой является сокращение стоимости и сроков
Каждый этап развития программной инженерии связан с появлением (или осознанием) очередной проблемы и нахождением путей и способов решения этой проблемы
Проблема: высокая стоимость программ была связана с разработкой одинаковых (или похожих) фрагментов кода в различных программах.
Модульное программирование. Главный принцип состоял в выделении таких фрагментов и оформлении их в виде модулей. Каждый модуль снабжался описанием, в котором устанавливались правила его использования – интерфейс модуля.
Слайд 3Проблема: переход от разработки относительно простых программ к разработке сложных программных комплексов
Проблема: переход от разработки относительно простых программ к разработке сложных программных комплексов
Для таких сложных программ оказалось, что основная часть их стоимости приходится не на создание программ, а на их внедрение и эксплуатацию
Структурное программирование. Этап сопровождения программного комплекса включал действия по исправлению ошибок в работе программы и внесению изменений в соответствии с изменившимися требованиями пользователей.
Основные принципы технологии структурного проектирования и кодирования:
Нисходящее функциональное проектирование, при котором в системе выделяются основные функциональные подсистемы, которые потом разбиваются на подсистемы и т.д. (принцип «разделяй и властвую»)
Применение специальных языков проектирования и средств автоматизации использования этих языков
Дисциплина проектирования и разработки: планирование и документирование проекта, поддержка соответствие кода проектной документации
Слайд 4Проблема. Изменение требований к программе стали возникать не только на стадии сопровождения,
Проблема. Изменение требований к программе стали возникать не только на стадии сопровождения,
Объектно-ориентированное программирование: использование объектно-ориентированного проектирования и программированием. Суть подхода состоит в том, что вводится понятие класса как развитие понятия модуля с определенными свойствами и поведением, характеризующими обязанностями класса. Каждый класс может порождать объекты – экземпляры данного класса. При этом работают основные принципы (парадигмы) ООП:
Инкапсуляция – объединение в классе данных (свойств) и методов (процедур обработки).
Наследование – возможность вывода нового класса из старого с частичным изменением свойств и методов
США тратит ежегодно более $200 млрд. на более чем 170 тыс. проектов разработки ПО в сфере IT;
31,1% из них закрываются, так и не завершившись; 52,7% проектов завершаются с превышением первоначальных оценок бюджета/сроков и ограниченной функциональностью; потери от недополученного эффекта внедрения ПО измеряются триллионами.
Причины:
Нереалистичные временные рамки
Недостаток количества исполнителей
Недостаток средств
Нехватка квалифицированных кадров
Слайд 5Инженерия программного обеспечения -инженерная дисциплина, охватывающая все аспекты разработки программного обеспечения
Программное обеспечение
Инженерия программного обеспечения -инженерная дисциплина, охватывающая все аспекты разработки программного обеспечения
Программное обеспечение
В зависимости от того, для кого разрабатываются программные продукты (конкретного заказчика или рынка, программные продукты бывают двух типов:
коробочные продукты (generic products – общие продукты или shrink-wrapped software – упакованное ПО)
заказные продукты (bespoke – сделанный на заказ или customized products – настроенный продукт). В первом случае ставит задачу (определяет, или специфицирует требования сами разработчики на основе анализа рынка (маркетинга). Во втором – заказчик.
Слайд 6Основной принцип программной инженерии состоит в том, что программы создаются в результате
Основной принцип программной инженерии состоит в том, что программы создаются в результате
Программная инженерия занимается не только техническими вопросами производства ПО (специфицирование требований, проектирование, кодирование,…), но и управлением программными проектами, включая вопросы планирования, финансирования, управления коллективом и т.д. Кроме того, задачей программной инженерии является разработка средств, методов и теорий для поддержки процесса производства ПО.
Информатика (computer science) занимается теорией и методами вычислительных и программных систем, в то время как программная инженерия занимается практическими проблемами создания ПО. Информатика составляет теоретические основы программной инженерии.
Слайд 7Основные проблемы, стоящие перед специалистами по программному обеспечению
Проблема наследования ранее созданного ПО. Многие
Основные проблемы, стоящие перед специалистами по программному обеспечению
Проблема наследования ранее созданного ПО. Многие
Проблема все возрастающей разнородности программных систем. В настоящее время программное обеспечение должно быть способно работать в качестве систем, распределенных в компьютерных сетях, состоящих из компьютеров разных типов и использующих различные операционные системы. Проблема возрастающей разнородности программных систем состоит в том, что необходимо разрабатывать надежные программные системы, способные работать совместно с ПО разных типов.
Проблема, порожденная требованием уменьшения времени на создание ПО. Многие традиционные технологии создания качественного программного обеспечения требуют больших временных затрат. Вместе с тем сегодня запросы рынка ПО и требования к программным системам меняются очень быстро. Поэтому и ПО должно меняться с соответствующей скоростью. Проблема, порожденная требованием уменьшения времени на создание ПО, заключается в том, чтобы сократить время на разработку больших и сложных программных систем без снижения их качества.
Слайд 8Процесс создания программного обеспечения
Создание ПО — это совокупность процессов, приводящих к созданию
Процесс создания программного обеспечения
Создание ПО — это совокупность процессов, приводящих к созданию
Разработка спецификации требований на программное обеспечение. Требования определяют функциональные характеристики системы и обязательны для выполнения.
Создание программного обеспечения. Разработка и создание ПО согласно спецификации на него.
Аттестация программного обеспечения. Созданное ПО должно пройти аттестацию для подтверждения соответствия требованиям заказчика.
Совершенствование (модернизация) программного обеспечения. ПО должно быть таким, чтобы его можно было модернизировать согласно измененным требованиям потребителя.
При выполнении разнообразных программных проектов эти процессы могут быть организованы различными способами и описаны на разных уровнях детализации. Длительность реализации этих процессов также далеко не всегда одинакова. Если использовать неподходящий процесс, это может привести к снижению качества и функциональности разрабатываемого программного продукта.
Слайд 9Структура затрат на создание ПО
Структура затрат на создание программного обеспечения существенно зависит
Структура затрат на создание ПО
Структура затрат на создание программного обеспечения существенно зависит
Стоимость создания ПО также могут включаться затраты на его модернизацию после начала эксплуатации программного продукта. Для многих программных систем затраты на совершенствование системы могут превышать стоимость разработки в 3 или 4 раза
Слайд 10Стоимость программы – это стоимость ее разработки
- Стоимость коробочных продуктов «размазывается» по
Стоимость программы – это стоимость ее разработки - Стоимость коробочных продуктов «размазывается» по
Тестирование продукта – это единственный способ убедиться в его качестве. Именно поэтому стоимость тестирования составляет существенную стоимость ПО.
Слайд 11Стоимость модернизации общих программных продуктов (т.е. тех, которые продаются на открытом рынке
Стоимость модернизации общих программных продуктов (т.е. тех, которые продаются на открытом рынке
Структура затрат на создание систем для электронной коммерции в Internet обычно отличается от того, что описано выше. В таких системах вместо создания программных модулей, управляющих информацией, обычно используют готовое программное обеспечение, а основные затраты приходятся на разработку пользовательских интерфейсов.
Слайд 12 Основные показатели качественного программного обеспечения
Удобство сопровождения
ПО должно быть таким, чтобы существовала возможность
Основные показатели качественного программного обеспечения
Удобство сопровождения
ПО должно быть таким, чтобы существовала возможность
Надежность
Определяется рядом характеристик, таких как безотказность, защищенность и безопасность. Надежность ПО означает, что возможные сбои в работе системы не приведут к физическому или экономическому ущербу
Эффективность
Работа ПО не должна приводить к расточительному расходованию таких системных ресурсов, как память или время занятости процессора. Поэтому эффективность ПО описывается следующими характеристиками: скорость выполнения, используемое процессорное время, объем требуемой памяти и т.п.
Удобство в использовании
ПО должно быть удобным в эксплуатации и не требовать чрезмерного напряжения усилий пользователя того уровня, на которого оно рассчитано. Это означает, что программная система должна обладать соответствующим пользовательским интерфейсом и необходимой документацией
Слайд 13Одним из основных понятий программной инженерии является понятие жизненного цикла программного продукта
Одним из основных понятий программной инженерии является понятие жизненного цикла программного продукта
Слайд 14Модель программного процесса — это упрощенное описание программного процесса, представленное с некоторой
Модель программного процесса — это упрощенное описание программного процесса, представленное с некоторой
Выбор модели процесса является первым шагом в создании ПО. Правильный выбор модели очень важен, т.к. во многом определяет успех проекта.
Типы моделей процесса: модели процесса разработки (модели жизненного цикла) и модели организации работ по выполнению разработки
Слайд 15К первым типам моделей (модели жизненного цикла) относятся модели, в которых описывается
К первым типам моделей (модели жизненного цикла) относятся модели, в которых описывается
Различия между этими моделями существуют только в теории. Задача программного инженера – подобрать правильную их комбинацию, ориентируясь только на конечный результат.
Ко второму типу моделей – моделей организации работ относятся:
Модель потока работ (workflow model) — показывает последовательность действий, выполняемых людьми на различных этапах разработки ПО. Для каждого действия указываются входы, выходы (результаты) и связи по входам и выходам.
Модель потоков данных (data flow model) — представляет процесс в виде последовательного преобразования данных. Каждое преобразование может выполняться одним или несколькими действиями.
Ролевая модель — показывает роли людей, участвующих в программном процессе, а также действия и результаты, за которые они отвечают
Слайд 16Каскадная (водопадная) модель ЖЦ
Процесс разбивается на последовательное выполнение стадий; каждая стадия начинается
Каскадная (водопадная) модель ЖЦ
Процесс разбивается на последовательное выполнение стадий; каждая стадия начинается
Слайд 17Основными принципами каскадной модели являются:
Каждая последующая фаза начинается лишь тогда, когда
Основными принципами каскадной модели являются:
Каждая последующая фаза начинается лишь тогда, когда
Каждая фаза имеет определенные критерии входа и выхода: входные и выходные данные.
Каждая фаза полностью документируется
Переход от одной фазы к другой осуществляется посредством формального обзора с участием заказчика
Основа модели – сформулированные требования (ТЗ), которые меняться не должны. Критерий качества результата – соответствие продукта установленным требованиям.
Слайд 18Каскадная модель имеет следующие преимущества: ·
Проста и понятна заказчикам
Проста и удобна
Каскадная модель имеет следующие преимущества: ·
Проста и понятна заказчикам
Проста и удобна
способствует осуществлению строгого контроля менеджмента проекта;
Каждую стадию могут выполнять независимые команды (все документировано). ·
Позволяет достаточно точно планировать сроки и затраты.
Недостатки этой модели:
процесс создания ПС не всегда укладывается в такую жесткую форму и последовательность действий;
не учитываются изменившиеся потребности пользователей, изменения во внешней среде, которые вызовут изменения требований к системе в ходе ее разработки;
большой разрыв между временем внесения ошибки (например, на этапе проектирования) и временем ее обнаружения (при сопровождении), что приводит к большой переделке ПС.
Слайд 19Спиральная (циклическая) модель
спиральная модель ЖЦ делает упор на начальные этапы ЖЦ: анализ
Спиральная (циклическая) модель
спиральная модель ЖЦ делает упор на начальные этапы ЖЦ: анализ
Слайд 20Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не
Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не
Основная проблема спирального цикла – определение момента перехода на следующий этап. Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
Слайд 21Инкрементная модель ЖЦ
Первая создаваемая промежуточная версия системы (выпуск 1) реализует часть требований,
Инкрементная модель ЖЦ
Первая создаваемая промежуточная версия системы (выпуск 1) реализует часть требований,
Слайд 22Инкрементная разработка представляет собой процесс частичной реализации всей системы и медленного наращивания
Инкрементная разработка представляет собой процесс частичной реализации всей системы и медленного наращивания
В начале работы над проектом определяются все основные требования к системе, после чего выполняется ее разработка в виде последовательности версий. При этом каждая версия является законченным и работоспособным продуктом. Первая версия реализует часть запланированных возможностей, следующая версия реализует дополнительные возможности и т. д., пока не будет получена полная система.
Слайд 23Данная модель жизненного цикла характерна при разработке сложных и комплексных систем, для
Данная модель жизненного цикла характерна при разработке сложных и комплексных систем, для
- отсутствия у заказчика возможности сразу профинансировать весь дорогостоящий проект;
- отсутствия у разработчика необходимых ресурсов для реализации сложного проекта в сжатые сроки;
- требований поэтапного внедрения и освоения продукта конечными пользователями. Внедрение всей системы сразу может вызвать у ее пользователей неприятие и только «затормозить» процесс перехода на новые технологии.
Слайд 24Эволюционная модель
Эта модель основана на следующей идее: разрабатывается первоначальная версия программного продукта,
Эволюционная модель
Эта модель основана на следующей идее: разрабатывается первоначальная версия программного продукта,
Слайд 25В случае эволюционной модели система разрабатывается в виде последовательности блоков структур (конструкций).
В случае эволюционной модели система разрабатывается в виде последовательности блоков структур (конструкций).
Использование эволюционной модели предполагает проведение исследования предметной области для изучения потребностей заказчика проекта и анализа возможности применения этой модели для реализации. Модель применяется для разработки несложных и не критических систем, для которых главным требованием является реализация функций системы. При этом требования не могут быть определены сразу и полностью. Тогда разработка системы проводится итерационно путем ее эволюционного развития с получением некоторого варианта системы - прототипа, на котором проверяется реализация требований.Такой процесс является итерационным, с повторяющимися этапами разработки, начиная от измененных требований и до получения готового продукта.
Слайд 26Быстрая разработка приложений (RAD)
Под RAD-разработкой обычно понимается процесс разработки, содержащий 3 элемента:
- небольшую
Быстрая разработка приложений (RAD)
Под RAD-разработкой обычно понимается процесс разработки, содержащий 3 элемента:
- небольшую
- короткий, но тщательно проработанный производственный график (от 2 до 6 месяцев);
- повторяющийся цикл, при котором разработчики по мере того, как приложение начинает обретать форму, реализуют в продукте требования, полученные через взаимодействие с заказчиком.
методология RAD подразумевает использование на каждой итерации:
- Case-средства (набор инструментов автоматизации) для формирования и анализа требований, проектирования системы, автоматической генерации кода программ и структуры БД, а также автоматического тестирования программного обеспечения;
- инструментальных средств, обеспечивающих визуальную разработку (программирование) системы. Среда разработки приложений позволяет без написания кода программы создавать («рисовать») сложные графические интерфейсы пользователя, состав и структуру БД, запросы к БД, а также связывать данные с элементами интерфейса (переключателями, полями ввода, таблицами и т. д.);
- инструментальных средств, поддерживающих объектно-ориентированный подход. Эти средства позволяют создать описание предметной области в виде совокупности объектов – сущностей реального мира, характеризуемых свойствами (атрибутами) и поведением (методами);
- инструментальных средств, обеспечивающих событийное программирование. Каждый объект, входящий в состав приложения, может генерировать события и реагировать на события, генерируемые другими объектами;
- шаблонов и библиотек готовых решений как собственной разработки, так и сторонних производителей.
Слайд 27Условия применения методологии RAD:
- применима для относительно небольших проектов, разрабатываемых под конкретного заказчика;
- неприменима
Условия применения методологии RAD:
- применима для относительно небольших проектов, разрабатываемых под конкретного заказчика;
- неприменима
- неприменима для разработки приложений, в которых отсутствует ярко выраженная интерфейсная часть, наглядно определяющая логику работы системы (например, приложения реального времени);
- неприменима для разработки приложений, от которых зависит безопасность людей (например, управление самолетом или атомной электростанцией), так как итеративный подход предполагает, что первые несколько версий, скорее всего не будут полностью работоспособны, что в данном случае исключается.
Слайд 28Экстремальное программирование ХР-процесс
Данный подход ориентирован на разработку информационных систем группами малого и
Экстремальное программирование ХР-процесс
Данный подход ориентирован на разработку информационных систем группами малого и
Отличительными особенностями XP-разработки являются:
- частая смена версий и модификаций
- непрерывная связь с заказчиком – в группе все время находится квалифицированный представитель заказчика.
- простое проектирование – при разработке всегда выбирается наиболее простое решение.
- простой дизайн – система должна быть спроектирована настолько просто, насколько это возможно на каждый момент времени. Чем интерфейс проще, тем быстрее и качественнее идет освоение системы пользователями. Это не означает, что интерфейс «командной строки» самый предпочтительный. Как раз наоборот, «дружественный» и простой интерфейс должен быть интуитивно-понятным для пользователя; в нем должны отсутствовать бесполезные элементы, основная цель которых – произвести визуальное впечатление на пользователя;
Слайд 29- коллективное владение кодом – любой, кто видит возможность улучшить какую-то часть кода,
- коллективное владение кодом – любой, кто видит возможность улучшить какую-то часть кода,
- программирование в парах – на пару программистов приходится один компьютер. Пока один из них непосредственно программирует, другой обдумывает вопросы реализации требований (функций, БД и т.п.). Смысл положения заключается не в экономии на материально-техническом обеспечении команды разработчиков, а в более разумном сочетании разных видов деятельности каждого из них. Как показывает опыт, при непосредственном программировании, исправлении ошибок и т.п. программист начинает думать односторонне и все более узкими категориями. Именно поэтому во время «отдыха от компьютера» приходят наиболее удачные решения;
- непрерывное и пересекающееся проектирование, разработка, интеграция и тестирование системы.
Слайд 30Анализ предметной области и требования к ПО
Для того, чтобы разработать программную систему,
Анализ предметной области и требования к ПО
Для того, чтобы разработать программную систему,
Описание функциональных возможностей и ограничений, накладываемых на программную систему, называется требованиями к этой системе, а сам процесс формирования, анализа, документирования и проверки этих функциональных возможностей и ограничений – разработкой требований (requirements engineering).
Требования к ПО определяют, какие свойства и характеристики оно должно иметь для удовлетворения потребностей пользователей и других заинтересованных лиц
Слайд 31Цикл работы с требованиями
Выделение требований (requirements elicitation), нацеленное на выявление всех возможных
Цикл работы с требованиями
Выделение требований (requirements elicitation), нацеленное на выявление всех возможных
• Анализ требований (requirements analysis), целью которого является обнаружение и устранение противоречий и неоднозначностей в требованиях, их уточнение и систематизация.
• Описание требований (requirements specification). В результате этой деятельности требования должны быть оформлены в виде структурированного набора документов и моделей.
• Валидация требований (requirements validation), которая решает задачу оценки понятности сформулированных требований и их характеристик
Слайд 32Виды требований
1. Пользовательские требования – описание на естественном языке (плюс поясняющие диаграммы) функций, выполняемых
Виды требований
1. Пользовательские требования – описание на естественном языке (плюс поясняющие диаграммы) функций, выполняемых
Слайд 33Пример
Пользовательские требования
1. ПО должно предоставить средство доступа к внешним файлам, созданным в
Пример
Пользовательские требования
1. ПО должно предоставить средство доступа к внешним файлам, созданным в
Спецификация системных требований 1.1. Пользователь должен иметь возможность определять тип внешних файлов. 1.2. Для каждого типа внешнего файла должно иметься соответствующее средство, применимое к этому типу файлов. 1.3. Внешний файл каждого типа должен быть представлен соответствующей пиктограммой на дисплее пользователя.
Пользовательские требования пишутся для заказчика ПО и для лица, заключающего контракт на разработку программной системы, причем они могут не иметь детальных технических знаний по разрабатываемой системе. Спецификация системных требований предназначена для руководящего технического состава компании-разработчика и для менеджеров проекта. Она также необходима заказчику ПО и субподрядчикам по разработке. Эти оба документа также предназначены для конечных пользователей программной системы. Наконец, проектная системная спецификация является документом, который ориентирован на разработчиков ПО.
Слайд 34Спецификация требований к ПО является основным документом, определяющим план разработки ПО. Все
Спецификация требований к ПО является основным документом, определяющим план разработки ПО. Все
Функциональные требования определяют действия, которые должна выполнять система, без учета ограничений, связанных с ее реализацией. Тем самым функциональные требования определяют поведение системы в процессе обработки информации.
Нефункциональные требования не определяют поведение системы, но описывают атрибуты системы или атрибуты системного окружения. Можно выделить следующие типы нефункциональных требований:
требования к применению, которые определяют качество пользовательского интерфейса, документации;
требования к производительности, которые накладывают ограничения на функциональные требования, задавая необходимую эффективность использования ресурсов, пропускную способность и время реакции;
требования к реализации, которые предписывают использовать определенные стандарты, языки программирования, операционную среду и ;
требования к надежности, которые определяют допустимую частоту и воздействие сбоев, а также возможности восстановления;
требования к интерфейсу, которые определяют внешние сущности, с которыми может взаимодействовать система, и регламент этого взаимодействия.
Слайд 35Описание требований
ПРИМЕРЫ ФУНКЦИОНАЛЬНЫХ ТРЕБОВАНИЙ
Система ATM должна проверять действительность вставленной в банкомат
Описание требований
ПРИМЕРЫ ФУНКЦИОНАЛЬНЫХ ТРЕБОВАНИЙ
Система ATM должна проверять действительность вставленной в банкомат
Система ATM должна проверять достоверность PIN-кода, введенного пользователем.
Система ATM должна выдавать по одной ATM- карточке не более $250 в сутки.
ПРИМЕРЫ НЕФУНКЦИОНАЛЬНЫХ ТРЕБОВАНИЙ
Система ATM должна быть написана на C++.
Система ATM должна обмениваться информацией с банком, используя 256-разрядную кодировку.
Система ATM должна проверять действительность карточки ATM в течение не более трех секунд.
4. Система ATM должна проверять достоверность PIN-кода в течение не более трех секунд.
Слайд 36Разработка требований - это процесс, включающий мероприятия, необходимые для создания и утверждения документа, содержащего
Разработка требований - это процесс, включающий мероприятия, необходимые для создания и утверждения документа, содержащего
Различают четыре основных этапа процесса разработки требований:
анализ технической осуществимости создания системы,
формирование и анализ требований,
специфицирование требований и создание соответствующей документации,
аттестация этих требований.
Слайд 37Анализ осуществимости
Для новых программных систем процесс разработки требований должен начинаться с анализа
Анализ осуществимости
Для новых программных систем процесс разработки требований должен начинаться с анализа
Выполнение анализа осуществимости включает сбор и анализ информации о будущей системе и написание соответствующего отчета. Сначала следует определить, какая именно информация необходима, чтобы ответить на поставленные выше вопросы
Слайд 38Формирование и анализ требований
После выполнения анализа осуществимости следующим этапом процесса разработки требований
Формирование и анализ требований
После выполнения анализа осуществимости следующим этапом процесса разработки требований
Процесс формирования и анализа требований проходит через ряд этапов. 1. Анализ предметной области. Аналитики должны изучить предметную область, где будет эксплуатироваться система. 2. Сбор требований. Это процесс взаимодействия с лицами, формирующими требования. Во время этого процесса продолжается анализ предметной области. 3. Классификация требований. На этом этапе бесформенный набор требований преобразуется в логически связанные группы требований. 4. Разрешение противоречий. требования многочисленных лиц, занятых в процессе формирования требований, будут противоречивыми. 5. Назначение приоритетов. В любом наборе требований одни из них будут более важны, чем другие. На этом этапе совместно с лицами, формирующими требования, определяются наиболее важные требования. 6. Проверка требований. На этом этапе определяется их полнота, последовательность и непротиворечивость.
Слайд 39Опорные точки зрения
Любая средняя или большая система ПО обычно имеет различные типы
Опорные точки зрения
Любая средняя или большая система ПО обычно имеет различные типы
Например, в процессе формировании требований для системы банкоматов участвуют следующие лица. 1. Обычные клиенты банка, пользующихся услугами банкоматов. 2. Представители других банков, имеющих взаимные соглашения с данным банком о совместном использовании банкоматов. 3. Менеджеры филиалов банка, получающих информацию из системы управления банкоматами. 4. Сотрудники филиалов банка, вовлеченные в повседневную работу системы банкоматов, обрабатывающие рекламации клиентов и т.д. 5. Администраторы баз данных, ответственные за связь банкоматов с базой данных клиентов. 6. Руководители службы безопасности банка, обеспечивающей защиту системы банкоматов. 7. Отдел маркетинга банка, использующий систему банкоматов как средство маркетинга. 8. Разработчики аппаратных и программных средств, ответственные за сопровождение и модернизацию аппаратных и программных средств. Этот список показывает, что даже для относительно простой системы существует много различных точек зрения, которые должны быть рассмотрены. Различные точки зрения на проблему позволяют увидеть ее с разных сторон. Однако эти взгляды не являются полностью независимыми и обычно перекрывают друг друга, а потому могут служить основой общих требований..
Слайд 40Подход с использованием различных опорных точек зрения к разработке требований признает эти различные (опорные)
Подход с использованием различных опорных точек зрения к разработке требований признает эти различные (опорные)
На основе этого подхода разработан метод VORD (Viewpoint-Oriented Requirements Definition – определение требований на основе точек зрения) для формирования и анализа требований. Основные этапы метода VORD 1. Идентификация точек зрения, получающих системные сервисы, и идентификация сервисов, соответствующих каждой точке зрения. 2. Структурирование точек зрения – создание иерархии сгруппированных точек зрения. Общесистемные сервисы предоставляются более высоким уровням иерархии и наследуются точками зрения низшего уровня. 3. Документирование опорных точек зрения, которое заключается в точном описании идентифицированных точек зрения и сервисов. 4. Отображение системы точек зрения, которая показывает системные объекты, определенные на основе информации, заключенной в опорных точках зрения.
Слайд 41использование метода VORD на первых трех шагах анализа требований для системы управления
использование метода VORD на первых трех шагах анализа требований для системы управления
Первым шагом в формировании требований является идентификация опорных точек зрения. Организуется встреча лиц, участвующих в формировании требований, которые предлагают свои точки зрения. Эти точки зрения представляются в виде диаграммы, состоящей из ряда круговых областей, отображающих возможные точки зрения необходимо идентифицировать потенциальные опорные точки зрения, системные сервисы, входные данные, нефункциональные требования, управляющие события и исключительные ситуации. Источниками информации, которые можно использовать в создании этого начального образа системы, могут служить документы, описывающие назначение системы, знания инженеров-программистов из предыдущих проектов или опыт клиентов банка. Может быть проведен опрос менеджеров банка, обслуживающего персонала, консультантов, инженеров и клиентов. Следующей стадией процесса формирования требований будет идентификация опорных точек зрения и сервисов . Сервисы должны соответствовать опорным точкам зрения. Но могут быть сервисы, которые не поставлены им в соответствие. Это означает, что на начальном этапе "мозговой атаки" некоторые опорные точки зрения не были идентифицированы. Например, для сервисов "Удаленное обновление ПО" и "Удаленная диагностика» необходимо иметь точку зрения об обслуживании программного обеспечения
.
Слайд 42распределение сервисов для некоторых идентифицированных точек зрения
распределение сервисов для некоторых идентифицированных точек зрения
Слайд 43Точки зрения также определяют входные данные и управляющую информацию для сервисов. Например,
Точки зрения также определяют входные данные и управляющую информацию для сервисов. Например,
информация, извлеченная из точек зрения, используется для заполнения форм шаблонов точек зрения и организации точек зрения в иерархию наследования. Это позволяет увидеть общие точки зрения и повторно использовать информацию в иерархии наследования. Сервисы, данные и управляющая информация наследуются подмножеством точек зрения.
Следующая стадия процесса формирования требований – получение более детальной информации относительно сервисов, используемых сервисами данных, и управляющих данных. Эта информация извлекается из мнений лиц, формирующих требования, связанные с каждой опорной точкой зрения. Для этого используются шаблоны точек зрения и описания сервисов в виде сценариев событий.
Слайд 44 Сценарии
Люди обычно легче воспринимают примеры из реальной жизни, чем абстрактные описания. Специалисты
Сценарии
Люди обычно легче воспринимают примеры из реальной жизни, чем абстрактные описания. Специалисты
Слайд 45когда карточка вставлена, запрашивается персональный идентификационный номер клиента (PIN-код). Если карточка действительна,
когда карточка вставлена, запрашивается персональный идентификационный номер клиента (PIN-код). Если карточка действительна,
На первой стадии сценария возможны три исключительные ситуации.
1. Превышение лимита времени ожидания. Клиент может не успеть ввести PIN-код в отведенное для ввода время. Карточка возвращается.
2. Недопустимая карточка. Карточка не опознается и возвращается.
3. Удержание карточки. Карточка удерживается банкоматом.
Каждую исключительную ситуацию можно определить более подробно, построив отдельные диаграммы потоков данных и управления
"Проверка пользователя" – стадия проверки соответствия PIN-кода номеру счета клиента. Номер счета является выходными данными этой стадии. Возможная исключительная ситуация – ввод неверного PIN-кода, в этом случае PIN-код запрашивается снова. На диаграмме показано, что повторный запрос может опять привести к исключительной ситуации. Если повторно введенный PIN-код снова неверный, карточка возвращается. После события "Подтверждение пользователя" можно переходить к следующей стадии сценария "Выбор сервиса".
Слайд 46Варианты использования
Варианты использования (use-case)– это методика формирования требований, основанная на сценариях. Они
Варианты использования
Варианты использования (use-case)– это методика формирования требований, основанная на сценариях. Они
Слайд 47 Этнографический подход
Системы программного обеспечения не существуют изолированно от окружающего мира. Они эксплуатируются
Этнографический подход
Системы программного обеспечения не существуют изолированно от окружающего мира. Они эксплуатируются
этнографический подход использован для изучения работы офиса. Показано, что фактическая работа, выполняемая в офисе, более сложна и динамична, чем предусматривает простая модель, принятая для системы автоматизации делопроизводства. Это расхождение между реальной работой и моделью послужило причиной того, что офисные системы автоматизации не показывали той эффективности, на которую были рассчитаны. Этнографический подход к формированию требований можно объединить с прототипированием .
Слайд 48Этнографический подход позволяет получить требования, которые учитываются в разрабатываемом прототипе. Кроме того,
Этнографический подход позволяет получить требования, которые учитываются в разрабатываемом прототипе. Кроме того,
Этнографический подход позволяет детализировать требования для критических систем, чего не всегда можно добиться другими методами разработки требований. Однако, поскольку этот метод ориентирован на конечного пользователя, он не может охватить все требования предметной области и требования организационного характера. Поэтому он не является всеохватывающим подходом в формировании требований и должен использоваться совместно с такими подходами, как анализ вариантов использования.
Слайд 49Аттестация требований
Аттестация должна продемонстрировать, что требования действительно определяют ту систему, которую хочет
Аттестация требований
Аттестация должна продемонстрировать, что требования действительно определяют ту систему, которую хочет
Слайд 50Программные документы
Программные документы