method_gener_lab4-1 (Лабораторная работа 6 - RUP, Проектирование), страница 4

2017-12-22СтудИзба

Описание файла

Файл "method_gener_lab4-1" внутри архива находится в папке "Лабораторная работа 6 - RUP, Проектирование". Документ из архива "Лабораторная работа 6 - RUP, Проектирование", который расположен в категории "". Всё это находится в предмете "технология проектирования" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "технология проектирования" в общих файлах.

Онлайн просмотр документа "method_gener_lab4-1"

Текст 4 страницы из документа "method_gener_lab4-1"

Изменение кода

Вы должны были заметить, что тело по умолчанию вряд ли используется часто, потому что тариф всегда равен 0 (нулю). Вряд ли это сделает предприятие выгодным! Поэтому нам придется заменить тело метода getFare кодом, представленным в листинге 3.


Листинг 3. Route.cpp

float Route::getFare() const

{

// Расчет тарифа

return runningCost * expectedProfit;

}

Разработка модели и повторное применение преобразования

Далее, добавим еще один метод с именем print_disclaimer() в класс Route UML-модели.

  1. Укажите тип возврата для метода - String;

  2. Обратите внимание на то, что мы изменили также файл Route.cpp, добавив тело для метода getFare;

  3. Выполните преобразование, воспользовавшись той же конфигурацией преобразования (tc1.tc > Transformation > UML to C++);

  4. Согласитесь с настройками по умолчанию, которые вы увидите в диалоговом окне; они предупреждают о том, что будут обновлены файлы назначения.

После этого изучите обновленный код (Листинг 4).


Листинг 4. Обновленный файл Route.cpp

#include "Route.h"

//Начало секции для файла Route.cpp

//TODO: Добавьте определения, которые должны быть сохранены

//Завершение секции для файла Route.cpp

float Route::getFare() const

{

// Расчет тарифа

return runningCost * expectedProfit;

}

//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"

const char * Route::print_disclaimer()

{

//TODO Автоматически сгенеренный метод заглушек

return 0;

}

Обратное преобразование

После изменения исходных файлов классов вернитесь к вкладке конфигурации преобразования и запустите обратное преобразование (Run):

В результате будет открыто окно, где можно просмотреть и утвердить (флажками) выполняемые изменения

Все утвержденные изменения будут внесены в UML модель, что можно проверить в свойствах классов (в проводнике проекта или на диаграммах).

Тэг @generated

В комментариях к методу вы наверняка обратили внимание на тэг <<@generated>>. Тело метода сохраняется автоматически. Однако если вы удалите метод из модели и снова выполните преобразование С++, то метод будет удален вместе с телом кода. Это гарантирует, что ваш код не будет засоряться всевозможными методами, которые вы когда-либо разработали в модели и которые иначе пришлось бы удалять из него вручную.

Если вы не хотите, чтобы это случилось, и, наоборот, хотите сохранить данный метод в коде, то вам придется удалить тэг <<@generated>> из комментария к методу. Таким образом, вы сохраните контроль над этим методом, и он останется в коде после повторного выполнения преобразования.

Обратите внимание, что измененное тело для метода getFare() сохранено. В то же время новый метод print_disclaimer, добавленный в модель, вызвал генерацию нового кода в файлах Route.h и Route.cpp files. Так вы можете продолжать реализовать свои методы в коде и, одновременно, вносить поэтапные изменения в модель. Благодаря этому у вас появляется возможность вести управляемую моделями итеративную разработку.

Добавление пользовательских предложений include в секцию сохраняемого кода

В листинге 5 мы написали код для метода print_disclaimer. Обратите внимание на использование оператора cout. Преобразованию С++ об этом ничего не известно. Однако, чтобы повторное выполнение прошло корректно, важно, чтобы код можно было подвергнуть синтаксическому разбору для сохранения структуры кода и тела методов при повторном выполнении преобразования. Чтобы сделать код компилируемым, необходимо добавить в файл с расширением cpp предложения #include <iostream> и using namespace std. Эти предложения обязательно будут сохранены при повторных выполнениях преобразования UML - C++. Для этого необходимо вставить указанные предложения между комментариями:

//Начало секции для файла Route.cpp

//Завершение секции для файла Route.cpp

Все, что вы добавите в эту секцию, будет сохранено дословно и не будет интерпретироваться преобразованием С++.


Листинг 5. Route.cpp

#include "Route.h"

//Начало секции для файла Route.cpp

#include <iostream>

using namespace std;

//Завершение секции для файла Route.cpp

float Route::getFare() const

{

// Расчет тарифа

return runningCost * expectedProfit;

}

//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"

const char * Route::print_disclaimer()

{

const char *s = "No Refund once the ticket is purchased\n";

cout << s;

return s;

}

Построение схемы базы данных в IBM Rational Systems Developer и Rational Software Architect

(По материалам Энсон Коккат - IBM)

Создать проект типа Data Design Project:

В окне мастера ввести название проекта, нажать Finish. Будет создан проект и переключится перспектива (на Data).

В контекстном меню Data Model выбрать создание новой физической модели данных:

В окне мастера указать СУБД и ее версию, например, MS SQL Server 2008:

И нажать Next, Finish.

Далее открыть диаграмму и перенести на нее из панели инструментов таблицы и другие элементы БД.

Построить схему БД (таблицы, атрибуты, связи, первичные и внешние ключи), например,

После создания схемы преобразовать ее в DDL сценарий:

Сохранить полученный сценарий в файле и выполнить на сервере БД. Проверить полученную структуру данных.

Документирование UML-моделей в IBM Rational Systems Developer и Rational Software Architect

Выбрать в обозревателе проекта нужную модель (например, модель анализа).

Выбрать в меню пункт

Указать путь к папке

И нажать ОК.

После чего перейти в указанную папку и открыть файл index.html в интернет-браузере.







Задание

  • Открыть в среде Software Architect проект, созданный в лабораторной работе №2,3.

  • Добавить к нему пустую модель Design - Deployment.

    • Создать в ней диаграмму размещения (узлы и связи между ними).

    • Указать стереотипы узлов.

    • Добавить на диаграмму актеров и указать их ассоциации с узлами.

  • Добавить к проекту пустую модель Design - Design.

    • Скопировать в эту модель классы и пакеты анализа и удалить у них стереотипы.

    • Добавить подсистемы среднего и системного уровня,

    • Добавить диаграмму, содержащую уровни и зависимости подсистем

    • Добавить в модель (вкладка ее свойств) профиль — С++ или Java и набор соответствующих типов.

    • Уточнить классы, их атрибуты и связи, операции и их параметры.

    • Проставить для классов и пакетов стереотипы и типы данных Java (C++). Важно: изменить названия классов, их методов и свойств (английский без пробелов).

  • Создать ДВУНАПРАВЛЕННОЕ преобразование из UML в С++ или Java.

    • Выполнить преобразование.

    • Просмотреть полученные классы.

    • Внести изменения в классы.

    • Провести обратное преобразование и просмотреть полученный результат.

  • Создать проект типа Data Design Project. Добавить к нему физическую модель.

  • Определить схему БД. Сгенерировать DDL сценарий.

  • Выполнить сценарий на сервере СУБД.

  • (к защите) Завершить реализацию прецедента (во внешней среде).

    • Наполнить таблицы БД.

    • Довести приложение до работающего состояния (одну функцию) .

    • Провести обратное проектирование, по итогам которого скорректировать диаграмму классов, подсистем.

    • Построить диаграмму последовательностей для прецедента.

Контрольные вопросы

  1. Что такое прямое проектирование?

  2. Что такое обратное проектирование?

  3. Что входит в модель проектирования и как она строится?

  4. Что входит в модель реализации и как она строится?

  5. Как настроить автоматическую генерацию кода?

  6. Каково назначение рабочего процесса проектирования?

  7. Из каких действий он состоит? Что содержит модель проектирования?

  8. Что такое архитектура системы? Что входит в ее описание?

  9. Как выполняют проектирование архитектуры?

  10. Что содержит и как составляется модель развертывания?

  11. Как определяют подсистемы проектирования и сервисные подсистемы? Назовите уровни подсистем и охарактеризуйте назначение подсистем каждого уровня.

  12. Что такое интерфейс? Как формируют интерфейс подсистемы? Кто реализует интерфейс подсистемы?

  13. Что такое активный класс? Каковы правила его выявления?

  14. Что такое обобщенные механизмы проектирования? Как их определяют?

  15. Для чего применяют паттерны и шаблоны проектирования?

  16. Как выполняют проектирование класса? Что будет его результатом?

  17. Каково назначение рабочего процесса реализации?

  18. Из каких действий он состоит? Что содержит модель реализации?

  19. Что такое подсистема? Как ее реализуют и какие проверки при этом выполняют?

  20. Из каких действий состоит реализация классов? Какие из них выполняются автоматически?

Литература

  • Орлов С.А., Цилькер Б.Я. Технологии разработки программного обеспечения. - СПб.: Питер. - 2012 г.

  • Мацяшек Л.А., Лионг Б.Л. Практическая программная инженерия. - М.: Бином. - 2009 г.

  • Использование IBM Rational Data Architect для моделирования баз данных Oracle http://www.ibm.com/developerworks/ru/library/dm-0801kokkat/index.html

  • Разработка и реализация простого приложения телефонной книги (обновление) http://www.ibm.com/developerworks/ru/edu/r-hellorsav7/index.html

  • Создание Java-приложений, Web-сервисов и приложений, работающих с базами данных http://www.ibm.com/developerworks/ru/edu/r-helloradv7/index.html

35

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее