软件体系结构——第十章<从模型到代码>

一、正向工程

正向工程是指按照软件开发基本过程,将抽象层次较高的静态结构转换为相对具体的模型的过程

  • 从类图生成框架代码,简单转换(Rose)

  • 从交互图(主要指顺序图)生成类的方法中操作的调用代码框架,主要将交互图中的消息转换为对操作的调用。简单转换(利用IBM Rational Software Architect、Enterpris Architect(EA)等工具)

  • 从状态机图生成状态转换控制代码,可以构建无二义的代码实现。复杂转换(利用同上工具)

从类图生成框架代码

什么是框架代码?代码在设计上的初步实现。主要是类定义的基本信息,不包括方法的具体实现

类的框架代码包括那些?

  • 属性值定义:名称、类型、缺省值等

  • 操作的定义:名称、参数、返回类型等

  • 关系——引用属性的表示,等等

根据设计类图产生框架代码(也即类的上述初步核心结构),如:

  • 用操作和简单属性定义一个类

  • 加入引用属性:用角色名定义引用属性

实例:预定房间场景的VOPC类图

image.png

①用操作和简单属性定义一个类(属性、操作)

image.png

②加入引用属性(关联和导航;角色名)

image.png

二、逆向工程

逆向工程

  • 根据源代码导出设计模型,如:

    • 对Java语言来说:逆向工程是分析Java代码,然后将源代码转换到Rose模型的类和组件(构件)的过程。
  • 设计类图、设计交互图(rose不支持)

逆向工程的主要作用

  • 开始编码后,很多地方势必会和设计模型不一致,此时则可通过逆向工程更新原有的设计模型,从而保持设计模型的有效性、一致性

  • 已有的系统缺少相关文档,通过逆向工程获得系统的设计模型,以便理解和完善文档

①类、属性和操作

image.png

②关系和角色

image.png

三、模型驱动构架

问题的提出(模型的构建):模型是应用程序或系统的某些部分的简单抽象表示。用户可以以任意的复杂程度构建模型:从在白板上手绘的方框图,到使用建模工具生成的复杂的UML图。

然而,实际开发却经常脱离模型,模型只作为一个软件系统的蓝图,开发者仍然要手工编写所有的实现代码。

因此,模型驱动开发(MDD,Model-Driven Development)是一种能够将模型与实现更紧密地联系在一起的开发方法。

模型驱动的常见开发技术:

支持MDD的核心技术有两种:

  • 模型驱动架构(MDA, Model Driven Architecture) 。MDA 表示了一种模型驱动开发方法的概念框架。

  • 模型转换(MT, Model Transformation)

posted @ 2022-05-06 08:24  我在吃大西瓜呢  阅读(132)  评论(0编辑  收藏  举报