软件工程之静态建模

静态模型:有助于设计包、类名、属性和方法特征标记(但不是方法体)的定义,例如UML类图。

用例的关系:

扩展关系:

扩展关系允许一个用例(可选)扩展另一个用例(基用例)提供的功能。注意扩展只能在特定的设计点发生,称这个点为扩展点(通常为测试条件点,行为在该点开始分支)。

基用例路径本身是完整的,原来可能是一条扩展路径。

寻找用例中的特殊场景:用例中的特殊场景点,(例如,购物,包括支付卡,现金,优惠卷等),(例如,定价,包括打折的业务规则)。

包含关系:阿斯蒂

何时使用包含关系:

某些步骤在多个用例重复出现,且单独形成价值,即用例之间的公共功能。

已经有现成的公共用例存在,只需拿来使用即可。

用例的步骤较多时,可以用Include简化(慎用)

泛化关系:

用例之间的泛化:一个任务与该任务的一个特殊版本之间的关系。

例子:在买票系统中,个人购买和团体购买都是买票的特例。

采用关系不同,文档结构不同(如果改成extend,则表示识别用户用例中的另外一条路径)

讨论:泛化与扩展的区别

如果打算描述一个根据"运行时"条件有可能在某一时刻增加的附加行为,则可以使用扩展。

如果希望标记整个任务的一个特定版本,就应该用泛化。

类图

类图,描述类和类之间的静态关系。

类图由类及其关系组成,类包含属性和操作,类可以和其它类之间具有关系。

类图是定义其它图的基础,在类图的基础上,可以用状态图、合作图等进一步描述系统其他方面的特性。

对象间关系-关联关系

普通关联:只要类之间存在连接关系

递归关联:类与自身的关联,例如在一个公司中,一个老板管理多个工人,而老板和工人都属于员工类。

多重关联:多个类之间的关联,如工厂的机器、工人、产品

有序关联:一般在重数为"多"的关联端的对象是一个无需的集合,如果要求这些对象是有序的,则在"多"端用{ordered}来指明,如目录和文件

聚集,表示类间的包含,组成关系

共享聚集,组成课题组的人,可以是另一个课题组成员。

组合聚集

组成类率属于整体类,整体类不存在,不分类也不存在。

泛化关系

泛化表示类之间的关系是"一般"与"特殊"的关系。泛化也称为继承,在UML中对泛化有3个要求:

特殊元素应具有一般元素的所有特性,如:关联、操作、属性

特殊元素还包含额外信息

允许使用一般元素实例的地方,也应能使用特殊元素

相关推荐
努力努力再努力FFF2 分钟前
题目:2026AI 证书选购指南:不同基础、不同诉求如何抉择
学习
只愿云淡风清14 分钟前
正则表达式学习笔记-01 正则表达式的来源
笔记·学习·正则表达式
m4Rk_37 分钟前
【论文阅读】Agent 记忆机制(97):MCMA——让 Agent 学会如何抽象记忆,实现跨任务经验迁移
论文阅读·人工智能·学习·开源·github
晓德40 分钟前
7、LLM 模型是怎么训练生成的?(4)指令微调
人工智能·学习·算法·信息安全
ljt272496066141 分钟前
Vue笔记(十三)--mixin
vue.js·笔记
问天_观心1 小时前
Mistral-7B QLoRA 实战(二):官方权重转换、4-bit NF4 加载与 Base Model 基线测试
人工智能·深度学习·学习·大模型·transformer
谢亮_vipxieliang1 小时前
2026 年开发工作流全景:工具链与方法论
软件工程
AOI小白新手上路1 小时前
深度学习项目模板与机器学习软件工程(MLSE)实践笔记
深度学习·机器学习·软件工程
启观川1 小时前
数据结构与算法 -第 3 章 常用算法-回溯算法
数据结构·笔记·python·算法
andrsted1 小时前
练题簿在线免费刷题:选择、填空、简答与排序,多种题型练出不同的掌握程度
学习·微信小程序·小程序·学习方法·刷题