软件工程是软件开发设计的灵魂,是我们前进的思想性指导。它使我们的设计有法可依,有章可循。如果把软件开发比作建设一栋高楼,那么软件工程就是知道我们不至于在构建一座大楼的时候,最后不知不觉建成了鸡窝。而UML图正是对大楼主体架构的设计。
采用UML来设计软件系统时,大致可以分为三步:
第一步:描述需求
这时候需要用到的就是用例图,用例图的主要读者便是客户,从客户的角度来看我们所开发的系统。客户最关心的是系统能够提供的服务,也就是系统如何被使用,是否能完成他们需求。
第二步:根据需求建立系统的静态模型
这一步是为了构造系统的结构,此时用到的是类图,对象图,组件图和部署图4种图形,是标准建模语言UML的静态建模机制。
第三步:描述系统的行为
此时建立的模型可以执行,也可以表示执行时的时序状态或交互关系。它包括状态图、活动图、时序图和协作图4种图形,是标准建模语言UML的动态建模机制。
把UML应用到软件开发中的各个阶段进行分析:
1)需求分析
UML的用例图可以表示客户的需求。对外部的角色以及它们所需要的系统功能建模是通过用例建模来完成的。它们之间的关系建模被用于角色和用例。每个用例都指定了客户的需求。需求分析不仅要对软件系统进行而且对商业过程也要进行。
2)分析
考虑要解决的问题是分析阶段要做的工作。其描述可用UML的逻辑视图和动态视图来进行。系统的静态结构由类图进行描述,系统的动态特征由协作图序列图活动图和状态图进行描述。在分析阶段,不定义软件系统的解决方案的细节,只为问题领域的类建模。
3)设计
把分析阶段的结果扩展成技术解决方案是设计阶段主要的工作。提供技术基础结构——用户接口。数据库操作等是采用加入新的类完成的。在这个技术基础结构中,分析阶段的领域问题类被嵌入在其中。构造阶段的详细的规格说明是设计阶段的结果。
4)构造
把设计阶段的类转换成某种面向对象程序设计语言的代码,这是构造阶段的工作。在对UML表述的分析和设计模型进行转换时,最好不要直接把模型转化成代码。在早期阶段,模型是理解系统并对系统进行结构化的手段。
5)测试
单元测试、集成测试、系统测试和接受测试为系统测试的几个不同级别。不同的测试采用不同的UML图作为工作的基础。使用类图和类的规格说明是单元测试,典型地使用组件图和协作图的是集成测试,而系统测试实现用例图来确认系统的行为符合这些图中的定义。在系统测试阶段,UML模型还可以作为测试阶段的依据。如单元测试使用类图和类规格说明;集成测试使用组件图和协作图;系统测试用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。