结对作业

一、项目地址Coding.Net项目地址:https://git.coding.net/zhangjd725/teamwork.git

二、估计PSP

 

PSP

任务内容

计划共完成需要的时间

(min)

Planning

计划

50

Estimate

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

50

Development

开发

约8d

Analysis

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

40

Design Spec

生成设计文档

30

Design Review

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

15

CodingStandard

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

25

Design

具体设计

45

Coding

具体编码

300

Code Review

代码复审

50

Test

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

600

Reporting

报告

100

Test Report

测试报告

40

Size Measurement

计算工作量

20

Postmortem & Process Improvement Plan

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

40

三、资料阅读

信息隐藏

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

设计时,提高方法的封装性,将每个方法接收数据、处理数据、传递数据功能设计好,提高抽象性

接口设计

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

设计时,通过注释解释接口的作用、调用前提、参数、返回值。防止使用者看不懂。

松耦合

模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。

设计时,一个函数实现一个独立的功能(强内聚);模块内子程序应共享数据,而减少全局变量能降低子程序性间的耦合性。

 

四、接口设计与实现

command主函数接收参数并对参数进行处理,异常处理结果提交给printData提示错误,否则传递参数给createFile来创建txt

createFile使用generate来生成表达式,并对产生括号addBracket、生成指定操作符表达式Expression、结果求值Expression_result

Expression_result使用了转后缀toReversePolish计算

五、接口性能改进

 

六、单元测试

 

单元测试不熟悉,未能编辑出测试代码,只能每次一组一组地运行,导致覆盖率较低

七、异常处理

 参数范围

 

 

八、界面设计

 使用了javafx完成

 

 1 public class  calUI extends Application {
 2     long startTim=0;
 3     long endTim=0;
 4     int right=0;
 5     static int readN=0;
 6     static int sta=0;
 7     //Button startAns=new Button("开始答题");
 8     AnchorPane anchorPane=new AnchorPane();
 9     Label showGe=new Label("表达式");
10     Button subAns=new Button("产生下一道题目");
11     Button intro=new Button("使用介绍");
12     HBox v=new HBox(20);
13     TextField res=new TextField();
14     String[] importGenerate=new String[11000];
15     int[] geneRes=new int[11000];
16     Button sub=new Button("生成题目");
17     Button bt1=new Button("我要答题");
18     Button bt2=new Button("我要出题");
19     static TextField str=new TextField();
20     Stage stage=new Stage();
21     public static void main(String[] args) throws IOException
22     {
23         launch(args);
24     }
25     @Override
26     public void start(Stage primaryStage) {
27         primaryStage.setHeight(618);
28      primaryStage.setWidth(1000);
29      bt1.setPrefSize(100,50);
30      bt2.setPrefSize(100,50);
31      intro.setPrefSize(100,50);
32      HBox hb=new HBox(150);
33      hb.getChildren().addAll(bt1,bt2,intro);
34      hb.setAlignment(Pos.CENTER);
35         v.setAlignment(Pos.CENTER);
36         v.getChildren().addAll(showGe,res,subAns);
37         AnchorPane.setBottomAnchor(v,200.0);
38         AnchorPane.setLeftAnchor(v,300.0);
39      anchorPane.getChildren().addAll(hb,v);
40      v.setVisible(false);
41      AnchorPane.setLeftAnchor(hb,primaryStage.getWidth()/5.0);
42      AnchorPane.setTopAnchor(hb,100.0);
43      Scene myScene=new Scene(anchorPane,1000,618);
44      primaryStage.setScene(myScene);
45      primaryStage.setTitle("算你狠");
46      primaryStage.initStyle(StageStyle.DECORATED);
47      primaryStage.show();
48      subAns.setOnAction(new handler());//提交答案
49      bt1.setOnAction(new handler());
50      bt2.setOnAction(new handler());
51     }

 界面2.0更新:详见张济吨博客

九、模块对接

 

十、结对过程

 

 阿萨德

十一、结对思考

 结对编程:

优点:

两人合作能有更强的解决问题的能力

结对编程让两个人所写的代码不断地处于“复审”的过程

结对编程特别适合于知识的分享和传递

缺点:

开发人员需要时间来适应这种新的开发模式

并不是所有的项目都适合结对编程

两个人水平相似,结对编程有浪费时间的嫌疑

结对编程很累

个人优缺点:

张济吨

优点:java基础夯实、动手能力强、敢想敢做

缺点:倔强

李伟

优点:一定的算法基础、思维活跃、认真踏实

缺点:懒散

十二、PSP表格

 

PSP2.1

任务内容

实际完成需要的时间

(min)

Planning

计划

60

Estimate

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

60

Development

开发

2420

Analysis

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

45

Design Spec

生成设计文档

20

Design Review

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

10

CodingStandard

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

20

Design

具体设计

45

Coding

具体编码

1080

Code Review

代码复审

60

Test

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

1140

Reporting

报告

85

Test Report

测试报告

25

Size Measurement

计算工作量

20

Postmortem & Process Improvement Plan

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

40

posted @ 2018-04-10 08:01  敲门的钥匙  阅读(234)  评论(1编辑  收藏  举报