软件工程第二次结对作业
前言:
这个作业属于哪个课程 | 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/GoldenglowBF |
具体分工:
柯鸿毅: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.方法测试。为了监控数据流动,设置了一个专门用来打印数据库信息的函数,用于监视数据库的数据变更。
八、评估你的队友
我的队友是052203132童潇剑,在本次软件开发中,我们都在对方学习到许多。
值得学习的地方:队友对于软件流程的设计、对已知程序的测试都有很高的理解,他在我编码的过程中可以提出许多有用的建议,并能一阵见血地指出我所编写的程序的问题。
较为不足的地方:缺少协同编码的能力,这是我们双方都存在的不足。
九、项目总结
在前一次“羊了个羊”项目个人开发中,我对于软件开发的流程已经有了一定的了解,对这次结对作业也起到了一定的帮助,但在这次结对作业中,我也发现了自己新的不足。首先是沟通能力。自己的沟通能力较弱,不能准确地描述所遇到的问题,导致了在解决一些问题上花费了更多的时间。并且与队友的沟通次数不足,导致双方信息无法同步,这也是一个较大的问题。其次是技术还不够完备。在这次软件开发中,应用到了qt开发、tcp网络编程、数据库等知识,由于自己的技术能力不足,导致了花费大量的时间在技术的学习与应用中,这使得软件核心功能的实现还不够完善。还有,自己在编码能力上也有待改进。由于自己编码较慢,导致不能够在有限时间完成软件的开发,这是今后自己需要改进的点。
最后,感谢童潇剑同学在这次软件开发中对我的信任与帮助,也感谢评分老师对于自己博客编写时间的宽限!