- •1. Основные операции языка Си.
- •3. Язык Си: указатели и массивы. Определения, примеры.
- •4. Язык Си: объявления функций, передача аргументов. Примеры.
- •5. Язык Си: строки и указатели. Определения, примеры.
- •8. Язык Си: структуры. Пример.
- •9 . Язык Си: битовые поля и объединения. Примеры.
- •10. Язык Си: оператор определения типа. Примеры.
- •11.Язык Си: препроцессор. Директивы препроцессора, примеры
- •12.Язык Си: программный стек. Пример работы стека.
- •13. Линейные списки. Операции с линейными списками.
- •14 Hash-таблицы
- •15 Двоичные деревья
- •17. Язык Си: ссылочные типы. Пример.
- •18. Язык Си: защита указателей и объектов, неявное изменение объектов.
- •19. Язык Си: организация ввода/вывода. Пример: слияние файлов. Организация ввода/вывода
- •Открытие файла
- •Закрытие файла
- •Ввод из файла
- •Вывод в файл
- •Особые ситуации
- •Пример: слияние файлов
- •20. Язык Си: произвольный доступ к файлам. Пример.
- •22. Язык Си: примеры реализаций функций ввода/вывода (getc,putc).
- •23. Язык Си: примеры реализаций функций ввода/вывода (fgets, fputs).
- •24. Язык Си: работа с файловой системой. Пример.
- •25. Основные понятия ооп: абстракция, инкапсуляция, наследование, полиморфизм.
- •27. Объекты классов: статические,автоматические, динамические. Примеры.
- •28. Управление доступом к элементам классов. Пример.
- •29. Шаблоны функций и шаблоны классов. Примеры.
- •30. Наследование. Пример.
- •31. Множественное наследование. Пример.
- •П оскольку классы-потомки наследуют все данные и методы классов-предков, в итоге имеем следующую картину:
- •32. Виртуальные функции. Раннее и позднее связывание.
- •33. Абстрактные классы. Их назначение, пример.
- •34. Полиморфный контейнер (пример).
- •36. Конструкторы, их виды, примеры. Вызов конструкторов при наследовании.
- •37. Деструкторы. Их назначение, примеры.
- •39. Перегруженные операции. Примеры.
- •40. Обработка нештатных ситуаций. Объекты-исключения. Примеры.
- •Вопрос 1: какова дальнейшая судьба этих ресурсов, будут ли они освобождены?
- •Вопрос 2: как распознавать подобные ситуации и корректно их обрабатывать?
- •41. Модели жизненного цикла программного обеспечения. Модели жизненного цикла по
- •Спиральная модель жизненного цикла по.
- •42. Проектирование программного обеспечения и uml.
- •Uml (основные понятия)
- •Канонические диаграммы языка uml 2.X
- •43. Диаграммы прецедентов. Нотация, семантика, примеры.
- •Основные обозначения на диаграммах прецедентов:
- •44. Сценарии выполнения прецедентов (пример).
- •45. Диаграммы классов. Нотация, семантика, отношения.
- •46. Атрибуты на диаграммах классов. Нотация и семантика. Примеры.
- •47. Операции на диаграммах классов. Нотация и семантика. Примеры.
- •48. Отношения ассоциации на диаграммах классов.
- •Отношения ассоциации
- •Предприятие
- •Сотрудник
- •Отношения обобщения
- •Отношения композиции
- •53. Язык c#: сборки, манифесты, домены, компоненты.
- •55. Java как язык ооп для машинно-независимых приложений.
- •56. Обзор Java-технологий NetBeans ide.
- •57. Компонентные технологии разработки программного обеспечения.
- •59.Обёртки в языках c# и Java.
- •60. Архитектурный паттерн mvc. Область применения, схема взаимодействия.
45. Диаграммы классов. Нотация, семантика, отношения.
Диаграмма классов есть логическая модель проектируемой системы.
Диаграмма классов (class diagram) – предназначена для представления статической структуры программной системы в терминах классов ООП.
Диаграмма классов представляет собой граф, узлами которого являются элементы типа «классификатор», которые связаны различными типами структурных отношений.
Классификатор (classifier) – специальное понятие, предназначенное для классификации экземпляров (объектов), которые имеют общие характеристики.
Варианты графического изображения классов на Диаграмме классов
Примеры Диаграммы классов.
Имеет два пакета классов: «Холдинг» и «Персонал».
Класс «Предприятие» многократно ассоциирован с классами «Должность» и «Сотрудник».
Для C++ это значит, что в классе «Предприятие» есть два контейнера указателей на объекты этих классов.
Класс «Сотрудник» содержит объекты классов «ОпытРаботы» и «Квалификация». Также содержит контейнер указателей на объекты класса «Предприятие» (для C++).
Классы «Мужчина» и «Женщина» есть потомки класса «Сотрудник».
Класс «УровеньКвалификации» по сути представляет собой перечислимый тип. Он однократно ассоциирован с классом «Квалификация».
46. Атрибуты на диаграммах классов. Нотация и семантика. Примеры.
Атрибуты класса задают свойства, которые являются общими для всех объектов
данного класса. В С++ элементы данных класса по сути и есть атрибуты класса.
Формат задания атрибутов класса (БНФ):
<атрибут>::= [<видимость>] [‘/’] <имя атрибута> [‘:’<тип атрибута>] [‘[‘<кратность>’]’]
[‘=’ <значение по умолчанию>] [‘{‘<модификаторы атрибута> ‘}’]
<видимость> атрибутов может принимать следующие значения:
+ public (общедоступный).
- privatе (скрытый, видим только внутри класса).
# protected (защищенный, видим внутри класса и для потомков).
~ package (видим только в ближайшем охватывающем пакете)
Символ “/” означает, что атрибут является производным. Значение производного
атрибута может быть вычислено на основе значений других атрибутов этого или
других классов. Поэтому данный атрибут называют иногда вычислимым.
<имя атрибута> - строка текста, которая используется в качестве идентификатора
атрибута. Имя должно быть уникальным в пределах данного класса.
<тип атрибута> - имя классификатора, который является типом данного атрибута.
<кратность> - характеризует общее количество конкретных значений для атрибута,
которые могут быть заданы для объектов данного класса. По сути, задает мощность
множества значений атрибута. Используется специальный синтаксис.
<значение по умолчанию> - выражение. которое служит для задания начального
значения или значений данного атрибута в момент создания объекта класса.
<модификатор атрибута> - текстовое выражение, которое придает атрибуту
дополнительную семантику. Формат следующий (БНФ):
<модификатор атрибута> ::= ‘readOnly' | 'union’ | ‘subsets‘ <имя атрибута> | 'redefines'
<имя атрибута> | ‘ordered' I ‘unique' | <ограничение атрибута>
Примеры записи атрибутов |
Комментарий |
+ имяСотрудника : String {readOnly} |
Общедоступный атрибут типа String. Разрешено только чтение значений. |
~ датаРождения : Data {readOnly} |
Доступным в пределах пакета атрибут типа Data. Разрешено только чтение значений.
|
# /возрастСотрудника : Integer |
Защищенный производный атрибут типа Integer. Значение атрибута вычислимо. |
+ номерТелефона : Integer [1..*] {unique} |
Общедоступный атрибут типа Integer. Количество цифр в номере >= 1. Значения номеров телефонов не могут повторяться. |
- заработнаяПлата : Currency = 500.00 |
Скрытый атрибут типа Сurrency. Значение по умолчанию есть 500.00. |