Инструменты проектирования бизнес прил

Download Report

Transcript Инструменты проектирования бизнес прил

Инструменты
проектирования бизнесприложений
Олег Карачаров
Microsoft Russia & CIS
Часть 1.
Визуализация
архитектуры
программного обеспечения
Содержание





Моделирование
Работа с UML
Генерация кода
Код, полученный с помощью
Обратного проектирования
Генерация отчетов
Моделирование
Зачем моделировать?




Обеспечивает лучшее понимание
потенциальных рисков еще до создания
системы
Модели позволяют определять структуру
или поведение системы и
информировать об этом других
Модели дают нам шаблон, которым
руководствуемся мы сами при создании
системы и которым руководствуются
другие при ее использовании
Модели документируют принятые нами
решения
Моделирование
Возможности Enterprise Architect

Моделирование ПО с помощью UML





Полная поддержка спецификации UML
1.2
Reverse Engineer UML из
существующего кода
Генерация настраиваемых «скелетов»
кода для VB .NET, C++ и C#
Автоматическая проверка
семантических ошибок
Настраиваемые UML отчеты
Работа с UML
Определение UML



UML - это язык предназначенный для:
 Визуализации
 Специфицирования
 Конструирования
 Документирования
артефактов преимущественно
программных систем
Применение UML позволяет использовать
стандартные способы для демонстрации
проекта всем заинтересованным
сторонам
UML – это открытый стандарт
Работа с UML
Типы диаграмм

Структурная
диаграмма (static)
 Диаграмма
классов (static
structure)
 Диаграмма
компонентов
 Диаграмма
размещения

Диаграммы поведения
(dynamic)
 Use case диаграммы
 Диаграммы
последовательности
(sequence)
 Кооперативные
диаграммы
(Collaboration)
 Диаграммы
состояний
 Диаграммы
деятельностей
Работа с UML
Диаграммы классов
search
«использует»
searchresults
«использует»
default
categories
«использует»
book
«использует
»
Работа с UML
Use Case диаграммы

Customer Account
Management
Use cases
обычно
используются:


Моделирования
контекста
Пользователь Internet
системы
Моделирования
требований к
системе
Purchase Books
Product Catalog
Search
Работа с UML
Диаграммы компонентов

Диаграммы компонентов обычно используются
для:
 Моделирования исходного кода
 Моделирования выполняемого кода
 Моделирования физических БД
 Моделирования приспосабливаемых систем
Web
SystemFramework
Business Facade
Работа с UML
Диаграммы размещения

Диаграммы
размещения обычно
используются для:



Моделирования
встроенных систем
Моделирования
client/server систем
Моделирования
полностью
распределенных
систем
DataAccess
Database Server
Database
Работа с UML
Диаграммы последовательности

Диаграммы последовательности обычно
используются для:

Моделирования потоков управления путем упорядочения
по времени
: Web::book
: BusinessFacade::ProductSystem
: DataAccess::Books
GetBooksByISBN()
GetBooksByAuthor()
GetBooksByNaturalLanguage()
GetBooksBySubject()
GetBooksByTitle()
GetBookById()
Работа с UML
Дополнительные диаграммы

Кооперативные диаграммы обычно
используются для:


Диаграммы состояний обычно
используются для :


Моделирования потоков управления с
учетом их организации
Моделирования жизненного цикла объекта
Диаграммы активности обычно
используются для :


Моделирования документооборота
Моделирования операций
Работа с UML
Составные части



Элементы
 Основные составные части
модели
Связи
 Связывают различные элементы
вместе
Диаграммы
 Показывают наборы элементы
Работа с UML
Классы
 Каждый класс должен иметь имя, отличающее его от других
классов.

Имя класса может содержать имя пути, указывающее на пакет,
где находится класс




Business rules::Customer
(Класс “Customer” находится в пакете “Business rules”.)
Атрибуты описывают диапазон значений которые может
принимать экземпляр класса
Операция это услуга, которая может быть запрошена из
любого объекта, по изменению поведения. Операция может
совместно использоваться всеми объектами в классе.
Имя
Categories
-dsCommand : SqlDataAdapter
Операции
+New()
+Dispose()
#Dispose(in disposing : Boolean)
+GetCategories(in categoryId : Integer) : CategoryData
-FillCategoryData(in commandText : String) : CategoryData
Атрибуты
Работа с UML
Отношения зависимости


Зависимость это связь, которая устанавливает, что
изменения в спецификации одной сущности может
затронуть другую сущность, но не наоборот.
В этом случае, класс “Window” зависит от класса
“Event”.
Window
+Open()
+Close()
+Move()
+Display()
+handleEvent()
Event
Работа с UML
Связь Generalization (обобщения) /Inheritance(наследования)

Обобщение это связь между более общей сущностью
(суперкласс или родительский класс) и более конкретным
видом этой сущности (называемой подклассом или классом
потомком).
Web::PageBase
Web::PageBase
Web::PageBase
-UNHANDLED_EXCEPTION:::String
String==
="Unhandled?Exception:"
"Unhandled?Exception:"
-UNHANDLED_EXCEPTION
String
"Unhandled?Exception:"
-UNHANDLED_EXCEPTION
-KEY_CACHECART:::String
String==
="Cache:ShoppingCart:"
"Cache:ShoppingCart:"
-KEY_CACHECART
String
"Cache:ShoppingCart:"
-KEY_CACHECART
-KEY_CACHECUSTOMER:::String
String==
="Cache:Customer:"
"Cache:Customer:"
-KEY_CACHECUSTOMER
String
"Cache:Customer:"
-KEY_CACHECUSTOMER
-pageSecureUrlBase:::String
String
-pageSecureUrlBase
String
-pageSecureUrlBase
-pageUrlBase:::String
String
-pageUrlBase
String
-pageUrlBase
-urlSuffix:::String
String
-urlSuffix
String
-urlSuffix
+New()
+New()
+New()
+SecureUrlBase():::String
String
+SecureUrlBase()
String
+SecureUrlBase()
+UrlBase():::String
String
+UrlBase()
String
+UrlBase()
+Customer():::DataSet
DataSet
+Customer()
DataSet
+Customer()
+ShoppingCart(inforceCreate
forceCreate:::Boolean
Boolean==
=True)
True):::Cart
Cart
+ShoppingCart(in
forceCreate
Boolean
True)
Cart
+ShoppingCart(in
#OnError(inee
e:::EventArgs)
EventArgs)
#OnError(in
EventArgs)
#OnError(in
Web::Categories
Web::Categories
Web::Categories
Web::Book
Web::Book
Web::Book
-KEY_ID:::String
String==
="id"
"id"
-KEY_ID
String
"id"
-KEY_ID
-itemView:::DataView
DataView
-itemView
DataView
-itemView
#CategoryDesciptionLabel:::Label
Label
#CategoryDesciptionLabel
Label
#CategoryDesciptionLabel
#ModuleDailyPick:::DailyPickModule
DailyPickModule
#ModuleDailyPick
DailyPickModule
#ModuleDailyPick
-InitializeComponent()
-InitializeComponent()
-InitializeComponent()
-Page_Init(insender
sender:::Object,
Object,in
inee
e:::EventArgs)
EventArgs)
-Page_Init(in
sender
Object,
in
EventArgs)
-Page_Init(in
+ItemList():::DataView
DataView
+ItemList()
DataView
+ItemList()
-Categories_Load(insender
sender:::Object,
Object,in
inee
e:::EventArgs)
EventArgs)
-Categories_Load(in
sender
Object,
in
EventArgs)
-Categories_Load(in
-ReadQueryString(inoutid
id:::Integer)
Integer):::Boolean
Boolean
-ReadQueryString(inout
id
Integer)
Boolean
-ReadQueryString(inout
-KEY_ID:::String
String==
="id"
"id"
-KEY_ID
String
"id"
-KEY_ID
#FileSpecImage:::Image
Image
#FileSpecImage
Image
#FileSpecImage
#TitleLabel:::Label
Label
#TitleLabel
Label
#TitleLabel
#AuthorLable:::Label
Label
#AuthorLable
Label
#AuthorLable
#PublisherNameLabel:::Label
Label
#PublisherNameLabel
Label
#PublisherNameLabel
#IsbnLabel:::Label
Label
#IsbnLabel
Label
#IsbnLabel
#DescriptionLabel:::Label
Label
#DescriptionLabel
Label
#DescriptionLabel
#UnitPriceLabel:::Label
Label
#UnitPriceLabel
Label
#UnitPriceLabel
#AddToCartButton:::Button
Button
#AddToCartButton
Button
#AddToCartButton
-InitializeComponent()
-InitializeComponent()
-InitializeComponent()
#Page_Init(inSender
Sender:::Object,
Object,in
inee
e:::EventArgs)
EventArgs)
#Page_Init(in
Sender
Object,
in
EventArgs)
#Page_Init(in
-Book_Load(inSender
Sender:::Object,
Object,in
inee
e:::EventArgs)
EventArgs)
-Book_Load(in
Sender
Object,
in
EventArgs)
-Book_Load(in
-AddToCartButton_Click(insender
sender:::Object,
Object,in
inee
e:::EventArgs)
EventArgs)
-AddToCartButton_Click(in
sender
Object,
in
EventArgs)
-AddToCartButton_Click(in
-ReadQueryString(inoutId
Id:::Integer)
Integer):::Boolean
Boolean
-ReadQueryString(inout
Id
Integer)
Boolean
-ReadQueryString(inout
Работа с UML
Связь Association(Ассоциация)


Ассоциация это
структурная связь,
которая определяет,
что объекты одной
сущности связаны с
объектами другой.
Ассоциации могут
иметь
 Имена
 Роли
 Множественность
Person
Company
Works For
Name
Person
Employee
Employer
Company
Role
Person
Employee
1*
Employer
*
Role w/Multiplicity
Company
Работа с UML
Демонстрация №1
Генерация кода
Основы

Enterprise Architect позволяет:


Генерировать код для конкретных классов
Генерировать код как часть нового проекта


Генерировать код на конкретном языке:




Windows® Forms, ASP .NET, Class Library, Web Service, etc.
C#
C++
Visual Basic .NET
Генерировать код на основе шаблонов кода
Генерация кода
Операции

Операции могут генерироваться как:







Свойство
Процедура
событие
Конструктор или Деструктор
Может быть задано расположение для файлов
отдельных классов, которые генерируются
Возможность предварительного просмотра
позволяет посмотреть код, который будет
сгенерирован
Шаблоны кода для классов, атрибутов,
операций и т.п.
Генерация кода
Проверка ошибок

Диаграммы UML проверяются на
наличие двух типов ошибок:




Семантические
Ошибки кода
Семантические ошибки - это
пропущенная и неполная информация,
относящаяся к диаграмме
Ошибки кода включают ошибки,
которые могу препятствовать успешной
компиляции сгенерированного кода
Генерация кода
Демонстрация №2
Обратное проектирование
Основы

Интегрировано Visual Studio® .NET
Enterprise




Определите расположение и имя
файла
Создана новая модель в Visio


Project | Visio UML | Reverse Engineer
Visio UML Add-in toolbar button
Классы готовые для использования в
диаграмме
Диаграммы Visio добавлены к
пункты Solution
Обратное
проектирование
Демонстрация №3
Генерация отчетов
Основы


Меню UML | Отчеты (Reports)
Позволяет генерировать большое
разнообразие отчетов для диаграмм






Статических структур
Таблиц состояний
Компонентов
Размещения
Деятельности
Представления отчетов являются
настраиваемыми
Генерация отчетов
Содержание отчетов

Можно управлять объемом отчета

Стройте отчет на основании:



Определите категории объекта для
включения




Диаграммы деятельностей
Всей UML модели
Каждый отчет имеет собственные категории
Каждая категория имеет собственный уровень
детализации
Выберите пользовательские разделители
для каждых новых моделей, пакетов,
компонентов, etc.
UML Отчеты могут быть настраиваемыми
Генерация отчетов
Дополнительные средства
подготовки отчетов

Из окна UML Report вы также
можете осуществить:

Print



Стандартные опции печати
Preview
Export


Задать имя файла и расположение
RTF формат
Генерация отчетов
Экспорт в Web

Сохранить UML диаграммы как web
станицу




HTML frame format
Tabs для навигации по нескольким
диаграммам
Можно встраивать диаграммы в
существующие фреймы
Легко публиковать информацию в
Intranet

Можно определить опции публикации
для обеспечения еще большего
контроля содержания
Генерация отчетов
Демонстрация №4
Итоги





Моделирование
Работа с UML
Генерация кода
Код, полученный с помощью
Обратного проектирования
Генерация отчетов
Часть 2.
Инструменты
моделирования данных
с точки зрения правил
бизнеса
Содержание






Процесс моделирования
Проектирование баз данных с
помощью моделирования ролей
объектов
Создание ER диаграмм
Reverse Engineer баз данных
Генерация баз данных
Работа с кодом
Процесс моделирования
Зачем строить модель?

БД воплощает в жизнь бизнес правила



Определите критические транзакции



Определите как можно раньше потенциально
узкие места
Создайте архитектуру, обеспечивающую
высокую производительность для
критических транзакций
Минимальные затраты на сопровождение



Моделирование заставляет вас
документировать правила бизнеса
Моделирование определяет каким образом
БД будет отражать ваши правила бизнеса
Структура БД документирована
Все решения и компромиссы
документированы
БД отвечает требованиям бизнеса
Процесс моделирования
Концептуальное проектирование

Моделирование ролей объектов
(ORM)



Позволяет сконцентрироваться на
объектах системы и на ролях, которые
они играют
Может быть использовано на фазе
концептуального проектирования
Enterprise Architect легко отображает
модели ORM на ER диаграммы
Процесс моделирования
Логическое проектирование

Диаграммы сущность - связь (ERD)



Система описывается в терминах
сущностей и атрибутов
Может использоваться на фазе
логического проектирования
Enterprise Architect легко порождает
физические базы данных из ER
диаграмм
Процесс моделирования
Физическое проектирование

Инструменты в составе Enterprise
Architect, обеспечивающие простоту
манипулирования с объектами БД




Таблицы
Представления
Хранимые процедуры
Функции
®
Visual Studio
Enterprise Architect

Все средства, имеющиеся в Visio®
Professional, плюс:







Схема генерации БД либо непосредственной,
либо с помощью DDL script
Проверка ошибок моделирования
Синхронизация модель-БД
Отчеты по БД
Групповая работа
Проектирование БД на базе бизнес правил
(ORM)
Интеграция внутри Visual Studio .NET
Проектирование БД с помощью
ORM
Проектирование на базе бизнес-правил с
помощью ORM

Моделирование ролей объектов
(ORM)



Концептуальное проектирование БД с
помощью элементов и примеров
естественного языка
Автоматически строится логическая и
физическая модели БД на базе
элементов естественного языка
Модель БД создается на языке,
понятном не техническим специалистам
Проектирование БД с помощью
ORM
Определение ORM

Моделирование ролей объектов (ORM) является:

Понятным


Надежным


Позволяет описать большое число бизнес правил
графически
Устойчивым


Подтверждает правильность правил, используя
естественный язык и совокупность выборки данных
Выразительным


Выражает факты и правила на естественном языке и/или
средствами интуитивной графики
Минимизирует влияние изменений на модели и запросы
ORM может использоваться вместо или прежде
других подходов к проектированию БД
Проектирование БД с помощью
ORM
Введение бизнес правил

Для отображения бизнес правил
в модели ORM, необходимо описать
факт с помощью типов объекта и
предиката

Пример

Служащий работает в Департаменте



Служащий и Департамент – это типы объектов
Отношение, описанное предикатом,
“работает в”
Добавление ограничения

Каждый Служащий работает не более чем в одном
Департаменте
Проектирование БД с помощью
ORM
Редактор фактов
 Определение нового факта


Служащий работает в Департаменте
Департамент нанимает служащего
Проектирование БД с помощью
ORM
Введение ограничений
 Для определения ограничений
требуется ответить на вопросы на
естественном языке
Проектирование БД с помощью
ORM
Преобразование ORM модели в
логическую модель




Создайте новую логическую модель БД с
помощью File > New > Database Model
Добавьте вашу ORM Source Model к списку
проектов модели
Транслируйте ORM в логическую модель
путем построения вашего проекта
Перетащите полученные таблицы в
диаграмму
Моделирование
средствами ORM
Демонстрация №1
Создание ER диаграмм
Обзор

ER Диаграммы


Позволяют определить, каким образом БД
будет реализовывать вашу концептуальную
модель ORM
Позволяют задавать конкретные детали
реализации БД





Индексы
Ключи
Триггеры
Мощность связи
Дополнительные свойства

Группы файлов
Окно
таблиц
Шаблоны
Окно
Database
Properties
Создание ER диаграмм
Расширенные атрибуты

Окно Database Properties позволяет
устанавливать дополнительные
атрибуты для таблиц, столбцов или
связей

Пример


File groups для SQL Server™
Table spaces для Oracle & DB2
ER Моделирование
Демонстрация №2
Reverse Engineer базы данных
Обзор

Reverse Engineering дает
возможность

Генерировать




ER модели
ORM модели
Документировать существующие
структуры БД
Позволяет принимать обоснованные
решения относительно БД
Reverse Engineer
Демонстрация №3
Генерация баз данных
Обзор

Физическая генерация БД может :



Создать новую базу данных
Работать с существующей БД
Верификация
Генерация БД
Демонстрация №4
Работа с кодом
Два метода

Два способа работы с кодом как
часть процесса проектирования и
реализации


Код может быть доступен во время
использования инструментов
визуального проектирования
Код может быть доступен с помощью
использования Server Explorer в Visual
Studio
Работа с кодом
Server Explorer

Позволяет редактировать и
создавать:





Таблицы
Представления (Views)
Хранимые процедуры
Функции
Интегрированный отладчик
хранимых процедур
Работа с кодом
Окно кода и редактор кода

Используйте Code Window/Code
Editor для просмотра и
редактирования кода БД
Работа с кодом
Демонстрация №5
Итоги

Enterprise Architect позволяет:




Легко создавать ORM диаграммы на
фазе концептуального моделирования
Преобразовывать ORM диаграммы в
ER диаграммы, которые содержат
подробную информацию, относящуюся
к реализации базы данных
Физические БД могут быть легко
сгенерированы из ER диаграмм
Легко строить ORM и ER диаграммы из
существующей БД.
Дополнительная
информация содержится…

Web MSDN


Сайт Visual Studio


msdn.microsoft.com
msdn.microsoft.com/vstudio
Ресурсы по моделированию


www.orm.net
www.inconcept.com/jcm