- •1. Метод структурного проектирования
- •2.Основные концепции ооп
- •3.Методика объектно-ориентированного проектирования
- •4. Обзор языков объектно-ориентированного программирования.
- •5. Методика объектно-ориентированного проектирования. Унифицированный язык моделирования uml
- •6. Диаграммы. Диаграммы классов
- •8. Определение класса. Объявление объектов класса. Обращение к объектам
- •Называется определением класса, потому что она определяет новый тип.
- •9.Инициализация полей объектов. Конструкторы. Конструктор по умолчанию
- •Конструктор по умолчанию
- •10.Копирующий конструктор
- •11. Конструктор с параметром
- •15. Множественное наследование.
- •16. Виртуальные функции.
- •18 . Наследование классов, полей и методов. Поведение производных классов.
- •19. Виртуальные методы класса
- •20. Статические методы класса
- •22. Абстрактное наследование
- •23.24.Полиморфизм. Простой полиморфизм. Сложный полиморфизм
- •26.Перегрузка функций.
- •28.Виртуальные функция
- •Void friend Bar(Foo & foo);
- •Int data;
- •Void Bar(Foo & foo)
- •30. Дружественные классы.
- •31. Работа динамической памятью. Особенности работы конструкторов и деструкторов.
- •32. Шаблоны функций. Описание и использование
- •33.Шаблоны классов
- •34. Стандартные шаблонные контейнерные классы. Основные методы.
- •35. Итераторы
- •36. Основные понятия о потоках ооп
- •37. Стандартные классы потоков ввода вывода
- •38. Файловые потоки
- •Методы файловых потоков
- •39. Строковые потоки Особой разновидностью потоков являются строковые потоки, представленные классом strstream:
- •40.Организация ввода-вывода для пользовательских классов.
- •41. Использование файлов и буферов в памяти для ввода-вывода.
- •42. Средства форматного вывода, манипуляторы.
- •43.Средства возбуждения исключительных ситуаций
- •44. Обработка исключительных ситуаций
- •45. Обработка иерархии классов исключительных ситуаций.
- •46. Единицы компиляции программы, файлы заголовков и реализации
- •47. Директивы препроцессора, макросы и условная компиляция.
- •48. Организация пространств имен.
- •49. Пространство имен для стандартной библиотеки.
- •50. Контейнерные классы.
3.Методика объектно-ориентированного проектирования
Существуют различные объектно-ориентированные технологии и методики проектирования программных продуктов, которые должны обеспечить выполнение важнейших принципов объектного подхода:
инкапсуляция (замыкание) свойств данных и программ в объекте;
наследование;
полиморфизм.
Для различных методик объектно-ориентированного проектирования характерны следующие черты:
объект описывается как модель некоторой сущности реального мира;
объекты, для которых определены места хранения, рассматриваются во взаимосвязи, и применительно к ним создаются программные модули системы.
4. Обзор языков объектно-ориентированного программирования.
Различаются чистые и гибридные объектно-ориентированные языки. Чистые — это те, которые позволяют использовать только одну модель программирования — объектно-ориентированную. Вы можете объявлять классы и методы, но не можете завести глобальные переменные и обычные функции и процедуры старого типа.
Среди наших четырех языков, только Java и C# являются чистыми ОО языками (как Eiffel и Smalltalk). На первый взгляд это кажется положительной идеей. Однако она ведет к тому, что вы используете кучу статических методов и статических данных, что не так уж отличается от использования глобальных функций и данных, за исключением более сложного синтаксиса. По моему мнению, чистые ОО языки дают преимущество новичкам в ООП, потому что программист вынужден использовать (и учить) модель ООП. C++ и Object Pascal, наоборот, - типичные примеры гибридных языков, которые позволяют программистам использовать при необходимости традиционный подход C или Pascal.
Smalltalk расширяет эту идею до уровня «обобъекчивания» таких предопределенных типов данных, как целые и символы, а также языковых конструкций (таких как циклы). Это теоретически интересно, но сильно уменьшает эффективность. Java и C# останавливаются много раньше, допуская присутствие простых не ОО типов данных (хотя имеются необязательные классы-обертки и для простых типов).
5. Методика объектно-ориентированного проектирования. Унифицированный язык моделирования uml
Унифицированный язык моделирования UML (Unified Modeling Language) - это преемник того поколения методов ООАП, которые появились в конце 80-х и начале 90-х гг.
Таким образом, UML является прямым объединением и унификацией методов Буча, Рамбо и Якобсона, однако дополняет их новыми возможностями. Главными в разработке UML были следующие цели:
• предоставить пользователям готовый к использованию выразительный язык визуального моделирования, позволяющий разрабатывать осмысленные модели и обмениваться ими;
• предусмотреть механизмы расширяемости и специализации для расширения базовых концепций;
• обеспечить независимость от конкретных языков программирования и процессов разработки;
• обеспечить формальную основу для понимания этого языка моделирования;
(язык должен быть одновременно точным и доступным для понимания, без лишнего формализма);
6. Диаграммы. Диаграммы классов
Графическое представление набора классов и связей между ними называется диаграммой классов.
Диаграммы классов являются центральным звеном объектно-ориентированных методов. Диаграмма классов определяет типы объектов системы и различного рода статические связи, которые существуют между ними. Имеются два основных вида статических связей:
• ассоциации (например, клиент может сделать заказ);
• подтипы (частный клиент является разновидностью клиента).
Построение диаграмм классов можно рассматривать в различных аспектах:
концептуальный аспект - диаграммы классов отображают понятия изучаемой предметной области (моделируемой организации).
аспект спецификации - модель спускается на уровень ПО, но рассматриваются только интерфейсы, а не программная реализация классов (под интерфейсом здесь понимается набор операций класса, видимых извне);
аспект реализации - модель действительно определяет реализацию классов ПО. Этот аспект наиболее важен для программистов.
7. Жизненный цикл программных продуктов
Жизненный цикл программного продукта – это период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации.
Программы любого вида характеризуются жизненным циклом, состоящим из отдельных этапов:
a) маркетинг рынка программных средств, спецификация требований к программному продукту;
b) проектирование структуры программного продукта;
c) программирование (создание программного кода), тестирование, автономная и комплексная отладка программ;
d) документирование программного продукта, подготовка эксплуатационной и технологической документации;
e) выход на рынок программных средств, распространение программного продукта;
f) эксплуатация программного продукта пользователями;
g) сопровождение программного продукта;
h) снятие программного продукта с продажи, отказ от сопровождения.