- •Вопросы по 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. Основные характерные особенности больших программных систем
Большие программные системы – это промышленные программные продукты. Для них характерно следующее:
различные области применения;
сложность логической организации;
большой объём кода;
множество пользователей;
долгосрочное использование;
требуется модернизация и сопровождение;
требуется сопроводительная документация;
разрабатываются коллективом программистов;
требуются значительные финансовые ресурсы.
4. Определение требований к проектируемому программному обеспечению. Управление требованиями.
Эта работа выполняется совместно разработчиком и заказчиком.
1. Постановка задачи
нужно понять, что нужно сделать.
требования формулируются совместно с заказчиком и проектировщиком с максимально возможной строгостью.
нельзя ориентироваться на требования одного, но влиятельного лица, потому что в этом случае система обрекается на недолговечность; должен быть найден и вовлечён в дело действительный пользователь, а не его заменитель.
разные пользователи предъявляют противоречивые требования.
представитель заказчика должен иметь полномочия принимать решения.
2. Управление требованиями
Самое первое требование к проектированию больших систем - предусмотреть возможность будущих изменений.
предусмотреть изменения в проекте;
заказчики и разработчики одни и те же требования понимают по-разному;
требованиями надо управлять;
за выработку требований должен отвечать один и тот же человек.
|
Может сделать |
Пропустит |
ЗАКАЗЧИК |
Ясно выразить важные потребности Правильно расставить приоритеты |
Требования к технологии Потребности инфраструктуры |
ПРОЕКТИРОВЩИК |
Определить состояние дел в технологии Определить полноту требований |
Сортировку интересов пользователей Тонкости прикладной области |
5. Документирование процесса проектирования. Назначение документирования. Требование к документированию.
Самая трудная задача - организовать ведение документации.
Если отсутствует документация, доступная для всех, то проект обречён на неудачу.
Дональд Дуглас: "Когда вес документов достигает веса самолёта, самолёт начинает летать".
Основные принципы:
документация создаётся на всех уровнях проектирования;
должны использоваться методы документирования (HIPO, SADT, IA, UML).
Чего следует придерживаться при создании документации:
требования формируются совместно заказчиком и проектировщиком с максимально возможной строгостью;
язык формулировок требований должен быть понятен пользователю и проектировщику;
нужно документировать требования, всегда записывать их, ничего не оставлять "на память";
если требования не записаны и не сделаны доступными разработчикам, они вроде бы и не существуют.
6. Использование декомпозиции при проектировании больших программных систем. Декомпозиция при алгоритмическом подходе. Декомпозиция при объектно-ориентированном подходе.
Декомпозиция – это разложение на более мелкие составные части.
Алгоритмическая декомпозиция:
Один управляющий алгоритм, который вызывает всё остальное. Иерархическое управление сверху вниз. Каждый модуль имеет только одну связь наверх.
Нисходящее проектирование - этот алгоритм предпочтителен, когда в самом начале мы не проектируем модули, а проектируем управляющий алгоритм.
Восходящее проектирование - худший метод, хотя и чаще встречающийся. Сначала создаются модули, а потом объединяющий их главный управляющий алгоритм.
Комбинированное проектирование - сочетание нисходящего и восходящего.
Объектная декомпозиция:
