- •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. Область применения, схема взаимодействия.
47. Операции на диаграммах классов. Нотация и семантика. Примеры.
Операции класса задают поведение. которое является общим для всех объектов
данного класса. В C++ функции-члены класса по сути и есть операции класса.
Формат задания операций класса (БНФ):
<операция> ::= [<видимость>] <имя операции> ‘(‘ [<список параметров>] ')' [':‘ [<тип результата>] '{' <свойства операции> '}']
<список параметров> - список формальных аргументов, формат их следующий:
<параметр> ::= [<направление>] <имя параметра> ':' <тип параметра> ['[‘<кратность>']‘] [‘=' <значение по умолчанию>] [‘{‘ <свойства параметра > '}']
<направление> ::= 'in' | ‘out' | ‘inout’| ‘return'. Если не указано, по умолчанию “in”.
in - значения параметра передаются в операцию вызывающим объектом.
inout - значения параметра передаются в операцию вызывающим объектом и затем
передаются вызывающему объекту после окончания выполнения операции.
out - значения параметра передаются вызывающему объекту после окончания
выполнения операции.
return - значения параметра передаются в качестве возвращаемых значении
вызывающему объекту после окончания выполнения операции.
<видимость>, <имя операции>‚ <имя параметра>, <тип параметра>, <кратность>
и <значение по умолчанию> имеют тот же смысл, что и для атрибутов.
<свойства параметра > - указывает дополнительные свойства значений данного
формального параметра. Имеет тот же смысл что и <модификатор атрибута>.
<свойства операции> - может принимать следующие значения:
redefines <имя операции> - данная операция переопределяет некоторую
наследуемую операцию с именем <имя операции>.
query - операция не изменяет состояния системы и не имеет побочных эффектов.
ordered - значения возвращаемого параметра являются упорядоченными.
unique - значения возвращаемого параметра не могут повторяться.
Примеры записи операций |
Комментарий |
+добавить(in номерТелеФона : Integer [*] {unique}) |
Общедоступная операция, Значение параметра типа Integer передается в операцию вызывающим объектом. Количество цифр в номере любое. Номера телефонов не могут повторяться. |
-изменить(in заработнаяПлата : Currency) |
Скрытая операция. Значение параметра типа Currency передается вызывающим объектом. |
+создать() : Boolean |
Общедоступная операция без параметров. Возвращает значение типа Boolean. |
toString(return : String) |
Операция с одним параметром типа String. |
toString( ) : String |
Операция без параметров. Возвращает значение типа String |
48. Отношения ассоциации на диаграммах классов.
В диаграммах классов используются отношения следующих шести видов:
Отношение |
Нотация |
Семантика |
Ассоциация (association) |
|
Произвольное отношение между объектами классов |
Обобщение (generalization) |
|
Отношение типа «общее-частное». По сути, это есть «наследование наоборот» |
Агрегация (aggregation) |
|
Слабая форма отношения типа «часть-целое» |
Композиция (composition) |
|
Сильная форма отношения типа «часть-целое» |
Реализация (realization) |
|
Отношение между значком «интерфейс» и его реализацией в виде класса |
Зависимость (dependency) |
|
Направленное отношение между двумя элементами диаграммы с открытой семантикой |
Ассоциация является наиболее универсальным видом отношений. Для корректного построения диаграмм классов необходимо крайне аккуратно относиться к выбору и спецификации отношений между классами, подробности см. далее.