面向对象技术概述
(本文转载自软件工程专家网www.21cmm.com,不代表gigix观点)
[url=http://www.21cmm.com/prelogin.asp?page=/bbs/index.asp?Type=A][/url]
八十年代末以来,随着面向对象技术成为研究的热点出现了几十种支持软件开 发的面向对象方法。其中,Booch, Coad/Yourdon, OMT, 和Jacobson的方法在面 向对象软件开发界得到了广泛的认可。特别值得一提的是统一的建模语言UML (Unified Modeling Language),该方法结合了Booch, OMT, 和Jacobson方法 的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验 的概念和技术。UML方法自去年提出后到现在已发展到1.1版,并已提交给对象管 理集团OMG,申请成为面向对象方法的标准。
面向对象方法都支持三种基本的活动:识别对象和类,描述对象和类之间的关 系,以及通过描述每个类的功能定义对象的行为。
为了发现对象和类,开发人员要在系统需求和系统分析的文档中查找名词和名 词短语,包括可感知的事物(汽车、压力、传感器);角色(母亲、教师、政治 家);事件(着陆、中断、请求);互相作用(借贷、开会、交叉);人员;场所;组织;设备;和地点。通过浏览使用系统的脚本发现重要的对象和其责任,是 面向对象分析和设计过程的初期重要的技术。
当重要的对象被发现后,通过一组互相关联的模型详细表示类之间的关系和对 象的行为,这些模型从四个不同的侧面表示了软件的体系结构:静态逻辑、动态逻 辑、静态物理和动态物理。
静态逻辑模型描述实例化(类成员关系)、关联、聚集(整体/部分)、和一 般化(继承)等关系。这被称为对象模型。一般化关系表示属性和方法的继承关 系。定义对象模型的图形符号体系通常是从用于数据建模的实体关系图导出的。对设计十分重要的约束,如基数(一对一、一对多、多对多),也在对象模型中表 示。
动态逻辑模型描述对象之间的互相作用。互相作用通过一组协同的对象,对象 之间消息的有序的序列,参与对象的可见性定义,来定义系统运行时的行为。
Booch方法中的对象交互作用图被用来描述重要的互相作用,显示参与的对象和对 象之间按时间排序的消息。可见性图用来描述互相作用中对象的可见性。对象的可 见性定义了一个对象如何处于向它发送消息的方法的作用域之中。例如,它可以是 方法的参数、局部变量、新的对象、或当前执行方法的对象的部分。
静态物理模型通过模块描述代码的布局。动态物理模型描述软件的进程和线程 体系结构。
八十年代末以来,随着面向对象技术成为研究的热点出现了几十种支持软件开 发的面向对象方法。其中,Booch, Coad/Yourdon, OMT, 和Jacobson的方法在面 向对象软件开发界得到了广泛的认可。特别值得一提的是统一的建模语言UML (Unified Modeling Language),该方法结合了Booch, OMT, 和Jacobson方法 的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验 的概念和技术。UML方法自去年提出后到现在已发展到1.1版,并已提交给对象管 理集团OMG,申请成为面向对象方法的标准。
面向对象方法都支持三种基本的活动:识别对象和类,描述对象和类之间的关 系,以及通过描述每个类的功能定义对象的行为。
为了发现对象和类,开发人员要在系统需求和系统分析的文档中查找名词和名 词短语,包括可感知的事物(汽车、压力、传感器);角色(母亲、教师、政治 家);事件(着陆、中断、请求);互相作用(借贷、开会、交叉);人员;场 所;组织;设备;和地点。通过浏览使用系统的脚本发现重要的对象和其责任,是 面向对象分析和设计过程的初期重要的技术。
当重要的对象被发现后,通过一组互相关联的模型详细表示类之间的关系和对 象的行为,这些模型从四个不同的侧面表示了软件的体系结构:静态逻辑、动态逻 辑、静态物理和动态物理。
静态逻辑模型描述实例化(类成员关系)、关联、聚集(整体/部分)、和一 般化(继承)等关系。这被称为对象模型。一般化关系表示属性和方法的继承关 系。定义对象模型的图形符号体系通常是从用于数据建模的实体关系图导出的。对 计十分重要的约束,如基数(一对一、一对多、多对多),也在对象模型中表 示。
动态逻辑模型描述对象之间的互相作用。互相作用通过一组协同的对象,对象 之间消息的有序的序列,参与对象的可见性定义,来定义系统运行时的行为。
Booch方法中的对象交互作用图被用来描述重要的互相作用,显示参与的对象和对象之间按时间排序的消息。可见性图用来描述互相作用中对象的可见性。对象的可 见性定义了一个对象如何处于向它发送消息的方法的作用域之中。例如,它可以是 方法的参数、局部变量、新的对象、或当前执行方法的对象的部分。
静态物理模型通过模块描述代码的布局。动态物理模型描述软件的进程和线程体系结构。