项目 | 内容 |
---|---|
课程班级博客链接 | 2022年春软件工程课程班(2019级计算机科学与技术) |
这个作业要求链接 | 实验三 软件工程结对项目 |
本次课程学习目标 | 1.体验软件项目开发中的两人合作,练习结对编程(Pair programming)。 2.掌握Github协作开发软件的操作方法。 |
这个作业在哪些方面帮助我实现学习目标 | 1. 利用git第一次实现了协作开发,感觉不错 2. 结对编程,完成了更多的内容 3. 对自己的代码规范有了更多的启发和反省 |
结对方学号-姓名 | 201971010259-张圆圆 |
结对方本次博客作业链接 | 201971010259-张圆圆 实验三 结对项目—《{0-1}KP 实例数据集算法实验平台》项目报告 |
本项目Github的仓库链接地址 | Knapsack-0-1 |
// 终端编译运行 javac Main.java java Main
项目中动态规划法输出结果不正确。在运行过程中发现,由于编写了绝对地址导致在编译错误。在编程过程中应当减少绝对地址的使用以提高代码的可移植性。
String filePath = "D:\\2021-2022\\大三下\\软件工程经济\\Git\\0-1\\0-1-knapsack\\res\\beibao"+fileId+".in";
代码核查表
项目 | 内容 | |
---|---|---|
概要部分 | 代码符合需求和规格说明么? | 是 |
代码设计是否考虑周全? | 是 | |
代码可读性如何? | 较好 | |
代码容易维护么? | 是 | |
代码的每一行都执行并检查过了吗? | 是 | |
设计规范部分 | 设计是否遵从已知的设计模式或项目中常用的模式? | 是 |
有没有硬编码或字符串/数字等存在? | 否 | |
代码有没有依赖于某一平台,是否会影响将来的移植? | 依赖eclipse开发环境,无法在idea中运行 | |
开发者新写的代码是否用已有的Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以通过调用而不用全部重新实现? | 否 | |
有没有无用的代码可以清除? | 有很多重复性的代码 | |
代码规范部分 | 修改的部分符合代码标准和风格么? | 符合 |
具体代码部分 | 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 有 |
参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是从0开始计数还是从1开始计数 | 无错误,字符长度,从0开始计数 | |
边界条件是如何处理的?switch语句和default分支是如何处理的?循环有没有可能出现死循环? | 没有死循环 | |
有没有使用断言来保证我们认为不变的条件真的得到满足? | 没有 | |
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄露?有没有优化的空间? | 有可能,存在优化空间 | |
数据结构中有没有用不到的元素? | 无 | |
效能 | 代码的效能如何?最坏的情况是怎么样的? | 是 |
代码中,特别是循环中是否有明显可优化的部分? | 是 | |
对于系统和网络的调用是否会超时?如何处理? | 是 | |
可读性 | 代码可读性如何?有没有足够的注释? | 是 |
可测试性能 | 代码是否需要更新或创建新的单元测试? | 是 |
PSP2.1 | 任务内容 | 计划共完成需要的时间(h) | 实际完成需要的时间(h) |
---|---|---|---|
Planning | 计划 | 2 | 4 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 1 | 3 |
Development | 开发 | 120(5天) | 216(9天) |
Analysis | 需求分析(包括学习新技术) | 3 | 10 |
Design Spec | 生产设计文档 | 2 | 1.5 |
Design Review | 设计复审(和同事审核设计文档) | 5 | 5 |
Coding Standard | 代码规范(为目前的开发指定合适的规范) | 0.5 | 0.58 |
Design | 具体设计 | 2 | 2 |
Coding | 具体编码 | 72 | 96 |
Code Review | 代码复审 | 40 | 5 |
Test | 测试(自我测试,修改代码,提交修改) | 12 | 15 |
Reporting | 报告 | 3 | 6 |
Test Report | 测试报告 | 1 | 1 |
Size Measurement | 计算工作量 | 1 | 1 |
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 0.5 | 0.5 |
在上一次的项目设计中,结对双方使用高级语言不同,且之前的学习方向不同,所掌握的编程技术不同。为实现“领航员”与“驾驶员”角色的切换,商议决定项目设计包含两部分:利用java语言实现app设计,利用Python语言实现html设计。其中app实现功能较为全面,但web页面设计功能并不全面,且web在路由跳转方面并没有做到很好。在本次结对编程实验中app显示——驾驶员为张圆圆,web设计中——驾驶员为姜婷。角色切换过程中,互相学习,互相监督,提高项目效率、代码质量。
多次commit的记录
src文件夹
Github项目仓库根目录下项目代码规范文档