930.04K
Category: programmingprogramming

Новые концепции в программировании

1.

НОВЫЕ КОНЦЕПЦИИ В
ПРОГРАММИРОВАНИИ
Ошибки в ПО потенциально могут
принести сильный ущерб. В результате
совершенствования программирования
были выработаны его новые концепции:
• Объектноориентированное
программирование (ООП)
• Унифицированный язык
моделирования (UML)
• Специализированные средства
разработки программного
обеспечения.

2.

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

3.

ОСНОВОПОЛАГАЮЩАЯ ИДЕЯ ООП
Объединение данных и действий,
производимых над этими данными, в единое
целое, которое называется объектом ,
обладающих сходными свойствами и набором
действий, которые можно с ними производить.

4.

ПРИНЦИП РАБОТЫ ООП
Типичная программа состоит из совокупности объектов,
взаимодействующих между собой посредством вызова
методов друг друга.
(Данные)
[Метод]
[Метод]
(Данные)
[Метод]
[Метод]
(Данные)
[Метод]
[Метод]

5.

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

6.

ПРЯМОЙ ДОСТУП К ДАННЫМ
НЕ ВОЗМОЖЕН. ДАННЫЕ
СОКРЫТЫ ОТ ВНЕШНЕГО
ВОЗДЕЙСТВИЯ, ЧТО
ЗАЩИЩАЕТ ИХ ОТ
СЛУЧАЙНОГО ИЗМЕНЕНИЯ.
ГОВОРЯТ, ЧТО ДАННЫЕ И
МЕТОДЫ ИНКАПСУЛИРОВАНЫ.
ТЕРМИНЫ СОКРЫТИЕ И
ИНКАПСУЛЯЦИЯ ДАННЫХ
ЯВЛЯЮТСЯ КЛЮЧЕВЫМИ В
ОПИСАНИИ ОБЪЕКТНООРИЕНТИРОВАННЫХ ЯЗЫКОВ.

7.

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

8.

НАСЛЕДОВАНИЕ – ЭТО
механизм получения нового класса
из существующего. Производный
класс создается путем дополнения
или изменения существующего
класса. Благодаря этому реализуется
концепция повторного использования
кода.
С помощью наследования может
быть создана иерархия родственных
типов, которые совместно
используют код и интерфейсы.

9.

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

10.

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

11.

UML
UML (Unified Modeling Language) — это
система обозначений, которую можно
применять для объектно-ориентированного
анализа и проектирования. Его можно
использовать для визуализации,
спецификации, конструирования и
документирования программных систем.

12.

12
ПРЕДНАЗНАЧЕНИЕ UML
UML предназначен
для моделирования.
UML определяют как
графический язык
моделирования общего
назначения,
предназначенный для
спецификации,
визуализации,
проектирования и
документирования всех
артефактов,
создаваемых при
разработке приложений.

13.

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

14.

14
ПЛЮСЫ И МИНУСЫ UML
МИНУСЫ UML
Трата времени на схемы
Необходимость знать
различные диаграммы и
их нотации
ПЛЮСЫ UML
Возможность
посмотреть на задачу с
различных точек зрения
Другим программистам
легче понять суть
задачи и её реализацию
Диаграммы не очень
сложны для чтения

15.

ВИДЫ ДИАГРАММ
UML

16.

ДИАГРАММА
ПОСЛЕДОВАТЕЛЬНОСТЕЙ
(SEQUENCE-ДИАГРАММА)
Диаграмма последовательностей
(sequence-диаграмма) описывает
последовательность действий (кто
участвует в процессе, какие компоненты
участвуют в процессе, какие фазы
проходят объекты). Сверху диаграммы
последовательности отображены
действующие лица, а каждая стрелка –
это конкретное действие, связанное с
ними

17.

ПРИМЕР ДИАГРАММЫ
ПОСЛЕДОВАТЕЛЬНОСТИ
С: Телефонный
аппарат
а: Абонент
поднять Трубку()
*[i:=1..n]
наборЦифры(i)
начатьРазговор()
закончитьРазговор()
повеситьТрубку()
: Коммутатор
d: Телефонный
аппарат
b: Абонент
тонСигнал()
наборНомера()
[номер полный]
вызовАбонента(b)

18.

ДИАГРАММА
СОСТОЯНИЙ
Диаграмма состояний позволяет описать
поведение отдельно взятого объекта при
определённых условиях и показать все
возможные состояния, в которых может
находиться объект, а также показать
процесс смены состояний в результате
внешнего влияния.

19.

ДИАГРАММА СОСТОЯНИЯ БУДИЛЬНИКА
Выключение\сброс
Установка времени
Режим
Изменение
часов
Контроль времени
Проверка()
Установка
Включение
Изменение
минут

20.

ДИАГРАММА КЛАССОВ
Диаграмма классов используется наиболее
часто и является одной из форм статического
описания системы с точки зрения ее
проектирования. Она не отображает
динамическое поведение объектов
изображенных на ней классов. На диаграмме
классов показываются классы, интерфейсы и
отношения между ними. Она встречается в
различных документациях и описании
паттернов проектирования.

21.

ПЕРЕД РЕАЛИЗАЦИЕЙ КЛАССОВ
НОВОЙ СИСТЕМЫ НУЖНО
ОТОБРАЗИТЬ:
• кто будет видеть эти классы и др.
• какие функциональность и информация
• как они взаимодействуют друг с другом
• кто будет видеть эти классы и др.

22.

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

23.

Студент
1..*
Записан
Имя: string
Адрес: string
Телефон: string
e-mail: string
Номер зачетки: integer
Средняя успеваемость: float
Может записаться(): void
Получить_список_прослушанных_
курсов(): void
Прохождение курса
Оценки: List
Получить_текущий_средний_балл(): void
Получит_финальную_отметку(): void
1..*
0..*
Слушает
Курс
0..*
Профессор
Имя: string
Адрес: string
Телефон: string
Оплата: float
Название: string
Номер: int
Стоимость: float
Добавить_студента(): void
Удалить_студента(): void
0..*
Преподает
0..*
Некоторые курсы не
требуют инструктора и
рассчитаны на
самостоятельное изучение

24.

ДИАГРАММА
ДЕЯТЕЛЬНОСТИ
Диаграмма деятельности – технология
позволяющая описать логику процедур,
бизнес-процессов и потоки работ.
Её задача описать логику процедур,
бизнес-процессы и потоки работ.

25.

Пользователь
Система обработки заказов
Запустить
приложение
Запросить
имя и пароль
Ввести имя
и пароль
Проверить
имя и пароль
[Else]
[Имя и
пароль
верны]
Сообщить об
ошибке
Определить тип
пользователя и
вывести главное
меню
Неуспех
Успех

26.

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

27.

ДИАГРАММА
ИСПОЛЬЗОВАНИЯ
Диаграмма использования — это
наиболее общее представление
функционального назначения
системы. Диаграмма
использования призвана ответить
на главный вопрос
моделирования: что делает
система во внешнем мире?

28.

На диаграмме
использования
применяются два типа
основных сущностей:
варианты использования
и действующие лица,
между которыми
устанавливаются
следующие основные
типы отношений:

29.

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

30.

Покупатель
Оператор
сайта
Удаление
товара
include
Заказ
товара
include
extend
Введение
данных
Поиск
товара
Выбор
способа
оплаты
extend
Поиск по
категориям
Поиск по
производителю
Изменение
данных о
товаре
Добавление
товара

31.

ДИАГРАММА
КООПЕРАЦИИ
Диаграмма кооперации семантически
эквивалентна диаграмме
последовательности. Фактически, это
такое же описание последовательности
обмена сообщениями
взаимодействующих объектов, только
выраженное другими графическими
средствами.

32.

Более того, большинство
инструментов умеет
автоматически преобразовывать
диаграммы последовательности
в диаграммы кооперации и
обратно. Такое преобразование
является взаимнооднозначным.

33.

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

34.

5[номер полный]:
вызовАбонента(b)
4: наборНомера()
2: тонСигнал()
с:Телефонный
аппарат
:Коммутатор
6: звонок()
9: подтвердить()
8: создать()
d:Телефонный
аппарат
1: поднятьТрубку()
10b: начатьРазговор()
а: Абонент
7: поднятьТрубку
:Разговор
3 *[i:=1..n]:
наборЦифры(i)
10a: начатьРазговор()
b: Абонент

35.

СПЕЦИАЛИЗИРОВАННЫЕ СРЕДСТВА
РАЗРАБОТКИ ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
Инструментальные средства разработки программного
обеспечения – это программные инструменты,
предназначенные для обеспечения полного цикла
проектирования программного продукта (написание
текста программы, компиляция, компоновка, отладка,
тестирование, сопровождение и др.).

36.

Инструментальные
средства
• набор отдельных программ (Software tools) для
выполнения специальных задач
проектирования программного обеспечения
• интегрированная среда разработки (IDE Integrated Development Environment) с
графическим интерфейсом со встроенными
инструментами проектирования.
• SDK (Software Development Kit) – это комплекты
средств разработки программного
обеспечения, позволяющие использовать
специальные технологии (например,
разработанные отдельной фирмой или
использующие особенности конкретной
компьютерной платформы).

37.

Стандартный набор
инструментальных средств
1. специализированные редакторы текста
2. компиляторы
3. компоновщики (или линковщики)
4. отладчики
5. программы для создания инсталляторов
6. программы создания справочной системы (файлов
помощи) для программного обеспечения

38.

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

39.

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

40.

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

41.

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

42.

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

43.

Программы
инсталляторов
для
создания
требуются
для
разработки дистрибутивов программ.
Причём
для
разных
платформ
и
операционных систем используются
разные дистрибутивы, учитывающие
особенности этих платформ. Обычно
дистрибутивы программ создаются с
интерфейсом
“мастера”,
то
есть
пошагового диалога с пользователем.

44.

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

45.

К этому набору программ
относятся:
1.дизассемблеры
2.декомпиляторы
3.редакторы ресурсов
4.hex-редакторы

46.

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

47.

ДОПОЛНИТЕЛЬНЫЕ ИНСТРУМЕНТЫ
ДЛЯ ЭФФЕКТИВНОЙ РАЗРАБОТКИ
ПО
Также интегрированная среда разработки
дополнительно к стандартному набору
инструментальных средств может включать
макрокоманды, клавишные макросы,
библиотеки функций, генераторы приложений,
конструкторы экранных форм. Ускорить
процесс программирования позволяет
использование многими IDE-средами
визуальных методов программирования, когда
используются готовые визуальные компоненты
внутренних функций, которые встраиваются в
программу с помощью специальных редакторов.

48.

CASE-ТЕХНОЛОГИИ
CASE-технологии компьютерных систем
программной инженерии (CASE – ComputerAided System Engineering) – это
программные комплексы,
автоматизирующие весь технологический
процесс жизненного цикла программного
обеспечения.

49.

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

50.

ПО СВОЕМУ ФУНКЦИОНАЛЬНОМУ
НАЗНАЧЕНИЮ CASE-СРЕДСТВА МОЖНО
РАЗДЕЛИТЬ НА СЛЕДУЮЩИЕ КАТЕГОРИИ:
средства
анализа
и
проектирования
(BPwin,
CASE.Аналитик, Silverrun, DESIGNER/2000, Vantage Team
Builder);
средства проектирования баз данных и файлов (ERwin,
S-Designor, PRO-IV, CASE.Синтез++);
средства
программирования
(SQL
Windows,
Power
Builder, Delphi);
• средства сопровождения и реинжиниринга (PRO-IV,
Rational Rose, Object Team);
• средства окружения (PVCS, SoDA);
• средства управления проектом (MS Project, SE
Companion).

51.

СПАСИБО ЗА
ВНИМАНИЕ!
Работу выполнил:
Великородов Егор
Алексеевич
English     Русский Rules