Методы разработки ПО и место формальных методов среди них

advertisement
Лекция
Методы разработки ПО
План лекции





Методы разработки ПО
Пример: метод пошаговой детализации
Критерии выбора метода разработки ПО
Эволюция методов разработки ПО
RAISE: пример метода разработки ПО с
использованием формальных
спецификаций
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
2
Методы разработки ПО


Прежде чем подробно изучать язык,
необходимо составить представление о
том, для чего он предназначен, как его
использовать
Язык обычно сопряжен с некоторым
методом разработки ПО. Языки
формальных спецификаций не являются
исключением из этого правила
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
3
Методы разработки ПО

Метод – процедура или процесс,
направленные на достижение цели
(Merriam-Webster’s Collegiate® Dictionary)

В нашем случае цель – разработка ПО,
удовлетворяющего заданным
характеристикам
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
4
Метод пошаговой
детализации (МПД)



МПД – один из первых методов разработки
ПО, который был рекомендован для
промышленного применения
Идея – постепенное, пошаговое уточнение
описания системы
Использование «псевдокода»
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
5
Пример: МПД – шаг 0
Задача:

Произвести запуск искусственного
спутника Земли (ИСЗ)
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
6
Пример: МПД – первый шаг
детализации
Задача разбивается на подзадачи:
1. Произвести пуск
2. Выполнить полет в орбитальном
режиме
3. Произвести спуск
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
7
Пример: МПД – второй шаг,
подзадача 1.
1.1. Произвести тестирование
наземного комплекса
1.2. Если обнаружены проблемы
то отменить запуск (стоп)
1.3. Ввести полетное задание
1.4. Стартовать выполнение полетного
задания
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
8
Пример: МПД – второй шаг,
подзадача 2.
2.1. Вывести на орбиту
2.2. Если параметры орбиты
нормальные
то начать выполнение программы
орбитального режима (перейти к 2.3)
иначе стартовать программу
аварийного спуска (перейти к 2.4)
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
9
Пример: МПД – второй шаг,
подзадачи 3 и 4.
2.3. Выполнить программу
орбитального режима
2.4. Выполнить программу снижения и
посадки
2.5. Завершить работу (стоп)
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
10
Критерии выбора метода
разработки ПО







Надежность разрабатываемого ПО
Эффективность (быстродействие,
точность, ...) разрабатываемого ПО
Скорость разработки ПО
Стоимость разработки ПО
Соотошение цена/качество/скорость
Технологичность
... (и т.д.)
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
11
Критерии высокой
технологичности





Легкость обучения персонала
Масштабируемость метода (может
применяться в широком диапазоне
размеров проектов)
Контролируемость (качества
изготавливаемого продукта, степени его
готовности, ...)
Контролируемость прогресса реализации
... (и т.д.)
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
12
Самостоятельное задание
1. Проанализировать МПД по критерию высокой
технологичности – может ли МПД служить основой
технологии разработки промышленного ПО?
За
Против
2. Какие изъяны можно увидеть в нашем примере проектной
документации?
3. Какую технику можно было бы применить длявыявления
таких изъянов?
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
13
Эволюция методов
разработки ПО


Методы разработки сменяют друг
друга, новые разрабатываются для
преодоления ограничений старых
Эволюция идет по спирали
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
14
Эволюция методов
разработки ПО: примеры



Основным недостатком МПД явилась
сложность контроля – результаты,
поддающиеся оценке, появляются только
на поздних стадиях
На смену МПД пришел метод быстрого
прототипирования, но у него проблемы с
масштабируемостью
Виток спирали: появление формальных
методов – МПД на новом уровне
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
15
Возвращаясь к языкам
формальных спецификаций
Языки формальных спецификаций
позволяют:


строить модели и уточнять их при
помощи ограничений на структуры
данных
описывать интерфейсы моделей в виде



алгебраических спецификаций (аксиомы)
неявных спецификаций (пред-, постусловия)
явных спецификаций (алгоритмы)
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
16
Самостоятельное задание
Мой вариант
метода
разработки ПО с
использованием
формальных
методов
ВМиК МГУ,
сентябрь-декабрь 2002
Оценка Уточнение
(дома) (дома)
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
17
RAISE Development Method –
основные идеи
Разработка разбивается на шаги
 Сначала описывается максимально
простая и абстрактная модель
 На каждом шаге строится более
подробная и конкретная модель
 На каждом шаге проверяется
согласованность моделей
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
18
RAISE Development Method –
шаги процесса разработки
Шаг 0: объявление сорт-типов и определение сигнатур операций
Шаг 1: аксиомы, алгебраическая спецификация
Шаг 2.1: структуры данных и раздельные спецификации для
каждой операции (имплицитные и эксплицитные),
доказательство согласованности спецификаций шага 2.1 и
шага 1
...
Шаг 2.i: детализация и расширение спецификаций предыдущего
шага и доказательство согласованности с предыдущим шагом
и с шагом 1. В конце возможна даже трансляция в код на
языке программирования.
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
19
Шаги RAISE метода
Шаг 0
Шаг 1
Проверка согласованности
Шаг 2.1
...
Шаг 2.i
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
20
RAISE Development Method –
проверка согласованности
Этому вопросу посвящена вся
следующая лекция
ВМиК МГУ,
сентябрь-декабрь 2002
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
21
Рефлексия
Вопрос: каковы основные возможности RAISE мы уже
изучили?
Знаю
Уточняю (дома)
Вопрос: чего еще не хватает, для того чтобы RAISE мог быть
использован для разработки промышленного ПО?
Знаю
ВМиК МГУ,
сентябрь-декабрь 2002
Уточняю (дома)
Формальные спецификации программ-I, Лекция 4.
А.К.Петренко
22
Download