- •1. Технология программирования. Понятие технологии программирования. Методология процедурно-ориентированного программирования. Абстракция и декомпозиция.
- •Абстракция и декомпозиция
- •Технология программирования. Методология объектно-ориентированного программирования. Основные принципы ооп: наследование, инкапсуляция, полиморфизм.
- •Технология программирования. Методология объектно-ориентированного анализа и проектирования.
- •2 Важные вещи:
- •Технология программирования. Методология системного анализа и системного моделирования.
- •2 Важные вещи:
- •6 Документирование по. Ескд, естд, еспд. Основные документы. Техническое задание.
- •7 Документирование по. Основные документы. Программа и методика испытаний. Руководство оператора. Руководство системного программиста. Руководство программиста.
- •Шаблоны (template).
- •Параметризованные функции.
- •Взаимозаменяемость параметризованных функций.
- •Параметризованные классы.
- •Реализация стека.
- •Особенности реализации класса.
- •24 Stl. Контейнеры. Вектор (vector), список (list), дек (deque). Множество (set), словарь (map), стек (stack).
- •Контейнеры.
- •Множество(set)
- •Map(словарь)
- •Стек (адаптивный контейнер).
- •25 Stl. Итераторы. Алгоритмы: поиск, сортировка, суммирование.
- •Алгоритмы
- •26 Stl. Аллокаторы. Функциональные объекты. Строки. Аллокаторы.
- •Функциональные объекты.
- •Строки.
- •27 Uml. Общие сведения. Принципы построения модели сложной системы. Общая структура языка.
- •Общие сведения.
- •Принципы построения сложной системы.
- •Общая структура языка uml.
- •28 Uml. Специфика описания метамодели языка uml. Виды диаграмм.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •Специфика описания метамодели языка uml. Виды диаграмм.
- •29 Uml. Базовые отношения: отношение зависимости, отношение ассоциации, отношение обобщения, отношение реализации.
- •30 Uml. Дополнительные отношения: отношение расширения, отношение включения, отношение агрегации, отношение композиции.
- •31 Uml. Диаграмма вариантов использования. Актер, вариант использования, интерфейс, примечание.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •32 Uml. Диаграмма классов. Класс, объект, шаблон.
- •Принципы построения сложной системы:
- •Общая структура языка uml.
- •33 Uml. Диаграмма состояний. Автомат, состояние (начальное, конечное, составное, подсостояние: последовательное, параллельное), переход (простой, сложный), синхронизирующие состояния.
- •34 Uml. Диаграмма деятельности. Состояние действия, переходы, дорожки, объекты.
- •35 Uml. Диаграмма последовательности. Объекты, сообщения.
Технология программирования. Методология объектно-ориентированного программирования. Основные принципы ооп: наследование, инкапсуляция, полиморфизм.
Технология программирования – набор правил, методик и инструментов, предопределяющих процесс разработки программного продукта, процесс разработки включает 5 этапов:
Анализ требований к программе.
Проектирование.
Кодирование.
Тестирование.
Документирование.
Все 5 этапов тесно связаны между собой, и их реализация напрямую зависит от выбранной методологии программирования.
2. Методология объектно-ориентированного программирования.
В середине 70-х появились ПК. ПК стали повсеместно использоваться компаниями мелкого и среднего бизнеса. Это привело к изменению ПО, акцент сместился от крупных предприятий к мелким. Вычислительные и расчетно-алгоритмические задачи заняли 2-е место, на первый план вышли задачи обработки и управления данными, появились базы данных. В результате революция ПК и ПО привела к следующему:
Значительно возросли размеры и сложность программ.
Повысились требования к надежности программ.
Повысились требования к интерфейсу с пользователем.
В рез-те к сер.70-х стало очевидно, что ПОП не способно справиться с множеством ситуаций, возникла потребность в новой методологии, которой стало ООП.
ООП - это совокупность принципов технологий и инструментальных средств, для создания программных систем на основе архитектуры взаимодействия объектов.
В процедурном программировании данные и подпрограммы формально не связаны. В ООП данная связь выходит на первое место.
C++ C# MC
Java Delphi
Obi Basic
ООП лидирует в части прикладного ПО, в части системного ПО остается лидером процедурные языки, в 1-ю очередь - язык С.
Исходными понятиями методологии ООП являются понятия объекта и класса, под классом понимают некоторую абстракцию совокупности объектов, которые имеют общий набор свойств и обладают одинаковым поведением, каждый объект в этом случае рассматривается как экземпляр соответствующего класса. Объекты, которые не имеют полностью одинаковых свойств и не обладают одинаковым поведением, не могут быть отнесены к одному классу.
Важной особенностью классов является возможность их организации в виде некоторой иерархичной структуры.
Иерархия строится следующим образом: в качестве наиболее общего понятия берется понятие, имеющее наиболее больший объем и наименьшее содержание. Это самый высокий уровень абстракции. Затем общее понятие конкретизируется некоторым образом, тем самым уменьшается его объем и увеличивается содержание.
Процесс конкретизации понятий может быть продолжен до тех пор, пока на самом нижнем уровне не будет получено понятие, конкретизация которой невозможна либо нецелесообразна.
Основные принципы ООП:
Наследование.
Инкапсуляция.
Полиморфизм.
1. Наследование - принцип, в соответствии с которым знание о наиболее общей категории разрешается применять для более узкой категории. Наследование тесно связано с иерархией классов. Иерархия определяет какие классы следует считать абстрактными по отношению к другим классам. (абстрактные – общие или родительские). Если общий или родительский класс (предок) обладает фиксированным набором свойств и поведением, то производный от него класс (потомок или дочерний класс) должен содержать тот же набор свойств и подобные поведения + дополнительные свойства и поведение, которые будут характеризовать уникальность полученного класса. В этом случае говорят, что потомок наследовал от предка свойства.
2. Инкапсуляция – сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей, взаимодействующему с классом пользователю не надо знать каким образом реализован тот или иной метод классов, который он использует. Конкретная реализация свойств и методов класса определяет поведение этого класса и является собственным делом данного класса, более того отдельные свойства и методы могут быть невидимы за пределами этого класса, что является базовой идеей введения различных категорий видимости.
Инкапсуляция ведет свое происхождение от деления модулей на 2 части:
интерфейс
реализация
В интерфейсной секции описываются все процедуры функций, которые доступны за пределами данного модуля, в секции реализации содержится программный код.
3. Полиморфизм – свойство объектов принимать различные внешние формы в зависимости от обстоятельств, применительно к ООП полиморфизм означает, что действия, выполняемые одноименными методами, могут различаться в зависимости от того, к какому классу относится тот или иной метод. Полиморфизм объектно-ориентированных языков связан с перегрузкой функций, но не тождественнее (перегрузки), при этом важно иметь в виду, что имена методов и свойств тесно связаны с классами, в которых они описаны. Это обстоятельство обеспечивает надежность работы программы, поскольку исключает применение метода для решения несвойственной ему задачи.