Skip to content

Software Design and Modeling 软件设计与建模简介 🖥️

目标 🎯

在观看本视频后,您将能够:

  • 比较和对比 “结构化设计” 和 “行为模型” 的区别;

  • 描述 统一建模语言(UML)及其在软件设计中的优势;

  • 讨论 交互图与状态转移图的目的与应用。

image 41.png


软件设计定义 🛠️

软件设计是一个过程,在此过程中,软件的结构组件和行为属性会在开发之前被记录下来。设计过程中的关键活动之一是对软件进行建模,以表达其设计。
这包括创建软件解决方案及其子组件的可视化或图示化表示,以及它们之间的交互。
可以使用简单的流程图或更标准化的方法如UML来进行建模。

image 42.png

结构化设计与行为模型 🔧

结构化设计 (Structured Design)

结构化设计将软件问题概念化为组织良好的较小解决元素,称为模块子模块。结构化设计强调组织结构,以实现解决方案。
一个结构良好的设计应包含具有高度内聚性松耦合性的模块。

  • 内聚性 (Cohesion):指所有功能相关的元素被组织在一起。

  • 耦合性 (Coupling):指不同模块之间的通信。为了实现松耦合,模块应弱关联,这样一个模块的变化对其他模块的影响最小。

image 43.png


例如,在一个简化的账单系统中,各模块按层次结构排列并相互通信,“账单”模块是主要模块,其他的矩形框代表其子模块(如保险验证提交索赔输出总额)。箭头表示系统中数据流动的方向。

image 44.png


行为模型 (Behavioral Models)

行为模型描述系统的行为,但不解释其实现方式。系统的整体行为可以通过行为模型进行传达。
有多种不同的UML图可以用来传达系统的行为,我们将讨论两种:状态转移图交互图

image 45.png


统一建模语言(UML) 📐

当开发复杂的互联模块的系统时,记住不同元素之间的关系、行为和层次结构可能会很困难。统一建模语言(UML) 是一种用来可视化复杂软件系统架构、设计和实现的方法。

UML 是一种标准化的建模语言,可以贯穿整个开发过程使用。
UML图可以分为两类:结构图行为图
UML 是与编程语言无关的,因此无论开发者使用哪种编程语言,都可以方便地理解和应用。

image 46.png


UML的优势 💡

使用UML来传达架构、行为和结构与开发团队的沟通有多方面的优势:

  1. 节省时间和成本:通过在编写代码之前规划功能,UML可以帮助节省时间和资源。

  2. 帮助新成员快速上手:图示可以帮助新团队成员或换团队的开发者快速理解项目。

  3. 促进沟通:UML图可以帮助技术和非技术团队之间的沟通。

  4. 简化代码导航:有了系统的可视化表示,开发者可以更轻松地理解和导航源代码,了解各模块之间的关系。

image 47.png


行为模型图:状态转移图与交互图 🌀

状态转移图 (State Transition Diagram)

状态转移图是一种行为模型,展示了系统的不同状态及导致状态变化的事件。
以下是一个示例:模型描述了一个病人在诊所看病的过程。系统状态包括**“等待”、“测试”“与医生会面”**,箭头表示从一个状态转移到另一个状态的可能路径,并指明触发状态变化的事件。

image 48.png


交互图 (Interaction Diagram)

交互图用于建模软件系统的动态特性,帮助可视化对象及其关系。
在这里展示的是一种交互图——序列图 (Sequence Diagram),它显示了对象间的通信,并按时间顺序排列。
例如,这里展示的是病人在在线门户中预约的过程。它是另一种行为类UML图。

image 49.png


结论 🎬

通过本视频,您了解了:

  • 结构化设计 将软件问题拆分为组织良好的更小的解决模块。

  • 行为模型 描述了系统的行为,但并不涉及其具体实现。

  • 开发UML图能节省时间和资源,帮助开发者快速了解项目、规划功能并轻松导航源代码。

  • 状态转移图 是一种行为模型,包含描述系统不同状态及其变化事件的集合。

  • 交互图 描述了交互对象之间的通信方式。

希望这些概念能帮助您更好地理解软件设计与建模!

image 50.png