
- •2.1. Сложность программного обеспечения
- •2. Перечислите основные причины сложности программного обеспечения.
- •3. Перечислите пять признаков сложной системы.
- •4. Объясните следующие понятия: «декомпозиция», «абстракция», «иерархия» (виды иерархий).
- •5. Объясните понятие «каноническая форма системы».
- •2.2. Введение в объектно-ориентированный анализ и проектирование
- •1. Объясните следующие понятия: «объектно-ориентированный анализ (ооа)», «объектно-ориентированное проектирование (ood)», «объектно-ориентированное программирование (оор)».
- •2. Дайте краткую характеристику основным принципам объектной модели: абстрагирование, инкапсуляция, модульность, иерархия, типизация, параллелизм, сохраняемость.
- •3. Объясните понятие «объект».
- •4. Опишите основные категории объектов.
- •5. Объясните следующие понятия: «состояние», «поведение», «идентичность» и «время жизни» объекта.
- •6. Объясните следующие понятия: «операция», «метод класса», «свободная подпрограмма».
- •7. Опишите назначения следующих операций: модификатор, селектор, итератор, конструктор, деструктор.
- •8. Объясните следующие понятия: «протокол», «роль» и «ответственность» объекта.
- •9. Объясните понятие «класс». Как соотносятся понятия «класс» и «объект»? Описание класса.
- •10. Опишите основные типы классов: параметризованный класс, класс-наполнитель, утилита параметризованного класса, утилита класса-наполнителя, метакласс, абстрактный класс.
- •11. Объясните понятие «стереотип класса». Опишите основные стереотипы классов: «пограничные классы», «классы-сущности», «управляющие классы».
- •12. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы, основанному на использовании uml.
- •13. Дайте краткую характеристику классическим подходам к выявлению ключевых абстракций системы.
- •14. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Анализ поведения».
- •15. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Анализ предметной области».
- •16. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Анализ вариантов».
- •17. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «crc- карточки».
- •18. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Использование неформального описания задачи».
- •19. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы «Использование структурного анализа».
- •20. Объясните понятие «атрибут класса».
- •21. Опишите основные типы атрибутов (класса).
- •22. Опишите способы выявления атрибутов. В каком случае информация относится к классу, а в каком - к атрибуту.
- •23. Опишите основные типы операций. Опишите основные стереотипы операций.
- •24. Опишите общие этапы выявления операций.
- •25. Объясните понятие «видимость» атрибута и операции класса. Перечислите допустимые значения видимости.
- •26. Опишите основные типы связей между классами (ассоциация, зависимость, агрегация, наследование, полиморфизм). Объясните понятие «дружественный класс».
- •27. Объясните следующие понятия: «стереотип связи», «имя связи» и «элемент связи».
- •28. Выявление связей.
- •29. Опишите основные критерии, используемые для оценки качества классов и объектов.
- •5. Назначение диаграммы Вариантов Использования и краткое описание ее элементов (типы действующих лиц и связей).
- •6. Процесс выявления вариантов использования. Описать этапы создания диаграмм Вариантов Использования (можно на примере своей задачи).
- •7. Связь Диаграмм Вариантов Использования и «Технического задания».
- •8. Назначение потока событий и краткая характеристика его составных частей (краткое описание, предусловие, постусловие, основной поток, альтернативный поток и поток ошибок).
- •9. Привести пример потока событий (можно из своей задачи).
- •10. Назначение и типы Диаграмм Взаимодействия.
- •11. Перечислите основные элементы Диаграммы Последовательности. Назначение синхронизации и скриптов.
- •12. Перечислите основные элементы Кооперативной диаграммы.
- •13. Этапы составления Диаграмм Взаимодействия.
- •14. Двухэтапный подход при составлении Диаграмм Взаимодействия.
- •15. Назначение Диаграммы Классов и этапы ее составления.
- •16. Назначение Диаграммы Состояний и краткое описание ее элементов (состояния (виды состояний), деятельность, входные действия, выходные действия, переходы, события, ограждающие условия, действия).
- •18. Назначение Диаграммы Размещения и краткое описание ее элементов.
- •19. С какой целью на диаграммах uml используются примечания и пакеты.
- •20. Модели и ракурсы. Логическая и физическая модели. Статическая и динамическая модели.
- •4. Процесс объектно-ориентированной разработки по
16. Назначение Диаграммы Состояний и краткое описание ее элементов (состояния (виды состояний), деятельность, входные действия, выходные действия, переходы, события, ограждающие условия, действия).
Диаграмма состояний. Содержит информацию о состояниях, в которых может находиться объект, о том, как он переходит из одного состояние в другое и как он ведет себя в этих состояниях.
Состояние – одно из возможных условий, в которых может существовать объект.
С состояние можно связать данные пяти типов:
- деятельность(activity) – поведение, реализуемое объектом, когда он находится в опр. состоянии. Может быть выполнено до своего завершения, если объект в данном состоянии или прервано переходом в другое состояние. do:
- входное действие(entry action) – поведение, выполняемое, когда объект переходит в определенное состояние. Является частью перехода(осуществляется не после того, как объект перешел в состояние). В отличие от деятельности рассматривается как непрерываемое. entry:
- выходное действие(exit action) – осуществляется составная часть процесса выхода из состояния. Является частью процесса перехода. Является непрерывным. exit:
- переход(transition) – перемещение объекта из одного состояния в другое. На диаграмме отображается в виде стрелки. Может быть рефлексивным – переход в то же состояние, в котором находится в данный момент.
- событие(event) – то, что вызывает переход из одного состояния в другое. Размещают вдоль линии перехода. Для отображения можно использовать имя операции или обычную фразу. Автоматические переходы не имеющие событий;
- ограждающее условие(guard conditions) – определяет, когда переход может быть выполнен, а когда нет. На диаграмме заключаются в квадратные скобки и размещают вдоль линии перехода.
- действие(action) – непрерываемое поведение, выполняющееся как часть перехода. Вх. и вых. действия внутри состояния, другие действия изображаются вдоль линии перехода после имени события, после которого стоит «/». Во время деятельности, вх. и вых. действий поведение объекта может вкл. в себя отправку сообщений другим объектам.
Начальное состояние – состояние, в котором объект находится сразу после создания. Оно обязательно – с него начинается объект. Оно может быть только одно. На диаграмме закрашенный кружок.
Конечное состояние – состояние, в котором объект находится перед уничтожением. Оно не обязательно, их может быть сколь угодно много. На диаграмме закрашенный кружок с ободком.
Если у нескольких состояний одинаковые переходы, то их можно объединить в суперсостояния.
Вложенные состояния – подсостояния, а те, в которые вложены – суперсостояния.
17. Назначение Диаграммы Компонентов и краткое описание ее элементов (компонент, спецификация и тело подпрограммы, главная программа, спецификация, и тело пакета, файл динамической библиотеки, спецификация и тело задачи). Связи между элементами Диаграмм Компонентов.
Диаграмма компонентов. Показывает, как выглядит модель на физическом уровне. На ней изображаются компоненты программного обеспечения системы и связи между ними.
Компонент – физический модуль кода.
Спецификация и тело подпрограммы – видимая спецификация подпрограммы и тело ее реализации. Обычно состоит из стандартных программных компонентов и не содержит определений класса.
Главная программа – файл, содержащий корень программы.
Спецификация и тело пакета. Пакет – реализация класса. Спецификация пакета – заголовочный файл со сведениями о прототипах (на с++ - это *.h). Тело пакета содержит код операций класса (на с++ - это *.срр)
Исполняемые компоненты – исполняемые файлы, dll, задачи.
Файл динамической библиотеки (файл dll). См. фото.
Спецификации и тело задачи отображают пакеты, имеющие независимые потоки управления. Исполняемый файл представляют как спецификацию задачи с расширением *.exe.
Единственный возможный тип связи между компонентами – зависимость. Он показывает, что один из компонентов должен компилироваться перед началом компиляции другого. Пунктирная линия.