软件工程第二次结对作业
前言:
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/SE2024 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/SE2024/homework/13281 |
这个作业的目标 | 通过设计好的流程来完成对ProjectPartner的开发 |
项目GitHub地址 | https://github.com/muyingcongke/052206123-052203132 |
学号 | 052206123,052203132 |
结对同学的GitHub地址 | https://github.com/muyingcongke |
具体分工:
柯鸿毅:APP大致框架搭建,程序功能完善,APP界面初步设计,检测并修复软件的漏洞。
童潇剑:软件使用界面和流程的设计,整理各种项目文档,软件界面进一步优化,博客内容的编写,软件测试。
一、PSP表格
工作内容 | 预计耗时(小时) | 实际耗时(小时) |
---|---|---|
项目规划 | 3 | 3 |
需求分析 | 1.5 | 2 |
生成设计文档 | 2 | 3 |
设计复审 | 2 | 3 |
具体编码 | 30 | 40 |
代码复审 | 8 | 8 |
程序测试 | 2 | 4 |
事后总结 | 1 | 0.5 |
编写博客 | 2 | 2 |
总耗时 | 51.5 | 65.5 |
二、解题思路与设计实现
1.问题分析
经过讨论,我们决定开发一款APP来实现该需求,该APP能够实现我们的主要需求:发布项目,招募合适的人手。
由于在APP开发上经验较为缺乏,我们选择QT Studio作为开发工具,使用C++语言进行开发,并部署到安卓上。
程序由界面分为不同模块,具体如下:
程序模块划分
登录,注册界面:用户在注册后账号记录到数据库,按已有的账号登录即可进入程序主界面。
程序主界面:我们能够看到已经发布的项目,通过点击即可了解项目详情。
项目详情界面:在该界面我们能够看到项目的详细内容,包括项目名称,项目简介以及项目需求,也可申请加入项目。
我的项目页面:能看到我们已经创建的项目,并创建自己的项目。
通知页面:可查看项目加入申请信息
个人信息页面:编辑个人信息,方便其他用户了解自己
2.流程图
3.代码片段
1.页面设计代码:
2.注册模块代码:
3.数据库相关代码:
4.测试代码
三、附加特点设计
由于时间限制与开发经验的不足,未设计附加功能
四、目录与使用说明:
目录介绍
我们按照QT提供的目录结构来组织项目的目录结构,其中
Headers文件夹中存储各类头文件,
Sources用于存储cpp代码,
Forms用于存储UI结构文件,
pictures页面则用于存储项目中图像文件
使用说明
1.安装包下载
在GitHub仓库中包含了APK应用安装包,在手机或模拟器中安装即可进行操作
2.注册说明
3.个人信息编辑
4.发布项目
5.项目详情
五、单元测试
上述使用说明即为我们进行的测试。在经过多次优化后,当前版本的使用已较为稳定。
六、Github签入记录
七、遇到的困难与解决方法
程序开发中,遇到了以下困难:
1.环境搭建困难。由于是第一次开发一个完整的软件,对于开发环境的搭建不熟悉,导致了花了一定时间来了解、搭建开发环境。
2.需要学习的内容多。从开发软件的使用、界面的设计到数据库的应用,都需要花费大量的时间进行学习。在遇到报错信息时,也需要在网上搜索解决方案。
3.预期功能未实现。在软件开发的过程,有许多时候方法的效果并没有达到预期,需要在方法中设置许多调试信息进行调试。例如,在一次数据库信息查询中,发现无法找到所要的数据。在函数的不同地方设置调试信息后,发现是qt内置类型qstring与char*类型在多次转换后,导致录入数据库的信息存在差异。在发现了问题之后,对字符串进行统一、规范的处理,最后解决了问题。
4.方法测试。为了监控数据流动,设置了一个专门用来打印数据库信息的函数,用于监视数据库的数据变更。
八、评估你的队友
我的队友是052206123柯鸿毅,在本次软件开发中,我们通过交流协作互相学习到了许多知识。
值得学习的地方:队友的编码能力很强,能够将我们的思路设计转化为具体的实现。在开发的过程中也发现了不少的问题并提供解决方法。
较为不足的地方:缺少协同编码的能力与经验上的不足,这是我们双方都存在的不足。
九、项目总结
通过“羊了个羊”项目个人开发,我对游戏项目的开发有了一定的理解,在第一次结对作业中我还学习到了项目的原型设计,为这一次的实践做好准备。同时,在这次的结对作业中,我也发现了自己在协作编程中的不足,在沟通上我们没有很好的做到协同的效果,导致在开发过程中消耗了不少的时间。其次,在APP应用开发上,我的经验十分不足,也在学习相关内容上消耗了不少的时间。最后,我对项目的规划能力也不够,没有意识到开发过程中的各种问题拖延的时间,导致开发的时间变得紧张。这些都是我需要改进的地方
最后,感谢柯鸿毅同学在这次软件开发中对我的信任与帮助,也感谢评分老师对于自己博客编写时间的宽限!