一、博文简要信息表:
|项目|内容| |:-:|:-:| |这个作业属于哪个课程|软件工程| |这个作业的要求在哪里|作业链接地址| |课程学习目标|熟悉软件开发整体流程,提升自身能力| |本次作业在哪个具体方面帮助我们实现目标|第一次体验一个完整的工程|二、实验目的与要求
(1)体验软件项目开发中的两人合作,练习结对编程(Pair programming)。(2)掌握Github上增量发布软件的操作方法。
三、实验内容和步骤
任务1:两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价,具体要求如下: 》对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究。
》克隆结对方项目源码到本地机器,阅读并测试运行代码,结合运行结果评论程序代码,评论要点包括:软件结构、代码规范、功能实现、人机交互等。
》尝试利用github中的Fork、Clone、Push、Pull request、Merge pull request对结对方仓库中的源码进行合作修改。
任务2:采用两人合作方式,设计开发一个英文文本统计分析软件,使之具有以下功能:
(1)实验2要求的功能;
(2)单词频数可视化柱状图:
(3)统计该文本行数及字符数;
(4)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(5)可处理任意用户导入的任意英文文本;
(6)人机交互界面要求GUI界面(WEB页面、APP页面都可);
四、完成流程
任务一:点评作业博客地址 || GitHub链接地址 || 点评内容 点评心得:看了同学的博客以及代码部分,发现了自己在撰写博文时有欠缺,在编程方面存在着很大的问题,在这个方面还需花大量的时间去赶,自己在编程时思路也不是很清晰,代码书写的也不够规范,功能实现的不足,在今后的学习中需一点点的去补充完善,多和老师同学交流。 任务二:项目源码在Github的仓库主页链接地址 a.需求分析 单词频数可视化柱状图,统计该文本行数及字符数,各种统计功能均提供计时功能,显示程序统计所消耗时间,可处理任意用户导入的任意英文文本,人机交互界面要求GUI界面 c.核心功能代码展示
d.程序运行
e.描述结对的过程
结对过程:在结对过程中,我们一起讨论问题,一起编写修改代码,因为知识的欠缺,功能实现的并不完全,通过此次的合作学习,从小伙伴身上学到了很多,也明白了多一个人的力量是有多伟大,可能自己需要琢磨半天的问题,两人一起在说笑间就解决了,这种感觉很微妙。这段时间不仅在学习上个取得了突破,也加强了彼此间的友谊,可谓一举多得。
f.提供此次结对作业的PSP
对PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
---|---|---|---|
Planning | 计划 | 10 | 8 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 60 | 50 |
Development | 开发 | 三天 | 四天 |
Analysis | 需求分析 (包括学习新技术) | 10 | 8 |
Design Spec | 生成设计文档 | 100 | 70 |
Design Review | 设计复审 (和同事审核设计文档) | 50 | 30 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 240 | 200 |
Design | 具体设计 | 120 | 110 |
Coding | 具体编码 | 两天 | 两天 |
Code Review | 代码复审 | 9 | 9 |
Test | 测试(自我测试,修改代码,提交修改) | 20 | 10 |
Reporting | 报告 | 40 | 30 |
Test Report | 测试报告 | 60 | 40 |
Size Measurement | 计算工作量 | 60 | 50 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 20 | 20 |
每次实际的时间都超过了计划的时间,主要问题存在于对程序的理解不到位,在编程修改方面浪费了很多时间。
g.小结感受
通过此次的结对学习,达到了1+1>2的效果,不管在理解还是在问题解决上,都比一个人琢磨的有效,在讨论中严肃又开心,解决了一个又一个的问题后心里很开心,这样的结对学习很有成效。在今后的学习中要多和同学一起讨论,一起解决难题,一起进步。