2023年秋 软件工程课程 | <NUE软件工程社区-CSDN社区云> | 任务分工 |
---|---|---|
罗文达 | <M23385409> | 制定计划、软件开发,编程设计、测试,仓库管理 |
林丽 | <M23381101> | 需求分析、软件开发,编程、撰写博客 |
肖任楷 | <M23382603> | 撰写博客 |
陈峰 | <M23382405> | 撰写博客 |
这个作业要求在哪里 | <2023年秋 软件工程课程团队项目任务安排——设计与实现-CSDN社区> |
一、软件开发计划
编写软件开发计划是软件工程项目管理的重要一环,以下是编写飞花令软件开发计划:
阶段 | 主要工作 | 要完成的文章 | 计划起始时间 | 计划终止时间 | 实际起始时间 | 实际终止时间 |
系统 需求 | 调研用户需求 | 10.16 | 10.17 | 10.23 | 10.25 | |
论证项目可行性 | 10.16 | 10.17 | 10.23 | 10.25 | ||
制定初步计划 | 计划书 | 10.16 | 10.17 | 10.23 | 10.25 | |
计划评审 | 10.16 | 10.17 | 10.23 | 10.25 | ||
确定运行环境 | 10.16 | 10.17 | 10.23 | 10.25 | ||
需求 分析 | 确定系统功能 和性能要求 | 需求分析报告 | 10.17 | 10.20 | 10.25 | 10.26 |
建立系统 逻辑模块 | 10.18 | 10.20 | 10.25 | 10.26 | ||
编写需求分析 | 需求分析报告 | 10.20 | 10.24 | 10.25 | 10.28 | |
确认项目开发计划 | 10.22 | 10.25 | 10.25 | 10.28 | ||
概要 设计 | 建立系统总体结构,划分功能模块 | 11.01 | 11.05 | 11.05 | 11.08 | |
定义各功能模块接口 | 11.01 | 11.05 | 11.05 | 11.08 | ||
数据库设计 | 11.01 | 11.25 | 11.05 | 11.08 | ||
详细 设计 | 设计各模块具体实现算法 | 11.10 | 11.25 | 11.10 | 12.05 | |
制定模块测试方案 | 11.11 | 11.25 | 11.10 | 12.05 | ||
实现 | 编写程序源代码 | 11.06 | 11.30 | 11.10 | 11.28 | |
进行模块测试和调试 | 11.11 | 11.30 | 11.10 | 12.07 | ||
对实现过程及已完成的文档进行评审 | 11.25 | 11.30 | 11.30 | 11.30 | ||
验收 测试 | 执行集成测试计划 | 11.28 | 12.05 | 11.28 | 12.08 | |
测试整个软件系统 | 11.28 | 12.05 | 11.28 | 12.08 | ||
维护 | 完善应用 | 12.01 | 12.09 | 12.01 | 12.09 | |
程序修改 | 12.01 | 12.09 | 11.28 | 12.09 |
二、软件设计
系统体系结构设计需求分析
“诗词网站”
————需求分析
NABCD模型
N(Need 需求)
需求罗列:
- 含有一定规模的诗词库。
- 设置用户登录界面。
- 可以检索诗词库
- 可以实现人机诗词接龙
- 飞花令PK模式:主要实现双人对战,进入对战模式之后可以选择“对战令牌”(即对战关键字,如春、君、思、山、风等),选好后系统会自动匹配对象,之后便开始诗词对战了。对战过程有相应的积分系统。
- 界面设计,页面设计。
- 登录成功之后的界面伴随动态图画。
- 设置成绩存储
- 设置一个积分排行榜
- 设置古风音乐
A(Approach 做法)
古诗词虽美,但仅仅是纯粹的古诗词学习也让人觉得厌烦无味。尤其针对现在备战中高考的学生来说,诗词的学习不仅耗时长,而且很多都是死记硬背,备考过程相当不容易。
我们针对现有飞花令的不足,在画面设计、模式体验方面都做了很大改进。画面设计方面,将水墨丹青中国画和宛如清泉流淌的配乐结合起来,给使用者创造一场独特的视觉、听觉盛宴。绝美的界面设计不仅能够吸引用户,而且在一定程度上也能够提升使用者的学习效率,更加有助于记忆。
B(Benefit 好处)
给使用者更好的玩家体验,本系统在现有飞花令的基础上加上了学习和搜索功能,让系统偏向应用程序的设定,但其玩家对战模式同样保留着较好的游戏体验。
能够帮助广大学者和诗词爱好者秒懂古诗词含义,掌握诗词学习要领,还能从多方面解析古诗词所蕴含的深意,理解诗人创作时的心境,达到理解记忆目的的同时,更能深刻感受古诗词传统文化博大精深的魅力以及诗词之美。
C(Competitors 竞争)
“飞花令”全面游戏系统的实现应该能在原有基础上吸引更多的诗词爱好者和学习者,绝美的界面设计可以在众多产品占据前面位置,激烈的对战模式可以给玩家独一无二的体验,总而言之,“飞花令”系统平台的设计在相似行业下是具有一定竞争优势的。
D(Delivery)(Data)
发展初期,通过各类网络宣传推广吸引诗词爱好者,主要包括搜索引擎、信息流、新媒体及各类免费推广等方式,采取技术手段或者提供有价值内容的方式,吸引潜在用户。如在B站等平台上发布设计推广视频,通过在学校宣传等方式来给该系统加入更多的“新鲜血液”以实现推广。
三、代码实现
数据库
登录界面
人机接龙
飞花令
五种令牌的选择
存储成绩和积分排行榜
四、项目过程管理与记录
1. 任务完成情况
阶段 | 主要工作 | 完成情况 |
系统需求 | 调研用户需求 | √ |
论证项目可行性 | √ | |
制定初步计划 | √ | |
计划评审 | √ | |
确定运行环境 | √ | |
需求分析 | 确定系统功能 和性能要求 | √ |
建立系统 逻辑模块 | √ | |
编写需求分析 | √ | |
确认项目开发计划 | √ | |
概要设计 | 建立系统总体结构,划分功能模块 | √ |
定义各功能模块接口 | ||
数据库设计 | √ | |
详细设计 | 设计各模块具体实现算法 | √ |
制定模块测试方案 | √ | |
实现 | 编写程序源代码 | √ |
进行模块测试和调试 | √ | |
对实现过程及已完成的文档进行评审 | √ | |
验收测试 | 执行集成测试计划 | |
测试整个软件系统 | √ | |
维护 | 完善应用 | √ |
程序修改 | √ |
2. 代码仓库
3. 各成员的贡献度分配
成员 | 对应任务 | 耗时 | 遇到困难 |
罗文达 | 项目代码实现,程序编写 | 1.5个月 | 项目属于前后端开发,是一个完整复杂的体系项目,涉及到多方面的知识 |
林丽 | 需求分析,项目结构设计,软件开发,测试,撰写博客 | 1.5月 | 项目依赖于许多库和框架,开发过程中存在版本冲突或依赖冲突的问题。团队协作开发途中需要管理代码、版本控制和多人合作。存在项目管理和沟通的问题。编程结束后,需要对项目进行充分测试,以确保代码质量和系统功能的正确性,但测试用例存在覆盖不充分或缺乏自动化测试等问题,影响开发效率。 |
肖任楷 | 软件测试,博客撰写 | 1月 | 项目使用PHP进行后端编写,java进行前端编写,测试编写较为复杂 |
陈峰 | 原型设计 | 1月 |
五、项目中软件工程的体现
综上所述,软件工程在软件工程项目中的体现非常广泛,它涉及到软件开发的方方面面,是保证软件质量的重要手段。
软件分析方法和工具
软件分析方法和工具是用于帮助软件工程师在软件开发过程中进行系统、全面且有效的分析的技术和工具。以下是本次项目中使用到的软件分析方法和工具:
敏捷开发方法:Scrum、XP等。敏捷方法强调团队合作、快速迭代和持续交付,适合需要快速响应需求变化的Java项目,此次飞花令团队合作项目就很强调团队合作。
面向对象分析和设计方法:UML建模、设计模式。面向对象的方法可以帮助我们更好地组织代码、实现复杂功能和扩展系统。
版本控制工具:Git。版本控制工具可以帮助我们管理代码的不同版本和变更,协同开发和保证代码质量。
自动化构建工具:Maven、Gradle。自动化构建工具可以帮助我们自动化构建、测试和部署代码,提高效率和质量。
集成开发环境(IDE):IntelliJ IDEA。IDE可以提供代码编辑、调试、自动完成等多种功能,帮助我们提高开发效率和质量。
单元测试框架:JUnit、TestNG。单元测试框架可以帮助我们编写和运行单元测试,确保代码的正确性和可靠性。
静态代码分析工具:SonarQube、FindBugs。静态代码分析工具可以帮助检测潜在的编码错误、安全漏洞、性能问题等。
内存分析工具:VisualVM、jProfiler。内存分析工具可以帮助分析和优化代码的内存使用情况,提高系统的性能和稳定性。
软件需求分析:在软件工程项目中,首先需要进行软件需求分析,明确用户需求和预期目标。这一步骤是非常重要的,因为它能够帮助开发团队了解项目的范围、功能和约束条件,从而指导后续的软件设计、开发和测试。
软件设计与架构:在软件工程项目中,软件设计是一个很重要的环节。它涉及到软件的整体架构、模块关系、数据结构和算法设计等方面。好的软件设计可以使系统具有更好的可扩展性、可维护性和可靠性。
编码与测试:在软件工程项目中,编码和测试是不可或缺的步骤。良好的编码风格、代码规范和注释可以使代码易于阅读和理解,便于后续的维护和扩展。测试是保证软件质量的重要手段,能够帮助发现软件中的问题和错误,并提高软件的稳定性和可靠性。
版本控制与文档管理:在软件工程项目中,版本控制和文档管理也是非常重要的。版本控制可以帮助开发团队管理代码变更和版本迭代,避免代码冲突和不必要的覆盖。文档管理可以帮助开发团队对项目的整体架构和细节进行记录和管理,方便后续的维护和更新。
项目管理与过程改进:在软件工程项目中,项目管理和过程改进也是至关重要的。良好的项目管理可以帮助团队控制进度和资源,及时处理问题和风险,确保项目的成功完成。过程改进可以帮助团队不断提高自身的软件开发能力和水平,从而提高软件质量和效率。
六、个人总结作业安排
姓名 | 个人总结作业链接 |
罗文达 | 软件工程课程心得-CSDN博客 |
林丽 | <http://t.csdnimg.cn/FCwwU> |
肖任楷 | <软件工程结课总结-CSDN博客> |
陈峰 | <http://t.csdnimg.cn/3eXMa> |
七、其他任务
姓名 | 慕课学习及读书笔记作业链接 |
罗文达 | 软件工程课程心得-CSDN博客 |
林丽 | <http://t.csdnimg.cn/R32CC> |
肖任楷 | <软件工程结课总结-CSDN博客> |
陈峰 | <http://t.csdnimg.cn/3eXv> |