Экзамен - Вопросы и ответы
Описание файла
Документ из архива "Экзамен - Вопросы и ответы", который расположен в категории "". Всё это находится в предмете "проектирование программных систем" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "проектирование программных систем" в общих файлах.
Онлайн просмотр документа "Экзамен - Вопросы и ответы"
Текст из документа "Экзамен - Вопросы и ответы"
ВОПРОСЫ ПО UML 3
1. Место моделирования в проектировании больших программных систем. Моделируемые аспекты программных систем. 3
2. Основные понятия объектно-ориентированного подхода к проектированию программ. Абстрагирование. Ограничение доступа. Модульность. Иерархия. 4
3. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие класса. Понятие объекта. Инкапсуляция данных и методов. 5
4. Основные понятия объектно-ориентированного подхода к проектированию программ. Роль наследования в ООП. 6
5. Основные понятия объектно-ориентированного подхода к проектированию программ. Свойство полиморфизма. 7
6. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие типизации. 8
7. Назначение и основные свойства языка UML. 9
8. Язык UML. Понятия сущности, отношения, диаграммы. 10
9. Язык UML. Типы сущностей. 11
10. Язык UML. Типы отношений. 12
11. Язык UML. Диаграмма прецедентов (использования). Вид диаграммы. Назначение диаграммы. 13
12. Язык UML. Диаграмма классов. Вид диаграммы. Назначение диаграммы. 14
13. Язык UML. Диаграмма объектов. Вид диаграммы. Назначение диаграммы. 15
14. Язык UML. Диаграммы взаимодействий. Диаграмма последовательностей. Вид диаграммы. Назначение диаграммы. 16
15. Язык UML. Диаграммы взаимодействий. Диаграмма коопераций. Вид диаграммы. Назначение диаграммы. 17
16. Язык UML. Диаграмма состояний. Вид диаграммы. Назначение диаграммы. 18
17. Язык UML. Диаграмма деятельности. Вид диаграммы. Назначение диаграммы. 19
18. Язык UML. Диаграмма компонентов. Вид диаграммы. Назначение диаграммы. 20
19. Язык UML. Диаграмма развертывания. Вид диаграммы. Назначение диаграммы. 21
20. Язык UML. Понятие прямого и обратного проектирования. 22
21. Язык UML. Элементы описания класса на диаграмме классов. 23
ВОПРОСЫ ПО ТЕХНОЛОГИИ ПРОЕКТИРОВАНИЯ 24
1. Стадии проектирования программных систем. Итерационное проектирование 24
2. Проблема сложности при проектировании программного обеспечения. Различные виды сложности при проектировании программного обеспечения. 25
3. Основные характерные особенности больших программных систем 26
4. Определение требований к проектируемому программному обеспечению. Управление требованиями. 27
5. Документирование процесса проектирования. Назначение документирования. Требование к документированию. 28
6. Использование декомпозиции при проектировании больших программных систем. Декомпозиция при алгоритмическом подходе. Декомпозиция при объектно-ориентированном подходе. 29
7. Требования к программным модулям при проведении декомпозиции. 30
8. Роль абстракции в процессе проектирования. Барьер абстракции. Абстракции сущности и абстракции поведения. 31
9. Уровень реализации. Критерии выбора языка программирования и стандартов программирования. 32
10. Проектирование программных систем. Главный программист, его задачи и функции 33
11. Тестирование программ. Тестирование модулей. Тестирование скомпонованной программы. 34
12. Управление разработкой программ. Управление сроками. Управление кадрами. Управление организационной структурой. 35
13. Управление разработкой программ. Значение внутренних стандартов. Документирование разработки. 36
14. Методы интеграции информационных систем. Интеграция однородных и разнородных систем. 37
15. Методы интеграции информационных систем. Сервис ориентированная архитектура 38
ВОПРОСЫ ПО UML
1. Место моделирования в проектировании больших программных систем. Моделируемые аспекты программных систем.
Моделирование программных систем позволяет:
-
визуализировать систему в ее текущем или желательном для нас состоянии;
-
определить структуру или поведение системы;
-
получить шаблон, позволяющий затем сконструировать систему;
-
документировать принимаемые решения, используя полученные модели.
Логичность и формализованность компьютерных моделей позволяет выявить основные факторы, определяющие свойства изучаемого объекта-оргинала (или целого класса объектов), в частности, исследовать отклик моделируемой физической системы на изменения ее параметров и начальных условий.
Различают аналитическое и имитационное моделирование. При аналитическом моделировании изучаются абстрактные модели реального объекта в виде математических уравнений, а также предусматривающих осуществление однозначной вычислительной процедуры, приводящей к их точному решению. При имитационном моделировании исследуются математические модели в виде алгоритма(ов), воспроизводящего функционирование исследуемой системы путем последовательного выполнения большого количества элементарных операций.
Система моделей включает описание процессов, функций, потоков, данных и других статических и динамических аспектов функционирования системы.
2. Основные понятия объектно-ориентированного подхода к проектированию программ. Абстрагирование. Ограничение доступа. Модульность. Иерархия.
Преимущества объектной модели:
-
В полной мере используются возможности языков программирования
-
Повышается уровень унификации разработки и пригодность для повторного использования
-
Система строится на основе стабильных промежуточных описаний, что упрощает внесение изменений
-
Уменьшается риск разработки
-
Единственная методология позволяющая справиться со сложностью очень больших систем
Абстракция:
-
Абстракция выделяет существенные характеристики некоторого объекта, отличающие его от всех других видов объектов и, таким образом, четко определяет его концептуальные границы с точки зрения наблюдателя
-
Абстракция разделяет смысл и реализацию объекта
Инкапсуляция:
-
Инкапсуляция реализует абстракцию, скрывая внутреннюю структуру объекта и предоставляя вовне только внешнее поведение – интерфейс, соответствующий принятому уровню абстракции
-
Абстракция и инкапсуляция дополняют друг друга: абстрагирование направлено на наблюдаемое поведение объекта, а инкапсуляция занимается внутренним устройством
-
Данные и методы могут иметь модификаторы public, private и protected определяющие степень доступности.
Модульность:
-
Это свойство системы, которая была разложена на внутренне связные, но слабо связанные между собой модули
-
Модули выполняют роль физических контейнеров, в которые помещаются определения классов и объектов
-
Принципы абстрагирования, инкапсуляции и модульности являются взаимодополняющими
Иерархия:
-
Это упорядочение абстракций, расположение их по уровням.
-
Значительное упрощение в понимании сложных задач достигается за счет образования из абстракций иерархической структуры
-
Один из видов иерархии – концепция наследования «обобщение-специализация» (is-a)
-
Другой вид иерархии – агрегация (part-of)
3. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие класса. Понятие объекта. Инкапсуляция данных и методов.
Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. Говорят, что объект — это экземпляр класса. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. Класс представляет набор объектов, которые обладают общей структурой и одинаковым поведением. Поведение выражается в терминах состояния объекта (изменения состояний) и в передаче сообщений.
Типы объектов:
-
Актер (действующее лицо) – объект может воздействовать на другие объекты, но сам никогда не подвергается воздействию других объектов
-
Сервер – объект может только подвергаться воздействию со стороны других объектов
-
Агент – Может выступать как в активной, так и пассивной роли
Связи объектов:
-
Связи по информационному взаимодействию (по данным)
-
Связи по управлению (вызываются методы другого объекта)
-
Связи по иерархии наследования
Отношения между классами:
-
Ассоциация - семантическая (смысловая) связь без объяснения ее реализации; фиксируются участники ассоциации, их роли в ассоциации, мощность отношения; возможны три мощности ассоциации – один-к-одному, один-ко-многим, многие-ко-многим
-
Наследование
-
Агрегация: либо физическое включение одного класса в другой (внутренний класс), либо концептуальное вхождение одного класса в другой (контейнер)
-
Использование данных одного объекта для работы другого и методов одного объекта для реализации поведения другого
-
Инстанцирование - построение параметризированного класса (шаблона), который может параметризироваться другими классами, объектами или методами
-
Метакласс - это класс, экземпляры которого есть классы
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы, работающие с ними в классе, и скрыть детали реализации от пользователя. Данные и методы могут иметь модификаторы public, private и protected определяющие степень доступности.
4. Основные понятия объектно-ориентированного подхода к проектированию программ. Роль наследования в ООП.
Наследование:
-
При наследовании один класс заимствует структурную или функциональную часть одного или нескольких других классов
-
Наследование основано на иерархии классов
-
Наследование упрощает выражение абстракций, делает проект более выразительным
-
Дочерние классы наследуют свойства одного или нескольких родителей
Одиночное наследование:
При одиночном наследовании один или несколько классов наследуют свойства ТОЛЬКО ОДНОГО родительского класса.
Множественное наследование:
Абстрактные классы – обязательно должны иметь наследников и не имеют экземпляров.
5. Основные понятия объектно-ориентированного подхода к проектированию программ. Свойство полиморфизма.
Полиморфизм – возможность объектов с одинаковой спецификацией иметь различную реализацию. Он позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему - класс. Общность имеет внешнее и внутреннее выражение:
-
внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именами методов, типами аргументов и их количеством);
-
внутренняя общность — одинаковая функциональность методов. Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу называется перегрузкой метода.
Полиморфизм:
-
Одно и то же имя может означать объекты разных ТИПОВ
-
Полиморфизм реализует адаптивное поведение класса
-
Полиморфизм реализует динамическое связывание объектов
6. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие типизации.
Типизация:
-
Это точная характеристика свойств, включая структуру и поведение, относящаяся к некоторой совокупности объектов
-
Позволяет в программных системах проводить целый ряд проверок и согласований
-
Строгая типизация предотвращает смешивание абстракций
Процесс проверки и накладывания ограничений типов — контроля типов, может выполняться во время компилирования (статическая проверка) или во время выполнения (динамическая проверка).
-
Статическая типизация — контроль типов осуществляется при компиляции.
-
Динамическая типизация — контроль типов осуществляется во время выполнения.
Контроль типов также может быть строгим и слабым.
-
Строгая типизация — совместимость типов автоматически контролируется транслятором:
-
Номинативная типизация — совместимость должна быть явно указана (наследована) при определении типа.
-
Структурная типизация — совместимость определяется структурой самого типа (типами элементов, из которых построен составной тип).
-
Слабая типизация — совместимость типов никак транслятором не контролируется. В языках со слабой типизацией обычно используется подход под названием «утиная типизация» — когда совместимость определяется и реализуется общим интерфейсом доступа к данным типа.
7. Назначение и основные свойства языка UML
UML – это язык для визуализации, специфицирования, конструирования и документирования артефактов программных систем.
Артефакт — это любой созданный искусственно элемент программной системы.