UML建模与软件工程
前言 |
前面几篇博文小编初步为大家分享了UML建模中的相关内容-事物、关系、九种图。那么,我们有没有想过为什么要学习UML建模呢?学习UML建模有什么用途呢?如何使用UML中的模型图呢?本文小编将带您一起走进这精彩而奇妙的世界。
正文 |
UML是统一建模语言,它和前段时间小编学习的软件工程有着密不可分的关系。软件工程的终产物-文档、UML的终产物-九种图,这两者成为了软件系统开发的灵魂。
举个简单例子,如果我想给自己的小宠物狗盖个窝,开始的时候我手头上有一堆木材、钉子、锤子、木锯、尺子等,在开工之前稍微计划一下,用半天或者一天的时间就可以完成。只要能容得下小宠物狗,能遮风挡雨,就算不美观、差一点也是可以的。 如果建筑师想建一座房子,他在打好地基之前就需要好好规划一下。要根据房屋所需者的要求,建筑师先要为将要建造的房子设计一张草图或者几张房屋建设的蓝图,要考虑各个房间的用途以及照明取暖设备的布局,供所需者参考。然后在准备材料,请工人建房子。 如果房地产开发商想要开发一个新楼盘,在正式动工之前,他需要对这个项目有一个合理的、详细的规划。有预算、有风险评估等,更是少不了该楼盘的图纸、模型图等。
我们的软件系统开发,就类似于以上不同等级的盖房子一样。如果一个软件开发团队像建造狗窝一样进行软件开发,想要开发出高质量的软件通常情况下会是失败的。如果像建房子或者开发新楼盘一样开发软件,问题就不再是开始动工、写代码了,而是怎样正确动工、怎样正确写代码和怎样减少代码量了。这样高质量软件的开发就像建造房子、开发楼盘一样,变成了一个有结构化、有过程化和与工具相结合的问题了。
我们在软件开发过程中,使用UML建模就相当于是给房子画蓝图、给新楼盘设计模型图。软件工程思想将软件开发过程划分了不同的阶段,每个阶段的文档也是给不同的人员看的。文档与UML图是软件开发过程的灵魂、是一个良好的软件开发团队中不可缺少的一部分。接下来具体说说它们之间的关联。
UML与软件工程的结合
前面小编学习了软件工程,也总结了一些相应的博客;现在学习了UML建模。那么这两者是怎样结合在一起的呢?请看下面的一张图:
一、项目开始阶段
这个阶段相当于软件工程中的可行性研究,主要任务是通过与用户的沟通,以确认待开发系统“要做什么”,并进行可行性研究,简单来说就是从企业的角度出发研究这个项目是否能做、是否能盈利,如果可以盈利就去做。
1.本阶段的重点:搞清项目的范围、必要的业务流程、项目的技术限制
2.项目的成功关键因素:要充分了解利益相关方对于整体项目成功与否最关切的问题是什么,并且评估问题和项目成败的风险是否相关。
这些方面在一开始就决定了此项目是否会成功,要不要进行这个项目。本阶段结束之后,如果通过可行性研究分析,那么便进入下一个阶段——需求分析。
二、需求分析阶段
本阶段主要是分析人员跟客户沟通,进行需求的收集和分析,然后形成需求规格说明书之类的文档,交由设计人员进行后续的系统设计工作。UML中的用例图正是用于需求收集和表达的有力工具,但是如何找出用例并非易事,这是因为从用户那里收集来的信息很可能是零散的、没有系统性的,要直接从中找出正确的用例非常困难。因此在分析用例之前,可以先对企业级的业务流程进行规划和设计,抓住企业的本质工作流,为后续进行详细的需求收集和用例分析做好准备。这就会引出UML中另一个重要的图—活动图,在本阶段的活动图是服务于用例图的。
要想进行业务流程设计,提到流程一定不能忘了活动图。活动图最适合用来描述企业的本质工作流。活动图的应用:
1.项目起始阶段,需求分析人员可以使用活动图,针对与项目相关的企业活动,与领域专家一起设计流程。
2.项目上线阶段,可以用利用起始阶段的活动图作为集成测试的重要参考依据
3.项目维护阶段,企业管理人员可以通过活动图了解企业现行的流程以及未来可以改善的方向。
三、系统设计阶段
前一阶段主要是使用用例图,后续的设计和开发阶段将围绕用例展开。系统设计就阶段的主要任务就是实现用例。
1. 系统的设计分为概要设计和详细设计。概要设计即总体设计,这个阶段是建立系统整体模型和架构的阶段,需要抽象整个系统的结构,建立类模型就出现了,用类模型来模拟真实的系统关系模型,解决功能需求的问题。类图的主要目的是在进行软件开发前,先对软件所需面对问题领域的本质作一个通盘性的了解,但类图在软件设计之初并不完全正确,必须通过后续的检查才能够逐渐趋近于真实世界的领域模型。类图形成之后,对象图也会随之而来,复杂的系统中为了保证类图的正确性可以用对象图来解释类图的设计,因为类是对象的抽象和组合,在面向对象的编程设计中,我们所有的编码都是面向对象的。
2. 类图和对象图都属于静态结构图,整个系统的静态结构呈现出来之后,这个框架已经有了,相当于有了躯体,这个时候我们需要给他注入血液让它动起来,所以这个时候需要交互图和行为图来描述整个系统的动态模型,其中行为图包括活动图和状态图,交互图包括时序图和协作图。
3. 接下来到了详细设计,本阶段用到最多的是类图和包图,会包含很多的类,必须对这些类进行分类,放置在不同的命名空间中,利用命名空间之间的关系图,来限制住不同分类对象之间的访问,这就是“包图”的使用场景。
四、实现阶段
有了前面的概要设计和详细设计作为铺垫,到系统实现阶段就变得很容易了。实现阶段的编码依据就需要用到上一阶段的系统设计模型,包括静态和动态。行为图和交互图成为了主要的编码依据,因为它们对系统实现有较强的逻辑性,具体代码映射最强的就是对象图,它在画图软件中可以直接生成代码。
五、测试阶段
单元测试:使用类图和类的规格说明书
集成测试:使用类图、包图、构件图、协作图
系统测试:使用用例图来测试系统功能
系统配置:使用部署图
结语 |
以上内容是小编对近期学习到的软件工程与UML建模之间联系的一个简单梳理。暂时理解的也许有些片面,如有发现不当之处,欢迎您及时斧正。
*感谢您的阅读,希望对您能有所帮助*
UML建模与软件工程相关推荐
- 实验三 UML建模(软件工程)
(一)实验目的要求 1. 了解UML的特点 2. 熟悉掌握UML中各类图的画法 (二)实验材料和仪器设备 1. PC机 2.UML绘图环境 (三)实验内容 1. 银行计算机储蓄系统的工作过程大致如下: ...
- 浅析软件工程中的UML建模技术
一.基本信息 标题:浅析软件工程中的UML建模技术 时间:2018 出版源:电子世界 领域分类:软件工程:UML建模技术:需求分析 二.研究背景 问题定义:软件工程中UML建模技术的研究 难点:明确软 ...
- 耦合关系从强到弱顺序_18秋东大学期《软件工程与UML建模》在线作业123标准满分...
18秋东大学期<软件工程与UML建模>在线作业1 一. 单选题 (共 15 道试题,共 75 分) 1.在下列内聚性序列中,复合从强到弱排列的是( ). A.偶然.瞬时.功能.通信.逻辑. ...
- 「武汉理工大学 软件工程复习」第四章 | 面向对象 UML建模
目录 [对象.属性.方法] [面向对象分析与设计] 专有名字的缩写 面向对象的分析 OOA 面向对象的设计 OOD UML介绍 [面向对象设计原则] SOLID原则 OO设计时需要注意的一些问题 CR ...
- 软件工程----UML建模
UML(Unified Modeling Language)即统一建模语言,是用于系统可视化建模语言.它是国际统一软件建模标准,融合了OMT.OOSE.Booch方法中的建模语言. UML是一种可视化 ...
- UML建模与软件开发过程模型
UML建模与软件开发过程模型 现在谈到软件开发过程,大家可能也不会陌生,学过软件工程的人都能随口说上几个软件过程模型,现在要把这两种不同的模型拿到一起来讨论,一方面是软件开发的实际需要,另一方面也是U ...
- 【转】专家推荐 13个优秀的UML建模工具软件
[转]专家推荐 13个优秀的UML建模工具软件 UML建模工具的概念相信大家应该有所了解,这里向大家介绍几个UML建模工具软件使用,希望通过本文的介绍你对UML建模工具软件有一定的认识. 本文和大家重 ...
- UML建模 ——————基于网上书店管理系统
--基于咪咕云APP系统的UML建模分析 专 业 名 称: : 软件工程 班 级: : 一班 课 程: : UML建模 人 ...
- 整理UML建模概念和图形~(啥?程序员不再写代码,变成画图工程师?)
前言: 工程图纸对于工程师的重要性就不需要我多说了吧,对事物建模也是很重要的.我们在软件工程部分说过"建造一个狗窝和一栋大厦是完全不一样的",很多时候如果你有很好的idea,但是对 ...
- 以美萍服装管理软件为例的UML建模
编号: 19757 软件框架文档 Software Frame Documents for [美萍服装销售管理系统] [mpfz] Version [3.4] approved Prepared ...
最新文章
- python 标准差Std() 参数决定有偏或无偏
- 目录页码错误未定义书签怎么解决_目录页码对不齐应该怎么办?这2种方法,工作效率大增...
- 2008年具有高校自主选拔录取资格的考生名单 - 江苏版
- Xcode 证书生成、设置、应用(转)
- SQL Server 2005 express下载地址
- 二氧化硫填料吸收塔实验装置QY-HJGC06
- matlab powergui在哪儿,powergui模块在哪
- VMware虚拟机下Ubuntu系统安装VMware Tools
- c语言论坛编程,[原创]了解c语言
- CAD中怎么设置CAD标注样式?CAD看图软件教程
- 基于单片机的多功能定时器
- 互联网巨头“死磕”不放弃的社交赛道还有生意吗?
- kubernetes HPA
- ffmpeg 设置关键帧
- Python+Vue计算机毕业设计宁夏葡萄酒销售系统g80g5(源码+程序+LW+部署)
- 卡巴斯基2011 汉化增强版 KIS/KAV 11.0.1.400
- 基于opencv+dlib的face morph
- HC32L110(五) Ubuntu20.04 VSCode的Debug环境配置
- 电脑术语之三显卡术语
- 推荐6款无可挑剔的电脑软件,你用过几款?