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

一、提供你的结对成员的博客链接地址(5分)

https://www.cnblogs.com/zcy-/p/11714440.html

二、代码互审

丛慧的代码审查表(由张晨钰完成)

Y代表是,N代表否

(1)概要部分

代码符合需求和规格说明吗? Y
代码设计是否考虑周全? N
代码可读性如何? N
代码容易维护吗? Y
代码的每一行都执行并检查过吗? Y

(2)设计规范部分

设计是否遵从从已知的设计模式或项目中的常用模式? Y
有没有硬编码或字符串、数字的存在? N
代码有没有依赖某一平台,是否会影响将来移植? N
开发者新写的代码能否用已拥有的Library/SDK/Framework中的功能实现? N
有没有无用的代码可以清除? N

(3)代码规范部分

修改的部分符合代码标准和风格吗? Y
注释是否清晰且有必要? N
函数是否已经有文档注释? Y
每行是否只声明一个变量? N
代码行长度是否在要求内? N

(4)具体代码部分

有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? N
参数传递有无错误,字符串长度是字节长度还是字符长度? N,字符
边界条件如何处理?switch语句的default分支如何处理?循环有没有可能出现死循环? N
有没有使用断言来保证我们认为不变的条件真的得到满足? N
对资源的利用是在哪里申请?在哪里释放?有无可能存在资源泄露?有无优化空间? N
数据结构中有没有用不到的元素? N

(5)效能

代码中的效能如何? Y
代码中,特别是循环中是否有明显可优化的部分? Y
对于系统和网络的调用是否超时?如何处理? N

(6)代码可读性

代码可读性如何?有没有足够的解释? Y
缩进层数是否不超过规定? N
代码行内空格是否得体? N

(7)可测试性

代码是否需要更新或创建新的单元测试?
N

张晨钰的代码审查表(由丛慧完成)

(1)概要部分

代码符合需求和规格说明吗? Y
代码设计是否考虑周全? Y
代码可读性如何? Y
代码容易维护吗? Y
代码的每一行都执行并检查过吗? Y

(2)设计规范部分

设计是否遵从从已知的设计模式或项目中的常用模式? Y
有没有硬编码或字符串、数字的存在? N
代码有没有依赖某一平台,是否会影响将来移植? N
开发者新写的代码能否用已拥有的Library/SDK/Framework中的功能实现? N
有没有无用的代码可以清除? N

(3)代码规范部分

修改的部分符合代码标准和风格吗? Y
注释是否清晰且有必要? N
函数是否已经有文档注释? Y
每行是否只声明一个变量? N
代码行长度是否在要求内? N

(4)具体代码部分

有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? Y
参数传递有无错误,字符串长度是字节长度还是字符长度? N,字符
边界条件如何处理?switch语句的default分支如何处理?循环有没有可能出现死循环? N
有没有使用断言来保证我们认为不变的条件真的得到满足? Y
对资源的利用是在哪里申请?在哪里释放?有无可能存在资源泄露?有无优化空间? Y
数据结构中有没有用不到的元素? N

(5)效能

代码中的效能如何? Y
代码中,特别是循环中是否有明显可优化的部分? Y
对于系统和网络的调用是否超时?如何处理? N

(6)代码可读性

代码可读性如何?有没有足够的解释? Y
缩进层数是否不超过规定? N
代码行内空格是否得体? N

(7)可测试性

代码是否需要更新或创建新的单元测试?
N

三、选取其中一个成员的项目为基础,进行结对编程。结对项目撰写的博客要求:

(a)结合课堂讲授内容,制订一份2人共同遵守的代码编写基本规范(至少包括注释规范与变量命名规范)。

根据代码互审结果最终选择张晨钰的项目为基础

代码编写基本规范:

(1)关键字public,protected,private不要缩进,声明的函数和变量缩进一个制表符

(2)类声明前应该加上注释,注明该类的作用

(3)类中成员必须进行初始化,可以通过构造函数的初始化列表初始化成员的函数。

(4)在每个类声明之后,每个函数定义结束之后都要加一个空行。

(5)一行代码只做一个事情,这样代码易于阅读。

(6)代码的最大长度宜控制在70-80个字节。

(7)标识符应当直观且可以拼读,做到见名知意。

(8)字符串不应该重复,如果多次用到同一字符串,建议将该字符串定义为字符串常量,再引用。

(9)为不容易理解类变量注释。注释代码段,注释逻辑选择。

(b)描述结对编程的感受。

通过此次结对编程,我体会到了合作者之间的默契的重要性,而且知识储备也是很重要的,我对Java的学习有所欠缺 所以日后还需多加努力,弥补自己的不足之处,

在下一次的合作中能有更出色的成绩。

(c)结对场景照片

(4)结对项目编程要求:(40分)

      对结对项目首先完成代码规范和设计规范的修改,其次完成项目增加的需求,最后将完成的项目提交到github上,给出github的连接地址,可以给出简单的设计说明。

      增加的需求:(a)考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序如何处理。

                           (b)增大算式生成数的范围(如整数存不下的数),程序如何处理。

上传到github上的网址:https://github.com/Zcy-1-20/package/tree/master/zcy

设计说明:

将程序模块化,保证每个模块对其他所有模块抖音比自己的设计决策,让模块规定并设计成为在模块中包含的信息不被需要这些信息的其他模块访问。所有访问都通过访问函数实现。

原文地址:https://www.cnblogs.com/conghui19/p/11728877.html

时间: 2024-07-30 06:24:54

第四次软件工程项目---结对编程的相关文章

第五次软件工程作业---结对编程2

一.题目要求 本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自己的爱好任选一题. 题目1: 我们在刚开始上课的时候介绍过一个小学四则运算自动生成程序的例子,请实现它,要求: 能够自动生成四则运算练习题 可以定制题目数量 用户可以选择运算符 用户设置最大数(如十以内.百以内等) 用户选择是否有括号.是否有小数 用户选择输出方式(如输出到文件.打印机等) 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主) 二.实际过

结对编程-OR & Creddit对个人项目代码的复用与扩展

项目题目: 用户: 小学.初中和高中学生. 功能: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-10位,必须含大小写字母和数字.用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功: 3.密码设置成功后,跳转到选择界面,界面显示小学.初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量: 4.用户输入题目数量后,生成一张

第三次作业结对编程

一.结对编程成员 1.领航员:闵际达 2.驾驶员:郦铸辉 二.黄金点游戏游戏规则 N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值.提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分.玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动. 三.代码上传 代码已上传至Coding.net,地址为:https://coding.

软件工程项目之二:结对编程——四则运算生成计算程序

0x01 :简介 本次的编程任务是完成一个具有UI界面的,具备四则运算生成.计算.判断对错功能的程序.本次程序使用C#语言编写,用时为2周. 0x02 :软件工程和PSP表格记录 PSP 2.1 Persinal Software Process Stages Time(Estimated) Time(Real) Planning 计划     Estimate 估计这个任务需要多少时间 24h 36h Development 开发     Analysis 需求分析(包括学习新技术) 8~10

第四次作业 结对编程 (四则混合运算)

一 需求分析 本次我们做的程序是数学的四则混合运算,并且增加了部分人性化的功能,接下来,我们谈谈这个程序的相关需求,此程序是一个1—10的四则混合运算,那么可以想到主要用于小学生,(ps 个人想法,不排除其他高年级的使用,因为用户可以输入任意的随机数范围),此外,本程序还可能会出现在家庭.教育机构和部分教学网站上面,因为他们可能会给学生出一些简单的数学题目,可以自由设置测试时间,题目数量等内容,而这一程序正好解决了这一个问题,我想,产品的需求必须首先知道用户需要什么,要以客户为中心.而这个产品正

结对编程-黄金点游戏之旅[四]

(游戏已上线,更多信息请戳底部链接▼) <--戳这个链接也会跳的哦, 了解游戏规则戳这里-->游戏规则 我的队友: 张波(进入博客请戳底部链接) 性格开朗,人很随和,不想写代码的时候都是他主动拉着我去写的,工作认真负责,有分歧的地方或者逻辑不顺的地方我们都会仔细讨论 主要负责写后台的业务逻辑,登陆.注册.开始游戏等小功能的后台代码 遵照代码规范.每次他写完后我都会做Code Review,虽然没有自动化测试,没有性能分析,但是我会单步调试,分析每一行代码的逻辑和作用 我: 李洋洋 主要负责前端

结对编程项目:带UI的小初高数学学习软件

用户: 小学.初中和高中学生. 功能: 1.用户注册功能. 2.登录,修改密码 3.在线做题,评分 经验总结 这次的结对编程并没有实现对个人项目的复用,经过对结对编程需求的分析发现个人项目的出题逻辑完全不能用于小初高数学学习软件, 因为在个人项目中的出题逻辑是几乎是采用的完全随机,在结对编程项目中这种逻辑是行不通的,没有办法采用答案,而且在个人项目中我们 都是采用的面向过程的方法,同时我们的个人项目结构也有点混乱,导致了复用的难度很大.所以我们完全重新写了代码,实现了登录/注测, 修改密码,选择

带UI的小初高数学学习软件-与张凯翔同学共同完成结对编程

这次的结对编程是要我们在个人项目的基础上,经过合作和创新,来完成一个带UI界面的出卷答题系统,综合分析题目,这次的项目共有几个难点: 第一,实现UI界面:第二,通过调用短信服务来进行注册:第三,这次登录的账号都要经过注册,这意味这我们需要使用数据库来储存每一个登录或注册的账号,或者使用文件流从txt文件读取:第四,这次不仅需要出题,还要生成四个答案,就是说要负责出题和做题: 经过我们两个人的讨论,我们决定凭借张凯翔同学已经在个人项目实现UI界面的优势,直接使用JAVA语言进行开发,由张凯翔进行U

结对编程-带UI的小初高数学学习软件-分析总结

开发环境选择的是VS2015,使用Win32 API进行开发.我主要负责软件UI的设计和实现,队友负责算式的计算,最后一起实现短信验证码的发送功能,再进行整合. 代码复用的主要部分是生成题目的部分. UI界面的实现: 并没有使用 已经将已经将Windows界面程序的创建过程完全封装的Qt或者MFC进行实现,而是比较底层的使用Win32 API 手动创建窗口以及各种需要用到的窗口控件和手写消息处理函数.怎样做的坏处很明显,就是会导致巨大的代码量以及长久的开发周期,但对于理解Windows窗口程序的