Средства разработки ПО IBM Software Architect Содержание • Что такое CASE-системы; • Системы поддержки коллективной разработки ПО; • Системы управления разработкой ПО; • Системы проектирования ПО; Нурмухаметов Н.А. 2012 2 Что такое CASE-системы Описание CASE-систем • CASE (Computer-Aided Software Engineering) • Данные системы помогают: – повысить качество, реализуемого ПО; – снизить количество ошибок; – упростить обслуживание программных продуктов; Нурмухаметов Н.А. 2012 4 Средства CASE-систем • Применяются в… – анализе предметной области; • предназначены для построения и анализа предметной области; – – – – – – проектировании баз данных; разработке приложений; реинжиниринге; планировании и управлении проектом; тестировании; документировании; Нурмухаметов Н.А. 2012 5 Инструменты CASE-систем • Используются для… – – – – – – – – управления конфигурацией; моделирования данных; анализа и проектирования; преобразования моделей; редактирования программного кода; рефакторинга кода; генерации кода; построения UML-диаграмм. Нурмухаметов Н.А. 2012 6 Основные положения методологий CASE-систем 1. Построение логической (не физической) модели системы; 2. Методология предполагает построение системы сверху вниз; 3. Включение итерации для более качественной разработки; Нурмухаметов Н.А. 2012 7 Классификация CASE-пакетов • Классификация по способу использования в технологическом процессе Для анализа и проектирования; • Для проектирования баз данных и файлов; • Для процесса реализации; – Примеры: The Developer (Asyst Technologies), Design Generator (Computer Sciences). – Примеры: Idef/Leverage (D.Appleton), Chen Toolkit (Chen & Associates). – Примеры: Cobol 2/Workbench (Miero Focus), Decase (DEC). • Для процесса внедрения; • Для сопровождения и реинженерии; • Для управления проектом; – Примеры: Multi/Cam (AGS Management Systems), Sylvia Foondey (Codmare). – Примеры: Adpac Case Tools (Adpac), Superstructure (Computer Data Systems). – Примеры: Projekt Workbench (Applied Business Technology). Нурмухаметов Н.А. 2012 8 Классификация CASE-пакетов • • • Классификация по уровню интегрированности выполняемых функций Вспомогательные программы (Tools); Пакеты разработки (Toolkit); Инструментальные средства (Workbench); Нурмухаметов Н.А. 2012 9 Классификация CASE-пакетов • • • Классификация по области действия в пределах жизненного цикла ПО Верхние (Upper) CASE; Средние (Middle) CASE; Нижние (Lower) CASE; Нурмухаметов Н.А. 2012 10 Примеры CASE-систем • • • • Dia; ERwin; Rational Software; Umbrello; Нурмухаметов Н.А. 2012 11 Системы поддержки коллективной разработки ПО На примере Microsoft Team Foundation Server Логический документооборот Нурмухаметов Н.А. 2012 Мейер Дж.Д., Тейлор Дж. и др. Командная разработка с использованием Visual Studio Team Foundation Server 13 Логическая организация работы в нескольких группах разработки Нурмухаметов Н.А. 2012 Мейер Дж.Д., Тейлор Дж. и др. Командная разработка с использованием Visual Studio Team Foundation Server 14 Физическая среда разработки и тестирования Нурмухаметов Н.А. 2012 Мейер Дж.Д., Тейлор Дж. и др. Командная разработка с использованием Visual Studio Team Foundation Server 15 Другие примеры систем поддержки коллективной разработки ПО • • • • • • • • Araxis Merge; Atlassian Jira; Embarcadero ER/Studio; Fossil; Mercurial; Rational Team Concert; SourceGear Vault; Subversion; Нурмухаметов Н.А. 2012 16 Системы управления разработкой ПО На примере Microsoft Team Foundation Server Схема планирования проектов • Концептуальное описание проекта; • Формулирование сценариев; • Формирование набора функциональных возможностей для реализации выбранных сценариев; • Формирование набора рабочих элементов; • Распределение задач по областям; • Создание плана работ; Нурмухаметов Н.А. 2012 18 Сценарий работы над большим проектом Нурмухаметов Н.А. 2012 Мейер Дж.Д., Тейлор Дж. и др. Командная разработка с использованием Visual Studio Team Foundation Server 19 Типичные проблемы управления проектами • Работа с разрозненными источниками информации; • Сложности со сбором показателей проекта; • Сложности с выполнением требований; • Управление процессами и изменения в них; • Недостаток учитываемого обмена информацией и отслеживания задач; • Контроль качества; Нурмухаметов Н.А. 2012 20 Другие примеры систем управления разработкой ПО • • • • • • Atlassian Jira; Easy Projects .NET; Embarcadero ER/Studio; Microsoft Project; OpenProj; TrackStudio Enterprise; Нурмухаметов Н.А. 2012 21 Системы проектирования ПО Пример использования IBM Software Architect Задача Разработать приложение «Телефонная книга» Нурмухаметов Н.А. 2012 J.Martin. Presentation 4: IBM Rational Software Architect Example 23 Последовательность работы 1. Создание UML проекта; 2. Построение диаграммы вариантов использования; 3. Построение диаграммы классов; 4. Построение диаграммы последовательностей; 5. Публикация проекта; 6. Прямое преобразование UML в Java; Нурмухаметов Н.А. 2012 24 Создание UML проекта: шаг 1 В меню рабочей среды выбрать File > New > Project > Other. Нурмухаметов Н.А. 2012 25 Создание UML проекта: шаг 1 Нурмухаметов Н.А. 2012 26 Создание UML проекта: шаг 2 Выберите UML Project и нажмите Next. Нурмухаметов Н.А. 2012 27 Создание UML проекта: шаг 2 Нурмухаметов Н.А. 2012 28 Создание UML проекта: шаг 3 В поле название проекта введите MyPhoneBookUMLProject и нажмите Next. Нурмухаметов Н.А. 2012 29 Создание UML проекта: шаг 3 Нурмухаметов Н.А. 2012 30 Создание UML проекта: шаг 4 В поле имя файла UML модели введите Phone Book UML Model, уберите флажок Create a default diagram in the new model и после этого нажмите Finish. Нурмухаметов Н.А. 2012 31 Создание UML проекта: шаг 4 Нурмухаметов Н.А. 2012 32 Создание UML проекта: результат Нурмухаметов Н.А. 2012 33 Построение диаграммы вариантов использования • Актер: владелец телефонной книги • Варианты использования: – Добавление записи. Ввод пары значений имя человека и номер телефона с помощью пользовательского интерфейса приложения. В хранилище не должно быть совпадающих пар. Система обрабатывает введенные данные и сохраняет их. – Поиск номера телефона. По средствам пользовательского интерфейса получить имя человека номер которого необходимо найти. Система находит номер телефона и возвращает его актеру. Нурмухаметов Н.А. 2012 34 Построение диаграммы вариантов использования: шаг 1 Во вкладке Model Explorer щелкните правой кнопкой мыши на Phone Book UML Model и выберите в контекстном меню Add Diagram > Use Case Diagram. Нурмухаметов Н.А. 2012 35 Построение диаграммы вариантов использования: шаг 2 В поле названия диаграммы введите Use Case Diagram вместо Diagram1. Теперь Вы можете построить диаграмму прецедентов, добавляя различные элементы модели из палитры к диаграмме. Нурмухаметов Н.А. 2012 36 Построение диаграммы вариантов использования: шаги 3-5 3. Выберите Actor на палитре, а затем нажмите левой кнопкой мыши в области диаграммы для создания актера. Назовите актера Owner (владелец книги). 4. Выберите Use Case на палитре, а затем нажмите левой кнопкой мыши в области диаграммы для создания варианта использования. Назовите его Add an entry (добавление записи). 5. Аналогично второй вариант использования с названием Search for a phone number (поиск номера телефона). Нурмухаметов Н.А. 2012 37 Построение диаграммы вариантов использования: шаги 6, 7 6. Выберите Association на палитре. Проведите линию ассоциации от актера Owner к варианту использования Add an entry, чтобы создать отношение между двумя элементами модели. 7. Аналогично создайте линию ассоциации между Owner и случаем Search for a phone number. Нурмухаметов Н.А. 2012 38 Построение диаграммы вариантов использования: результат Нурмухаметов Н.А. 2012 39 Построение диаграммы классов • Для реализации простого приложения будем использовать архитектурный паттерн Model-View-Controller (MVC). • Три класса: – PhoneBookModel – PhoneBookView – PhoneBookController Нурмухаметов Н.А. 2012 40 Построение диаграммы классов. Класс: PhoneBookModel • Для управления записями в телефонной книге и фиксации состояния приложения; • Всякий раз, когда меняется состояние, он уведомляет PhoneBookView, которые затем обновляет отображение записей телефонной книги на окне приложения; Нурмухаметов Н.А. 2012 41 Построение диаграммы классов. Класс: PhoneBookView • Управление графическим интерфейсом пользователя; • Когда получает какие-либо данные сообщает об этом PhoneBookController; Нурмухаметов Н.А. 2012 42 Построение диаграммы классов. Класс: PhoneBookController • Регулирует работу всего приложения; • Изменение модели состояния приложения и обновление модели данных на основе введенных пользователем данных; Нурмухаметов Н.А. 2012 43 Построение диаграммы классов. Методы классов • PhoneBookModel: – – – – addAnEntry; searchPhoneNumber; getSearchResult; getState; • PhoneBookView: – stateHasChanged; – changeViewgetUserInput; • PhoneBookController: – userHasInput; – Start; Нурмухаметов Н.А. 2012 44 Построение диаграммы классов: шаги 1-3 1. В Model Explorer щелкните правой кнопкой мыши Phone Book UML Model и выберите Add Diagram > Class Diagram. 2. В качестве имени сгенерированной диаграммы введите Class Diagram вместо Diagram1. 3. Выберите Class в палитре, а затем нажмите кнопку мыши в области диаграммы для создания класса. Назовите его PhoneBookModel. Нурмухаметов Н.А. 2012 45 Построение диаграммы классов: шаги 4-6 4. Щелкните правой кнопкой мыши на созданный класс PhoneBookModel и выберите Add UML > Operation для создания метода для данного класса. Назовите его SetState; 5. Аналогично создаются остальные классы и методы; 6. Ассоциации между классами создаются также как отношения между актером и вариантом использования в предыдущей диаграмме; Нурмухаметов Н.А. 2012 46 Построение диаграммы классов: результат Нурмухаметов Н.А. 2012 47 Построение диаграммы последовательностей: шаги 1, 2 1. Во вкладке Model Explorer нажать правой кнопкой мыши на Phone Book UML Model и выбрать в контекстном меню Add Diagram > Sequence Diagram. 2. В поле названия диаграммы введите Sequence Diagram вместо Diagram1. Нурмухаметов Н.А. 2012 48 Построение диаграммы последовательностей: шаг 3 Нурмухаметов Н.А. 2012 49 Построение диаграммы последовательностей: шаг 5 5. Выберите методPhoneBookView :: getUserInput () из выпадающего списка. Нурмухаметов Н.А. 2012 50 Построение диаграммы последовательностей: шаг 5 От кого К кому Метод phoneBookView phoneBookControl ler PhoneBookController::userHasInp ut() phoneBookControl ler phoneBookModel PhoneBookModel::searchPhoneNumb er() phoneBookControl ler phoneBookModel PhoneBookModel::setState() phoneBookModel phoneBookView PhoneBookView::stateHasChanged( ) phoneBookView phoneBookModel PhoneBookModel::getSearchResult () phoneBookView phoneBookView PhoneBookView::changeView() Нурмухаметов Н.А. 2012 51 Построение диаграммы последовательностей: результат Нурмухаметов Н.А. 2012 52 Публикация проекта Нурмухаметов Н.А. 2012 53 Прямое преобразование UML в Java Нурмухаметов Н.А. 2012 54 Другие примеры систем проектирования ПО • Embarcadero ER/Studio; Нурмухаметов Н.А. 2012 55 Спасибо за внимание Нурмухаметов Н.А. 2012 56