Similar presentations:
Новые концепции в программировании
1.
НОВЫЕ КОНЦЕПЦИИ ВПРОГРАММИРОВАНИИ
Ошибки в ПО потенциально могут
принести сильный ущерб. В результате
совершенствования программирования
были выработаны его новые концепции:
• Объектноориентированное
программирование (ООП)
• Унифицированный язык
моделирования (UML)
• Специализированные средства
разработки программного
обеспечения.
2.
ОППВместо того чтобы рассматривать программу как набор
последовательно выполняемых инструкций, в ООП
программа представляется в виде совокупности объектов,
обладающих сходными свойствами и набором действий,
которые можно с ними производить. Основополагающей
идеей ООП является объединение данных и действий,
производимых над этими данными, в единое целое,
которое называется объектом
3.
ОСНОВОПОЛАГАЮЩАЯ ИДЕЯ ООПОбъединение данных и действий,
производимых над этими данными, в единое
целое, которое называется объектом ,
обладающих сходными свойствами и набором
действий, которые можно с ними производить.
4.
ПРИНЦИП РАБОТЫ ООПТипичная программа состоит из совокупности объектов,
взаимодействующих между собой посредством вызова
методов друг друга.
(Данные)
[Метод]
[Метод]
(Данные)
[Метод]
[Метод]
(Данные)
[Метод]
[Метод]
5.
Функции объекта,называемые методами или
функциями-членами,
предназначены для доступа
к данным объекта. Если
необходимо считать какиелибо данные объекта, нужно
вызвать соответствующий
метод, который выполнит
считывание и возвратит
требуемое значение.
6.
ПРЯМОЙ ДОСТУП К ДАННЫМНЕ ВОЗМОЖЕН. ДАННЫЕ
СОКРЫТЫ ОТ ВНЕШНЕГО
ВОЗДЕЙСТВИЯ, ЧТО
ЗАЩИЩАЕТ ИХ ОТ
СЛУЧАЙНОГО ИЗМЕНЕНИЯ.
ГОВОРЯТ, ЧТО ДАННЫЕ И
МЕТОДЫ ИНКАПСУЛИРОВАНЫ.
ТЕРМИНЫ СОКРЫТИЕ И
ИНКАПСУЛЯЦИЯ ДАННЫХ
ЯВЛЯЮТСЯ КЛЮЧЕВЫМИ В
ОПИСАНИИ ОБЪЕКТНООРИЕНТИРОВАННЫХ ЯЗЫКОВ.
7.
Класс — это тип, определяемыйпрограммистом, в котором
объединяются структуры данных и
функции их обработки.
Класс является своего рода формой,
определяющей, какие данные и
функции будут включены в объект
класса. При объявлении класса не
создаются никакие объекты этого
класса. Таким образом, класс является
описанием совокупности сходных
между собой объектов. Объект класса
часто также называют экземпляром
класса.
8.
НАСЛЕДОВАНИЕ – ЭТОмеханизм получения нового класса
из существующего. Производный
класс создается путем дополнения
или изменения существующего
класса. Благодаря этому реализуется
концепция повторного использования
кода.
С помощью наследования может
быть создана иерархия родственных
типов, которые совместно
используют код и интерфейсы.
9.
Подобно этому в программированиикласс также может породить
множество подклассов.
Производным базовым классом
называется класс, который
порождает все остальные классы,
остальные классы наследуют его
свойства, одновременно обладая
собственными свойствами. Такие
классы называются производными.
10.
Полиморфизмом называетсяиспользование операций и функций
различным образом в зависимости
от того, с какими типами величин
они работают. Когда существующая
операция, например = или +,
наделяется возможностью
совершать действия над
операндами нового типа, говорят,
что такая операция является
перегруженной. Перегрузка
представляет собой частный случай
полиморфизма и является важным
инструментом ООП.
11.
UMLUML (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.
СПАСИБО ЗАВНИМАНИЕ!
Работу выполнил:
Великородов Егор
Алексеевич