Помощь в учёбе, очень быстро...
Работаем вместе до победы

Тема лекции: Подходы разработки ПО (продолжение)

РефератПомощь в написанииУзнать стоимостьмоей работы

Исходным положением для МСОП является неформальная спецификация — описание требований к системе, написанное на естественном языке с использованием терминов ПрО. Метод обеспечивает разработку формальной спецификации с сохранением полной отслеживаемости по исходной неформальной спецификации. Это позволяет заинтересованным лицам с помощью обследования установить, что формальная спецификация ПС… Читать ещё >

Тема лекции: Подходы разработки ПО (продолжение) (реферат, курсовая, диплом, контрольная)

Основное содержание Инженерия стерильного цеха или Стерильно-цеховая инженерия ПО (СцИП, CrSE, Cleanroom SE — Cleanroom Software Engineering) — подход формальной разработки, предложенный сотрудником фирмы IBM Х. Миллзом.

Стерильный цех — это производственное помещение, в котором специальными мерами обеспечивается низкий контролируемый уровень загрязнителей в окружающей среде. Это понятие отражает главную идею подхода — переход от устранения дефектов к их предотвращению. Разработка ПС в виде стерильного цеха требует использования правил: 1. Разработчики могут и должны производить ПО, которое почти свободно от ошибок уже перед выполнением тестирования; 2. Целью тестирования является измерение качества, а не его обеспечение. Для учёта правил необходимо использовать формальные методы. СцИП как раз и является развитием подхода IID на основе применения формальных методов.

С середины 1980_х гг. подход СцИП использовался подразделением FSD фирмы IBM в рамках проектов военного назначения. В 1987 г. Х. Миллз, М. Дайер и Р. Лингер опубликовали статью «Инженерия стерильного цеха», после которой подход стали использовать и для коммерческих критически важных проектов.

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

Подход СцИП рассматривает процесс разработки ПО не как ремесло, а как инженерную деятельность, используя вместо обычных методов разработки строгие точные методы. 3 принципа разработки: 1. Инкрементная разработка под статистическим контролем качества; 2. Разработка ПО на основе математических принципов; 3. Тестирование ПО на основе статистических принципов.

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

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

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

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

Основой модели ЖЦ для подхода служит модель трансформации, ориентированная на использование формальных методов (рис. 16.1).

Особенностью модели ЖЦ для СцИП (рис. 16.1) является использование специальной методики вместо процесса трансформации. Это снижает затраты на разработку ПС по сравнению с подходами формальной разработки, но обеспечивает высокий уровень приемлемого качества ПС. Поэтому СцИП оказывается сопоставимым по стоимости с другими подходами, превосходя их в качестве ПС.

В СцИП можно (условно) выделить следующие фазы: 1. Формализация; 2. Проектирование; 3. Верификация; 4. Сертификация. При этом для сложных систем используется постепенное наращивание функциональности ПС на основе цикла инкремента путём реализации выделяемых заказчиком подмножеств требований на следующий инкремент разработки.

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

В рамках подхода ПС рассматривается как система, в которой входные данные называются стимулами, получаемые результаты — ответами. На практике ответ системы определяется некоторой последовательностью стимулов. Таким образом, ПС представляется как преобразователь стимулов в ответы.

Для разработки ПС используется методика, основанная на следующих двух методах: 1. Метод специфицирования на основе последовательностей (МСОП) — метод представления спецификации ПС в виде последовательностей; 2. Метод структурирования на основе ящиков (МСОЯ) — метод представления структуры ПС в виде ящиков. МСОП позволяет получить формальную спецификацию ПС на основе неформальной спецификации требований. МСОЯ предназначен для проектирования ПС на основе её формальной спецификации.

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

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

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

МСОП разбивает бесконечное множество последовательностей стимулов на конечное множество классов эквивалентности. Две последовательности считаются эквивалентными, если их всевозможные расширения приводят к одному и тому же поведению (состоянию) системы. Каждый такой класс характеризуется последовательностью минимальной длины — канонической последовательностью. Если таких последовательностей оказывается несколько, то выбирается по перечислению первая из них. Пустая последовательность по определению также является канонической последовательностью.

Результаты перечисления представляются в виде набора, включающего по одной таблице перечисления последовательностей на каждый класс эквивалентности. Для каждого стимула в каждой таблице существует одна строка, которая формируется по правилу чёрного ящика. Правило Чёрного ящика задаёт алгоритм перечисления последовательностей в виде формирования классов эквивалентности. Этот алгоритм включает следующие шаги:

  • 1. Выбрать пустую (каноническую) последовательность.
  • 2. Сформировать новый набор последовательностей путём расширения канонической последовательности соответствующими стимулами.
  • 3. Для каждой новой последовательности определить ответ системы.
  • 4. Для каждой новой последовательности определить класс эквивалентности.
  • 5. Для каждой новой последовательности проанализировать результат. Если класс эквивалентности уже существует, исключить эту последовательность из рассмотрения. Если класса не существует, то задать новый класс эквивалентности с этой последовательностью в качестве канонической и создать для этого класса свою таблицу перечисления последовательностей.
  • 6. Если рассмотрены все классы эквивалентности, то перейти к шагу 8.
  • 7. Выбрать очередную каноническую последовательность и перейти к шагу 2.
  • 8. Завершить перечисление последовательностей.

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

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

В МСОЯ выделены три ящика: 1. Чёрный ящик; 2. Ящик состояний; 3. Прозрачный ящик. Чёрный ящик определяет видимое извне поведение системы или компонента в терминах её / его видимых взаимодействий с внешней средой; ответ формируется по стимулам. Ящик состояний задаёт поведение в виде состояний и переходов между ними; ответ формируется по текущему стимулу и состоянию. Прозрачный ящик представляет собой реализацию требуемого поведения — код переходов между состояниями и формирования ответов на стимулы.

Схема уточнения на основе ящиков.

Рис. 16.2. Схема уточнения на основе ящиков

Эти представления образуют иерархию абстракции, которая учитывает: пошаговое уточнение и может применяться как к системе в целом, так и к её компонентам; верификацию, так как каждое следующее представление системы / компонента получается из предыдущего. Во время каждого уточнения требуется использовать все 3 представления (рис. 16.2): определить чёрный ящик, на его основе разработать ящик состояний, по которому реализовать прозрачный ящик.

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

Чёрный ящик получает на вход стимулы S и выдаёт на выход ответ R. Генерация каждого ответа чёрного ящика определяется текущим стимулом S и (возможно) историей стимулов SH — предыдущей последовательностью стимулов. Тогда функция преобразования чёрного ящика имеет вид: (S, SH) ®.

Ящик состояний получается из чёрного ящика путём выделения состояний, инкапсулирующих части истории стимулов (инварианты), на основе таблиц перечисления последовательностей. Влияние истории стимулов SH на ответ заменяется изменением старого состояния So на новое состояние Sn ПС. Следовательно, функция преобразования ящика состояний имеет вид: (S, So) (R, Sn). Если существует несколько ящиков состояний, получаемых из чёрного ящика, осуществляется выбор одного из них.

Прозрачный ящик получается из ящика состояний реализацией требуемого преобразования в виде программного кода. Поэтому функция преобразования прозрачного ящика имеет вид: (S, So) КОД (R, Sn). Данная реализация выполняется постепенным определением логики изменения состояний и метода генерации ответов ПС. При этом прозрачный ящик часто выражается как композиция новых заданных чёрных ящиков. В подходе определены правила композиции чёрных ящиков аналогично правилам для конструкций, используемым в структурном программировании. Если существует несколько прозрачных ящиков, получаемых из ящика состояний, осуществляется выбор одного из них.

Цикл уточнения (рис. 16.2) завершается, когда все чёрные ящики преобразованы в прозрачные. В итоге получается полный прозрачный ящик — код ПС.

Контрольные вопросы

  • 1. Что представляет собой подход СцИП? Дайте определение понятию «стерильный цех». Перечислите правила стерильного цеха.
  • 2. Перечислите области разработки, в которых СцИП имеет особенности. Охарактеризуйте эти особенности.
  • 3. Перечислите и поясните основные принципы разработки в рамках СцИП.
  • 4. Приведите графическое представление схемы модели ЖЦ для СцИП. Перечислите фазы ЖЦ проекта для СцИП.
  • 5. Охарактеризуйте фазу «Формализация» подхода СцИП.
  • 6. Охарактеризуйте фазу «Проектирование» подхода СцИП.
  • 7. Охарактеризуйте фазу «Верификация» подхода СцИП.
  • 8. Охарактеризуйте фазу «Сертификация» подхода СцИП.
  • 9. В чём суть специальной методики, используемой в рамках СцИП.
  • 10. Охарактеризуйте метод специфицирования на основе последовательностей (МСОП) подхода СцИП.
  • 11. Сформулируйте правило Чёрного ящика.
  • 12. Охарактеризуйте метод структурирования на основе ящиков (МСОЯ) подхода СцИП. Что понимается под ящиком?
  • 13. Сформулируйте функции преобразования для ящиков.

Лекция 17

Показать весь текст
Заполнить форму текущей работой