小学四则运算结对项目

项目地址:https://git.coding.net/liuseshz/Pairwork1.git

由于我们两人小组技术的限制,此次作业选择了基于GUI的四则运算程序项目。

结对成员:2016012051 裴颖(http://www.cnblogs.com/Cathelina/)   2016012026 管凌波

附计划PSP:

PSP2.1

任务内容

计划共完成需要的时间(min)

Planning

计划

30

·        Estimate

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

30

Development

开发

800

·        Analysis

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

20

·        Design Spec

·         生成设计文档

10

·        Design Review

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

10

·        Coding Standard

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

10

·        Design

·         具体设计

20

·        Coding

·         具体编码

640

·        Code Review

·         代码复审

30

·        Test

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

60

Reporting

报告

30

·         Test Report

·         测试报告

10

·         Size Measurement

        

 

·         计算工作量

10

·         Postmortem & Process Improvement Plan

        

 

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

10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Information Hiding,信息隐藏。信息隐藏是结构化设计与面向对象设计的基础。在结构化中函数的概念和面向对象的封装思想都来源于信息隐藏。类与类之间用接口访问也是一种信息隐藏。我们设计了一些类与类之间的接口,隐藏了类中的信息。在设定范围时定义了常量。

Interface Design, 接口设计。此次编程用到了接口。

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

Loose Coupling,松耦合。接口设计本身就实现了松耦合的作用,降低了模块之间的耦合度,彼此之间依赖性低,不会互相影响。

一、计算模块接口的设计与实现过程:

Main类负责接收定制数据,Jisuan1,Jisuan2,Jisuan3是计算模块,MainFrame类为题目显示与判断,提交,结算界面。

我们使用了按钮监听器、复选框监听器以及文件监听器。

下面是计时器的代码。

now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
final Timer timer = new Timer(1000, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        Date now2 = new Date(now.getTime() + 1000);
        now = now2;
        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
        lbl.setText(formatter.format(now));
        }
        });
timer.start();

 

二.计算模块接口部分的性能改进:记录在改进计算模块性能上所花费的时间,描述你改进的思路,并展示一张性能分析图,并展示你程序中消耗最大的函数。

在改进计算模块时,我们按运算符数不同分成不同的类,这样做实际上是出于我们能力的考虑,在计算时也不会像把所有种类运算结合在一起时那样容易出错了。

三、计算模块部分单元测试展示:

展示出项目部分单元测试代码,并说明测试的函数,构造测试数据的思路。并将单元测试得到的测试覆盖率截图,发表在博客中。只需要测试命令行部分,且该部分覆盖率到90%以上,否则单元测试部分视作无效。(6')

四、计算模块部分异常处理说明:

在博客中详细介绍每种异常的设计目标。每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景。

1.对输入出题数、运算符个数、范围等进行,判断其是否合法
if (jtf == false) {
            System.out.println("请输入题目数量");
        } else if (jtf == false) {
            System.out.println("输入的参数中必须包含对题目数值上下界的设定,请重新输入");
        }

2.

try {
                        BufferedReader br = new BufferedReader(new FileReader(file));
                         try {
                             while((line = br.readLine()) != null){
                                 String[] num = +++line.split("#");
                                 zheng1=Integer.parseInt(num[1]);
                                 cuo1=Integer.parseInt(num[3]);
                             }} catch (IOException ex) {
                             Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                         }
                    } catch (FileNotFoundException ex) {
                        keep();
                    }

3.

try {
                                if (fop != null) {
                                 fop.close();
                                }
                               } catch (IOException e) {
                                e.printStackTrace();
                               }

 

五、界面模块的详细设计过程:

所有界面包含语言转换选择。

1.生成主页面定制出题数,运算符数要求

2.点击开始按钮,跳转到做题界面

3.做题界面随机产生要求题目,并计时

4.用户填写答案后按提交按钮,跳转到结算界面,显示答案正误与所用时间。

六、界面模块与计算模块的对接:详细地描述UI模块的设计与两个模块的对接,并在博客中截图实现的功能。

如图所示,用监视器实现界面模块与计算模式的对接。当点击提交按钮时,监视器捕捉动作,连接计算模块,对提交结果进行判断,反馈到结算界面。

 

七、讨论现场:

 

八、结对编程感想:

对于同一个项目,结对编程比个人编程绝对轻松许多。有了分工,从工作量方面可以说没那么重了,烦躁的时候有人在旁心情也会舒缓许多,此为优点之一。

我们学习时总有各自的侧重点,结对编程也是个互补的过程,此为优点之二。

从对方的身上可以学到生活和学习上的一些优点,新了解不同的方法与技术,此为优点之三。

那么谈一下缺点吧。感触很深的是,由于我们两个人都只会一点前端的知识,做一个完整的项目是有一定难度的。除我们之外,我相信还有一些组会面对技术知识重合度高,对别的知识面不够了解的情况,这个问题使分工和测试校对都很艰难。

队员优缺点:

裴颖

①优点:思想活跃、性格比较活泼、乐观

②缺点:做事容易拖延

①优点:比较有耐心,沉稳

②缺点:代码能力弱,积极性不高

最后做出来的东西有一些功能没有实现,我们会在之后进行完善补充。总而言之,此次结对编程让我学到了一些东西,希望之后的合作我们都能更上一层楼吧!

 

附实际PSP:

PSP2.1

任务内容

实际完成需要的时间(min)

Planning

计划

20

·        Estimate

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

20

Development

开发

1500

·        Analysis

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

20

·        Design Spec

·         生成设计文档

20

·        Design Review

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

10

·        Coding Standard

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

10

·        Design

·         具体设计

40

·        Coding

·         具体编码

1100

·        Code Review

·         代码复审

60

·        Test

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

240

Reporting

报告

31

·         Test Report

·         测试报告

8

·         Size Measurement

        

 

·         计算工作量

8

·         Postmortem & Process Improvement Plan

        

 

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

15

转载于:https://www.cnblogs.com/liuseshz/p/8776074.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值