turbo charging your.net development agenda 软件开发世界发生了什么事情 ? 老生常谈...
TRANSCRIPT
Turbo Charging Your .NET DevelopmentTurbo Charging Your .NET Development
Agenda
软件开发世界发生了什么事情 ? 老生常谈 : .NET 和 Java. 测试您的想法 ! 我们需要什么 ? Together For .NET C#Builder 和 MDA Q&A
软件开发世界发生了什么事情 ?软件开发世界发生了什么事情 ?
软件开发世界发生了什么事情 ?
Tool Vendor
Decides
软件开发世界发生了什么事情 ?
Market Requirement
Open Source
IT Vendor IT技术
Standard
软件开发世界发生了什么事情 ?
Modeling 工具
.NETFramework
JavaJ2EE
程式語言 Open Source
IDE
Methodology
分析
設計
Design Pattern
JDO
oPath
软件开发世界发生了什么事情 ?
aObject Oriented Non-Object Oriented
Modeling 工具
.NETFramework
JavaJ2EE
程式語言
Open SourceIDE
Methodology
分析
設計
Design Pattern
JDO
oPath
?
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
软件开发世界发生了什么事情 ?
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
? ?
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
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
提升 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
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
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
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
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.
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.
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.
MDA – Lifecycle Management
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
MDA Benefits
Productivity Portability Interoperability Maintenance and Documentation
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
Model Driven Architecture
Platform
Specific
ModelCode
PlatformIndependent
ModelPIM
Model Driven Architecture
Platform
Specific
Model
Code
PlatformIndependent
ModelPIM
Platform
Specific
ModelCode
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
传统的开发环境
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..
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
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
參考書籍
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
老生常谈 : .NET 和 Java老生常谈 : .NET 和 Java
Java/.NET 的發展趨勢比較
Java 語言
Applet
IDE
Design Pattern
.NET 語言
ASP.NET
IDE
ModelingJB/EJB
Team Development
Java/.NET 的發展趨勢比較
Design Pattern
JDO
New Component Model?
MDA
Modeling
oPath
MDA
軟體開發世界發生了什麼事情 ?
.NETJava
OO
DesignPattern
Modeling
MDA
测试您的想法 !测试您的想法 !
测试您的想法 !
让我们从现场找一个范例
OK, 让我们现场做一个 QA系统
问题是我们应该如何开始 ?
测试您的想法 !
答案 1 :没人理我 ?答案 2 : 用 VS.NET, 用 C#Builder, Delphi, BCB?答案 3 :定义数据库 ,
答案 4 :马上开始 Coding
答案 5 :你一定会告诉我 !
答案 6 :不会 ?
a
测试您的想法 !
Or, Are you thinking in Modeling?
我们需要什么 ?我们需要什么 ?
我們需要什麼 ?
我們需要什麼 ?
语言语言 工具 /IDE工具 /IDE
ModelingModeling 组件模型 组件模型
Design PatternDesign Pattern企业资料存取企业资料存取
Profiling 工具Profiling 工具
我们需要什么 ?
高生产力 !高生产力 !
掌握系统的架构和开发 !掌握系统的架构和开发 !
Understanding Software…
Is code easy to understand?
Is code easy to communicate?
Source code is - Millions of lines of source
code- Different languages
Value of Modeling
A picture is worth a thousand lines of code
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
UML™ Modeling with Together®
• Together® supports all 8 UML™ diagrams:• Use Case• Activity• Class• Sequence• Collaboration• Statechart• Component• Deployment
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™
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
Together® Design Pattern Support
• Reuse existing, trusted solutions• Gang of Four (GoF) patterns• Sun Java Center J2EE™ patterns• Your own custom patterns!
Get Relaxed!
Shall We Take a Break?
We’ll have more fun in a minute!
Together For .NETTogether For .NET
C#Builder 和 MDAC#Builder 和 MDA
Summary - ALM
Your competition may be fierce
Summary - ALM
But if you are Agile – the result will surprise them!
Q&AQ&A
Q&A