Место формальных спецификаций в промышленной разработке

advertisement
Формальные спецификации
программ
А.К.Петренко
МГУ ВМиК, ИСП РАН, ИПМ РАН,
член IEEE CS
Лекция
Введение. Место формальных
спецификаций в промышленной
разработке ПО
Кластер термина
«Формальные
спецификации
программ»
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
3
План лекции





Разработка ПО как отрасль
промышленности
Проблемы разработки ПО
Моделирование и спецификация
Формализация
Структура курса
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
4
Проблемы современной
индустрии ПО
Новые виды ПО
Новые линии бизнеса
Новые виды услуг
Верификация
Надежность
Качество
ПО
Соответствие
требованиям
Сроки
Первая версия
Очередная версия
Стоимость
Валидация
Описание
требований
Управление
требованиями
Собственно разработка
Дополнительная работа
re-work
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
5
Производство ПО. Процессы
«прямой инженерии»
Основной поток работ
Дополнительные поток - re-work
Анализ требований
Приемные испытания
Спецификация системы
Системное тестирование
Системное проектирование
Проектирование ПО
Реализация ПО
ВМиК МГУ,
Сентябрь-декабрь 2002
Интеграция модулей
Тестирование модулей
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
6
Как снизить стоимость
дополнительного потока?
Стоимость исправления ошибки зависит от
«расстояния» между моментом ее
возникновения и моментом обнаружения
Формальные методы дают возможность
сократить латентный период
существования ошибок за счет: Термин
«моделирование»


моделирования и
приемов и средств анализа
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
здесь понимается
очень широко, в
частности, даже
частичная
формализация, это
тоже вид
моделирования.
7
Виды использования моделей
жизненном цикле ПО
Фазы жизненного
цикла
Прототипирование
Цель фазы
Уточнение в понимании задачи
Согласование с заказчиком
Оценка реализуемости
Проектирование
(поиск подходящих
решений)
Реверс-инженерия
ВМиК МГУ,
Сентябрь-декабрь 2002
Получить программную систему
Понимание организации (legacy)
системы
Фиксация полученного знания
для хранения и передачи
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
8
Спецификация основные принципы



Абстракция (abstraction)
Строгость (rigour)
Формальность (formality)
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
9
Абстракция в
программировании


Придумайте модель Системы Резервирования
Билетов (СРБ)
Ответьте на вопрос:
От чего следует абстрагироваться при
моделировании СРБ в первую очередь
Знаю
ВМиК МГУ,
Сентябрь-декабрь 2002
Уточняю
Узнал
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
10
Абстракция в
программировании. Пример
Неформальная постановка задачи:
 СРБ используется транспортными агентами. В СРБ
вводятся данные о пунктах отправления и назначения, о
дате и времени полетов. Система контролирует
соответствие заказов расписанию рейсов и тарифам.
Абстракция:
 Совокупность пунктов отправления и назначения
представлена графовой структурой. Рейсам,
связывающим пункты отправлнения и назначения,
соответствуют ребра графа. Расписание рейсов
представлено таблицей...
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
11
Строгость

Модель/
спецификация должна позволять



Объективный анализ
Воспроизводимость анализа
Машинную поддержку
Посмотреть у Джона
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
12
Модель vs. Спецификация




Модель – материальная или
ментальная сущность, использующаяся
для проектирования или анализа
свойств целевой системы (реализации)
Спецификация – описание
(представление) модели
(спецификация задает модель)
Спецификация – описание свойств
реализации с точностью до уровня
абстракции, заданного моделью.
Для краткости «модель» и
«спецификация» часто
рассматриваются как синонимы
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
13
Формальность

Под «формальностью» мы
понимаем возможность
строить модели,
анализировать их свойства
однозначным образом.
Формальность должна
допускать широкий набор
методов анализа, включая
математические
доказательства.
ВМиК МГУ,
Сентябрь-декабрь 2002

А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
Это
подразумевает
формальное
определение
семантики
языка
спецификаций.
14
Строгость vs. Формальность

Строгое определение

Формальное определение
ВМиК МГУ,
Сентябрь-декабрь 2002


Структура данных
представляет собой орграф, узлы которого
соответствуют...
Струкрура данных (графа)
представляется
множеством пар, где
первый элемент
соответвствует начальной
точке ребра, а второй
элемент – конечной точке
ребра...
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
15
Кластер термина
«Формальные
спецификации
программ»
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
16
План курса



Введение в формальные методы
разработки ПО
Язык RSL и RAISE метод
Формальные спецификации в тестировании
и реверс-инженерии



Общие вопросы тестирования
Тестирование на основе спецификаций
Спецификация наследованного ПО
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
17
Интернет ресурсы


http://www.ispras.ru/~RedVerst/ (в
русском варианте см. Лекции...)
http://coursework.cs.ncl.ac.uk/module/
2004/CSC264
ВМиК МГУ,
Сентябрь-декабрь 2002
А.К.Петренко. Формальные
спецификации программ - I. Лекция 1
18
Download