【系统分析师之路】第十章 UML面向对象方法

  • Post author:
  • Post category:其他

【系统分析师之路】第十章 UML面向对象方法

章节重点:面向对象UML定义、14中图形,面向对象设计(创建型,行为型,结构型)。

1.统一建模语言:掌握UML图形表示含义用法
UML结构包括:基本构造块,支配构造块的规则和一些运用于整个UML的公共机制。
构造块:事物(Thing),关系(Relationship),图(Diagram)
公共机制:包括规则说明,修饰,公共分类,扩展机制。
规则:用于描述事务的语义规则。

UML四种关系 依赖,关联,汎化,实现
用例之间的关系 包含关系,扩展关系,汎化关系。
类之间的关系 关联关系,依赖关系,汎化关系,聚合关系,组合关系,实现关系,流关系

UML图形:有十四种图。

UML图形 UML图形英文名 说明
构件图 Component Diagram 描述一个封装的类和它的接口,端口,以及由内嵌的构件和连接件构成的内部结构。
组合结构图 Composite Structure Diagram 描述结构化类的内部结构。用于画出结构化类的内部结构。它包括Part部件,Port端口,Connector连接。
通信图 Collaboration Diagram  强调收发消息的对象或角色的结构组织,类似时序图,但它强调流经的数据结构。
定时图 Timing Diagram 消息跨越不同对象或角色的实际时间。交互图的一种。
部署图 Deployment Diagram 描述运行时的处理节点,及在其中生成的构件的配置。它是体系结构的动态部署视图。
包图 Package Diagram 描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。用类图描述业务概念时,很多时候会因为业务类太多,而导致类图非常庞大,不利于阅读,这时可以将某些类放入“包”中,通过包图来组织业务概念图。
交互概览图 Interaction Overview Diagram 活动图与顺序图的结合。
制品图 Artifact Diagram 也叫做工件图。描述计算机中一个系统的物理结构。制品包括文件,数据库,和类似的物理比特集合。
状态机图 State Machine Diagram 从某个物品的状态是如何变化的角度来展示流程。
顺序图 Sequence Diagram 用顺序图来分析的好处是能清晰表达整个过程所参与的角色,角色与角色之间的关系,各角色是如何被卷入这个过程当中的。
用例图 Use Case Diagram 用例图表达的是什么角色通过软件系统能做什么事情,我们可以使用用例图系统地表达软件系统的绝大部分需求。
活动图 Activity Diagram 活动图中的一个圆边框框表示一个“活动”,多个活动之间的带箭头线条表示活动的先后顺序,该图只是表达了一个顺序流程,活动图还可以表达分支结构。如果你以前曾学过流程图的话,你会发现活动图和流程图很相似。活动图可能是三种能表示流程的UML图中最接近我们思维习惯的一种。
计算内部一步步的控制流和数据流。它是动态视图,强调对象间的控制流程。
对象图 Objact Diagram 对象图往往只在需要描述复杂算法时才会使用,画出来的对象图往往不会只有一个对象。

功能模型:从用户的角度展示系统的功能,包括用例图。
对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。
动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

UML可分为两类:结构型和行为型。结构型的UML有:类图、对象图、构件图、部署图、包图;而行为型的图有活动图、状态机图、顺序图、通信图、用例图、时间图。UML又可以分为动态图和静态图。用例图属于动态还是静态图?这个是有分歧的。

构件图:也叫组件图。是用来描述软件内部物理组成的一种图。一辆汽车由轮子、发动机等物理部件组成,一个软件往往也是由很多“物理部件”(如:控件、重用构件等)组成。
待开发的系统需要与第三方的系统、原有系统、某些老系统等交互,这时可用构件图描述交互要求。
客户对软件设计有某些特殊要求,这时可用构件图来描述要求。
构件图有时不会单独使用,还会和部署图一起结合使用。

组合结构图:用来描述系统中某一部分(即“组合结构”)的内部结构,包括该部分与系统其它部分的交互点;它能够展示该部分内容“内部”参与者的配置情况。

通信图:可以看作是顺序图的另外一种表达形式,顺序图更强调先后顺序,通信图更强调相互之间的关系。

部署图:描述系统如何部署、本系统与其他系统是怎样的关系的一种图。部署图是分析IT基础架构、软件架构等方面需求的有利分析工具

时间图:表示某东西的状态随时间变化而变化的一种图。在实际工作中比较少使用。

交互概览图:交互图与活动图的混合物,可以把交互概览图理解为细化的活动图,在其中的活动都通过一些小型的顺序图来表示;也可以将其理解为利用标明控制流的活动图分解过的顺序图。 

UML的五个系统视图:

No 系统视图 说明
1 逻辑视图 表示设计模型中在架构方面具有重要意义的部分。如:类,包,子系统等的建模。
2 进程视图 对可执行线程进程进行的建模。描述并发同步。
3 实现建模 物理代码的文件和构件建模。
4 部署视图 把构件部署到一组物理节点上。
5 用例视图 最基本需求分析模型。

关键字:逻进实署用。

2.面向对象的分析:熟练掌握继承抽象,封装,多态的概念和用法。面向对象分析的基本概念;利用UML对系统需求建模,熟练掌握基于场景的建模。

继承 在某个类的层次关联中不同的类共享属性和操作的一种机制。
封装 对象之间只能通过接口进行信息交流,外部不能对对象中的数据随意的进行访问。
消息 只告诉接收对象需要完成什么操作,但并不能指示接受者怎样完成。
多态 同一个操作作用与不同的对象时可以有不同的解释。
OOA 直接以问题域中客观存在的事物或概念识别为对象,建立分析模型。问题域是指一个包含现实世界事物与概念的领域。OOA做什么,OOD是怎么做。OOA独立于具体实现。分析模型独立于具体实现,即不考虑与系统具体实现有关的因素。

面向对象分析的核心工作是建立系统的用例模型与分析模型。
建立分析模型包括的活动有:
1)发现领域对象,定义概念类
2)识别对象的属性
3)识别对象的关系
4)为类添加职责
5)建立交互图
分析模型是不断的演变的,在最初对现实建模的基础上,不断加入设计元素,演变成运行与计算机上的体系结构。

3.面向对象的设计:面向对象的设计方法,利用UML对软件设计建模;掌握面向对象程序设计;掌握设计模式。
面向对象设计方法:把分析阶段得到的需求转变成符合成本和质量要求的,抽象的系统实现方案的过程。
面向对象设计的基本准则:模块化,抽象,信息隐蔽,高内聚和低耦合。


面向对象设计模式的原则:单一指责原则,开放封闭原则,李氏替换原则,依赖倒置原则,接口隔离原则,组合重用原则,迪米特原则。

迪米特原则 最少知识法则,一个对象应当对其他对象有尽可能少的了解。降低类的访问权限。
组合重用原则 尽量使用组合而不是继承来达到重用的目的。
依赖倒置原则 高层模块不应该依赖于底层模块,两者应该都依赖于抽象.
李氏替换原则 子类型必须能够替换掉它们的基类型。子类具有扩展父类的责任。
单一职责原则 模块内聚性。一个模块只做单一的一件事。
开放封闭原则 对于扩展开放,对于修改封闭。

4.面向对象软件的测试:面向对象软件的测试层次。
面向对象有四个层次:算法层,类层,模版层,系统层。

算法层 测试类中定义的每个方法,相当于单元测试。
类层 封装在同一个类中的所有方法和属性之间的相互作用,相当于特有模块测试。
模版层 也称主题层,一组协同工作的类或对象之间的相互作用。相当于传统测试的系统测试。
系统层 把各个子系统组装成完整的面向对象软件系统,边组装边测试。

面向对象特有的封装,继承和多态机制,也给面向对象测试带来了一些新的特点,增加了测试和调试的难度。

5.设计模式:经典的Gof23种模式的定义和结构。


Coad的面向对象模式分三类:基本的继承和交互模式;面向对象系统的结构化模式;MVC框架相关模式。
代码模式:指明结合基本语言概念的可用方式;构成源码结构与命名规范基础;避免OOP语言的缺陷。
形式合约:描述框架设计的方法。强调组成框架对象间的相互关系。
设计模式目录分类:分为创建型模式,结构性模式,行为性模式。

是否与开发语言相关,就可以区别出惯用法和设计模式。设计模式是可以跨开发语言实现的,而惯用法是依赖于特定语言的。 


版权声明:本文为Last_Impression原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。