静心;坚毅;制怒;藏拙;三省;内秀;去欲;豁达。
OOA——面向对象的分析,就是运用面向对象方法进行系统分析,对问题域(问题所涉及的范围)和系统责任(所开发的系统应具备的职能)进行分析与理解,找出描述问题及系统责任所需要对象,定义对象的属性、操作以及它们之间的关系。
UML是对软件密集型系统中的制品(模型、源代码、测试用例等)进行可视化、详述、构造和文档化的语言。
(1)UML特点
(2)UML的构成
UML中的3类主要元素是基本构造块、规则、公共机制
(3)UML中的视图
UML中的视图包括用例视图、逻辑视图、实现视图、进程视图、部署视图,被称为“4+1”视图
OOA模型是指运用面向对象的分析方法建立的系统模型,包括基本模型、需求模型和辅助模型三部分。
基本模型:基本模型以直观的方式表达了最重要的系统结构信息
需求模型:需求模型用于定义用户需求
辅助模型:辅助模型提供几种对基本模型进行组织或者加强理解的辅助图形
模型规约:对模型进行详细的描述
2.4.1基本模型——类图
构成类图的主要成分是类、属性、操作、一般-特殊结构、整体-部分结构、关联和消息。这些成分所表达的模型信息可以从下面三个层次来看待:
(1)继承关系(即泛化关系)——通过一般-特殊结构表示
泛化关系"akindof",类与类之间的关系即继承关系
(2)聚集与组合关系——通过整体-部分结构表示
聚集关系"has-a",组合关系"contains-a":聚集关系表示事物的整体-部分关系较弱的情况,组合关系表示事物的整体-部分关系较强的情况
区别:组合关系中的整体和部分具有同样的生命周期。在聚集关系中,代表部分事物的对象可以属于多个聚集对象,可以为多个聚集对象所共享,而且可以随时改变它所从属的聚集对象。代表部分事物的对象与代表聚集事物对象的生存期无关,一旦删除了它的一个聚集对象,不一定也就随便删除代表部分事物的对象。在组合关系中,代表整体事物的对象负责创建和删除代表部分事物的对象,代表部分事物的对象只属于一个组合对象。一旦删除了组合对象,也就随即删除了相应的代表部分事物的对象。
(3)关联关系——用静态关系表示,分为自返关联、二元关联、N元关联
关联(association)是对具有共同的结构特性、行为特性、关系和语义的链(链表示对象与对象之间的关系,关联表示类与类之间的关系)的描述
(4)依赖关系——用消息表示对象之间在行为上的依赖关系
假设有两个元素X、Y,如果修改X的定义可能会导致对另一个元素Y的定义的修改,则称元素Y依赖于元素X。对于类而言,如果两个类之间有关联关系,那么一般只要表示出关联关系即可,不用再表示这两个类之间还有依赖关系。
建立类图的步骤:
ps:抽象类与接口区别:
2.4.2需求模型——用例图(用况图)
用例是系统、子系统或类和外部的参与者(actor)进行交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。而参与者是指系统以外的、需要使用系统或与系统交互的东西,包括人、设备、外部系统等。用例间的关系主要有关联、扩展(extend)、泛化、包含(include)关系等。
(1)泛化关系:子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或覆盖父用例中的行为和含义
(2)包含关系<
注意区别包含关系与扩展关系:在包含关系中,在执行基本用例时,一定会执行包含用例;在扩展关系中,一个基本用例执行时,可以执行、也可以不执行扩展部分,简言之,满足条件就执行,不满足条件就不执行。
用例图:把用例、参与者以及它们之间的关系用一些图像符号进行可视化表示,便得到用例图。它是直接描述需求的,所以是一个需求模型。
寻找用例的步骤:
2.4.3辅助模型——包图、顺序图、活动图及其他
(1)包图:包(package)是一种将其他模型元素组织起来,形成较大粒度的系统单位的机制。UML中,包是分组事物的一种,它是在建模时用来组织模型中的元素的,在系统运行时并不存在包的实例,这点和类不一样,类在运行时会有实例。
设计包的原则:
ps:重用等级原则、共同闭包原则、共同重用原则这3个原则事实上是相互排斥的,不可能同时被满足。它们是从不同使用者的角度提出的,重用等价原则和共同重用原则是从重用人员的角度考虑的,而共同闭包原则是从维护人员的角度考虑的。共同闭包原则希望包越大越好,而共同重用原则却要求包越小越好。
建立顺序图的步骤:
泳道:泳道是活动图中的区域划分,根据每个活动的职责对所有活动进行划分,每个泳道代表一个责任区。泳道和类并不是一一对应的关系,泳道关心的是其所代表的职责,一个泳道可能由一个类实现,也可能由多个类实现。
在活动图中,对于同一个触发事件,可以根据不同的警戒条件转向不同的活动,每个可能的转移是一个分支。如果要表示系统或对象中的并发行为,则可以使用分叉(fork)和汇合(join)这两种建模元素。分叉表示的是一个控制流被两个或多个控制流代替,经过分叉后,这些控制流是并发执行的;汇合正好与分叉相反,表示两个或多个控制流被一个控制流代替。
(4)构件图和部署图:构件图和部署图是对面向对象系统物理方面建模的两个图
基本概念:
构件:构件是系统中遵从一组接口且提供其实现的物理的、可替换的部分。构件包括部署构件(如dll文件、exe文件数据库表等)、工作产品构件(如源代码文件、数据文件等)、执行构件(系统执行后得到的构件)
构件图中的构件与类图中的类区别:
部署图两个基本概念:结点和连接
结点是存在于运行时的代表计算资源的物理元素,结点一般都具有一些内存而且常常具有处理能力,结点可以代表一个物理设备以及运行在该设备上的软件系统。结点之间的连线表示系统之间进行交互的通信路径,这个通信路径称为连接。部署图的结点分为两类,即处理机和设备
连接表示两个硬件之间的关联关系。
OOA过程包括以下主要活动
(1)建立需求模型——用例图
(2)建立基本模型——类图
(3)建立辅助模型
(4)建立模型规约:对模型中的成分进行规范的定义和文字说明
(5)原型开发:可选,结合其他活动反复进行
以上各个OOA过程总体来说是一个反复进行,不断完善的过程,以建立基本模型为中心,进行需求模型、基本模型、辅助模型的建立、修复与完善。