1. 作业概述
这个作业属于哪个课程 |
软件工程 |
这个作业的要求在哪里 |
团队项目 |
这个作业的目标 |
需求改进&系统设计 |
2、团队介绍:
姓名 |
软工角色 |
团队责任 |
尹俊蒙 |
产品经理 |
协调团队工作,对作业任务进行整理分配,整理博客工具人 |
钟京洲 |
开发 |
程序,负责实现功能 |
谢昊天 |
开发 |
程序,负责整合代码,管理代码库,定制规范,实现功能 |
李敏君 |
测试 |
指定测试计划,对软件进行测试,漏洞整理 |
3、需求&原型改进:
(1)针对课堂讨论环节老师和其他组的问题及建议,对修改选题及需求进行修改
- 问题:只实现了基本的聊天功能,对未来后续的规划没有
改进:后续添加语音通话、视频通话、表情包支持等功能。
- 问题:用户定位不够清晰
改进:我们发现我们实质上的聊天软件是面向年轻人的。对于年轻人来说,单纯的聊天功能并不能让他们选择我们的软件,我们应该添加更多的功能。
(2)修改完善上周提交的需求规格说明书
- 安全性考虑不足:
在需求规格说明书中并未提及对用户数据的加密传输以及账号信息的安全存储和验证机制。在现代的即时聊天应用中,安全性是至关重要的一环,因此需要在设计中充分考虑到。
- 消息传输的稳定性和容错性:
在需求中没有详细描述消息传输的稳定性和容错机制,比如网络异常时的消息重发、接收端的消息确认机制等。这些都是保证系统稳定性的重要环节。
- 功能扩展性:
需求文档中提到了基本的聊天功能,但并未提及对于后续功能扩展的考虑,比如语音通话、视频通话、表情包支持等。随着产品的发展,这些功能可能会成为必备的部分。
- 用户体验设计:
需求文档中并未提及关于用户界面设计、交互设计等方面的要求。这些对于用户体验至关重要。
- 技术选型和架构设计的详细说明:
对于项目的技术选型和整体架构设计,需求文档中并未给出详细说明,这对于团队成员的技术准备和任务分配都是非常重要的。
- 测试计划的详细描述:
在需求文档中提到了测试计划,但并未给出具体的测试内容、测试方法和测试标准等,这将对后期的质量保障带来困难。
- 项目特色的具体阐述:
在项目特色的描述中,可以更具体地说明该即时聊天程序相比其他类似产品的优势和特点,以及如何体现真实性、可用性和价值性。
(3)参考《构建之法》5节功能的定位和优先级,给出功能分析的四个象限
|
外围功能 |
杀手功能 |
必要需求 |
提供安全交流、提供稳定可靠的消息传输能力 |
添加语音通话、视频通话等内容 |
辅助需求 |
设计良好的用户界面设计 |
提供表情包支持、文件传输等功能 |
(4)根据修改后的需求,调整任务分解WBS及相应的项目进度计划
更新任务分解WBS:
- 安全性考虑不足:
新增一个阶段或任务,例如"安全性评估与加固",包括安全风险评估、安全漏洞修复、数据加密等子任务。
- 消息传输的稳定性和容错性:
创建一个新的阶段或任务,比如"消息传输优化",包括消息传输稳定性测试、故障容错机制设计、网络延迟优化等子任务。
- 功能扩展性:
引入一个新的阶段或任务,比如"功能模块设计与扩展",包括模块接口设计、模块独立性测试、模块扩展性评估等子任务。
- 用户体验设计:
添加一个新的阶段或任务,如"用户体验优化",包括用户调研、界面设计优化、交互流程改进等子任务。
评估项目进度计划:
- 对新增的各个任务进行时间和资源评估,确定其对整体项目进度的影响,重新评估各项任务的工期和依赖关系。
- 确定新的关键路径,并根据新的情况做出相应的调整,例如是否需要重新安排资源、是否需要调整其他模块的工期等。
沟通和协调:
- 与项目团队成员进行沟通,说明新增任务对项目进度的影响,并征求他们的意见和建议。
- 与相关利益相关者进行沟通,确保他们了解并接受修改后的任务分解WBS和项目进度计划。
执行调整:
- 在获得相关人员的认可后,执行调整后的任务分解WBS和项目进度计划,确保团队按照新的计划进行工作。
4、系统设计:
安全性考虑:
安全性考虑: |
|
引入安全层: |
在系统架构中加入安全层,包括身份认证、访问控制、数据加密等,以保障用户数据和系统安全。 |
安全审计日志: |
记录安全相关的操作和事件,并建立审计机制,以便对安全事件进行追踪和分析。 |
消息传输的稳定性和容错性:
消息传输的稳定性和容错性: |
|
引入消息队列: |
采用消息队列来处理消息传输,确保消息的稳定传输和可靠性,并实现消息的重发机制以提高消息传输的容错性。 |
分布式架构: |
采用分布式架构,将消息传输和处理分散到不同的节点上,以降低单点故障的影响。 |
功能扩展性:
功能扩展性: |
|
微服务架构: |
采用微服务架构,将系统拆分成多个小型服务,每个服务专注于特定功能模块,便于扩展和维护。 |
接口规范: |
定义清晰的接口规范,提供标准化的接口以支持功能模块的扩展和集成。 |
用户体验设计:
用户体验设计: |
|
前后端分离: |
采用前后端分离的架构,前端负责呈现界面和交互,后端负责数据处理和业务逻辑,以提高用户体验。 |
响应式设计: |
采用响应式设计,确保系统界面在不同设备上都能提供良好的用户体验。 |
时间安排表
周数 |
计划 |
第 8 周 |
1.团队组队、团队博客(✔) |
|
2. 团队介绍、成员展示、角色分配、选题确定(✔) |
|
3. 制定团队计划安排,团队贡献分的规定(✔) |
第 9 周 |
1. 需求规格说明书 |
|
2. 原型设计,队员估计任务难度并学习必要的技术 |
|
3. 编码规范完成、平台环境搭建完成、初步架构搭建 |
第 10 周 |
1. 原型改进(给目标用户展现原型,并进一步理解需求) |
|
2. 架构设计,WBS, 团队成员估计各自任务所需时间 |
|
3. 测试计划 |
第 11、12 周 |
1. 团队项目Alpha任务分配计划 |
|
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 |
第 13 周 |
1. 用户反馈+测试计划改进 |
|
2. 团队Alpha阶段个人总结 |
|
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 |
第 14 周 |
1. 团队项目Alpha博客:事后分析 |
5、Alpha任务分配计划
1、依据项目组能提供的总时间、功能模块的优先级以及模块之间的依赖关系,在Product Backlog中选取待实现的功能项。
![](https://img2023.cnblogs.com/blog/3271270/202311/3271270-20231116200829517-1192998725.png)
2、对已选择的功能项再做进一步分解,分解为1-10小时左右的任务,构成Sprint Backlog。在PM的协助下,编码的同学对任务进行认领。
![](https://img2023.cnblogs.com/blog/3271270/202311/3271270-20231116203023290-1296534286.png)
![](https://img2023.cnblogs.com/blog/3271270/202311/3271270-20231116203040465-11218885.png)
3、以甘特图的方式拟定迭代冲刺计划。
![](https://img2023.cnblogs.com/blog/3271270/202311/3271270-20231116203239014-1387709337.png)
6、测试计划
1、测试目标:
- 验证用户登录和登录验证功能是否正常工作。
- 验证两两聊天功能是否支持发送和接收文本消息。
- 验证建群及群聊功能是否能够创建群聊组、添加其他用户,并支持多人同时发送和接收消息。
- 验证好友管理功能是否能够显示好友列表、添加和删除好友。
- 验证在线、离线状态显示功能是否正常工作。
- 验证聊天记录管理功能是否能够正确存储和显示聊天记录。
- 测试新增扩展功能
2、测试环境:
硬件要求:商务笔记本电脑
软件要求:确保测试环境已安装Java编程环境,并配置好所需的数据库。
3、测试策略
测试策略 |
|
单元测试 |
对每个功能模块进行独立测试,确保其功能的正确性。 |
集成测试 |
将各个功能模块整合在一起进行测试,确保它们之间的协同工作正常。 |
系统测试 |
对整个系统进行全面的测试,验证系统是否符合需求规格说明书的要求。 |
4、测试用例设计
由于我们做的是聊天软件,很难进行测试用例的设计,于是我们使用内部使用的方式,四个人来使用这个软件来聊天测试是否可靠。
5、测试执行:
- 在每个测试阶段,进行测试后都要记录测试结果。
- 对于发现的问题,及时进行记录、跟踪和修复。
6、测试计划安排:
- 第10周:编写测试计划,设计测试用例。
- 第11周:执行单元测试和集成测试。
- 第12周:执行系统测试,并整理测试报告。