软件工程基础<七>
2013-06-29 23:18
746 查看
***************面向对象技术总论***********
***
***基本概念:
**类:具有相同结构特征的对象的结构抽象。
***对象及对象实例。三要素:1.确定的标识,能够被唯一的确认。2.具有一定的属性,表示其性质或状态。3.具有一定的行为能力和操作能力。
***消息机制:程序=类+消息机制。
***面向对象的基本特点:1.封装性。2.继承性。3.多态性。4.抽象性。
***面向对象分析技术。分析类--》设计类--》面向对象类。
***面向对象与程序结构。
**程序结构包括:1.静态结构。2.动态结构。
***重构:
**1.try/catch 重构。
**2.重命名(Rename )和移动(Remove )重构。
**3.引入常量、变量和方法。
**4.改变方法参数。
**5.泛化类型。如用父类型代替子类型。
**6.匿名类转化为内部类。
**7.还原方法。
**8.封装属性。set / get
**9.属性、方法或下移。
**10.提取父类或者进口。
**11.创建代理。
**12.对象工厂方法。
***面向对象软件工程。
**建模:对象模型、动态模型、功能模型。
***RUP 过程。
***UML 建模。
***
(1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。
(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
标准建模语言UML的重要内容可以由下列五类图(共10种图)来定义:
第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。
第二类是静态图 (Static diagram),包括类图、对象图和包图。
类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
[2]对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
包图由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。行为图包括:状态图、活动图、顺序图和协作图。
状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。
活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。
顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。用顺序图说明系统的动态视图。
协作图展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。顺序图和协作图都是交互图,顺序图和协作图可以相互转换。
第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。
第五类是实现图 ( Implementation diagram )。
构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。
配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
***
***设计模式与框架
***
***
***基本概念:
**类:具有相同结构特征的对象的结构抽象。
***对象及对象实例。三要素:1.确定的标识,能够被唯一的确认。2.具有一定的属性,表示其性质或状态。3.具有一定的行为能力和操作能力。
***消息机制:程序=类+消息机制。
***面向对象的基本特点:1.封装性。2.继承性。3.多态性。4.抽象性。
***面向对象分析技术。分析类--》设计类--》面向对象类。
***面向对象与程序结构。
**程序结构包括:1.静态结构。2.动态结构。
***重构:
**1.try/catch 重构。
**2.重命名(Rename )和移动(Remove )重构。
**3.引入常量、变量和方法。
**4.改变方法参数。
**5.泛化类型。如用父类型代替子类型。
**6.匿名类转化为内部类。
**7.还原方法。
**8.封装属性。set / get
**9.属性、方法或下移。
**10.提取父类或者进口。
**11.创建代理。
**12.对象工厂方法。
***面向对象软件工程。
**建模:对象模型、动态模型、功能模型。
***RUP 过程。
***UML 建模。
***
(1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。
(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
标准建模语言UML的重要内容可以由下列五类图(共10种图)来定义:
第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。
第二类是静态图 (Static diagram),包括类图、对象图和包图。
类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
[2]对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
包图由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。行为图包括:状态图、活动图、顺序图和协作图。
状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。
活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。
顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。用顺序图说明系统的动态视图。
协作图展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。顺序图和协作图都是交互图,顺序图和协作图可以相互转换。
第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。
第五类是实现图 ( Implementation diagram )。
构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。
配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
***
***设计模式与框架
由于在软件业迈向组件装配工业(software component industry) 的过程中,不断发现组件设计者对其组件之应用场合的预想环境与应用软件师的软体结构常无法完美地整合起来,导致应用软件师难以灵活地再使用(reuse) 他人设计之组件,造成软件组件工业成长上的瓶颈。OO软件专家也逐渐认识到其问题是来自于软件主架构的不相合(mismatch)。 软件主架构的重要性并非今天才呈现出来,20多年前软件大师Fred. P. Brooks 就提到:软件设计的参与者之间,其设计的概念必须一致(conceptual integrety)才能共同创造出简单亲切的软件,同时他也强调软件主架构在达到概念一致的过程中,居于核心角色。这个20多年来的老问题,仍是今天OO软件师必须努力去克服的。 要想追上它,必须知道它是什么。因此我先介绍一下相关知识的一些概念: 1. 架构(Architecture) 体系结构亦可称为架构,所谓软件架构,根据Perry 和Wolfe之定义:Software Architecture = {Elements,Forms, Rationale / Constraint },也就是软件主架构 = {组件元素,元素互助合作之模式,基础要求与限制}。Philippe Kruchten采用上面的定义,并说明主架构之设计就是:将各组件元素以某些理想的合作模式组织起来,以达成系统的基本功能和限制。体系结构又分为多种样式,如Pipes and Filters等。 2. 框架(Framework) 框架亦可称为应用架构,框架的一般定义就是:在特定领域基于体系结构的可重用的设计。也可以认为框架是体系结构在特定领域下的应用。框架比较出名的例子就是MVC。 3. 设计模式(Design Pattern) 设计模式大家应该很熟悉,尤其四人帮所写的书更是家喻户晓。"四人帮"将模式描述为"在一定的环境中解决某一问题的方案"。这三个事物 — 问题、解决方案和环境 — 是模式的基本要素。给模式一个名称,考虑使用模式将产生的结果和提供一个或多个示例,对于说明模式也都是有用的。
***
相关文章推荐
- 软件工程基础<三>
- 软件工程基础<六>
- 程序员_Java基础之<七>-集合框架
- 黑马程序员 java基础<七>--网络编程(1)
- c++ 实现顺序栈类(初始化,入栈,退栈。读栈顶元素以及顺序输出栈顶指针与栈中的元素<<计算机软件技术基础 徐士良>>
- 黑马程序员 Java基础<七>---> 集合框架
- Java基础<七>_多线程
- c++ 实现顺序表类(初始化、输入、插入与删除)<<计算机软件技术基础 徐士良>>
- Java基础<七>--->抽象类、接口、内部类、异常等
- <译>Web图表工具ChartDirector基础教程
- 计算机网络安全基础之<一>
- 黑马程序员 java基础<五>--IO流(3)
- LDD3源码学习日记<七>
- 黑马程序员 java基础<六>--IO流(4)
- python基础学习笔记<面向对象编程>
- 实时开发框架Meteor API解读系列<七> Collection --01
- swift基础之<二>
- 【UIKit-110-1】#import <UIKit/UITableView.h> 基础创建
- _java基础<一>_Java开发前奏
- python基础学习笔记<内建模块与第三方模块>