
- •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. Процесс объектно-ориентированной разработки по
11. Объясните понятие «стереотип класса». Опишите основные стереотипы классов: «пограничные классы», «классы-сущности», «управляющие классы».
Стереотип – механизм, позволяющий классифицировать классы.
Пограничные классы(boundary classes) – классы, расположенные на границе системы со всем остальным миром. Вкл. в себя формы, отчеты, интерфейсы с аппаратурой. Для выявления исследовать диаграммы вариантов использования. Для каждого взаимодействия между действующим лицом и вариантом использования должен существовать хотя бы один пограничный класс.
Классы-сущности(entity classes) – классы, содержащие информацию, хранимую постоянно. Их можно обнаружить в потоке событий и на диаграммах взаимодействия.
Управляющие классы(control classes) отвечают за координацию действий других классов. У каждого вар. исп. есть один УК, контролирующий последовательность событий этого вар. исп.. Сам УК не несет в себе никакой функциональности. УК делегирует ответственность другим классам. УК называют классом-менеджером.
12. Дайте краткую характеристику подхода к выявлению ключевых абстракций системы, основанному на использовании uml.
Выделение ключевых абстракций на UML
Изучить имена сущ. в потоках событий.
Существительные могут быть:
- действующими лицами
- классами
- атрибутами
Если объект имеет выраженное поведение, тогда сделать классом.
Если нечто неск. видо…(м,в), то сделать классом.
Анализ диаграмм взаимодействия
Если диагр. взаим. для разных объектов схожи, рекомендуется создать на их основе один абстрактный класс (класс, который не наполняется конкретным содержимым, не инстанцируется, т.е. если класс А абстрактный, в памяти никогда не будет объектов типа А).
Изучение границ системы и определение пограничных классов.
Изучение взаимодействия объектов внутри системы и создания управляющего класса.
13. Дайте краткую характеристику классическим подходам к выявлению ключевых абстракций системы.
Внимание концентрируется на осязаемых элементах предметной области.
Шеллер и Меллор предлагают следующих кандидатов в классы и объекты:
осязаемые предметы (автомобили, телеметрические данные, датчики давления и т.п.);
роли (мать, ученик, политик и т.п.);
события (посадка, прерывание, запрос и т.п.);
взаимодействие (перечисление, пересечение, заем и т.п.);
Роусс, исходя из моделирования БД, предлагает следующих кандидатов в классы и объекты:
люди (чел. существа, выполняющие некоторые функции);
места (области, связанные с людьми или предметами);
предметы (осязаемый материальный предмет или группы объектов);
организации (формально организованная совокупность людей, ресурсов, оборудования, которая имеет опр. цель и существование, которой от индивидуумов не зависит);
концепции (принципы и идеи, не осязаемые сами по себе, но предназначенные для организации деятельности, общения или наблюдения за ними);
события (нечто случившееся в заданное время или последовательно);
Коад и Йордан предлагают следующих кандидатов в классы и объекты:
структуры (отношение «целое-часть» и «общее-частное»);
другие системы (внешние системы, с которыми взаимодействует приложение);
устройства, с которыми взаимодействует приложение;
события (происшествия, которые должны быть запомнены);
разыгрываемые роли (роли, исполняемы пользователями);
места (здания, офисы и др., существенные для работы приложения);
организационная единица (группы, которым принадлежат пользователи);
На более высоком уровне Коад вводит понятие предметной области, которая в сущности является логически связанной группой классов, относящейся к высокоуровневым функциям системы.