223201062507 王静怡 223201062506 王靖榕-软件工程基础Y-实验二结对项目
沈阳航空航天大学
软 件 工 程 基 础
实 验 报 告
实验名称:实验二
实验题目:结对项目
专 业 |
软件工程 |
学 号 |
223201062506 223201062507 |
姓 名 |
王靖榕 |
|
王静怡 |
指导教师 |
孟桂英 |
成 绩 |
|
|
目 录
沈阳航空航天大学............................................................................. I
1 实验内容及要求............................................................................. 1
1.1 教学内容及要求..................................................................... 1
1.2 实验要求................................................................................. 1
1.2.1 实验题目............................................................................ 1
1.2.2实验要求............................................................................. 2
1.2.3选做题................................................................................. 3
2 实验步骤......................................................................................... 1
2.1实验过程.................................................................................... 1
2.1.1实验代码............................................................................. 1
2.1.2实验过程............................................................................. 1
2.2选做题实验过程........................................................................ 3
3 总结与体会..................................................................................... 1
1 实验内容及要求
1.1 教学内容及要求
完成结对项目,实现代码复审。
1.2 实验要求
首先在同学中找一个同伴,范围不限,可以在1~3班中随意组合,不要找同组的成员,女同学尽量找男同学结对,但是不做强制要求。
1.2.1 实验题目
本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题。
题目1:
我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求:
① 能够自动生成四则运算练习题
② 可以定制题目数量
③ 用户可以选择运算符
④ 用户设置最大数(如十以内、百以内等)
⑤ 用户选择是否有括号、是否有小数
⑥ 用户选择输出方式(如输出到文件、打印机等)
⑦ 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)
题目2
现有一新建办公大厦,共有21层,共有四部电梯,所有电梯基本参数如下表所示,其使用规定如下:
① 楼层号为0~20,其中0号为地下一层
② 有楼层限制的电梯不在相应楼层停靠,如单双层
③ 所有电梯采用统一按钮控制
④ 请根据上述要求设计并实现一个电梯控制程序,使得用户平均等待时间尽可能小,如果有图形显示就更好了。
电梯编号 |
可服务楼层 |
最大乘客数量 |
最大载重量 |
1 |
全部楼层 |
10 |
800 kg |
2 |
单层 |
10 |
800 kg |
3 |
双层 |
10 |
800 kg |
4 |
全部楼层 |
20 |
2000 kg |
1.2.2实验要求
(1) 驾驶员
① 能够完成全部代码工作,程序基本实现全部要求功能,并将代码上传至GitHub代码托管系统中。
② 能够对导航员在本次编程工作中起到的作用给出客观评价,并完成500字以上的总结,并且上传和队友工作时的照片。
(2) 领航员
① 能够辅助驾驶员完成全部代码工作,并且为关键函数选用合适的覆盖标准设计测试用例,并编写代码进行单元自动测试。
② 利用结对编程作业的代码检查表(表1.2)对驾驶员的本次工作进行评价,并同时填写PSP 0.1工作记录表。
③ 能够对本次工作完成500字以上的总结。
表1.1工作记录表
项目 |
预计 |
实际 |
设计时间 |
|
|
编码时间 |
|
|
测试时间 |
|
|
代码行数 |
|
|
测试代码行数 |
|
|
错误数量 |
|
|
错误修复时间 |
|
|
开发总时间 |
|
|
1.2.3选做题
从以往个人完成的项目中选择一个作品,例如:以往的具有比较完整功能的小系统,代码至少要大于100行。
(1) 将代码上传至个人GitHub系统中,并将代码地址交给对方;
(2) 对同伴的作品进行代码复审,并参照C/C++代码审查表和 Java代码审查表 这两篇博文的内容将检查内容填入以下代码审查表中;
表1.2代码审查表
序号 |
重要性 |
审查项 |
结论 |
1 |
重要/不重要 |
审查表中待检查内容 |
填写是/否/无(是代表符合规范,否代表不符合规范,无代表代码不涉及该项内容) |
2 |
|
|
|
(3) 将对伙伴审查的结果以表格的形式写到自己的作业里,作业中应该附有伙伴作业的GitHub代码地址。
(4) 对同伴的代码写一篇500字以上的评论,介绍同伴的优缺点
2 实验步骤
2.1实验过程
2.1.1实验代码
https://github.com/Libwjr/daima1/blob/main/%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%972.cpp
2.1.2实验过程
驾驶员:王靖榕
领航员:王静怡
图2.1.1 实验截图
图2.1.2 加减法运行截图
图2.1.3 乘除法运行截图
合作照片:
项目 |
预计 |
实际 |
设计时间 |
1h |
2h |
编码时间 |
6h |
10h |
测试时间 |
1h |
1h |
代码行数 |
300 |
783 |
错误数量 |
5 |
15 |
错误修复时间 |
1h |
2h |
开发总时间 |
9h |
15h |
2.2选做题实验过程
撰写选做题的代码复审过程。
(1) https://github.com/Libwjr/daima1/blob/main/%E4%BB%A3%E7%A0%81.cpp
(2) 代码复审:
审查人:王静怡 审查日期:11.12
表2.2代码审查表
序号 |
重要性 |
审查项 |
结论 |
1 |
重要/不重要 |
头文件和定义文件的名称是否合理 |
是 |
2 |
重要/不重要 |
头文件和定义文件的目录是否合理 |
是 |
3 |
重要/不重要 |
头文件是否使用了 ifndef/define/endif 预处理块? |
是 |
4 |
重要/不重要 |
头文件中是否只存放“声明”而不存放“定义” |
否 |
5 |
重要/不重要 |
空行是否得体 |
是 |
6 |
重要/不重要 |
代码空行是否得体 |
是 |
7 |
重要/不重要 |
“{”和“}”是否各占一行并且对齐于同一列 |
是 |
8 |
重要/不重要 |
一行代码是否只做一件事。如只定义一个变量,只写一条语句 |
是 |
9 |
重要/不重要 |
If,for,while,do等语句各占一行,不论执行多少语句都加“{}” |
是 |
10 |
重要/不重要 |
在定义变量时,是否将修饰符*和&紧靠变量名,注释是否清晰并且必要 |
是 |
11 |
重要/不重要 |
注释是否有错误 |
否 |
12 |
重要/不重要 |
标识符是否直观且可以拼读 |
是 |
13 |
重要/不重要 |
标识符的长度应符合”min-length&&max-information”原则 |
是 |
14 |
重要/不重要 |
程序中是否出现了相同的局部变量和全部变量 |
是 |
15 |
重要/不重要 |
类名,函数名,变量是否遵循一致原则 |
是 |
16 |
重要/不重要 |
参数命名,顺序是否合理 |
是 |
17 |
重要/不重要 |
是否用内函数取代了宏代码 |
否 |
18 |
重要/不重要 |
是否违背编程规范化而让c++自动为类而产生缺省函数 |
否 |
19 |
重要/不重要 |
文件以不正确的方式打开吗 |
否 |
20 |
重要/不重要 |
文件结束判断不正确吗 |
否 |
(3)https://github.com/Libwjr/daima1/blob/main/%E4%BB%A3%E7%A0%81.cpp
(4)我搭档的编程能力还是很不错的!在之前就完成了这个程序,并且代码规范化程度高,没有明显的错误,注释清楚,使用户可以清晰明了的读懂程序,这是一个最大的优点。其次编程过程中用到的算法也是相当简便,符合编程要求,言简意赅!这一点上,很值得学习。美中不足的是,我们两个因能力有限,没能实现窗口化的界面。我们两个还会继续努力加油的!同时为了本次作业我们也相互取长补短,共同优化了我们本次的代码,我也为我搭档本次的代码提供了一些思路,翻阅了一些参考资料,在之后的实验中我们也会更加努力的。
3 总结与体会
此次我担任的是驾驶员的角色,负责代码的编写。王静怡扮演的是领航员的角色,这次是我们的第一次合作,还是有些忙乱,但是这次我们已经可以取长补短,对我们的工作效率有了很大的提升,相信在下一次的时候我们一定会更加的娴熟、默契。在选题的时候,我们认为小学生四则运算生成系统是我们比较擅长的,因为之前在做课设的时候做过类似的。但是让我们没想到的是,这次的题和上次有很大的出入,本以为是很简单的,但实际上做起来是很困难的,我们花费了很多的时间。通过此次作业意识到自己对编程掌握的还不是很深,编程的能力远不如其他人,所以在这一次的总结中,我认识到了我恒多不足的是地方,各种细节的地方还需要很大的改进,在我们的一起开会讨论下,明确了设计理念之后,各自分工,我辅助他完成代码的敲定,帮助他查阅资料,遇到编码难题时提供建议,帮忙找出程序中的bug,以至最终代码顺利完成。在我完成代码的过程中,我的伙伴给予了我非常多的帮助,没有他的帮助,我完成不了这一项作业,所以在这一次作业中,让我深深的感受到了软件工程队伍中结对的意义和结对对软件工程的最重要的一部分,是不可缺少的。我们花费了很多的时间。但最终还是完成了这次作业。通过这次结对作业我和王静怡都有很大的收获,为以后更好的完成作业提供了宝贵的经验,但是经验的欠缺和基础的不扎实,距离一个程序员的距离还很远,我相信通过我们的努力一定也可以变得优秀。