
ОП 2012 Студентам / ОП. Лекции / ОП_7
.pdf
2012
Часть 2 Объектноориентированное программирование
МГТУ им. Н.Э. Баумана
Факультет Информатика и системы управления
Кафедра Компьютерные системы и сети Лектор: д.т.н., проф.
Иванова Галина Сергеевна
1

Введение. Эволюция технологии разработки ПО. Процедурная и объектная декомпозиция
1.«Стихийное» программирование – до середины 60-х годов ХХ века
– технология отсутствует – программирование – искусство создания программ – в конце периода появляется возможность создания подпрограмм – используется процедурная декомпозиция.
Программа |
Данные |
Основная программа |
Данные |
1 |
|
2 |
... |
n |
|
|
|
|
|
|
|
|
|
|
Подпрограммы
Слабое место – большая вероятность испортить глобальные данные.
2

Эволюция технологии разработки ПО (2)
2. Структурный подход к программированию - 60-70-е годы ХХ века – технология, представляющая собой набор рекомендаций и методов, базирующихся на большом опыте работы:
нисходящая разработка;
декомпозиция методом пошаговой детализации;
структурное программирование;
сквозной структурный контроль и т. д.
Основная программа |
Глобальные данные |
Данные |
1 |
Данные |
... |
Данные |
|
|
|
2 |
|
n1 |
Подпрограммы с локальными данными |
3 |
|

Эволюция технологии разработки ПО (3)
Модульное программирование – выделение групп подпрограмм,
использующих общие глобальные данные в модули – отдельно компилируемые части программы (многоуровневая декомпозиция).
Основная программа |
Глобальные данные |
Модуль 1 |
|
||
|
Данные |
|
|
Данные |
|
Данные |
... |
... |
|
||
|
|
|
|
1 |
|
n1 |
|
Подпрограммы с |
|
||
локальными данными |
|
Модуль k |
||
|
Данные |
|
Данные |
... |
Данные |
|
|
|
1 |
|
nk |
Подпрограммы с |
||
локальными данными |
Модули с локальными данными и попрограммами |
|
Слабое место – большое количество передаваемых параметров. |
4 |

Эволюция технологии разработки ПО (4) |
|
|
||||||||
3. Объектный подход к |
|
|
|
Объект 1 |
|
|
|
|
||
программированию – |
|
|
|
Данные |
|
|
|
|
||
с середины 80-х до наших |
|
|
Данные |
|
Данные |
|
|
|||
дней. |
|
|
... |
|
|
|||||
|
|
|
|
|
|
|
|
|
||
|
|
1 |
|
|
|
n1 |
|
|
||
Объектно-ориентированное |
|
|
Подпрограммы с |
|
|
|||||
|
|
локальными данными |
|
|
||||||
|
|
|
|
|
||||||
программирование – |
|
|
|
Сообщения |
|
|
|
|||
|
|
|
|
|
|
|
||||
технология создания |
Объект 2 |
|
|
|
|
Объект S |
||||
сложного программного |
|
|
|
|
||||||
|
Данные |
|
|
|
|
|
Данные |
|||
обеспечения, основанная |
|
|
|
|
|
|
||||
|
|
|
|
... |
|
|
|
|
|
|
на представлении програм- |
Данные |
... |
Данные |
|
|
|
Данные |
... |
Данные |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||
мы в виде системы объек- |
1 |
|
n1 |
|
|
|
|
1 |
|
nk |
Подпрограммы с |
|
|
|
|
Подпрограммы с |
|||||
тов, каждый из которых яв- |
|
|
|
|
||||||
локальными данными |
|
|
|
|
локальными данными |
|||||
|
|
|
|
|
||||||
ляется экземпляром опре- |
|
|
|
Сообщения |
|
|
|
|||
деленного типа (класса), |
|
|
|
Объект L |
|
|
|
|||
а классы образуют иерар- |
|
|
|
|
Данные |
|
|
|
||
|
|
|
|
|
|
|
|
|||
хию с наследованием |
|
|
Данные |
... |
|
Данные |
|
|
||
|
|
|
|
|
|
|||||
свойств. |
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
n1 |
|
|
|
|
|
|
Подпрограммы с |
|
|
|||||
|
|
|
локальными данными |
|
5 |
|||||
|
|
|
|
|
|
|
|
|
|

Эволюция технологии разработки ПО (5)
Компонентный подход – с конца 90-х годов ХХ века (COM-техноло- гия) – подключение объектов через универсальные интерфейсы – развитие сетевого программирования – появление CASE-техноло- гий.
Компьютер 2 |
Компьютер 1 |
|
Приложение 3 |
Приложение 1 Библиотека |
Приложение 2 |
Объект
Объект |
Объект |
|
|
|
|
Операционная |
Операционная |
Объект |
Объект |
система |
система |
|
|
|
6

Пример
Разработать программную систему, которая для указанной функции на заданном отрезке:
строит таблицу значений с определенным шагом;
определяет корни;
определяет максимум и минимум.
7

Формы интерфейса пользователя
Программа исследования функций.
Введите функцию или слово «Конец»: y = cos(x) – 1 Назначьте интервал: [-1, 0)
Введите номер решаемой задачи ( 1 – построение таблицы значений;
2 – нахождение корней;
3 – нахождение минимума и максимума;
4 – смена функции или завершение программы): 1
|
|
|
|
|
|
Экстремумы. |
|
Построение таблицы. |
|
|
|
|
|||
Введите шаг: 0.01 |
|
Нахождение корней. |
|
Минимум: |
|
||
Таблица значений: |
|
Таблица корней: |
|
x= |
y= |
||
x= |
y= |
|
x= |
y= |
|
Максимум: |
|
… |
|
|
… |
|
|
x= |
y= |
|
|
|
|
|
|
|
|
8

Диаграмма состояний интерфейса пользователя
Ввод «Конец» функции
|
4 |
Меню |
|
1 |
|
2 |
3 |
Таблица |
Экстремумы |
Корни |
|
9

Разработка схем алгоритмов методом пошаговой детализации
Начало |
Analyze(F..) |
F, a, b |
|
Cod |
|
|
|
да |
|
да |
|
F =“End” |
Cod = 4 |
|
||
|
|
|||
нет |
|
нет |
|
|
Translate |
|
Cod |
|
|
(F,fun) |
|
|
||
1 |
2 |
3 |
||
|
||||
Analyze |
Table |
Roots |
Extremes |
|
(fun,a,b) |
||||
|
(fun,a,b) |
(fun,a,b) |
(fun,a,b) |
|
F, a, b |
|
|
|
|
|
|
Cod |
|
|
Конец |
|
Выход |
|
|
|
|
10 |
||
|
|
|