Характеристики правильно составленной спецификации требований к ПО
Спецификация требований должна быть [15]:
a) Корректной (каждое требование, изложенное в ней, является требованием, которому должно удовлетворять программное обеспечение);
b) Однозначной (каждое изложенное в ней требование может интерпретироваться только однозначно. Как минимум, для этого требуется, чтобы каждая характеристика конечного продукта была описана с использованием одного уникального термина);
c) Полной (все существенные требования должны быть подтверждены и обработаны любые внешние требования, налагаемые спецификацией системы; определены отклики программного обеспечения на все классы входных данных, которые могут быть реализованы, во всех возможных ситуациях, как на допустимые, так и недопустимые входные значения; полные обозначения и ссылки на все рисунки, таблицы и схемы в SRS и определение всех терминов и единиц измерения);
d) Непротиворечивой (никакой набор отдельных требований, описанных в ней, не находится в противоречии с ней или с каким-то документом более высокого уровня);
e) Упорядоченной по ее значимости и/или устойчивости (каждое требование должно иметь идентификатор и относиться к определенному классу требований: необходимые, условные и необязательные);
f) Проверяемой (каждое требование, изложенное в ней, может быть проверено.);
g) Модифицируемой (структура и стиль SRS таковы, что любые изменения требований могут быть выполнены легко, полностью и непротиворечивым образом при сохранении структуры и стиля);
h) Отслеживаемой (должен четко прослеживаться источник каждого из ее требований и SRS облегчает обращение к каждому из требований при дальнейшей разработке или модернизации документации).
В процессе работы с требованиями участвуют так называемые «заинтересованные лица»[10], к числу которых мы будем относить:
− Пользователей (людей, кто будет непосредственно использовать ПО; пользователи могут описать задачи, которые они решают (планируют решать) с использованием ПС, а также ожидания по отношению к атрибутам качества, отображаемые в пользовательских требованиях, в этой роли выступает преподаватель);
− Заказчиков (людей, которые являются целевой аудиторией на рынке программного обеспечения, в этой роли выступает преподаватель);
− Инженеров по программному обеспечению (людей, ответственных за техническую оценку путей решения поставленных задач и последующую реализацию требований заказчиков, в этой роли выступают студенты ‑ члены команды разработчиков).
Все заинтересованные лица должны прийти к соглашению о том, какая система должна быть создана, чтобы в ней воплотились необходимые дидактические и технологические свойства. Данные соглашения фиксируются в документе, с которым могут сверяться и на который могут ссылаться все участники проекта, ‑ интегрированная спецификация требова-
ний, созданная на основе совместного использования традиционной функциональной спецификации и спецификации качества системы.
Комментарии к примеру. В спецификации качества перечисляются основные требования по показателям качества:
- описывается уровень надежности ПС;
- формулируются требования по быстродействию;
- требования к разработке интерфейса и т.п.
Функциональная спецификациявключает в себя:
- перечень всех функций системы с привязкой их к конкретной подсистеме и к информационной среде (входные и выходные данные), фрагмент функциональной спецификации приведен в таблице 1;
- перечень исключительных ситуаций и реакцию системы на их возникновение, при необходимости приводится перечень ошибок, которые могут возникать в системе и соответствующие им системные сообщения, примеры исключительных ситуаций приведены в таблице 2.
Функциональная спецификация должна в полном объёме отображать информационные связи проектируемой системы как с внешним миром, так и между подсистемами. При необходимости расписываются информационные связи для сложных подсистем (спецификация второго уровня).
Исключительная ситуация – это ситуация, при которой система не может выполнить возложенных на нее функций или которая может привести к денормализации работы системы.
Таблица 2 – Перечень исключительных ситуаций
Название подсистемы | Название исключительной ситуации | Реакция системы |
1 Справочная | 1.1 Не возможно открыть файл справки | Выдача сообщения «Файл справки поврежден» |
1.2 Не возможно найти файл справки | Выдача сообщения «Отсутствует файл справки» | |
2 Файловая | 2.1 Попытка открытия файла с несобственным форматом | Выдача сообщения «Файл поврежден или недопустимого формата» |
2.2 Файл с заданным именем не существует | Выдача аналогичного сообщения | |
… | … | … |
Таблица 1 – Перечень функций, выполняемых системой (фрагмент)
Название подсистемы | Название функции | Информационная среда | ||||
Входные данные | Выходные данные | |||||
Назначение (наименование) | Тип, ограничения | Назначение (наименование) | Тип, ограничения | |||
1 Справочная | 1.1 Выдать сведения о разработчиках | Сведения о разработчиках системы (ФИО, номер группы) | Текст (МЕМО) | Визуальное отображение информации | ‑ | |
1.2 Выдать сведения о системе | Файл справки | Текстовый (*.HTML) | ||||
Код ошибки | целое | |||||
2 Настройки параметров | 2.1 Задать количество букв в пересечении | Диапазон количества букв: минимальное максимальное | Целое | Текущее значение букв в пересечении | Целое | |
2.2 Подключить словарь понятий | Имя файла | Строка, *.dict | Список понятий и их определений | Динамический массив строк | ||
Код ошибки | Целое | |||||
2.3 Задать длину кроссворда | Диапазон длин: минимальное максимальное | Целое | Текущее значение длины | Целое | ||
Код ошибки | Целое | |||||
… | … | … | … | … | ||
3 Файловая | 3.1 Загрузить файл с кроссвордом | Имя файла | Строка, *.kros | Кроссворд | Объект, структура определяется в ходе проектирования | |
Код ошибки | Целое |
ЛАБОРАТОРНАЯ РАБОТА № 6
разработка прототипа интерфейса пользователя системы
Интерфейс пользователя является одним из важнейших элементов программы, это та часть программы, которая находится у всех на виду. Недочеты в пользовательском интерфейсе могут серьезно испортить впечатление даже о самых многофункциональных программах. Именно поэтому разработке и проектированию пользовательского интерфейса нужно уделять особое внимание.
Некоторые программисты склонны оставлять дизайн интерфейса пользователя на потом, считая, что реальное достоинство приложения ‑ его программный код, который и требует большего внимания. Однако часто возникает недовольство пользователей из-за неудачно подобранных шрифтов, непонятного содержимого экрана и скорости его прорисовывания, поэтому работу над интерфейсом также нужно воспринимать серьезно.
Для чего нудна разработка пользовательского интерфейса? Как минимум, для этого есть две причины:
- чтобы пользователи работали более продуктивно, программа должна быть простой в использовании;
- хороший интерфейс может стать преимуществом против конкурентов, плохой ‑ послужить причиной неудачи всего проекта.
Процесс создания интерфейса начинается с определения целей проекта, а также внутренних и внешние обстоятельств, которые вы должны принять во внимание. Для того чтобы правильно расставить приоритеты, необходимо учитывать:
- опыт работы пользователей с компьютером, типовые ситуации использования;
- какая информация необходима и когда, какие результаты должны быть получены;
- технологию разработки и платформа, на которой будут работать пользователи.