作业3

一.思路

这次作业的难点我觉得集中于两点:重构和单例。

重构的意思是外面没有变化,而里面却焕然一新,变得更易于修改,易于测试,以致使代码更好地重用。不过由于代码数量本身不多,所以重构并没有体现出它的威力。在这次作业中主要添加了记录最优子矩阵的代码,重写了返回值,将子矩阵也一起返回,方便主界面调用。

而单例模式如何保证呢?

梁杰同学想出了这个办法:就是通过文件的方式来为主界面添加新命令。具体思路就是,我们有一个data文件,文件当中存储的是当前的所有命令。主界面会定期访问data文件,从文件中读取所有命令,如果发现有新命令就刷新界面。如果在已经有一个主界面的情况下再次运行命令,则会将新命令添加到data文件中并退出。这样就变相实现了通信。虽然不是最完美的办法,但是也可以解决问题。

二.心得

主要谈谈结对编程的感想。任务安排下来有三点,一是设计,二是编码,三是测试。我功力较差,拿到了测试的资格,非常开心︿( ̄︶ ̄)^。在实际运用中,我们拿了一个星期六上午的早上尝试结对编程,主要是在编码过程中能跟随代码走,提前纠正一些细节上的小错误。不过我的感受是这种小规模的作业题还是适合自己动手做,毕竟是算法类的题目,而不是工程类的题目,要是换成万行以上的大项目,估计更能见识结对编程的威力。

三.效率分析

Personal Software Process Stages 时间百分比(%)

实际花费的时间 (分钟)

计划 10% 24

· 估计这个任务需要多少时间,把工作细化并大致排序

10% 24
开发 85% 204

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

15%

36

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

10% 24

· 代码规范 (制定合适的规范)

5% 12

· 具体设计

10% 24

· 具体编码

35% 84

· 代码复审

5% 12

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

5% 12
总结报告 5% 12
总计 100% 240

 

四.效果截图

posted on 2013-10-16 21:20  mountainking  阅读(214)  评论(3编辑  收藏  举报