В данном курсе изучаются эффективное использование объектно-ориентированных технологий и моделирование при разработке программного обеспечения. Курс включает лекции, групповые обсуждения и практические занятия. В курсе используется прагматический подход к разработке объектно-ориентированного (OO) программного обеспечения, в соответствии с проверенными OO технологиями, принципами и шаблонами с использованием языка программирования Java(TM). Слушатели используют язык графического моделирования Unified Modeling Language (UML) version 2.2. Структура курса отражает общий процесс разработки программного обеспечения, выделяя при этом аспекты анализа и проектирования применительно к OO программному обеспечению. Рассматриваются также шаблоны и frameworks, позволяющие создавать более гибкие повторно используемые компоненты программного обеспечения.
Необходимая предварительная подготовка:
-
Понимание объектно-ориентированных концепций и методологии
-
Понимание программирования, предпочтительно на языке программирования Java
-
Понимание основ процесса разработки систем
-
Java Programming Language, Java SE 6 (SL-275-SE6)
Цель курса:
-
Описание процесса разработки объектно-ориентированного программного обеспечения, включая объектно-ориентированные методологии и workflows
-
Сбор системных требований посредством интервью через посредников
-
Анализ системных требований для определения сценариев использования и доменной модели проблемной области (модель Requirements)
-
Создание архитектуры системы (модель Architecture), поддерживающего нефункциональные требования (NFR) и ограничения разработки
-
Создание проекта системы (модель Solution), поддерживающего функциональные требования (FR)
Аудитория курса:
-
Java EE разработчики
-
Java разработчики
-
Разработчики приложений
-
Системные аналитики.
Концепции и терминология объектно-ориентированного подхода
-
Концепции объектно-ориентированного (OO) подхода.
-
Терминология объектно-ориентированного подхода.
Введение в моделирование и процесс разработки программного обеспечения
-
Процесс Object-Oriented Software Development (OOSD).
-
Моделирование и поддержка процесса OOSD.
-
Преимущества программного обеспечения моделирования.
-
Предназначение, действия и артефакты следующих OOSD workflows (дисциплин): сбор требований, анализ требований, архитектура, дизайн, реализация, тестирование и развертывание.
Создание диаграмм сценариев использования (Use Case)
-
Зачем нужны диаграммы сценариев использования.
-
Определение и описание существенных элементов в UML диаграммах сценариев использования.
-
Разработка диаграмм сценариев использования для систем программного обеспечения, основанных на целях владельца бизнеса.
-
Разработка сложных диаграмм сценариев использования, основанных на целях всех посредников.
-
Выявление и документирование зависимостей сценариев использования с помощью UML обозначений для расширений, включений и обобщения.
-
Управление сложностью диаграмм сценариев использования путем создания UML упакованных представлений.
-
Создание сценариев использования и форм.
-
Определение и документирование сценариев использования.
-
Создание сценариев использования из итоговых сценариев в основном и альтернативном потоках.
-
Ссылка на включенные сценарии использования и их расширение.
-
Определение и документирование нефункциональных требований (NFR), бизнес правил, рисков и приоритетов для сценариев использования.
-
Предназначение Supplementary Specification Document.
Создание диаграмм активности
-
Элементы диаграммы активности.
-
Моделирование сценариев использования потока событий с помощью диаграммы активности.
Ключевые абстракции
-
Определение набора кандидатов в ключевые абстракции.
-
Определение ключевых абстракций с помощью CRC анализа.
Построение Problem Domain Model
-
Определение существенных элементов в UML диаграмме класса.
-
Построение Domain модели с помощью диаграммы класса.
-
Определение существенных элементов в UML диаграмме объекта.
-
Валидация модели Domain с помощью одной или нескольких диаграмм объектов.
Переход от анализа к проектированиюс помощью диаграмм взаимодействия
-
Предназначение и элементы модели проектирования.
-
Определение существенных элементов UML диаграммы Communication.
-
Создание диаграммного представления Communication модели проектирования.
-
Определение существенных элементов последовательности UML диаграмм.
-
Создание последовательности диаграммных представлений модели проектирования.
Моделирование состояния объекта с помощью диаграмм машины состояний
-
Моделирование состояния объекта.
-
Элементы UML диаграммы машины состояний.
Применение шаблонов проектирования к модели проектирования
-
Элементы шаблонов программного обеспечения.
-
Шаблон Composite.
-
Шаблон Strategy.
-
Шаблон Observer.
-
Шаблон Abstract Factory.
Введение в концепции и диаграммы архитектуры
-
Различие между архитектурой и проектированием.
-
Уровни, слои и качества системы.
-
Workflow архитектуры.
-
Диаграммы ключевых представлений архитектуры.
-
Выбор типа архитектуры.
-
Создание артефактов workflow архитектуры.
Введение в архитектурные уровни
-
Концепции клиентского и презентационного уровней.
-
Концепции бизнес уровня.
-
Концепции уровней ресурсов и интеграции.
-
Концепции модели Solution.
Уточнение модели проектирования класса
-
Уточнение the атрибутов модели Domain.
-
Уточнение связей модели Domain.
-
Уточнение методов модели Domain.
-
Декларирование конструкторов модели Domain.
-
Аннотация поведения метода.
-
Создание компонент с интерфейсами.
Обзор процессов разработки программного обеспечения
-
Общие рекомендации по OOSD методологиям.
-
Особенности некоторых общих методологий.
-
Выбор методологии, наиболее подходящей для проекта.
-
Разработка плана итераций.
Обзор Frameworks
-
Определение framework.
-
Преимущества и недостатки использования frameworks.
-
Несколько общих frameworks. Концепции создания бизнес frameworks.
Обзор курса
-
Особенности объектно-ориентированного подхода.
-
Обзор ключевых UML диаграмм.
-
Обзор workflows анализа требований (анализа) и проектирования.