3. 从”借书“用例脚本中识别核心概念,获取并列出领域潜在类、属性;建立并优化潜在类之间的关系,形成该用例的领域模型,完成(结构)静态建模
时间: 2024-04-07 13:30:56 浏览: 22
通过分析“借书”用例脚本,可以识别出以下核心概念:
领域潜在类:
- 用户(User)
- 图书(Book)
- 借书记录(BorrowRecord)
- 图书馆(Library)
属性:
- 用户:姓名、身份证号、联系方式
- 图书:书名、作者、出版社、ISBN、出版时间、价格、库存数量
- 借书记录:用户、借书时间、归还时间、图书
- 图书馆:馆名、地址、管理员
潜在类之间的关系:
- 用户和借书记录之间是一对多的关系,一个用户可以借多本书,一个借书记录只属于一个用户。
- 图书和借书记录之间也是一对多的关系,一本书可以被多个用户借阅,一个借书记录只对应一本书。
- 图书馆和图书之间是一对多的关系,一个图书馆可以有多本书,一本书只属于一个图书馆。
- 图书馆和借书记录之间是一对多的关系,一个图书馆可以有多条借书记录,一条借书记录只属于一个图书馆。
基于上述分析,可以建立如下的领域模型:
```
User:
- 姓名
- 身份证号
- 联系方式
- 借书记录
Book:
- 书名
- 作者
- 出版社
- ISBN
- 出版时间
- 价格
- 库存数量
- 借书记录
BorrowRecord:
- 用户
- 借书时间
- 归还时间
- 图书
Library:
- 馆名
- 地址
- 管理员
- 图书
- 借书记录
```
在该模型中,每个类都具有自己的属性,同时通过属性之间的关系,实现了类之间的联系。在进一步开发过程中,可以根据实际需求对该模型进行优化和调整,以满足具体的业务需求。
相关问题
执行者:学生/图书借阅者 前置条件:图书借阅者到达图书馆,且系统正常运行 后置条件:图书为“已被借阅”状态 基本路径: 1、执行者选择自助/人工方式借阅图书 2、执行者扫描图书二维码,系统识别图书信息 3、执行者扫描学生卡,系统识别学生个人信息、借阅信息 4、若系统识别到执行者无借阅资格,转到拓展路径1 5、若系统识别到执行者存在未缴费的罚款记录,转到拓展路径2 6、执行者确认借阅 7、系统修改执行者借阅信息以及书籍借阅状态,借阅完成 拓展路径 1、若执行者的借阅方式为人工办理,则工作人员为执行者办理借阅资格;否则,执行者需要到工作窗口办理借阅资格,完成资格后回到自助借阅办理机器处重新开始借阅的基本路径 执行者到工作窗口完成罚款补缴 从上面的”借书“用例脚本中识别核心概念,获取并列出领域潜在类、属性;建立并优化潜在类之间的关系,形成该用例的领域模型,完成(结构)静态建模
领域潜在类:
- 执行者(学生/图书借阅者)
- 图书
- 学生卡
- 借阅信息
- 罚款记录
属性:
- 执行者:姓名、学号、借阅资格、罚款记录
- 图书:书名、作者、出版社、ISBN、借阅状态
- 学生卡:持卡人信息、借阅信息
- 借阅信息:借阅日期、应还日期、实际归还日期
- 罚款记录:罚款金额、缴纳状态
领域模型:
```
执行者
- 姓名
- 学号
- 借阅资格
- 罚款记录
图书
- 书名
- 作者
- 出版社
- ISBN
- 借阅状态
学生卡
- 持卡人信息
- 借阅信息
借阅信息
- 借阅日期
- 应还日期
- 实际归还日期
罚款记录
- 罚款金额
- 缴纳状态
```
关系:
- 执行者与学生卡:一对一关系
- 学生卡与借阅信息:一对多关系
- 图书与借阅信息:一对多关系
- 执行者与罚款记录:一对多关系
优化:
- 执行者和学生卡之间的属性可以合并,成为一个人员信息类,包括姓名、学号、借阅资格、罚款记录。
- 学生卡和借阅信息之间的关系可以优化为一对一关系,即一个学生卡只对应一条借阅信息。
- 图书和借阅信息之间的关系可以优化为多对多关系,即一本图书可以对应多条借阅信息,一个借阅信息也可以对应多本图书。同时,借阅信息中的借阅日期和应还日期可以作为图书和执行者之间的关系,表示一本图书被哪个执行者在什么时间借阅,应该在什么时间还书。
pytest.main在循环中执行了多条用例,allure如何获取并展示所有循环过的用例
可以使用pytest.mark.parametrize装饰器来实现循环执行多条用例,然后在allure中使用@allure.title装饰器来展示每个用例的标题。例如:
```
import pytest
import allure
@allure.title("测试用例:{test_data}")
@pytest.mark.parametrize("test_data", ["data1", "data2", "data3"])
def test_case(test_data):
assert test_data != ""
if __name__ == "__main__":
pytest.main(["-s", "-v"])
```
在执行pytest.main时,可以使用--alluredir参数指定allure报告的输出目录,然后使用allure serve命令来启动allure服务并查看报告。例如:
```
pytest.main(["-s", "-v", "--alluredir=report"])
os.system("allure serve report")
```
这样就可以在allure报告中看到所有循环过的用例,并且每个用例都有对应的标题。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)