1 / 16

Object Oriented Analysis and Design

Object Oriented Analysis and Design. Model Driven Development. 波音 747. 超过 6 百万个零件,仅机尾就有上百个零件 能承载上百个旅客 能不停地飞行上千公里. 波音 747. 当波音在 60 年代开始生产 747 的时候,一共画了 75 , 000 张工程图. 为什么?. 因为他们正在生产一个极其复杂的系统, 而且不能出哪怕是一点点的差错. 软件开发也同样复杂. 人与系统的交互. 系统安全. 交易,存储. 模型. 可靠性,可扩展性. 子系统,模块,分布式. 成千上万行程序.

margret
Download Presentation

Object Oriented Analysis and Design

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object Oriented Analysis and Design Model Driven Development

  2. 波音747 • 超过6百万个零件,仅机尾就有上百个零件 • 能承载上百个旅客 • 能不停地飞行上千公里

  3. 波音747 • 当波音在60年代开始生产747的时候,一共画了75,000张工程图 为什么? 因为他们正在生产一个极其复杂的系统, 而且不能出哪怕是一点点的差错

  4. 软件开发也同样复杂 人与系统的交互 系统安全 交易,存储 模型 可靠性,可扩展性 子系统,模块,分布式 成千上万行程序

  5. 什么是模型

  6. 什么是模型驱动开发? • Model-driven Development (MDD) is a challenging approach to software engineering that is expected to change the way systems are developed. It postulates the model as the main artifact being developed rather than the code.

  7. 模型驱动开发A strategic initiative to automate the integration, generation, modernization, visualization, and reuse of software artifacts Modeling Web Requirementsand Application Data • Unify business and software teams with model-driven business integration • Improve productivity by providing a choice of modeling paradigms • Make reuse practical with asset-based development Software Construction BusinessProcesses Deployment Management

  8. 模型驱动开发成熟度方阵 Smaller Semantic Gap

  9. package com.megabank.loan; import javax.ejb.EntityBean; public abstract class LoanBean implements EntityBean { private javax.ejb.EntityContext entityContext; public LoanBean() {} public void ejbActivate() {} public void ejbPassivate() {} public void ejbRemove() {} public void ejbLoad() {} public void ejbStore() {} public javax.ejb.EntityContext getEntityContext() { return entityContext; } public void setEntityContext(javax.ejb.EntityContext entityContext) { this.entityContext = entityContext; } public void unsetEntityContext() {} public abstract void setRate(java.lang.Float rate); public abstract java.lang.Float getRate(); public abstract void setAmount(java.lang.Float amount); public abstract java.lang.Float getAmount(); public abstract void setBalance(java.lang.Float balance); public abstract java.lang.Float getBalance(); public abstract void setTermMonths(java.lang.Integer termMonths); public abstract java.lang.Integer getTermMonths(); public java.lang.String ejbCreate() throws javax.ejb.CreateException { return null; } public void ejbPostCreate() {} public abstract void setId(java.lang.Long aId); public abstract java.lang.Long getId(); … } Level 0: Manual

  10. 通常是由代码逆向产生模型图 目的 文档化 浏览 理解 Level 1: Visualization

  11. 模型和代码保持同步 自动 手工 修改模型或代码 Level 2: Synchronization

  12. Level 3: Patterns And Code Templates • “A pattern provides a common solution to a problem in a specific context” (Grady Booch) • 非常容易的重用成功验证的设计 • 各种pattern包括 • GoF Patterns • IBM e-business patterns • Sun’s J2EE patterns • Code template允许代码级的重用

  13. Platform-Independent Model Level 4: Platform Independence PIM 不会因为技术或程序语言 等的变化而受到影响 Refinement Transformations Platform-Specific Model Platform-Specific Model PIM 可以用来产生各种平台的 解决方案 Platform-Specific Model A Transformations improve adoption of new platform technology

  14. Level 5: Executable Models • 模型本身可以执行 • 用户基本上面对的是模型

  15. Code Level 6: MDD Vision Requirements, Use CasesSystems and Business Engineering Patterns and traceability Test and Instrumentation Design Customizable transformations Application Debugging Build and Deploy

  16. Level 6 Future Possibilities • 模型驱动排错 • 例如断点设在模型上而不是在代码上 • 可视化运行时分析 • 例如线程等

More Related