结对编程博客作业

一、结对编程:

结对编程的优点:

1.在写代码过程中,有人进行实时的“复审”,能够有效减少逻辑错误。

2.测试时,多一个人就多一个思路,可以更好地找到很多边界情况进行测试。

3.能够互相学习,开拓事业。

缺点:

1.两人的时间凑到一起并不容易,很难完全按照结对编程的工作模式进行工作。

2.分工的话必然会造成工作量上的差异,容易引起一些问题。

3.个人的编程习惯可能会有差异,相互适应的过程中会花费掉一定的实践。

我的同伴的优点:

1.性格挺好,易于沟通。

2.认真完成分工。

3.没有什么不良嗜好以及个人卫生习惯问题,坐在一起编程比较舒适。

我的同伴的缺点:

1.代码风格不太好,看着比较不舒服,不过很快就克服了。

二、关于Information Hiding, interface design, loose coupling

1.Information Hiding:信息隐藏原则,只向外界展示一个类的部分信息,把需要隐藏的设为Private,不让外界访问。由于各个模块之间功能相对独立(模块化编程的要求),所以我们不需要向外界展示出实现细节。

2.Interface design:模块化编程的各个模块之间通过接口相连,我们需要定义好接口,才能使得各个散落的模块之间成为一个整体。而且,在实现之前正确定义好模块之间的接口,有助于帮助理清思路,迅速高效地实现模块。

3.loose coupling

所谓松耦合,就是模块之间耦合度不大,各自完成各自的工作,这就要求我们在设计之初,就要对各个模块所要完成的功能有一个清楚合理的规划。并且在测试的时候,较好地进行单元测试,以达到松耦合高内聚的要求。

三、契约式编程

其实上个学期在面向对象课程上我们就已经实践过这样的设计思路。无奈当时课业任务繁重,大多数同学都是在全部完成后,匆匆地将这部分的内容通过注释的形式补上提交作业,而没有去实践。

坦率地讲,这次作业我也没有采用这样的方式进行设计,但是通过重新思考,我认为这种设计方式有以下两个优点:

1.从用户角度:

用户可以更简单地进行使用,因为前置条件明确了输入需要满足的条件,这也就是用户的职责所在。

2.从设计者角度:在设计前置条件的时候能够主动地去思考有哪些边界条件或者非法的输入,也就更加有助于设计者主动地去思考如何处理这些情况,减少程序的谬误。

四、

五、单元测试及代码覆盖率

六、算法实现

关键在于,将运算符和数字统一定义成同一个类(成为element),然后通过一些属性进行界定,并且有几种独立的构造函数。这样使得计算层面较为简单(转后缀进行计算)。对一些输入的判断采用了正则的方式。

时间: 2024-10-14 01:00:16

结对编程博客作业的相关文章

软件工程结对编程博客

目录 结对编程博客 1.GitHub项目地址 2.PSP表格 3.看教科书和其它资料中关于Information Hiding, Interface Design, Loose Coupling的章节,说明你们在结对编程中是如何利用这些方法对接口进行设计的 4.计算模块接口的设计与实现过程 Input类 PreProcess类 DFS类 RingDFS类 Core类 Error类 5.画出UML图显示计算模块部分各个实体之间的关系 6.计算模块接口部分的性能改进.?记录在改进计算模块性能上所花费

结对编程博客

我们组成员:佘彦廷,周文祥 信息隐藏:指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的. 我们组本次作业这一方面体现在封装了第一次作业添加了一部分功能之后的代码,采用c++写底层,c#做界面的方式.c#里调用了c++生成的dll,总共只调用了一个方法,即通过点击运行按钮调用run方法进行计算,对于界面模块来说,计算的内部信息并不需要知道,而且也是不可访问的,界面模块看见的只有模块的入口,在该用的时候能从入口进去寻找,至于具体过程并不

C语言博客作业--一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 定义变量n,i,j,max等于0,a[]10用于存放输入的值,b[10]用于存放a[]中各个数有多少个; 输入n的值 i从0开始,每次加1,输入a[i]的值,直到i==n结束循环 i从0开始,判断i是否<n,,进入下一步,每次加一,直到条件不满足 j从0开始,判断j是否<n,,进入下一步,每次加一,直到条件不满足 如果a[i]==a[j],b[i]加一 i从0开始,判断i是否 输出a[j

文件服务相关博客作业

nfs和sameba博客作业 博客实践作业: (1) nfs server导出/data/目录: (2) nfs client挂载/data/至本地的/mydata目录:本地的mysqld或mariadb服务的数据目录设置为/mydata, 要求服务能正常启动,且可正常 存储数据 (3) 客户端(lamp)部署wordpress,并让其正常访问:要确保能正常发文章,上传图片: (4) 客户端2(lamp),挂载nfs server导出的文件系统至/var/www/html:验正其wordpres

https的博客作业

博客作业:分别使用httpd-2.2和httpd-2.4实现 1.建立httpd服务,要求: (1) 提供两个基于名称的虚拟主机www1, www2:有单独的错误日志和访问日志: (2) 通过www1的/server-status提供状态信息,且仅允许tom用户访问: (3) www2不允许192.168.0.0/24网络中任意主机访问: 2.为上面的第2个虚拟主机提供https服务: 前提准备: 172.16.1.1测试httpd-2.4,这是centos7系统 172.16.1.2测试htt

博客作业1--抽象数据类型

一.作业题目 实验题目 试仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算如下所示: 1.构造有理数R,元素x1,x2分别被赋以分子.分母值 2.销毁有理数R 3.用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母. 4.将有理数R的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母 5.有理数R1,R2相加,结果存入有理数R3 6.有理数R1,R2相减,结果存入有理数

个人博客作业Week7(心得体会)

Alpha阶段结束了,内心可以说是五味杂陈.不是说我们的产品拿不上台面那般差劲,复杂的心绪主要来源于和别的队的比较,别的队才刚刚发布没多久访问量和注册量就破百了,并且还发起了找bug送红包的活动.可能是觉得付出了相同的努力,却没办法换回相同的效果,看来还是得审视自己的问题. 本周的个人作业是阅读关于软件开发本质和开发方法的博客/文章,结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得.借这个机会找一下我们的不足吧. 阅读材料目录:

第八次个人博客作业

软工课程总结 一.回望开学初对于软件工程课程的想象,回望博客开篇时对于这门课和这学期的期望 对比开课前的我,现在的我写的代码的规范性和可扩展性越来越好了,可以更快更好地完成工作,最主要的是通过结对编程和团队编程学到了如何与他人合作编程,编程过程中与他人的意见出现分歧如何解决,走过整个软件开发的所有过程,受益匪浅.       最开始由于作业的紧张,觉得太占用自己的时间,有想过放弃,但后来还是坚持了下来,随后的结对编程和团队项目,证实了我的决定是正确的,虽然我的贡献不是最大的,但我从项目中学到了很

C语言博客作业—一二维数组

一.PTA实验作业 题目1:7-2 求整数序列中出现次数最多的数 1. 本题PTA提交列表 2. 设计思路 Begin 输入整数个数N 定义数组a[N] 输入数组a for(i 0 to N-1){//进行N次判断 for(j 0 to N-1) if(a[i]和a[j]相等) count加一 i等于0//第一次判断 使max=count; n=i;//n放下标,max放次数 i不等于0且count大于max 使max=count; n=i;//重新赋值 count为0//每次循环count为0