UML建模与软件工程

前言

    前面几篇博文小编初步为大家分享了UML建模中的相关内容-事物、关系、九种图。那么,我们有没有想过为什么要学习UML建模呢习UML建模有什么用途呢何使用UML中的模型图呢文小编将带您一起走进这精彩而奇妙的世界。

正文

    UML是统一建模语言,它和前段时间小编学习的软件工程有着密不可分的关系。软件工程的终产物-文档、UML的终产物-九种图,这两者成为了软件系统开发的灵魂。
    举个简单例子,如果我想给自己的小宠物狗盖个窝,开始的时候我手头上有一堆木材、钉子、锤子、木锯、尺子等,在开工之前稍微计划一下,用半天或者一天的时间就可以完成。只要能容得下小宠物狗,能遮风挡雨,就算不美观、差一点也是可以的。     如果建筑师想建一座房子,他在打好地基之前就需要好好规划一下。要根据房屋所需者的要求,建筑师先要为将要建造的房子设计一张草图或者几张房屋建设的蓝图,要考虑各个房间的用途以及照明取暖设备的布局,供所需者参考。然后在准备材料,请工人建房子。    如果房地产开发商想要开发一个新楼盘,在正式动工之前,他需要对这个项目有一个合理的、详细的规划。有预算、有风险评估等,更是少不了该楼盘的图纸、模型图等。
    我们的软件系统开发,就类似于以上不同等级的盖房子一样。如果一个软件开发团队像建造狗窝一样进行软件开发,想要开发出高质量的软件通常情况下会是失败的。如果像建房子或者开发新楼盘一样开发软件,问题就不再是开始动工、写代码了,而是怎样正确动工、怎样正确写代码和怎样减少代码量了。这样高质量软件的开发就像建造房子、开发楼盘一样,变成了一个有结构化、有过程化和与工具相结合的问题了。
    我们在软件开发过程中,使用UML建模就相当于是给房子画蓝图、给新楼盘设计模型图。软件工程思想将软件开发过程划分了不同的阶段,每个阶段的文档也是给不同的人员看的。文档与UML图是软件开发过程的灵魂、是一个良好的软件开发团队中不可缺少的一部分。接下来具体说说它们之间的关联。
UML与软件工程的结合
前面小编学习了软件工程,也总结了一些相应的博客;现在学习了UML建模。那么这两者是怎样结合在一起的呢看下面的一张图:

UML建模与软件工程

一、项目开始阶段
这个阶段相当于软件工程中的可行性研究,主要任务是通过与用户的沟通,以确认待开发系统“要做什么”,并进行可行性研究,简单来说就是从企业的角度出发研究这个项目是否能做、是否能盈利,如果可以盈利就去做。
1.本阶段的重点:搞清项目的范围、必要的业务流程、项目的技术限制
2.项目的成功关键因素:要充分了解利益相关方对于整体项目成功与否最关切的问题是什么,并且评估问题和项目成败的风险是否相关。
这些方面在一开始就决定了此项目是否会成功,要不要进行这个项目。本阶段结束之后,如果通过可行性研究分析,那么便进入下一个阶段——需求分析。
二、需求分析阶段
本阶段主要是分析人员跟客户沟通,进行需求的收集和分析,然后形成需求规格说明书之类的文档,交由设计人员进行后续的系统设计工作。UML中的用例图正是用于需求收集和表达的有力工具,但是如何找出用例并非易事,这是因为从用户那里收集来的信息很可能是零散的、没有系统性的,要直接从中找出正确的用例非常困难。因此在分析用例之前,可以先对企业级的业务流程进行规划和设计,抓住企业的本质工作流,为后续进行详细的需求收集和用例分析做好准备。这就会引出UML中另一个重要的图—活动图,在本阶段的活动图是服务于用例图的。
要想进行业务流程设计,提到流程一定不能忘了活动图。活动图最适合用来描述企业的本质工作流。活动图的应用:
1.项目起始阶段,需求分析人员可以使用活动图,针对与项目相关的企业活动,与领域专家一起设计流程。
2.项目上线阶段,可以用利用起始阶段的活动图作为集成测试的重要参考依据
3.项目维护阶段,企业管理人员可以通过活动图了解企业现行的流程以及未来可以改善的方向。
三、系统设计阶段
前一阶段主要是使用用例图,后续的设计和开发阶段将围绕用例展开。系统设计就阶段的主要任务就是实现用例。
1. 系统的设计分为概要设计和详细设计。概要设计即总体设计,这个阶段是建立系统整体模型和架构的阶段,需要抽象整个系统的结构,建立类模型就出现了,用类模型来模拟真实的系统关系模型,解决功能需求的问题。类图的主要目的是在进行软件开发前,先对软件所需面对问题领域的本质作一个通盘性的了解,但类图在软件设计之初并不完全正确,必须通过后续的检查才能够逐渐趋近于真实世界的领域模型。类图形成之后,对象图也会随之而来,复杂的系统中为了保证类图的正确性可以用对象图来解释类图的设计,因为类是对象的抽象和组合,在面向对象的编程设计中,我们所有的编码都是面向对象的。
2. 类图和对象图都属于静态结构图,整个系统的静态结构呈现出来之后,这个框架已经有了,相当于有了躯体,这个时候我们需要给他注入血液让它动起来,所以这个时候需要交互图和行为图来描述整个系统的动态模型,其中行为图包括活动图和状态图,交互图包括时序图和协作图。
3. 接下来到了详细设计,本阶段用到最多的是类图和包图,会包含很多的类,必须对这些类进行分类,放置在不同的命名空间中,利用命名空间之间的关系图,来限制住不同分类对象之间的访问,这就是“包图”的使用场景。
四、实现阶段
有了前面的概要设计和详细设计作为铺垫,到系统实现阶段就变得很容易了。实现阶段的编码依据就需要用到上一阶段的系统设计模型,包括静态和动态。行为图和交互图成为了主要的编码依据,因为它们对系统实现有较强的逻辑性,具体代码映射最强的就是对象图,它在画图软件中可以直接生成代码。
五、测试阶段
单元测试:使用类图和类的规格说明书
集成测试:使用类图、包图、构件图、协作图
系统测试:使用用例图来测试系统功能
系统配置:使用部署图

结语

    以上内容是小编对近期学习到的软件工程与UML建模之间联系的一个简单梳理。暂时理解的也许有些片面,如有发现不当之处,欢迎您及时斧正。
*感谢您的阅读,希望对您能有所帮助*

来源:梦 * 蝶

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月1日
下一篇 2019年1月1日

相关推荐