深色模式
Software Design and Modeling 软件设计与建模简介 🖥️
目标 🎯
在观看本视频后,您将能够:
比较和对比 “结构化设计” 和 “行为模型” 的区别;
描述 统一建模语言(UML)及其在软件设计中的优势;
讨论 交互图与状态转移图的目的与应用。

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

结构化设计与行为模型 🔧
结构化设计 (Structured Design)
结构化设计将软件问题概念化为组织良好的较小解决元素,称为模块和子模块。结构化设计强调组织结构,以实现解决方案。
一个结构良好的设计应包含具有高度内聚性和松耦合性的模块。
内聚性 (Cohesion):指所有功能相关的元素被组织在一起。
耦合性 (Coupling):指不同模块之间的通信。为了实现松耦合,模块应弱关联,这样一个模块的变化对其他模块的影响最小。

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

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

统一建模语言(UML) 📐
当开发复杂的互联模块的系统时,记住不同元素之间的关系、行为和层次结构可能会很困难。统一建模语言(UML) 是一种用来可视化复杂软件系统架构、设计和实现的方法。
UML 是一种标准化的建模语言,可以贯穿整个开发过程使用。
UML图可以分为两类:结构图和行为图。
UML 是与编程语言无关的,因此无论开发者使用哪种编程语言,都可以方便地理解和应用。

UML的优势 💡
使用UML来传达架构、行为和结构与开发团队的沟通有多方面的优势:
节省时间和成本:通过在编写代码之前规划功能,UML可以帮助节省时间和资源。
帮助新成员快速上手:图示可以帮助新团队成员或换团队的开发者快速理解项目。
促进沟通:UML图可以帮助技术和非技术团队之间的沟通。
简化代码导航:有了系统的可视化表示,开发者可以更轻松地理解和导航源代码,了解各模块之间的关系。

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

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

结论 🎬
通过本视频,您了解了:
结构化设计 将软件问题拆分为组织良好的更小的解决模块。
行为模型 描述了系统的行为,但并不涉及其具体实现。
开发UML图能节省时间和资源,帮助开发者快速了解项目、规划功能并轻松导航源代码。
状态转移图 是一种行为模型,包含描述系统不同状态及其变化事件的集合。
交互图 描述了交互对象之间的通信方式。
希望这些概念能帮助您更好地理解软件设计与建模!
