UML九种图
通常我们选择UML来表现各种视图,以下列出了UML和各视图的对应关系
4+1视图 UML
场景视图 use case
逻辑视图 类图
开发视图 类图,组件图
进程视图 无完全对应
部署视图 部署图
对于逻辑视图和开发视图所应包含的内容常常会觉得很难区分两者间的明显界限。逻辑视图包含更多的分析模型与实现技术本身相关性应该较少,如业务对象模型及其扩展。而开发视图则会与实现技术紧密相关。
一.九种图
UML中的图不止九种,甚至相同的图会有不同名称,这里的九种图是被普遍认可的基础图。
UML的九种图分别为:用例图、类图、对象图、状态图、构件图、部署图、协作图、交互序列图、活动图。
1) 用例图(use
casediagrams):在软工需求分析阶段用来描述用户需求,从用户角度描述系统的功能,
并指出各功能的执行者,强调谁在使用系统,系统完成什么功能。
2)
类图(classdiagrams):定义系统中的类,描述类的内部结构和类与类的关系。主要用于描述系统静态结构。
3)
对象图(objectdiagrams):对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及对象之间的关系。
4)
组件图(componentdiagrams):描述代码构件的物理结构以及各构件之间的依赖关系。
5) 部署图(deploymentdiagrams):定义系统中硬件的物理体系结构。
6)
状态图(statechartdiagrams):描述类的对象所有可能的状态以及事件发生时的状态的转移条件。通常为类图的补充。
7) 活动图(activitydiagrams)描述用例活动以及活动间的约束关系。
8)
序列图(sequencediagrams)描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序。
9)
协作图(collaborationdiagrams):描述对象之间的合作关系,侧重说明对象之间有消息传递。
二.对于九种图的划分方式
三、 UML与软件工程对应关系
如果把软件开发比作学校建一座高楼,那么软件工程就是知道我们怎么盖,不至于在构建一座大楼的时候,最后不知不觉变成四不像。而UML图正是对大楼主体架构的设计。软件工程是软件开发设计的灵魂,是我们前进的思想性指导。它使我们的设计有法可依,有章可循。比如我们学校现在盖的大楼,必须要有蓝图来规划哪块哪块盖什么楼,什么类别的都是前期需要用例建模来具体协商的。
具体步骤:
1.前期的需求分析描述需要用例图,用例图的使用者是学校,了解这栋大楼的主体结构,功能是什么,教学楼还是宿舍。学校最关心的是楼质量问题和安全性,是否能够满足学生的基本使用。
2.进一步需要设计楼内部的具体结构,此时就需要类图,对象图,组件图和部署图来制定标准化的结构,详细的描述内部需求和具体设施的安排,为具体施工指明工作点。
3.接下来就需要安排具体的人员开工,活动图安排各个工种在自己的岗位工作;状态图安排施工设备的使用情况,表明设备的忙碌和空闲状态;而具体施工步骤需要工程安排每一块的开始,不能先上后下,从基地开始。此
外还需要各个施工队的协作,连接性是这个工程的最后标志,各个团队之间必须密切协作才能完成整体的。
【详解】
1、需求分析
用例图用来建模客户的需求。角色以及系统功能建模是用例建模来画的。它们之间的关系建模被用于角色和用例。每个用例都代表了客户的需求。需求分析不仅适用于软件系统进行而且适用于建筑工程行业。
2、系统分析
此阶段是寻找问题 -就是找刺的,需要考虑系统可能遇到的问题是主要的工作。借助于逻辑视图和动态视图实现。系统的静态由类图来建模,系统的动态则是协作图、序列图、活动图和状态图建模。只是列出系列的问题和稍微一点解决思路,不作出详细的解决方案。只是大方向上的做出引导,提纲,具体细节需要下一阶段结合实际分析。
3、系统设计
将分析阶段列出的问题进行汇总,根据提纲作出具体、细节办法。进而把分析结果扩展为技术层次的解决依据,不在停留在文字方面,需要依靠用户接口提供技术基础结构。数据库在这个技术基础结构中,分析阶段的领域问题类被嵌入在其中。构造阶段的详细的规格说明是设计阶段的结果。
4、系统实现(构造)
把设计阶段的类转换成某种面向对象程序设计语言的代码。只能在构造阶段实现代码的转变,其他阶段不能!在对UML表述的分析和设计模型进行转换时,最好不要直接把模型转化成代码。在早期阶段,模型是理解系统并对系统进行结构化的手段。
5、系统测试
根据测试的先后顺序排序:单元测试、集成测试、系统测试和接受测试。不同的测试采用不同的UML图作为工作的基础。类图和类的规格说明是单元测试;组件图和协作图的是集成测试;系统测试实现用例图来确认系统的行为符合这些图中的定义。
在系统测试阶段,UML模型还可以作为测试阶段的依据。如单元测试使用类图和类规格说明;集成测试使用组件图和协作图;系统测试用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。