 
        
        - •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. Дайте краткую характеристику классическим подходам к выявлению ключевых абстракций системы.
Внимание концентрируется на осязаемых элементах предметной области.
Шеллер и Меллор предлагают следующих кандидатов в классы и объекты:
- осязаемые предметы (автомобили, телеметрические данные, датчики давления и т.п.); 
- роли (мать, ученик, политик и т.п.); 
- события (посадка, прерывание, запрос и т.п.); 
- взаимодействие (перечисление, пересечение, заем и т.п.); 
Роусс, исходя из моделирования БД, предлагает следующих кандидатов в классы и объекты:
- люди (чел. существа, выполняющие некоторые функции); 
- места (области, связанные с людьми или предметами); 
- предметы (осязаемый материальный предмет или группы объектов); 
- организации (формально организованная совокупность людей, ресурсов, оборудования, которая имеет опр. цель и существование, которой от индивидуумов не зависит); 
- концепции (принципы и идеи, не осязаемые сами по себе, но предназначенные для организации деятельности, общения или наблюдения за ними); 
- события (нечто случившееся в заданное время или последовательно); 
Коад и Йордан предлагают следующих кандидатов в классы и объекты:
- структуры (отношение «целое-часть» и «общее-частное»); 
- другие системы (внешние системы, с которыми взаимодействует приложение); 
- устройства, с которыми взаимодействует приложение; 
- события (происшествия, которые должны быть запомнены); 
- разыгрываемые роли (роли, исполняемы пользователями); 
- места (здания, офисы и др., существенные для работы приложения); 
- организационная единица (группы, которым принадлежат пользователи); 
На более высоком уровне Коад вводит понятие предметной области, которая в сущности является логически связанной группой классов, относящейся к высокоуровневым функциям системы.
