需求改进&系统设计
前言
这个作业属于哪个课程 | 2021软件代码开发技术 |
---|---|
这个作业要求在哪里 | 需求改进&系统设计 |
这个作业的目标 | 修改完善规格说明书,并运用面向领域建模的方法完成系统设计;编写代码开发计划和测试计划 |
需求改进(面向领域建模)
领域驱动设计
领域驱动设计中的“领域”是指“应用程序逻辑所围绕的知识和活动领域”,即在软件领域中被称为“业务逻辑”的东西。在领域驱动设计中,业务逻辑被视为软件的心脏。
领域驱动设计过程
领域对象模型构建
(1)设计领域对象模型
- 概念类:客户(User)、自由职业者(Professional)、项目(Project)、时间表(Schedule)
- 添加属性和方法:
(2)关联领域对象模型
分析设计功能模块
功能模块 | 实现功能 |
---|---|
登录 | 登录 |
项目管理 | 新增项目信息 |
删除项目信息 | |
查询项目信息 | |
修改项目信息 | |
搜索项目信息 | |
客户管理 | 新增客户信息 |
删除客户信息 | |
查询客户信息 | |
修改客户信息 | |
搜索客户信息 | |
自由职业者管理 | 新增自由职业者信息 |
删除自由职业者信息 | |
查询自由职业者信息 | |
修改自由职业者信息 | |
搜索自由职业者信息 | |
导出自由职业者信息 | |
时间表维护 | 新增时间表信息 |
删除时间表信息 | |
查询时间表信息 | |
修改时间表信息 | |
系统设置 | 查询安全日志 |
查询审计日志 |
系统设计
架构分层
- 出租服务管理系统采用了前后端分离的开发模式——后端仅返回前端所需的数据,前端负责渲染HTML页面。在这种模式中,后端将每个功能块划分为多个接口;前端通过访问接口来获取数据,并将数据展示给用户。
- 领域建模的分层架构则采用了依赖倒置的原则——高层模块不应该依赖于低层模块,两者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
领域、子域、限界上下文
- 用户子域:超管登录
- 项目子域:完成项目管理和搜索的功能
- 客户子域:完成客户管理和搜索的功能
- 自由职业者子域:完成自由职业者管理、搜索和导出的功能
- 时间表子域:完成时间表管理的功能
- 安全和审计子域:完成查询日志的功能
软件结构设计层次图(领域服务和应用)
代码开发任务计划
模块开发计划
功能模块 | 分解功能 | 优先级 | 开发顺序(从1开始) | 开发时间(单位h) |
---|---|---|---|---|
登录 | 登录 | 高 | 1 | 3 |
项目管理 | 中 | 4 | ||
增、删、改 | 5 | |||
查询、搜索 | 3 | |||
客户管理 | 中 | 5 | ||
增、删、改 | 5 | |||
查询、搜索 | 3 | |||
自由职业者管理 | 高 | 2 | ||
增、删、改 | 5 | |||
查询、搜索 | 3 | |||
导出 | 3 | |||
时间表维护 | 高 | 3 | ||
增、删、查、改 | 7 | |||
系统设置 | 低 | 6 | ||
查询安全日志 | 3 | |||
查询审计日志 | 3 |
甘特图
测试计划
一、 引言
1.1 项目背景
现有一家公司提供服务出租,自身有一些员工,另外还有很多自由职业者作为服务商存在。公司目前使用Excel工作表来管理他们的客户(自由职业者),时间表等。Excel解决方案无法很好地进行扩展。它无法应对多用户使用的场景,也不提供安全和审计日志。因此他们决定构建一个新的基于Web的解决方案。
目前该项目的web解决方案已基本完成开发阶段,现推进测试阶段。
1.2 参考资料
1.3 有关项目人员组成
- 项目前期负责人:Ying
- 开发负责人:Ying
- 测试负责人:Ying
二、 任务概述
2.1 测试范围
测试出租服务管理系统的所有功能和非功能模块。
2.2 测试目标
测试出租服务管理系统的功能是否正确,是否基本满足用户的需求。
2.3 测试需求分析
三、 测试策略
3.1 测试人员分工
- 测试计划编写:Ying
- 单元测试:Ying
- 集成测试:Ying
- 压力测试:Ying
3.2 测试方法
采用黑盒测试方法,整个过程采用自底向上,逐个集成的办法,依次进行单元测试和集成测试,测试用例的设计应包括合理和不合理的输入条件。考虑到服务器的并发量,应同步进行压力测试。
3.3 测试环境
出租服务管理系统属web端开发,适配于Chrome浏览器、Firefox浏览器、Microsoft Edge等多种主流浏览器。
3.4 测试阶段计划
测试方法 | 测试内容 | 测试时间 |
---|---|---|
单元测试 | 登录模块、项目管理模块、客户管理模块、自由职业者管理模块、时间表维护模块、系统设置模块 | 3天 |
集成测试 | 出租服务管理系统 | 3天 |
压力测试 | 服务器及后台代码的压力测试 | 1天 |
3.5 测试用例设计
角色 | 测试模块 | 测试功能 | 预期结果 | 实际结果 | 主流浏览器使用情况 |
---|---|---|---|---|---|
超管、职业者、客户 | 登录 | 登录 | |||
超管、客户 | 项目管理 | 新增项目信息 | |||
超管 | 删除项目信息 | ||||
超管、职业者、客户 | 查询项目信息 | ||||
超管、职业者 | 修改项目信息 | ||||
超管 | 客户管理 | 新增客户信息 | |||
超管 | 删除客户信息 | ||||
超管 | 查询客户信息 | ||||
超管 | 修改客户信息 | ||||
超管 | 搜索客户信息 | ||||
超管 | 自由职业者管理 | 新增自由职业者信息 | |||
超管 | 删除自由职业者信息 | ||||
超管、职业者 | 查询自由职业者信息 | ||||
超管、职业者 | 修改自由职业者信息 | ||||
超管、职业者 | 搜索自由职业者信息 | ||||
超管 | 导出自由职业者信息 | ||||
超管、职业者 | 时间表维护 | 新增时间表信息 | |||
超管、职业者 | 删除时间表信息 | ||||
超管、职业者、客户 | 查询时间表信息 | ||||
超管、职业者 | 修改时间表信息 | ||||
超管 | 系统设置 | 查询安全日志 | |||
超管 | 查询审计日志 |
四、 测试资源
4.1 硬件资源需求
- 一台可正常使用的电脑
4.2 软件资源需求
- 电脑配置有Chrome浏览器、Firefox浏览器、Microsoft Edge等多种主流浏览器中的一种
4.3 测试环境需求
- 服务器运作正常,网络正常
4.4 测试人员需求
- 测试内容需覆盖整个系统,包括功能需求和非功能需求
- 测试过程中秉持认真负责的态度
五、 风险评估
5.1 人力
- 测试人员不足,导致测试进度推进缓慢
5.2 时间
- 测试人员的测试时间不足以完成整个测试
5.3 环境
- 可能会出现服务器错误或网络错误
六、 附录
- 测试计划制定者:Ying
- 制定日期:2021/5/12
- 修改日期:2021/5/15
- 测试负责人:Ying