软件工程第四次作业-结对项目

一、结对成员博客链接地址

胡艳春的博客地址:https://www.cnblogs.com/-huyue-/p/11729151.html

二、代码复审核查表

 

内容

胡艳春

荆雪艳

1.概要部分

1)代码符合需求和规格说明么?

符合

符合

2)代码设计是否考虑周全?

3)代码可读性如何

可读性高,逻辑清晰

可读性高,有足够注释

4)代码容易维护么?

相对容易简洁性高

5)代码的每一行都执行并检查过了吗?

2.设计规范部分

1)设计是否遵从已知的设计模式或项目中常用的模式

2)有没有硬编码或字符串或数字等存在?

3)代码有没有依赖于某平台,是否会影响将来的移植(如Win32到Win64)?

没有依赖平台 

没有依赖平台 

4)开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?是否存在类似的功能可以调用而不用全部重新实现?

没有 

没有 

5)有没有无用的代码可以清除? (很多人想保留尽可能多的代码, 因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码。

没有

3.代码规范部分

修改的部分符合代码标准和风格么(详细条文略) ?

符合

符合

4.具体代码部分

1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?

有对错误进行处理,检查了返回值

2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单1双字节)的长度,是以0开始计数还是以1开始计数?

无错误

从0开始

无错误 

从0开始

3)边界条件是如何处理的? switch 语句的default分支是如何处理的?循环有没有可能出现死循环?

从定义开始确定边界条件,先执行case再执行default,如果没有符合条件的case和default,直接结束switch

先确定边界条件,如果有符合条件的case与default,依次执行。否则,结束运行switch

4)有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足?

没有

没有

5)对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏(内存、文件、

各种GUI资源、数据库访问的连接,等等) ?有没有优化的空间?

全局变量,在程序运行完后释放掉,无动态申请资源的地方,执行到的时候申请,没有执行到的时候储存在类中,不会出现泄露

申请全局变量,在程序运行完后释放掉;有限次申请,所以可能不会导致资源泄露。

6)数据结构中有没有用不到的元素?

没有

没有

5.效能

1)代码的效能( Performance )如何?

效能良好

效能良好

2)代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中string的操作是否能StringBuilder来优化) ?

3)对于系统和网络的调用是否会超时?如何处理?

不会

不会

6.可读性

代码可读性如何?有没有足够的注释?

可读性良好,有足够的注释

可读性良好,有足够的注释

7.可测试性

代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

三、代码编写基本规范

1、代码风格规范

(1)缩进:四个空格的距离从可读性上来说正好;

(2)行宽:限定为100个字符;

(3)括号:在复杂的条件表达式中,用括号清楚的表示逻辑优先级;

(4)断行与空白的{}行:在有多层控制嵌套时,更容易看清结构和对应关系;

(5)分行:不要把多条语句写在同一行上;

(6)命名:首字母大写,每个单词首字母大写(大驼峰命名法),尽量使用能够反映类功能的名词短语,见名知意;

(7)方法名:首字母小写,剩余的每个单词的首字母大写(小驼峰命名法),见名知意;

(8)下划线:用来分割变量名字中的作用域,标注和变量的语义;

(9)大小写:由多个单词组成的变量名,所有单词第一个字母都大写,简洁明了,见名知意;

(10)注释要求:在方法内部注释的地方使用//即可。复杂的注释要放在类头,并且注释要随着程序的修改而不断更新;

2、代码设计规范

(1)函数:最重要的原则是,只做一件事并且做好;

(2)goto:函数最好有单一的出口,可以使用goto语句;

(3)错误处理:参数处理时,对从外部传过来的参数应进行验证;

3、核心原则

  (1)  代码简洁易懂,逻辑清晰。

  (2)  面向变化编程而非面向需求编程,因为需求是暂时的,代码要利于根据需求变化。

  (3)  先保证程序的正确性,以防开始时就过度考虑代码的扩展性。

 四、结对编程的感受

优点:

1. 我觉得结对编程的编程效果会比个人编程高,在编程期间可以互相鼓励,碰到困难不容易失去信心;

2. 组队工作会增加成员的工作积极性,同时起到互相监督,互相学习的效果;

3. 借助彼此的长处可以互相学习编程技巧,锻炼与人沟通表达能力,有问题能及时言语清晰直击要害的表达出来。

缺点:

1.两个人想法不同的时候容易产生争执。

2.写代码习惯不一样,容易产生有的地方看不懂的情况。

综上所述,结对编程的优点多于缺点,结对编程对彼此编程技术的学习和锻炼自己的表达能力都是很好的方式途径,也让我们意识到团队的重要性和强大性。

 五、结对场景照片

 

 六、项目设计说明

 1、设计目标

  本次四则运算的程序设计,通过java编写能够完成四则运算的各个功能,利用面向对象的程序设计的思想,将各个组件的事件响应用不同的方式表现出来。

 2、设计流程

 (1)  分析四则运算需要完成的功能

 (2)  考虑异常处理

 (3)  编码实现各个功能

七、Github链接地址

  https://github.com/hu01234/yueyue

 

posted @ 2019-10-24 12:01  姓荆的荆  阅读(142)  评论(0编辑  收藏  举报