uml - 我应该把用例图中包含的用例放在我的类图中吗?
问题描述
因此,我为学生在线系统设计了一个用例。问题是我的一些基本案例被细分为许多包含的案例。例如,要生成标记表作为员工,我包含的用例是:选择学生、选择课程、选择模块、选择学期
在我的类图中,我应该为所有较小的用例或像 generateMarksheet 这样的主要用例提供方法吗?
解决方案
简而言之
不,这不是它的工作原理。
更多细节
一般没有直接映射
用例是关于从用户角度来看的需求。所以这是关于要解决的问题。通常,它们代表用户的高级目标,例如Manage students
或Subscribe to courses
。
您的系统类别是关于满足这些要求的技术解决方案。但是,一般而言,没有您所描述的直接映射:系统的行为来自系统内许多类之间的交互。
有一些方法可以连接两个世界
如果您想在两个世界之间建立联系,您可以遵循 UML 创始人提倡的统一流程:
- 你从你的用例开始
- 您为分析创建了一个ECB 类模型,其中为每个用例显示了一个控制类,为用例和参与者之间的每个关联显示了一个边界类,并为您可以从中派生的每个域对象显示了一个实体类叙述。
- 然后,您会更多地考虑边界和控制,看看是否有一些重叠,甚至重用。
- 然后你考虑设计你的系统。但细节水平会高得多。您最终会将自己的解决方案类映射到分析类以实现可追溯性:对于每个类,您都可以找到与其相关的用例。反之亦然。
但这种方法在敏捷环境中失去了吸引力。也因为解决方案设计经常受到所选架构模型的严重影响(例如 MVP、MVVM、干净架构……),并且这些模型与 ECB 具有不同的逻辑(尽管有一些明显和误导性的相似性),所以这个分析步骤是没有增加足够的价值。
此外,敏捷方法试图避免严格的 ECB 方法所需的大量前期分析。
推荐阅读
- xml - 经典 JScript 的正确文件嵌入
- windows-store-apps - 我必须做什么才能通过 Microsoft Store 应用程序提交过程的“商店列表”部分?
- java - 如何循环询问文件名,同时仍包含 FileNotFoundException 消息?
- spring - Spring Boot 未设置 cookie
- java - Tableview 仅显示添加到 observableList() 的最后一个输入
- javascript - Bootstrap 3 选项卡在本地工作但不在远程服务器上
- java - 无法在 spark 中使用 jar 中的 log4j.properties
- python - 在 Python 中更改 Pandas DataFrame 结构
- python-3.x - 计算数据框中的状态
- r - R中的向量化条件输出(可能使用purrr)?