2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 软件工程结对作业1

软件工程结对作业1

时间:2022-10-25 01:55:29

相关推荐

软件工程结对作业1

一、题目要求

(1). 首先在同学中找一个同伴,范围不限,可以在1~5班中随意组合,建议尽量不要找同组的成员,女同学尽量找男同学结对,但是不做强制要求;

(2). 从以往个人完成的项目中选择一个作品,例如:以往的数据结构课程设计或者其它具有比较完整功能的小系统,代码至少要大于100行;

(3). 将代码上传至个人GitHub或系统中,并将代码地址交给对方;

(4). 对同伴的作品进行代码复审,并参照C/C++代码审查表和 Java代码审查表 这两篇博文的内容自行设计代码审查表并填写内容;

(5). 将对伙伴审查的结果以表格的形式写到自己的博客作业里,博客中应该附有伙伴作业的GitHub或的代码地址;

(6). 对同伴的代码写一篇500字以上的评论,介绍同伴的优缺点。

二、详细介绍

1、代码地址

这是同伴于秀数据结构课程设计的代码,并且已经提交至

2.C++代码审查表

三、代码评价

下面我将对同伴于秀的代码进行审查评价

1.代码实现功能

通过审查代码,我能够清楚了解到这段代码是想要从键盘输入一个AOE 网,并选择一个合适的存储结构存储这个AOE网。她的想法是经过拓扑排序判断是否存在回路,之后将得到的线性序列输出,如果不存在回路,则输出这条关键路径上的所有顶点以及这条关键路径上的所有的活动。

2.优点

(1)总体上来说程序格式规范,空行都很标准,并且“{” 和 “}” 各占一行对齐于同一列,这让代码整体看上去很整洁,让人赏心悦目

(2)虽然总的代码行数偏多,但很有结构性,作者将整体代码模块化,通过阅读,可以较清晰地知道作者整体过程分成了四个模块:栈模块,图模块,拓扑排序模块,关键路径模块,每部分都实现一个功能,这样不仅能让阅读时更加方便,而且在编写代码的过程中也方便自己查错

栈模块

void Push(Node &S,int e) //入栈操作void Pop(Node &S,int &e) //出栈操作

图模块

void createALG(ALGraph *G)

拓扑排序模块

int TPS(ALGraph *G)

关键路径模块

void Find(ALGraph *G)

(3)每段代码中有适当的注释,在每个程序块后都有注明其作用或者重要语句后也有注释,使读者很容易清楚该程序块的功能,如下面部分代码:

void InitStack(Node &S) //栈的初始化{S.base=(int *)malloc(MAXSIZE*sizeof(int)); //给栈底指针申请内存if(!S.base) //如果申请失败就退出exit(0);S.top=S.base;S.size=MAXSIZE; //设置栈的大小}

(4)函数命名非常得体,在各个功能函数的命名都准确的表达该功能模块的作用

(5)整体代码比较完整,有错误处理,在用户输入非法字符或者进行错误操作时,都会有相应的错误提示和错误处理,这一设计很人性化

2.不足之处

(1)整体上各变量名没有重复,并且运用英文,能够让读者清楚地了解到每一个变量的用途,但还是有个别变量采用的是中文拼音,没有标准化

例如下面这个变量名字的定义,通过阅读其他相关语句后,才了解到这里作者定义的变量想要表达的是出度和入度,如果这里将拼音改成英文会更直观明了

int rudu,chudu;

下面的语句虽然没有用拼音,但是由于过于简单,单看变量名字不能知道用途,而且多条语句写在一行上,不方便测试

int i, k, e, l;

(2)长语句没有进行拆分,看上去不是很美观,例如下面这两条语句

printf("(%d, %d), 最早开始时间: e=%d ,最迟开始时间: l=%d ,活动: key:%d\n", G->adjlist[i].vextex, G->adjlist[k].vextex,e,l,p->weight);

while(printf("********************\n****\n** 输入s或S开始 **\n** 输入o或O结束 **\n****\n********************\n请输入你的选择\n")&&scanf("%s",gn)!=EOF)

四、总结

通过本次阅读同伴的代码,让我学到了很多,首先我了解了同伴写代码的风格,作者比较习惯将每一部分模块化,将每一个要实现的功能写在一个函数中,这是一个很好的习惯,方便他人学习和阅读也方便了自己的检查,这一点是我要向她学习的地方。虽然在阅读过程中发现了几个小问题,但毕竟是一年前写的代码,经过一年的编程和学习,我相信她有了很大的进步。很高兴有了这次学习的机会,让我能够学习到他人的优点,意识到代码复审的重要性,希望我能够通过这次的结对作业,充分吸取同伴的优点,也希望以后我不会出现在这份代码中发现的错误。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。