结对项目第一阶段总结与对软工课程的拙见

结对项目-第一阶段

项目 内容
教学班级 2021春季软件工程(罗杰 任健) (北京航空航天大学 - 计算机学院)
GitLab项目地址 2021_Xiaodong_Lu-Pengyang_Xie_pair_work
Mokoghost学号后四位 3647
duckingss学号后四位 3054

结对编程体验

结对编程使我们受益匪浅,明显让我们的工程能力提升并从对方身上学到很多优秀的工程习惯。在结对编程过程中,我们充分讨论,协同完成顶层设计,讨论架构,在教室的白板上写写画画,整个过程无比丝滑并建立了深♂厚♂的友谊。

代码实现过程中,我们采用了原OO的checkstyleJavadoc,并且使用了驼峰命名法,使得代码整洁易读。你写我查的过程让我们双方都对代码有了充分的熟悉,并且增强了代码的鲁棒性,让我们能够及时地发现手抖产生的低级bug。

同时,作业内容使我们重新回顾了Java、面向对象和操作系统的知识。体验了一次极限编程:第一天从下午三点连续编程到凌晨四点十五分,第二天继续从下午三点编程至凌晨两点。过程中产生的疑问都发布在指导书的issue上,与课程中的其他同学和助教产生了五个有意义的讨论:

课程设计建议

虽然在进行结对编程的时候收获良多,但是我仍然觉得这门课程的设计不合时宜

  1. 课程设计过重。作为一门必修课(我认为必修课也要因材施教),没有给同学选择的权力,大三下有的同学要考研,有的同学要实习,有的同学要科研,如果一周要花三四天来完成一门两学分的课程,明显不合适,在这里我想问老师们一个问题:北航计算机学院是否只培养软件工程师?如果是,那么让同学全身心投入到这门课中大家不会有意见,但是请在招生简章中明确地写出来,我未来不打算从事这个工作。同时,邹老师书中说:

    这门课程相当于4—5个学分的课。考虑到各个学校的具体情况,老师也可以考虑把这门课当作两门课的结合(软件工程理论和软件工程实践);也可以安排两个学期

    学院不是这样安排的。

  2. 意义不明的流程。不知道测评系统的设计者是否痴迷于神秘主义,或者是单纯享受给学生创造困难?至少这样的作业提交/评测方式给我们造成了极重的负担,在凌晨三点写完代码后还要花费一个小时提交代码,好不容易在午夜前通过测试,却要在配置CI上花费两个小时以上。许多工作明明可以用更方便(对于学生和平台设计者双方而言)的方式进行,却要将配置、评测的工作下放让学生完成部分,增大了学生和老师工作的耦合!从我们这次的开发经验来讲,我认为我们做了很多与作业无关的事。

PSP 规划

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 10 ~10
· Estimate · 估计这个任务需要多少时间 10 ~10
Development 开发 890 1205
· Analysis · 需求分析 (包括学习新技术) 240 180
· Design Spec · 生成设计文档 30 30
· Design Review · 设计复审 (和同事审核设计文档) 10 5
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 10 30
· Design · 具体设计 60 320
· Coding · 具体编码 360 460
· Code Review · 代码复审 60 0
· Test · 测试(自我测试,修改代码,提交修改) 120 180
Reporting 报告 60 90
· Test Report · 测试报告 30 30
· Size Measurement · 计算工作量 20 30
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 30
合计 960 1305
posted @ 2021-03-23 16:27  Mokoghost  阅读(298)  评论(13编辑  收藏  举报