turbo charging your.net development agenda 软件开发世界发生了什么事情 ? 老生常谈...

56
Turbo Charging Your .NET Development

Upload: aron-heath

Post on 30-Dec-2015

326 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Turbo Charging Your .NET DevelopmentTurbo Charging Your .NET Development

Page 2: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Agenda

软件开发世界发生了什么事情 ? 老生常谈 : .NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For .NET C#Builder 和 MDA Q&A

Page 3: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

软件开发世界发生了什么事情 ?软件开发世界发生了什么事情 ?

Page 4: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

软件开发世界发生了什么事情 ?

Tool Vendor

Decides

Page 5: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

软件开发世界发生了什么事情 ?

Market Requirement

Open Source

IT Vendor IT技术

Standard

Page 6: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

软件开发世界发生了什么事情 ?

Modeling 工具

.NETFramework

JavaJ2EE

程式語言 Open Source

IDE

Methodology

分析

設計

Design Pattern

JDO

oPath

Page 7: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

软件开发世界发生了什么事情 ?

aObject Oriented Non-Object Oriented

Modeling 工具

.NETFramework

JavaJ2EE

程式語言

Open SourceIDE

Methodology

分析

設計

Design Pattern

JDO

oPath

?

Page 8: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Next-Generation IDEs: The ILDE (or ALM)

Software development requires coordinated efforts- Traditional tools set up

boundaries that match titles- Pass it along coordination

Growing use of global development teams- Round-the-clock change

Think of tools as “portals” that coordinate efforts

© 2002 META Group Inc., Stamford, CT-USA, +1 (203) 973-6700, metagroup.com

Mobilising Developers

Tools must be matched with processes to ensureeffective collaboration and meet business requirements

Page 9: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

软件开发世界发生了什么事情 ?

Java/J2EE

Java Class Library

.NET Lang.

.NET Framework

OO

Modeling

Extreme Programming

Agile Development

OO

Modeling

Extreme Programming

Agile Development

Design Pattern

Design Pattern

SoftwareTechnology

SoftwareEngineering

Applied Solution

? ?

Page 10: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

What is Model Driven Architecture?

A New Way to Specify and Build Systems- 2001 年由 OMG制定的新开发架构 - 以 UML塑模为基础 - 支持完整开发周期 : analysis, design, implementation, deploym

ent, maintenance, evolution & integration with later systems- 内建协同运作性及跨平台性 - 降低开发初期成本及提高 ROI

- 可套用至你所使用的任何环境 :- Programming language Network- Operating system Middleware

Page 11: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Model Driven Architecture

UML(Unified Modeling Language)

MOF(Meta Object Factory) : OMG标准,与 UML 相关,针对 metadata management 及 modeling language definition

CWM(Common Warehouse Metamodel) : OMG 规格对 data repository integration

Page 12: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

提升 UML 是重要关键

UML 延续 90年代初期的多项 OOAD方法 (OOSE-Object Oriented Software Engineering, OMT-Object Modeling Technique)

OMG于 96年采用,并于 97年完成规格制定 另制定如MOF以及 XML Metadata specs (XMI)加以补充 标准化后,亦造就了市场

- 超过 100 本书籍 - 十数种商业开发工具 - 普遍开设的教育训练

Supported by an open process- UML 2.0 process under way now

Page 13: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Building an MDA Application

Start with a Platform-Independent Model (PIM) representing business functionality and behavior, undistorted by technology details.

Platform-Independent

Model

A Detailed Model, stating Pre- and Post-Conditions in OCL, and Semantics in Action Language

Page 14: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Generating Platform-Specific Model

Platform-Independent

Model

Map a PIM to Specific Middleware

Technologies via OMG Standard Mappings

MDA tool applies a standard mapping to generate Platform-Specific Model (PSM) from the PIM. Code is partially automatic, partially hand-written.CORBA

Model

Page 15: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Mapping to Multiple Deployment Technologies

Platform-Independent

Model

CORBA Model

MDA tool applies an standard mapping to generate Platform-Specific Model (PSM) from the PIM. Code is partially automatic, partially hand-written.Java/EJB

ModelXML/SOAP

ModelOtherModel

Map a PIM to Many Middleware

Technologies via OMG Standard Mappings

Page 16: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Generating Implementations

Platform-Independent

Model

CORBA Model

MDA Tool generates all or most of the implementation code for deployment technology selected by the developer.

Java/EJBModel

CORBA

XML/SOAPModel

Java/EJB XML/SOAP Other

OtherModel

Map PSM to application interfaces, code, GUI

descriptors, SQL queries, etc.

Page 17: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Integrating Legacy & COTS

Platform-Independent

Model

LegacyApp

MDA Tools for reverse engineering automate discovery of models for re-integration on new platforms.

COTS(Commercial off-the-shelf)

COTSApp

Other

OtherModel

Reverse-engineer existing application into a mo

del and redeploy.

Page 18: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Automating Bridges

CORBA Model

XML/SOAPModel

Platform-Independent

Model

CORBA System

XML/SOAPSystem

InteropBridge

MDA Tools combine

application and platform

knowledge to generate bridges

Bridge generation is simplified by common application models, simplifying creation of integrated applications both within and across enterprises.

Page 19: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

MDA – Lifecycle Management

Page 20: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

MDA Process所需元素

High level Model Standard, well-defined language for Model PIM to PSM transformation definition Formal language for transformation

definition Tool for transformation Tool for transform PSM to code

Page 21: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

MDA Benefits

Productivity Portability Interoperability Maintenance and Documentation

Page 22: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Increasing IT Performance

Frameworks, Patterns Open Source

MDA Build from specifications

Process Increase Iteration

Industry-Specific APIs

Telco, Insurance

Container

Model

Application

Frameworks

Horizontal

Business

Vertical

Business

Customer, Invoice

OMG Business Object

Web State Mgmt.

Adapters, XML Parsers

Transaction Mgmt.

Activation, Persistence

Sys

tem

Bu

sin

ess

AD must construct frameworks of prebuilt code/components to support rapid development of application services

AD must construct frameworks of prebuilt code/components to support rapid development of application services

Page 23: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Model Driven Architecture

Platform

Specific

ModelCode

PlatformIndependent

ModelPIM

Page 24: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Model Driven Architecture

Platform

Specific

Model

Code

PlatformIndependent

ModelPIM

Platform

Specific

ModelCode

Page 25: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Application on ECO platform

Windows .netWindows .net

UserUserInter-Inter-actionaction

Busi-Busi-ness ness LogicLogic

PersistencePersistence

UserUserInter-Inter-actionaction

Busi-Busi-ness ness LogicLogic

Enterprise CoreEnterprise CoreObjects PlatformObjects Platform

Design ModelDesign ModelDesign ModelDesign Model

Page 26: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

传统的开发环境

Logic

PresentationInterface

PersistenceObject Interaction

Object Object ObjectLogic Logic

C#Builder

PresentationInterface

Generated / Regenerated from Model

Implemented by DeveloperModeled by Designer / Architect

UML Model

Modeling EnvironmentTogether, Rose, ModelMaker..

Page 27: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Borland Enterprise Core Objects

Together, Rose, ModelMaker..

Generated/Regenerated from Model

Implemented by Developer

PersistenceObject Interaction

Logic Logic

UML Model

Modeled by Designer / Architect

Modeling Environment

C#Builder

Model-Powered Framework

UML Model

Object Object ObjectLogic

PresentationInterface

Page 28: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

RuntimeModel

ObjectSpace

Class Person{ Name: string; Home: Building}

Objectcontents

Objectcontents

Objectcontents

IObjectSpace

CLRFrontend

Class Building{Residents:IPersonList}

Object/RelationalMapper

IObject

RuntimeModel

ObjectSpace

Class Person{ Name: string; Home: Building}

Objectcontents

Objectcontents

Objectcontents

IObjectSpace

CLRFrontend

Class Building{Residents:IPersonList}

Object/RelationalMapper

IObject

Page 29: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

參考書籍

Model Driven Architecture: Applying MDA to Enterprise Computing David S. FrankelWiley, Paperback, Published January 2003, 328 pages, md_dr_rc_m_aa, ISBN 0471319201

Executable UML: A Foundation for Model-Driven Architectures Stephen J. Mellor, Marc J. BalcerAddison-Wesley, Hardcover, Published May 2002, 368 pages, xc_ml_fn_f_aa, ISBN 0201748045

MDA Explained: The Model Driven Architecture: Practice and Promise Anneke Kleppe, Jos Warmer, Wim BastAddison-Wesley, Paperback, Published April 2003, 176 pages, md_xp_th_m_aa, ISBN 032119442X

Page 30: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

老生常谈 : .NET 和 Java老生常谈 : .NET 和 Java

Page 31: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Java/.NET 的發展趨勢比較

Java 語言

Applet

IDE

Design Pattern

.NET 語言

ASP.NET

IDE

ModelingJB/EJB

Team Development

Page 32: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Java/.NET 的發展趨勢比較

Design Pattern

JDO

New Component Model?

MDA

Modeling

oPath

MDA

Page 33: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

軟體開發世界發生了什麼事情 ?

.NETJava

OO

DesignPattern

Modeling

MDA

Page 34: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

测试您的想法 !测试您的想法 !

Page 35: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

测试您的想法 !

让我们从现场找一个范例

OK, 让我们现场做一个 QA系统

问题是我们应该如何开始 ?

Page 36: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

测试您的想法 !

答案 1 :没人理我 ?答案 2 : 用 VS.NET, 用 C#Builder, Delphi, BCB?答案 3 :定义数据库 ,

答案 4 :马上开始 Coding

答案 5 :你一定会告诉我 !

答案 6 :不会 ?

a

Page 37: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

测试您的想法 !

Or, Are you thinking in Modeling?

Page 38: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder
Page 39: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

我们需要什么 ?我们需要什么 ?

Page 40: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

我們需要什麼 ?

Page 41: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

我們需要什麼 ?

语言语言 工具 /IDE工具 /IDE

ModelingModeling 组件模型 组件模型

Design PatternDesign Pattern企业资料存取企业资料存取

Profiling 工具Profiling 工具

Page 42: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

我们需要什么 ?

高生产力 !高生产力 !

掌握系统的架构和开发 !掌握系统的架构和开发 !

Page 43: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Understanding Software…

Is code easy to understand?

Is code easy to communicate?

Source code is - Millions of lines of source

code- Different languages

Page 44: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Value of Modeling

A picture is worth a thousand lines of code

Page 45: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Together® Value Proposition

• UML™ Modeling with LiveSource™• Visualization with accuracy

• Documentation Generation• Automated and always up-to-date

• Design Pattern Support• Promote reuse and improve quality

• QA Audits & Metrics• Improve quality and maintainability

Page 46: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

UML™ Modeling with Together®

• Together® supports all 8 UML™ diagrams:• Use Case• Activity• Class• Sequence• Collaboration• Statechart• Component• Deployment

Page 47: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

UML™ Modeling with LiveSource™

• Together® LiveSource™ technology:• UML™ class elements are a live rendition of

underlying source• Model to Code. Code to Model. Always in Sync.

IncrementalIncrementalCodeCode

GeneratorGenerator

Together®Together®ParsingParsingEngineEngine

LiveSource™

Page 48: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Together® Documentation Generation

• Model and code always in sync + Documentation generated from model = Documentation always accurate!

• Together® generates• HTML• RTF• TXT• PDF

• Custom template designer

Page 49: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Together® Design Pattern Support

• Reuse existing, trusted solutions• Gang of Four (GoF) patterns• Sun Java Center J2EE™ patterns• Your own custom patterns!

Page 50: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Get Relaxed!

Shall We Take a Break?

We’ll have more fun in a minute!

Page 51: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Together For .NETTogether For .NET

Page 52: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

C#Builder 和 MDAC#Builder 和 MDA

Page 53: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Summary - ALM

Your competition may be fierce

Page 54: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Summary - ALM

But if you are Agile – the result will surprise them!

Page 55: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Q&AQ&A

Page 56: Turbo Charging Your.NET Development Agenda 软件开发世界发生了什么事情 ? 老生常谈 :.NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For.NET C#Builder

Q&A