- •Вопросы по uml
- •1. Место моделирования в проектировании больших программных систем. Моделируемые аспекты программных систем.
- •2. Основные понятия объектно-ориентированного подхода к проектированию программ. Абстрагирование. Ограничение доступа. Модульность. Иерархия.
- •3. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие класса. Понятие объекта. Инкапсуляция данных и методов.
- •4. Основные понятия объектно-ориентированного подхода к проектированию программ. Роль наследования в ооп.
- •5. Основные понятия объектно-ориентированного подхода к проектированию программ. Свойство полиморфизма.
- •6. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие типизации.
- •7. Назначение и основные свойства языка uml
- •9. Язык uml. Типы сущностей.
- •10. Язык uml. Типы отношений.
- •11. Язык uml. Диаграмма прецедентов (использования). Вид диаграммы. Назначение диаграммы.
- •8. Язык uml. Понятия сущности, отношения, диаграммы.
- •Включение.
- •12. Язык uml. Диаграмма классов. Вид диаграммы. Назначение диаграммы.
- •13. Язык uml. Диаграмма объектов. Вид диаграммы. Назначение диаграммы.
- •14. Язык uml. Диаграммы взаимодействий. Диаграмма последовательностей. Вид диаграммы. Назначение диаграммы.
- •15. Язык uml. Диаграммы взаимодействий. Диаграмма коопераций. Вид диаграммы. Назначение диаграммы.
- •16. Язык uml. Диаграмма состояний. Вид диаграммы. Назначение диаграммы.
- •17. Язык uml. Диаграмма деятельности. Вид диаграммы. Назначение диаграммы.
- •18. Язык uml. Диаграмма компонентов. Вид диаграммы. Назначение диаграммы.
- •19. Язык uml. Диаграмма развертывания. Вид диаграммы. Назначение диаграммы.
- •20. Язык uml. Понятие прямого и обратного проектирования.
- •21. Язык uml. Элементы описания класса на диаграмме классов
- •Вопросы по технологии проектирования
- •1. Стадии проектирования программных систем. Итерационное проектирование
- •2. Проблема сложности при проектировании программного обеспечения. Различные виды сложности при проектировании программного обеспечения.
- •3. Основные характерные особенности больших программных систем
- •4. Определение требований к проектируемому программному обеспечению. Управление требованиями.
- •5. Документирование процесса проектирования. Назначение документирования. Требование к документированию.
- •6. Использование декомпозиции при проектировании больших программных систем. Декомпозиция при алгоритмическом подходе. Декомпозиция при объектно-ориентированном подходе.
- •7. Требования к программным модулям при проведении декомпозиции.
- •8. Роль абстракции в процессе проектирования. Барьер абстракции. Абстракции сущности и абстракции поведения.
- •9. Уровень реализации. Критерии выбора языка программирования и стандартов программирования.
- •10. Проектирование программных систем. Главный программист, его задачи и функции
- •11. Тестирование программ. Тестирование модулей. Тестирование скомпонованной программы.
- •12. Управление разработкой программ. Управление сроками. Управление кадрами. Управление организационной структурой.
- •13. Управление разработкой программ. Значение внутренних стандартов. Документирование разработки.
- •14. Методы интеграции информационных систем. Интеграция однородных и разнородных систем.
- •15. Методы интеграции информационных систем. Сервис ориентированная архитектура
3. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие класса. Понятие объекта. Инкапсуляция данных и методов.
Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. Класс представляет набор объектов, которые обладают общей структурой и одинаковым поведением. Поведение выражается в терминах состояния объекта (изменения состояний) и в передаче сообщений.
Типы объектов:
Актер (действующее лицо) – объект может воздействовать на другие объекты, но сам никогда не подвергается воздействию других объектов
Сервер – объект может только подвергаться воздействию со стороны других объектов
Агент – Может выступать как в активной, так и пассивной роли
Связи объектов:
Связи по информационному взаимодействию (по данным)
Связи по управлению (вызываются методы другого объекта)
Связи по иерархии наследования
Отношения между классами:
Ассоциация - семантическая (смысловая) связь без объяснения ее реализации; фиксируются участники ассоциации, их роли в ассоциации, мощность отношения; возможны три мощности ассоциации – один-к-одному, один-ко-многим, многие-ко-многим
Наследование
Агрегация: либо физическое включение одного класса в другой (внутренний класс), либо концептуальное вхождение одного класса в другой (контейнер)
Использование данных одного объекта для работы другого и методов одного объекта для реализации поведения другого
Инстанцирование - построение параметризированного класса (шаблона), который может параметризироваться другими классами, объектами или методами
Метакласс - это класс, экземпляры которого есть классы
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя. Данные и методы могут иметь модификаторы public, private и protected определяющие степень доступности.
4. Основные понятия объектно-ориентированного подхода к проектированию программ. Роль наследования в ооп.
Наследование:
При наследовании один класс заимствует структурную или функциональную часть одного или нескольких других классов
Наследование основано на иерархии классов
Наследование упрощает выражение абстракций, делает проект более выразительным
Дочерние классы наследуют свойства одного или нескольких родителей
Одиночное наследование:
При одиночном наследовании один или несколько классов наследуют свойства ТОЛЬКО ОДНОГО родительского класса.
Множественное наследование:
Абстрактные классы – обязательно должны иметь наследников и не имеют экземпляров.
5. Основные понятия объектно-ориентированного подхода к проектированию программ. Свойство полиморфизма.
Полиморфизм – возможность объектов с одинаковой спецификацией иметь различную реализацию. Он позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему - класс. Общность имеет внешнее и внутреннее выражение:
внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именами методов, типами аргументов и их количеством);
внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу называется перегрузкой метода.
Полиморфизм:
Одно и то же имя может означать объекты разных ТИПОВ
Полиморфизм реализует адаптивное поведение класса
Полиморфизм реализует динамическое связывание объектов
