dev337 modeling distributed enterprise applications using uml in visual studio.net david keogh...

29
DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio .NET David Keogh Program Manager Visual Studio Enterprise Tools

Upload: jonah-domenic-moody

Post on 16-Jan-2016

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

DEV337

Modeling Distributed Enterprise Applications Using UML in Visual Studio .NET

David KeoghProgram ManagerVisual Studio Enterprise Tools

Page 2: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Agenda

Why Model?

Working with UML

Generating Code

Reverse Engineering Code

Generating Reports

Page 3: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Session Prerequisites

Experience developing Desktop or Web Applications on .NET

Experience with Visual C#™, Visual C++®, Visual Basic®, or Visual Basic .NET

Level 200Level 200

Page 4: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Quick Usage Survey

How many of you…

1. Rigorously use models in development?

2. Use model diagrams to understand?

3. Illustrate key parts of software architecture using models?

4. Never use models?

Page 5: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

ModelingWhy Model?

Better understand potential risks prior to building the system

Specify structure or behavior of a system, and communicate it to others

Template for constructing a system, and guiding others in using the system

Document decisions

Page 6: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Visio Enterprise for Visio Enterprise for ArchitectsArchitects

UML Model ++UML Model ++

Database Model ++Database Model ++

Gantt ChartGantt Chart

Org ChartOrg Chart

UML UML ModelModel

Database Database ModelModel.etc.etc

Visio Visio ProfessionalProfessional

Visio for Enterprise Architects

VisioVisioEnginEngin

eeVisio Visio StandardStandard

Basic Basic DiagramDiagram

Basic Basic FlowchartFlowchart

Basic Basic NetworkNetwork.etc.etc

Page 7: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

ModelingEnterprise Architect Capabilities

UML Software ModelingFull Support for the UML 1.2 Modeling Specification

Reverse Engineer UML from existing Code

Generate customizable code skeletons for Visual Basic, C++ and C#

Automatic semantic error checking

Customizable UML reports

Page 8: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Working with UMLUML Defined

UML is a language for:VisualizingSpecifyingConstructingDocumenting

the artifacts of a software-intensive systemUML is an open standardBuilding blocks are elements, relationships and diagrams

Page 9: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Modeling using UMLDiagram Types

StructuralClass

BehavioralUse Case, State Chart, Activity, Sequence, Collaboration

ImplementationComponent, Deployment

Page 10: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Working with UMLClass Diagram

«uses»«uses» «uses»«uses»

«uses»«uses»

«uses»«uses»

defaultdefault categoriescategories bookbook

searchresultssearchresultssearchsearch

Page 11: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Working with UMLUse Case Diagrams

Use cases are commonly used to:

Model the context of a system

Model the requirements of a system

Internet CustomerInternet Customer

Customer Account Customer Account ManagementManagement

Purchase BooksPurchase Books

Product Catalog Product Catalog SearchSearch

Page 12: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Working with UMLSequence Diagrams

Sequence diagrams are commonly used to:Model flows of control by time ordering

: Web::book: Web::book : BusinessFacade::ProductSystem: BusinessFacade::ProductSystem : DataAccess::Books: DataAccess::Books

GetBooksByISBN()GetBooksByISBN()

GetBooksByAuthor()GetBooksByAuthor()

GetBooksByNaturalLanguage()GetBooksByNaturalLanguage()

GetBooksBySubject()GetBooksBySubject()

GetBooksByTitle()GetBooksByTitle()

GetBookById()GetBookById()

Page 13: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Working with UMLAdditional Diagrams

Collaboration diagrams are commonly used to:Model flows of control by organization

State chart diagrams are commonly used to:Model reactive objects

Activity diagrams are commonly used to:Model a workflow or an operation

Component diagrams are commonly used to:Model source code, executable releases, physical databases, adaptable systems

Deployment diagrams are commonly used to:Model embedded systems, client/server systems, fully distributed systems

Page 14: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Working with UMLWorking with UMLDemo #1Demo #1

demodemo

Page 15: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating CodeThe Basics

Enterprise Architect allows you to:Generate code for specific classes

Generate code as part of a new project Windows® Forms, ASP .NET, Class Library, Web Service, etc.

Generates code in a specific language:C#

C++

Visual Basic .NET

Generate code based on code templates

Page 16: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating CodeOperations

Operations can be generated as:Property

Procedure

Event

Constructor or Destructor

Specify location for individual class files that are generated

Preview pane to view the code that will be generated

Code Templates for Classes, Attributes, Operations, etc.

Page 17: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating CodeError Checking

UML Diagram are also checked for two types of errors:

Semantic

Code

Semantic errors include missing and incomplete information related to the diagram

Code errors include errors that could prevent generated code from compiling successfully

Page 18: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating CodeGenerating CodeDemo #2Demo #2

demodemo

Page 19: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Reverse EngineeringBasics

Integrated into Visual Studio® .NET Enterprise

Project | Visio UML | Reverse Engineer

Visio UML Add-in toolbar button

Specify location and file name

New Visio model created Classes ready to be used in diagrams

Visio diagram added to Solution Items

Page 20: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Reverse EngineeringReverse EngineeringDemo #3Demo #3

demodemo

Page 21: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating ReportsBasics

UML | Reports menu

Allows you to generate a wide variety of reports

Static Structure

State Chart

Component

Deployment

Activity

Report presentation is customizable

Page 22: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating ReportsReport Contents

You can limit the scope of the reportBase the report on:

Active diagramEntire UML Model

Specify object categories to includeEach report has its own categoriesEach category has its own level of detail

Choose custom separators for each new models, packages, components, etc.UML Reports can be customized

Page 23: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating ReportsAdditional Reporting Options

Save UML diagrams as a web pageSave UML diagrams as a web page HTML frame formatHTML frame format Tabs for navigating multiple Tabs for navigating multiple

diagramsdiagrams Embed diagrams in existing Embed diagrams in existing

frames frames Easy to publish information on an Easy to publish information on an

IntranetIntranet Print or preview UML diagramsPrint or preview UML diagrams

Page 24: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Generating ReportsGenerating ReportsDemo #4Demo #4

demodemo

Page 25: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Session SummaryModel driven development: mechanism to ensure consistent, repeatable architectures in application developmentUML methodology promotes model driven developmentVisual Studio .NET Enterprise Architect provides:

Semantic model creationCode generationReverse engineeringReport generation

Page 26: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

For More Information…Visual Studio .NET Enterprise

http://msdn.microsoft.com/vstudio/productinfo/enterprise/default.aspx

XMI Export available from http://msdn.microsoft.com/downloads/(search on XMI export)

MSDN and Visual Studio .NEThttp://msdn.microsoft.com

http://msdn.microsoft.com/vstudio

GotDotNet communities on architecture and design

http://gotdotnet.com/team/architecture/

More on Application Modeling: HOL-DEV24

Page 27: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

Community Resources

Community Resourceshttp://www.microsoft.com/communities/default.mspx

Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/

NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx

User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx

Page 28: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

evaluationsevaluations

Page 29: DEV337 Modeling Distributed Enterprise Applications Using UML in Visual Studio.NET David Keogh Program Manager Visual Studio Enterprise Tools

© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.