Анализ и Проектирование качественных приложений Презентация по книге Крэга Лармана.
Книга/Семинар Объектно- ориентированный анализ и проектирование Система обозначений языка UML Анализ требований Итеративная разработка в рамках UP Принципы и рекомендации Шаблоны Книга
OOA/D/P UML АНАЛИЗ (ANALYSES) – выявление объектов в предметной области. ПРОЕКТРОВАНИЕ (DESIGN) – выявление программных объектов и взаимодействий. ПРОГРАММИРОВАНИЕ (PROGRAMMING) – реализация. С одной стороны: С другой стороны (3 способа использование UML) (perspectives): ДЛЯ ЧЕРНОВИКОВ – построение первых моделей, анализ системы (conceptual perspective). ДЛЯ СОЗДАНИЯ ПРОЕКТНОЙ ДОКУМЕНТАЦИИ – использования части диаграмм для написания кода, или восстановление по по коду диаграммы – (specification perspective) КАК ЯЗЫК ПРОГРАММИРОВАНИЯ – полные выполняемые спецификации программных систем на UML. (implementation perspective).
Унифицированный процесс Гибкость + открытость (XP, Scrum) Итеративность (iterative development) ООА/П (UML)
Итеративная разработка Требования Проектирование Реализация & Тестирование & Интеграция & Дальнейшее проектирование Окончательная интеграция & Системное тестирование Требования Проектирование Реализация & Тестирование & Интеграция & Дальнейшее проектирование Окончательная интеграция & Системное тестирование Время 3 недели (например) Время …
Пример использования итеративной разработки 1 день – обсуждение требований, один человек – по коду составляет диаграмму, которые анализируется в дальнейшем. Остальное время – реализация, тестирование, проектирование, планирование следующей итерации Также осуществляет обратная связь с заказчиками.
Преимущества итеративной разработки Осознание риска риск снижается Быстрый прогресс системы Ранняя обратная связь Управляемая сложность Опыт каждой итерации
Гибкие методы (agile development) МАНИФЕСТ: Люди и взаимодействие – а не процессы и средства Работоспособное ПО, а не исчерпывающая документация Сотрудничество с потребителями, а не обсуждение контракта Реакция на изменения, а не следование плану
Секрет разработчиков UML – основная цель моделирования – понять, а не документировать
Дисциплины UP Бизнес-моделирование (business modeling) Требования (requirements) Проектирование (design)
Бизнес-моделирование Видение Реальный ли проект? Купить или разработать? Сумма? Стоит ли браться? НЕ ОЦЕНКА ТРЕБОВАНИЙ!!!!
Артефакты business-modeling Видение и финансовые оценки Прецеденты Доп. Спецификация Словарь терминов Перечень рисков и план управления Прототипы и идеи План итерации План на следующую фазу Инструменты
Требования FURPS+ФункциональностьУдобстваНадежностьПроизводительностьПоддержка+РеализацияИнтерфейс
Проектирование Прецеденты Предметная область Диаграмма взаимодействий Диаграмма классов
Прецеденты Игра в кости. Игрок отправляет запрос на выбрасывание костей. Система представляет результаты игры: если сумма очков составляет 7, игрок считается победителем, в противном случае – проигравшим.
Модель предметной области Player name Die DiceGame бросает включает играет
Диаграмма взаимодействия play() roll() fv1= getFaceValue() fv2= getFaceValue() DiceGame d1: Died2: Die
Диаграммы классов 12 DiceGame die1 : Die die2 : Die play() faceValue : int getFaceValue : int roll()