Вы находитесь на странице: 1из 25

Название курса

Методы определения требований в


программной инженерии
Лекция 1
Сабирзянов
Рифат Ринатович
ИТИС
Почему это важно?

- Программы проникают практически во все


сферы деятельности человека и от
правильности и надежности программ многое
зависит.

- ПО применяется в финансах, медицине,


энергетике, промышленности и так далее.
Цитата

"Многие программисты способны написать


программу, которая "работает" в большинстве
случаев; небольшое количество
программистов знают основные принципы
спецификации программ и способны
сконструировать программу, которая
гарантированно удовлетворяет её
спецификациям во ВСЕХ случаях.“
Roland Backhouse
Что такое требования?

Требования к программному обеспечению —


совокупность утверждений относительно
атрибутов, свойств или качеств программной
системы, подлежащей реализации.
Уровни требований

Требования бывают разного уровня:


высокоуровневые обобщенные требования
называют пользовательскими требованиями.
Уровни требований

Детализированные описания выполняемых


системой функций называют системными
требованиями.
Уровни требований

Еще более детализированное описание


системы называют проектной системной
спецификацией.
Пользовательские требования

Пользовательские требования пишутся для


заказчиков ПО и для лица, заключающего
контракт на разработку программной системы,
причем они могут не иметь детальных
технических знаний по разрабатываемой
системе.
Спецификация системных
требований

Спецификация системных требований


предназначена для руководящего технического
состава компании разработчика и для
менеджеров проекта. Она также необходима
заказчику ПО и субподрядчикам по разработке.
Эти оба документа также предназначены для
конечных пользователей программной
системы.
Проектная системная
спецификация

Проектная системная спецификация является


документом, который ориентирован на
разработчиков ПО.
Проблемы со
спецификациями

Многие проблемы, возникающие при


разработке систем, связаны с неточностью и
"размытостью" спецификации требований.

Спецификация требований должна быть


комплексной и непротиворечивой.
Виды требований

Функциональные требования - это перечень


сервисов, которые должна выполнять система,
причем должно быть указано, как система
реагирует на те или иные входные данные, как
она ведет себя в определенных ситуациях и
т.д. В некоторых случаях указывается, что
система не должна делать.
Виды требований

Нефункциональные требования - описывают


характеристики системы и ее окружения, а не
поведение системы. Они включают временные
ограничения, ограничения на процесс
разработки системы, стандарты и т.д.
Нефункциональные требования

Все нефункциональные требования можно


разделить на три группы:
1. Требования к продукту.
2. Организационные требования.
3. Внешние требования.

В идеале нефункциональные требования


должны выражаться через количественные
показатели, которые можно объективно
измерить.
Виды требований

Требования предметной области -


характеризуют ту предметную область, где
будет эксплуатироваться система. Эти
требования могут быть функциональными и
нефункциональными.

Например, MISRA C — стандарт разработки


программного обеспечения на Си,
разработанные MISRA (Motor Industry Software
Reliability Association).
Определение требований

Процесс определения требований разбивается


по крайней мере на две части. Во-первых,
нужно понять, что нужно сделать, а во-вторых,
нужно документировать это. Без этой второй
части большой проект останется
неуправляемым. Если требования не записаны
и не сделаны доступными разработчикам, они
вроде бы и не существуют.
Разработка требований

Разработка требований состоит из трех


действий:
1. Интервьирование потенциальных
пользователей о том, что они хотят.
2. Спецификация требований.
3. Анализ требований.
Первое требование

Самое первое требование к проектированию


больших систем программного обеспечения —
предусмотреть возможность будущих
изменений!
Определение требований

Следует также определять требования,


относящиеся к окружению в фазе
использования. Необходимость удовлетворять
этим требованиям может на порядок увеличить
затраты на создание программного
обеспечения.
Определение требований

Главными факторами фазы использования


являются:
1) требования надежности;
2) требования скорости реакции системы;
3) требования реального времени;
Определение требований

Этим требованиям должно удовлетворять как


программное, так и аппаратное обеспечение,
однако пользователь их замечает, только если
они не удовлетворяются. Если все сделано
правильно, пользователь никогда этого не
замечает.
Макет системы

Одним из наиболее многообещающих


современных направлений в технологии,
является разработка подходов и
инструментов для быстрого создания
макетов систем как части итеративного
процесса разработки спецификаций.
Макет системы

Макет программной системы моделирует


главные интерфейсы и выполняет основные
функции предполагаемой системы, при этом не
обязательно будучи связан теми же
ограничениями быстродействия компьютера,
размера или стоимости.
Макет системы

Обычно макеты выполняют основные задачи


системы, но не пытаются обрабатывать
исключительные ситуации, правильно
реагировать на ввод недопустимых данных,
корректно прерывать работу и т.д. Назначение
макета — показать, как воплощается
выбранная концептуальная структура, чтобы
клиент мог проверить ее пригодность к
использованию и непротиворечивость.
Макет системы

Вам также может понравиться