Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Рекомендуемая стандартом IEEE 830 структура SRS




Исследование корректности реализации и верификация АС _______мин.

 

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

(СЛАЙД _7_)

 

Корректность ПО при разработке наиболее полно определяется степенью соответствия предъявляемым к ней формализованным требованиям программной спецификации. В спецификациях отражается совокупность эталонных характеристик, свойств и условий, которым должна соответствовать программа. Основную часть спецификации составляют функциональные критерии и характеристики. Исходной программной спецификацией, которой должна соответствовать программа, является ТЗ.

При отсутствии полностью формализованной, спецификации требований в качестве ТЗ, которому должна соответствовать АС и результаты ее функционирования, иногда используются неформализованные представления разработчика, пользователя или заказчика программ. Однако понятие корректности программ по отношению к запросам пользователя или заказчика сопряжено с неопределённостью самого эталона, которому должна соответствовать АС. Для сложных программ всегда существует риск обнаружить их некорректность (по мнению пользователя или заказчика) при формальной корректности относительно спецификаций вследствие неточности самих спецификаций.

Спецификация требований программного обеспечения (Software Requirements Specification) — законченное описание поведения системы, которую требуется разработать.

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

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

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

В стандарте IEEE 830 содержится рекомендации к структуре и методам описания программных требований – “Recommended Practice for Software Requirements Specifications”.

(СЛАЙД _8_)

Стандарт IEEE Std 830-1998 — Recommended Practice for Software Requirements Specifications. По сути — это аналог рекомендаций для написания технического задания по ГОСТ 34.602, но более новый и, соответсвенно, отвечающий всем современным требованиям по составлению ТЗ, основанный на структурно-функциональном подходе к пониманию систем.

Стандарт IEEE 830 является признанным разработчиками как не только формально обязательный, но и практически полезный при разработке спецификаций.

В стандарте определены основные ключевые требования «хорошей спецификации»:

Unambiguous (недвусмысленность) — отсутвие лескических, ситаксических и семантических ошибок
Complete (полнота) — должны быть описаны все значимые области требований
Verifiable (проверяемость) — должны содержаться только те требования, которые могут быть численно измерены
Consistent (целостность) — не должно быть конфликтов требований
Modifiable (модифицируемость) —спецификация должна быть легкой в использовании и организации ссылок между требованиями
Traceable (трассируемость) — спецификация должна позволять пошагово отслеживать (трассировать) от требований до предыдущих принятых решений, от документов расширяющих спецификацию (проектировка и т.д.) к требованиям текущего состояния спецификации

Usable (возможность применения) — спецификация должна без излишних деталей описывать весь жизненный цикл системы

Также в стандарте IEEE 830 1998 определено прототипирование как метод разработки требований к системе и даны образцы структуры спецификаций.

(требования к программной спецификации)

(СЛАЙД _9_), (СЛАЙД _10_)

 

  • Введение
    • Цели
    • Соглашения о терминах
    • Предполагаемая аудитория и
    • Масштаб проекта
    • Ссылки на источники

 

  • Общее описание
    • Видение продукта
    • Функциональность продукта
    • Классы и характеристики пользователей
    • Среда функционирования продукта (операционная среда)
    • Рамки, ограничения, правила и стандарты
    • Документация для пользователей
    • Допущения и зависимости

 

  • Функциональность системы
    • Функциональный блок X (таких блоков может быть несколько)
      • Описание и приоритет
      • Причинно-следственные связи, алгоритмы (движение процессов, workflows)
      • Функциональные требования

 

  • Требования к внешним интерфейсам
    • Интерфейсы пользователя (UX)
    • Программные интерфейсы
    • Интерфейсы оборудования
    • Интерфейсы связи и коммуникации

 

  • Нефункциональные требования
    • Требования к производительности
    • Требования к сохранности (данных)
    • Критерии качества программного обеспечения
    • Требования к безопасности системы

 

  • Прочие требования
    • Приложение А: Глоссарий
    • Приложение Б: Модели процессов и предметной области и другие диаграммы
    • Приложение В: Список ключевых задач

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

 

Таким образом, можно сделать вывод о том, что создание совокупности взаимоувязанных непротиворечивых спецификаций является необходимой базой для обеспечения корректности проектируемой программы. При этом спецификации должны: (СЛАЙД _11_)

– быть формальными;

– позволять проверять непротиворечивость и полноту требований заказчика;

– служить основой для дальнейшего формализованного проектирования ОС.

 

Существует несколько подходов к определению спецификаций требований.

Спецификация как описание. Заказчик выдает спецификацию, чтобы изготовители могли снабдить его тем изделием, которое он желает, поэтому заказчик видит этот документ главным образом как описание системы, которую он желал бы иметь. В принципе, в описании должно быть указано, что должна и что не должна делать система. На практике обычно по умолчанию предполагается, что система должна делать то, что уточняется в спецификации, и не должна делать ничего более. В этом состоит главная проблема с описательной стороной спецификации. Предполагается, что заказчик всегда точно знает всё, что система должна и не должна делать. Более того, в дальнейшем предполагается, что заказчик полностью перенёс это знание в специфицированный документ.

Спецификация как предписание. Изготовитель смотрит на специфицированный документ как на набор составных частей, подлежащих сборке, чтобы разрешить проблему заказчика. Такой предписывающий взгляд обуславливается не только трудностями создания описательного документа (как указывалось выше), но и сведениями, которые умышленно или неумышленно расширяют или ограничивают свободу изготовителя.

Договорная методология. В рамках "описание заказчика - предписание изготовителю" спецификация рассматривается как формальное разделение между сторонами. Что касается заказчика, то он оговаривает минимально приемлемое, тогда как изготовитель - максимально требуемое. Договор предлагается и принимается при зарождении системы и заканчивается после завершения системы, когда заказчик принимает систему как отвечающую его минимальным требованиям. Во время изготовления системы в принципе не предполагается никаких взаимодействий, даже если изготовитель подозревает, что предписываемое не совсем соответствует тому, что заказчик желает видеть в действительности.

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

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

Модели как описание системы имеют следующие отличительные черты по сравнению с другими способами формального описания:

• хорошее сочетание нисходящего и восходящего подходов к их разработке с возможностью выбора абстрактного описания;

• возможность описания параллельной, распределенной и циклической работы;

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

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

Так как целевым объектом проектирования является АС, то модель может описывать либо саму АС, либо ее поведение, т.е. внешние проявления функционирования АС. Модель, описывающая поведение АС по сравнению с моделью АС, обладает одним важным преимуществом - она может быть проверена и оценена как исполнителями, так и заказчиками, поскольку заказчики не знают, как должна работать АС, но зато они представляют, что она должна делать. В результате такого моделирования может быть проверена корректность спецификаций относительно исходной постановки задачи, т.е. ТЗ. Кроме того, критерии правильности считаются достаточными при условии, что спецификация представляет собой исчерпывающее описание "внешнего" поведения объекта при всех возможных (или запланированных) ситуациях его использования.

(СЛАЙД _12_)

 

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

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

Q {S} R,

читающееся следующим образом: "если до исполнения оператора S было выполнено условие Q, то после него будет R". Здесь Q называется предусловием, а R-постусловием. Эти языки были изобретены практически одновременно Р.У. Флойдом (1967 г.), С.А. Р. Хоаром (1969 г.) и учеными польской логической школы (А. Сальвицкий и др., 1970 г.). Как предусловие. так и постусловие являются предикатами.

(СЛАЙД _13_)

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

Преимущество представления алгоритма в виде преобразователя предикатов состоит в том, что оно дает возможность:

• анализировать алгоритмы как математические объекты;

• дать формальное описание алгоритма, позволяющее интеллектуально охватить алгоритм;

• синтезировать алгоритмы по представленным спецификациям;

• провести формальное верифицирование алгоритма, т.е. доказать корректность его реализации.

Методология формальной разработки и доказательства корректности алгоритмов в настоящее время хорошо разработана и изложена в целом ряде работ. Вкратце суть этих методов сводится к следующему:

• разработка алгоритма проводится методом последовательной декомпозиции, с разбивкой общей задачи, решаемой алгоритмом, на ряд более мелких подзадач;

• критерием детализации подзадач является возможность их реализации с помощью одной конструкции ветвления или цикла;

• разбиение общей задачи на подзадачи предусматривает формулирование пред- и постусловий для каждой подзадачи с целью их корректного проектирования и дальнейшей верификации.

Для доказательства корректности алгоритма (верификация) формулируется математическая теорема Q{S}R, которая затем доказывается. Доказательство теоремы о корректности принято разбивать на две части. Одна часть служит для доказательства того, что рассматриваемый алгоритм вообще может завершить работу (проводится анализ всех циклов). В другой части доказывается корректность постусловия в предположении, что алгоритм завершает работу.

(СЛАЙД _14_)

3- учебный вопрос –




Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 3100; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.