结对作业

前言:

  两个星期除了清明放假去天津旅游散散心以外,其他空闲时间一直在学java,一直在学java,和思考这次的作业该怎么做,因为我的java水平实在不怎么样,只能自己慢慢摸着石头过河,也有一直通宵看到凌晨4点,可能是天赋实在不行,学起来比别人要慢,所以到最后也只是做出了个大概,不求能打多少分,只是给我和队友的努力有一个交代吧。然后得交代一下,因为我结对比较晚,那个时候大部分同学都已经有队友了,在群里问有没有人组队也没有人回应,只能和我的室友以及隔壁寝的一个同学三个人一队,我们三个技术都比较差,而且分工上也不知道该怎么搞,就只能互相鼓励,慢慢摸索着来了,寻思着三个臭皮匠,顶个诸葛亮,现在看来,可能只能顶1/10个。


 

Coding.Net项目地址

https://git.coding.net/cuixh998/homework2.git

PSP

PSP2.1

任务内容

计划共完成需要的时间

实际完成需要的时间

Planning

计划

2h

2h

·        Estimate

·   估计这个任务需要多少时间,并规划大致工作步骤

3天

7天

Development

开发

3天

5天

·        Analysis

·         需求分析 (包括学习新技术)

2小时

1小时

·        Design Spec

·         生成设计文档

0

0

·        Design Review

·         设计复审 (和同事审核设计文档)

0

0

·        Coding Standard

·         代码规范 (为目前的开发制定合适的规范)

10分钟

0

·        Design

·         具体设计

3天

5天

·        Coding

·         具体编码

2天

5天

·        Code Review

·         代码复审

1天

0

·        Test

·         测试(自我测试,修改代码,提交修改)

2h

5h

Reporting

报告

1h

3h

·         Test Report

·         测试报告

30min

30min

·         Size Measurement

·         计算工作量

10min

10min

·         Postmortem & Process Improvement Plan

·         事后总结, 并提出过程改进计划

15min

15min


 


 

Information Hiding, Interface Design,Loose Coupling

信息隐藏:指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据),对于不需要这些信息的其他模块来说,是不可访问的。

接口设计:面向接口编程是软件工程领域常用的设计手段

松耦合度:基于面向接口编程,松耦合度是接口设计的目的,接口设计是松耦合度的实现手段

对于这个我也不是很懂,因为我只想要达成功能就好,这方面就没有很注重,技术好起来再慢慢研究。也看了一些博客有关这方面的。

https://www.cnblogs.com/daoshi/archive/2012/04/18/2454656.html

https://www.cnblogs.com/zfc2201/p/3423370.html

看了之后不算太懂,但也算有一定的了解。实践的话以后学会了慢慢改进


 

计算模块接口的设计和实现过程

 

这一块的话,因为我们是在上次个人项目的基础上进行的改进,所以将所有的东西一股脑写在了Main.java上,实现GUI也是在main.java上进行实现,所以对这方面没有什么建树,因此把同学们做的一些我认为好的(我能看懂的粘在博客上,仔细研究)

原图转自(http://www.cnblogs.com/ForeverSevrous/p/8733805.html)


 计算模块接口部分的性能改进

 计算机模块的接口部分的性能改进,因为计算时要考虑性能的问题,要进行性能分析等首先进行内存资源监控,当程序刚进入运行时,对当前状态进行测试,观察不同类的内存变化,一段时间后按下F4进行资源回收,此时发现在自己的向本地文件写入模块中有资源无法回收,经过进一步调试发现是对IO资源没有close,进而调用close()对IO资源进行关闭。同时在资源监测过程中发现出题模块对资源的占有较多,以及耗时较大,这里所改进的思路是将原来通过循环产生合法的运算式的方式改进成一次性输出合法运算式。

 

 


 

 


 

界面模块的详细设计过程

 设计的比较简陋,最后答题过后对整个的答对多少道题进行显示。

 

 

 

 

 


 描述结对的过程

我们三个人,因为技术都不怎么样,也不好分工,就互相帮助,谁会做就谁做这点,其他人做剩下的一些,一起学习,虽然做不到像一些大佬那样,能够实现所有功能,但也算做出来一个东西,算是没有把努力白费,结对编程的话,累了的时候至少不用想甲午中日战争了,可以和同学互相打趣,鼓励鼓励,能在累的时候,相互扶持,很幸运遇到队友。


结对编程的优点和缺点

优点

  1. 程序员互相帮助,互相教对方,可以得到能力上的互补。
  2. 可以让编程环境有效地贯彻Design。
  3. 增强代码和产品质量,并有效的减少BUG。
  4. 降低学习成本。一边编程,一边共享知识和经验,有效地在实践中进行学习。
  5. 在编程中,相互讨论,可能更快更有效地解决问题。

缺点

  1. 对于有不同习惯的编程人员,可以在起工作会产生麻烦,甚至矛盾。
  2. 有时候,程序员们会对一个问题各执己见(代码风格可能会是引发技术人员口水战的地方),争吵不休,反而产生重大内耗。
  3. 两个人在一起工作可能会出现工作精力不能集中的情况。程序员可能会交谈一些与工作无关的事情,反而分散注意力,导致效率比单人更为低下。
  4. 结对编程可能让程序员们相互学习得更快。有些时候,学习对方的长外,可能会和程序员们在起滋生不良气氛一样快。比如,合伙应付工作,敷衍项目。
  5. 面对新手,有经验的老手可能会觉得非常的烦躁。不合适的沟通会导到团队的不和谐。
  6. 新手在面对有经验的老手时会显得非常的紧张和不安,甚至出现害怕焦虑的的精神状态,从而总是出现低级错误,而老手站在他们后面不停地指责他们导致他们更加紧张,出现恶性循环。最终导致项目进展效率低下,并且团队貌合神离。
  7. 有经验的人更喜欢单兵作战,找个人来站在他背后看着他可能会让他感到非常的不爽,最终导致编程时受到情绪影响,反而出现反作用。

队友优缺点

崔啸寒:优点:态度积极,比较认真,明确目标

    缺点:缺乏与队友间的交流

王涛:优点:有明确的自我认知能力,善于鼓励队友,能在累的时候给队友力量

   缺点:易烦躁。

 

posted @ 2018-04-10 08:56  离人的血里住着风  阅读(220)  评论(4编辑  收藏  举报