UML建模与软件工程

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

UML与软件工程的结合
前面小编学习了软件工程,也总结了一些相应的博客;现在学习了UML建模。那么这两者是怎样结合在一起的呢?请看下面的一张图:

在这里插入图片描述


一、项目开始阶段
这个阶段相当于软件工程中的可行性研究,主要任务是通过与用户的沟通,以确认待开发系统“要做什么”,并进行可行性研究,简单来说就是从企业的角度出发研究这个项目是否能做、是否能盈利,如果可以盈利就去做。
1.本阶段的重点:搞清项目的范围、必要的业务流程、项目的技术限制
2.项目的成功关键因素:要充分了解利益相关方对于整体项目成功与否最关切的问题是什么,并且评估问题和项目成败的风险是否相关。
这些方面在一开始就决定了此项目是否会成功,要不要进行这个项目。本阶段结束之后,如果通过可行性研究分析,那么便进入下一个阶段——需求分析。

二、需求分析阶段
本阶段主要是分析人员跟客户沟通,进行需求的收集和分析,然后形成需求规格说明书之类的文档,交由设计人员进行后续的系统设计工作。UML中的用例图正是用于需求收集和表达的有力工具,但是如何找出用例并非易事,这是因为从用户那里收集来的信息很可能是零散的、没有系统性的,要直接从中找出正确的用例非常困难。因此在分析用例之前,可以先对企业级的业务流程进行规划和设计,抓住企业的本质工作流,为后续进行详细的需求收集和用例分析做好准备。这就会引出UML中另一个重要的图—活动图,在本阶段的活动图是服务于用例图的。
要想进行业务流程设计,提到流程一定不能忘了活动图。活动图最适合用来描述企业的本质工作流。活动图的应用:
1.项目起始阶段,需求分析人员可以使用活动图,针对与项目相关的企业活动,与领域专家一起设计流程。
2.项目上线阶段,可以用利用起始阶段的活动图作为集成测试的重要参考依据
3.项目维护阶段,企业管理人员可以通过活动图了解企业现行的流程以及未来可以改善的方向。

三、系统设计阶段
前一阶段主要是使用用例图,后续的设计和开发阶段将围绕用例展开。系统设计就阶段的主要任务就是实现用例。
1. 系统的设计分为概要设计和详细设计。概要设计即总体设计,这个阶段是建立系统整体模型和架构的阶段,需要抽象整个系统的结构,建立类模型就出现了,用类模型来模拟真实的系统关系模型,解决功能需求的问题。类图的主要目的是在进行软件开发前,先对软件所需面对问题领域的本质作一个通盘性的了解,但类图在软件设计之初并不完全正确,必须通过后续的检查才能够逐渐趋近于真实世界的领域模型。类图形成之后,对象图也会随之而来,复杂的系统中为了保证类图的正确性可以用对象图来解释类图的设计,因为类是对象的抽象和组合,在面向对象的编程设计中,我们所有的编码都是面向对象的。
2. 类图和对象图都属于静态结构图,整个系统的静态结构呈现出来之后,这个框架已经有了,相当于有了躯体,这个时候我们需要给他注入血液让它动起来,所以这个时候需要交互图和行为图来描述整个系统的动态模型,其中行为图包括活动图和状态图,交互图包括时序图和协作图。
3. 接下来到了详细设计,本阶段用到最多的是类图和包图,会包含很多的类,必须对这些类进行分类,放置在不同的命名空间中,利用命名空间之间的关系图,来限制住不同分类对象之间的访问,这就是“包图”的使用场景。

四、实现阶段
有了前面的概要设计和详细设计作为铺垫,到系统实现阶段就变得很容易了。实现阶段的编码依据就需要用到上一阶段的系统设计模型,包括静态和动态。行为图和交互图成为了主要的编码依据,因为它们对系统实现有较强的逻辑性,具体代码映射最强的就是对象图,它在画图软件中可以直接生成代码。
五、测试阶段
单元测试:使用类图和类的规格说明书
集成测试:使用类图、包图、构件图、协作图
系统测试:使用用例图来测试系统功能
系统配置:使用部署图

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

http://chatgpt.dhexx.cn/article/H4w99v38.shtml

相关文章

UML建模工具介绍

1. PowerDesigner PowerDesigner 是业内首屈一指的数据建模工具,可让企业更轻松地直观展示、分析和操作元数据,从而更有效地实施企业信息体系结构。 2. StarUML StarUML(简称SU),是一种创建UML类图,是一种生成类图和其他类型的统一…

UML建模工具2021年8-11月更新(共15款)

UMLChina整理的UML建模工具列表请见http://www.umlchina.com/tools/search.aspx 最近一段时间更新: 工具最新版本:ConceptDraw DIAGRAM v15 更新时间:2021年11月16日 工具简介 以前的ConceptDraw Pro,1999年创建的老牌绘图工具…

如何做接口测试呢?接口测试有哪些工具【小白都会系列】

回想入职测试已经10年时间了,初入职场的我对于接口测试茫然不知。后来因为业务需要,开始慢慢接触接口测试。从最开始使用工具进行接口测试到编写代码实现接口自动化,到最后的测试平台开发。回想这一路走来感触颇深,因此为了避免打…

接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例

一、用例设计1 1、接口测试概念 接口测试:测试系统间接口的一种测试,测试的对象主要是接口,主要是测试外部系统与所测系统之间以及内部系统之间的交互点 2、接口测试方法 a、可以通过开发脚本代码进行测试 b、可以通过开源免费的接口调用…

做接口测试的流程一般是怎么样的?

在讲接口流程测试之前,首先需要给大家申明下:接口测试对于测试人员而言,非常非常重要,懂功能测试接口测试,就能在企业中拿到一份非常不错的薪资。 这么重要的接口测试,一般也是面试笔试必问。为方便大家更…

自动化测试——接口测试怎么做?

目录: 一、什么是接口? 二、接口测试流程 三、接口测试工具 四、接口测试技术点 五、总结 导读: 为什么要做接口测试 接口测试本质上是功能测试的一种,属于后端服务器测试。但是它的影响范围要远广于web,app层面。原因…

接口测试教程(一看就会)

前言 掌握了http协议,就掌握了接口测试 笔者在网络上看过不少接口测试教程,一上来就开始讲怎么操作工具,而不告诉读者为什么要这么操作。读者可能照猫画虎成功了,也可能操作失败了但不知为何出错。 因此,本文作为接口…

接口测试的价值(为什么要做接口测试)

目录 首先了解一下互联网的技术架构: 接口测试的必要性 接口测试不能取代UI的测试 首先了解一下互联网的技术架构: 按照端来划分可以分为两部分:移动端和服务端,各自的内容大概如下图所示 后端(服务端)…

接口测试的原理,什么是接口测试?为什么要做接口测试?如何开展接口测试?

什么是接口? 业内常说的接口一般指两种: API:应用程序编程接口,程序间的接口GUI:图形用户界面,人与程序的接口 软件接口测试中的接口特指API接口接口测试又称API测试 接口实例:系统与系统间…

接口测试到底怎么做,5分钟时间看完这篇文章彻底搞清楚

01、通用的项目架构 02、什么是接口 接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。…

手把手教你做接口测试

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 简答的说就是通过URL像服务器或者其他模块等&…

接口测试是什么?为什么要做接口测试?

前言 接口测试现在已经成为测试工程师的必备技能 我是常常安利身边的工程师一定要精通接口测试,注意,这里是精通,不是知道或了解。原因很简单,你点开招聘网站上各大公司对于测试工程师的要求,就能看到接口测试已经成为…

如何做接口测试

文章目录 前言一、什么是接口、接口测试1.接口2.接口测试 二、进行接口测试的基本流程1.需求获取2.测试计划编写3.测试用例设计、评审4. 测试执行5.测试报告、评估 三、接口测试思路四、接口测试工具 前言 一、什么是接口、接口测试 首先进行接口测试之前,先了解什…

接口测试需要怎么做?

接口测试需要怎么做? 什么是接口测试?接口测试到底测什么?如何进行接口测试?SSL-Pinning的问题及解决方案接口测试自动化回归测试接口自动化回归测试方案接口测试的更多可能参考文献 关注【郑大钱呀】[公][众][号],回复…

接口测试到底怎么做?

01 通用的项目架构 02 什么是接口 接口:服务端程序对外提供的一种统一的访问方式,通常采用HTTP协议,通过不同的url,不同的请求类型(GET、POST),不同的参数,来执行不同的业务逻辑。 …

一篇文章,教你彻底掌握接口测试!

一、什么是接口测试? 所谓接口,是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据库的对接。而接口测试,则是通过接口的不同情况下的输入,去对比输出,看看是否满足接口规范所规定的功能、…

ES7新特性async/await详解

一、async/await的用法 async用于修饰一个函数使函数返回一个Promise 对象。 async function testAsync() {return "hello async"; }const result testAsync(); console.log(result);await必须在用async修饰的函数中使用,await用于修饰一个语句&#x…

Elasticsearch 7新特性

Elasticsearch是一款强悍的分布式搜索和分析引擎,以下简称为ES,通过本文我简单介绍下ES7部分新特性,内容包括: 聚合查询的优化ES7中索引type被移除索引创建默认1个分片优化查询速度hits.total返回对象_flush和_force_merge不再强制…

ES7的新特性

1.新增了includes的数组查找方法 使用场景:确认数组中有我们需要查找的内容 在ES7之前,我们接触到的数组方法可以通过filter或者indexOf 如果使用filter 可以直接筛选之后输出,如果是indexOf则根据返回值来判断是否在当前数组中。 如果返回…

【Spring Cloud Alibaba】(二)微服务调用组件Feign原理+实战

系列目录 【Spring Cloud Alibaba】(一)微服务介绍 及 Nacos注册中心实战 本文目录 系列目录前言什么是RPC?Feign和OpenFeign都是什么?HTTP调用 vs Feign(RPC)调用单独使用Feign实战Feign核心源码解读Feign整体设计架构Spring Cl…