结对项目

2015结队项目

队员: 徐越 潘成鼎

Q:照至少一张照片, 展现两人在一起合作编程的情况。

结对项目_第1张图片

Q:说明结对编程的优点和缺点。

优点:

  1. 通过分工,提高软件开发流程的熟悉程度;
  2. 交替执行驾驶员和领航员的工作,了解彼此的思路,学习对方的优点;
  3. 领航员及时发现程序可能出现的Bug并给予修正,驾驶员可以将精力全部投入coding中;
  4. 领航员可以灵活掌握工作强度,保证工作效率;

缺点:

  1. 如果项目比较简单,结队编程会牺牲将近一半的效率;
  2. 长时间的结队编程会使程序员在一定程度上丧失独立编程的能力;
  3. 如果结队双方的观念不同,最后得到的很有可能是一份没有亮点的、平庸的作品。

Q:结对的每一个人的优点和缺点在哪里 (要列出至少三个优点和一个缺点)。

徐越

优点:

1.耐心,可以进行长时间、高强度的编程工作;
2.学习能力强,善于在编程过程中查找并学习所需技术;
3.沟通理解能力强,能充分吸收队友的观点,并与自己的思路相结合;

缺点:

1.基础较为薄弱,编程过程中需要花费大量时间查找资料,从而降低效率

潘成鼎

优点:
  1. 基本功较强,编程效率很高;
  2. 善于划分工作步骤,通常会在较短时间内完成项目的基本框架。后期再在此基础上逐步完善,实现全部功能;
  3. 思路灵活,能对一个问题提出多种算法,并选择其中最有效的方法。
缺点:
  1. 工作时间不规律,在结队工作中配合较差。

Q:看教科书和其它资料中关于 Information Hiding, interface design, loose coupling 的章节,说明怎样利用这些好的设计方法。

Information Hiding

In computer science, information hiding is the principle of segregation of the design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed. The protection involves providing a stable interface which protects the remainder of the program from the implementation           
                         —— from wiki

  • 多层设计中的层与层之间加入接口层;
  • 所有类与类之间都通过接口类访问;
  • 类的所有数据成员都是private,所有访问都是通过访问函数实现的;

Interface design

Good user interface design facilitates finishing the task at hand without drawing unnecessary attention to itself. Graphic design and typography are utilized to support its usability, influencing how the user performs certain interactions and improving the aesthetic appeal of the design; design aesthetics may enhance or detract from the ability of users to use the functions of the interface.

  • 通过设计界面,和用户交互;
  • 每个单元实现一个主要功能,不相关的功能尽量间隔开,并设置界面切换的功能。
  • 通过强烈的视觉体验,提高用户对软件的满意度;

In computing and systems design a loosely coupled system is one in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components. Sub-areas include the coupling of classes, interfaces, data, and services.

  • 每个模块致力于实现一个单一的功能,不同的模块间功能不重叠;

单元测试

结对项目_第2张图片

UML图

结对项目_第3张图片

算法说明

这次主要沿用了第一次个人项目的结构。
value类用来创建“数值”对象,equation用来创建“算式”对象。background类提供了若干静态方法。包括随机生成算式、计算算式结果、判断答案正误这三个主要功能;
这里用的MFC来实现界面。calculater,grader,equationBuilder分别是实现上述三个主要功能的对话框类,用这三个类的对象创建了三个子对话框,嵌入到付对话框中的tab控件中,可由用户切换。

你可能感兴趣的:(结对项目)