
- •Вопросы по uml
- •1. Место моделирования в проектировании больших программных систем. Моделируемые аспекты программных систем.
- •2. Основные понятия объектно-ориентированного подхода к проектированию программ. Абстрагирование. Ограничение доступа. Модульность. Иерархия.
- •3. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие класса. Понятие объекта. Инкапсуляция данных и методов.
- •4. Основные понятия объектно-ориентированного подхода к проектированию программ. Роль наследования в ооп.
- •5. Основные понятия объектно-ориентированного подхода к проектированию программ. Свойство полиморфизма.
- •6. Основные понятия объектно-ориентированного подхода к проектированию программ. Понятие типизации.
- •7. Назначение и основные свойства языка uml
- •8. Язык uml. Понятия сущности, отношения, диаграммы.
- •9. Язык uml. Типы сущностей.
- •10. Язык uml. Типы отношений.
- •11. Язык 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. Методы интеграции информационных систем. Сервис ориентированная архитектура
19. Язык uml. Диаграмма развертывания. Вид диаграммы. Назначение диаграммы.
Диаграмма развертывания (Deployment diagram) – представляет конфигурацию обрабатывающих узлов системы и размещенных в них компонентов. Статическое описание системы.
Узел – это физический элемент, который существует во время выполнения и представляет вычислительный ресурс, обычно обладающий как минимум некоторым объемом памяти, а зачастую также и процессором.
В UML диаграммы развертывания используются для визуализации статических аспектов физических узлов и их взаимосвязей, а также для описания их деталей, которые имеют отношения к конструированию систем.
20. Язык uml. Понятие прямого и обратного проектирования.
Проектирование с использованием UML может быть:
прямое – из модели UML можно получить готовый код описания проекта: все классы и объявления переменных и методов;
обратное – из кода можно получить диаграмму классов.
Отображение модели на язык программирования позволяет осуществить прямое проектирование – генерация кода на языке программирования из модели UML. Также возможно восстановить модель UML на основе существующей реализации. Однако, обратное проектирование, выполняемое инструментальными средствами, все же требует определенного вмешательства человека, так как некоторая информация может теряться при переходе от модели к коду. Комбинация этих двух путей – прямого и обратного проектирования – обеспечивает возможность работы как с графическим, так и с текстовым представлениями; при этом обеспечивается согласованность между ними. В дополнение к прямому отображению UML благодаря своей выразительности и однозначности позволяет непосредственно исполнять модели, имитируя поведение проектируемых систем, а также управляя действующими системами.
21. Язык uml. Элементы описания класса на диаграмме классов
Диаграммы классов включает классы, интерфейсы, объекты и кооперации, а также их отношения. Не указываются временные аспекты функционирования системы.
Структура класса:
имя класса (уникальное);
атрибуты;
операции (методы);
интерфейсы.
Отношения:
зависимости;
ассоциация;
агрегация;
обобщение.
Вопросы по технологии проектирования
1. Стадии проектирования программных систем. Итерационное проектирование
Теоретический процесс разработки:
Реальный процесс разработки:
Постоянно приходится возвращаться на предыдущие этапы и вносить изменения.
Основные принципы проектирования больших программных систем
этап проектирования не прекращается никогда, потому что постоянно требуется вносить изменения.
уточнение требований продолжается в течение всего времени проектирования.
программная система наследует проблемы реальной системы.
2. Проблема сложности при проектировании программного обеспечения. Различные виды сложности при проектировании программного обеспечения.
1. Сложность проблемы
сложность поставленной задачи в сочетании с дополнительными требованиями стоимости, надёжности, удобства, производительности;
сложность получения достоверных данных о предметной области от заказчика;
изменение требований в процессе разработки программной системы;
необходимость длительного обслуживания программной системы.
2. Сложность управления процессом разработки
большой объём программ и сложная логика функционирования программной системы;
большой коллектив программистов;
необходимость согласования технических решений;
координация работ различных групп программистов;
поддержания единства и целостности разработки;
создание документации на программную систему;
обеспечение временных и финансовых ограничений на разработку.
3. Сложность обеспечения гибкости сопровождения конечного продукта
использование определенных технологий, стандартов и соглашений в программировании;
использование специальных решений для обеспечения сопровождения;
разработка специальных технологических средств сопровождения программной системы;
разработка системы тестирования программ.
4. Сложность описания поведения отдельных подсистем
сложность алгоритмов описания реальной предметной области;
сложность информационных связей в предметной области;
сложность логических взаимосвязей предметной области;
наличие ограничений на параметры функционирования программной системы.