1)在文章开头给出Coding.Net项目地址。(1')

https://git.coding.net/meiyoupiqidefan/jieduizuoye.git

url测试地址:http://39.105.6.214/four_Operations

2)在开始实现程序之前,在下述PSP表格记录下你估计将在程序的各个模块的开发上耗费的时间。(1’)

PSP

PSP

任务内容

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

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

Planning

计划

10

Estimate

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

5

Development

开发

5*60

Analysis

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

10*60

Design Spec

生成设计文档

1*60

Design Review

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

20

Coding Standard

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

10

Design

具体设计

30

Coding

具体编码

20*60

Code Review

代码复审

3*60

Test

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

5*60

Reporting

报告

2*60

Test Report

测试报告

3*60

Size Measurement

计算工作量

20

Postmortem & Process Improvement Plan

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

30

3)看教科书和其它资料中关于Information Hiding, Interface Design, Loose Coupling的章节,说明你们在结对编程中是如何利用这些方法对接口进行设计的。(3')

 

Information Hiding信息隐藏:

什么是信息隐藏:

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

为什么要信息隐藏:

  1. 隐藏复杂度:这样你就不用再去应付它,除非你要特别关注的时候;
  2. 隐藏变化源:这样当变化发生时,其影响就能被限制在局部范围内。复杂度的根源包括复杂的数据类型、文件结构、布尔判断以及晦涩的算法等等。

我们是怎么做的:

把方法集中到一个接口里,同时利用多态,使方法更易更改,代码重写性强。

Interface Design接口设计:

什么是接口设计:对接口的名字,功能,接口与接口间的继承关系进行设计;

为什么要接口设计:好的接口设计可以增强代码可读性,易用性,可更改性

我们是怎么做的:设计接口,规范接口名字,注重接口逻辑。

 Loose Coupling 松耦合

什么是松耦合:也叫做弱耦合,低耦合。耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

什么要松耦合:功能上或代码上可以达到重用,再组合新功能的时候,可以像搭积木一样,分别拿出去再重用,而不会太关联其他。

我们是怎么做的:将相互依赖的类放在一个命名空间(包)中,对外模块尽量与其他方法或功能减少联系。

4)计算模块接口的设计与实现过程。设计包括代码如何组织,比如会有几个类,几个函数,他们之间关系如何,关键函数是否需要画出流程图?说明你的算法的关键(不必列出源代码),以及独到之处。(4')

算法的话,一共在src层写了三个包:utilcontrolentiity

entity包中装javabean通过List泛型进行传输题目有关的信息,并按一次一题的形式呈现在前台界面;

control包中装有用来处理各种请求的Servlet文件;

util包中装有各种处理类,比如读取服务器端文件并进行下载的类等等;

关键函数是Generate类中的生成算法和Command类中的计算算法;

达到功能的模块化,核心模块是显示题到servlet界面的反复逻辑跳转;

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

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

7)计算模块部分异常处理说明。在博客中详细介绍每种异常的设计目标。每种异常都要选择一个单元测试样例发布在博客中,并指明错误对应的场景。(5')

我们制作的是web端四则运算器,在网页的输入中,我们使用了Bootstrap Validate 插件,对于不合法的值显示红框提示,合法的数值予以绿框通过,在前台保证传入到后台的值全部合法且有效。

部分代码如下:

8)界面模块的详细设计过程。在博客中详细介绍界面模块是的,并写一些必要的代码说明解释实现过程。(5')

下图为流程图:

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

index.jsp

主界面,可以选择出题还是做题;

setQuestions.jsp 出题界面,输入参数,定制题目

利用我们团队书写的js实现:只要输入为空即会提示并不访问服务器资源;

点击出题之后,可以浏览器下载出好的题目:

接下去是做题界面

upload.jsp 先从本地上传文件到服务器

服务器接收数据并显示出来:

在答案框输入错误格式文件或者错误内容时会出现提示:

若如下上传不合法内容:

则会显示:

10)描述结对的过程,提供非摆拍的两人在讨论的结对照片。(1')

11)结对编程的优缺点和结对成员的优缺点

结对编程:

优点:

  1. 两个人思维互补,互相讨论,有助于解决问题。
  2. 在有另一个人在场的情况下,给了编码者一定的压力,使得效率更高,互相监督,互相促进。
  3. 增强代码的可靠性,增强代码和产品质量,减少bug。

缺点:需要互相配合时间,习惯。

我:

优点:

  1. 思路清晰,规划项目
  2. 认真细致,遇到问题,耐心调试
  3. 编码速度较快

缺点:没有写注释的习惯,不太能听取或者不太能听懂搭档的意见;

我的搭档:

优点:

  1. 比较细心,在我逻辑盲区的时候真的能为我提供一些快捷又省力的方法;
  2. 代码逻辑强,善于优化代码

缺点:

和我一样都太能玩了呜呼呼呼,清明全都出去玩了,这两天没日没夜地赶项目呜呜呜;

12)在你实现完程序之后,在附录提供的PSP表格记录下你在程序的各个模块上实际花费的时间。(1')

PSP

PSP

任务内容

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

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

Planning

计划

10

15

Estimate

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

5

30

Development

开发

5*60

3*60

Analysis

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

10*60

10*60

Design Spec

生成设计文档

1*60

1*60

Design Review

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

20

30

Coding Standard

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

10

15

Design

具体设计

30

1*60

Coding

具体编码

20*60

24*60

Code Review

代码复审

3*60

5*60

Test

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

5*60

2*60

Reporting

报告

2*60

1*60

Test Report

测试报告

3*60

1*60

Size Measurement

计算工作量

20

20

Postmortem & Process Improvement Plan

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

30

30

四则运算web版的更多相关文章

  1. 四则运算web版需求规格说明书

    目录 1引言... 4 1.1  目的... 4 1.2  背景... 4 1.3  术语... 4 1.4  预期读者与阅读建议... 5 1.5  参考资料... 6 1.6  需求描述约定... ...

  2. 四则运算web最终版

    经过若干时间的奋战,终于完成了web版四则运算程序.团队成员:井小普.张贺. 设计思想: 在之前的程序基础上两人结合开发web系统. 首先,进行登录注册界面的编写,不同用户,对应不同的错题库,答题记录 ...

  3. 四则运算GUI版

    小学四则运算界面版 李永豪 201421123117 郑靖涛 201421123114 coding 地址:https://git.coding.net/ras/work2.git 一.题目描述 我们 ...

  4. Node学习笔记(三):基于socket.io web版你画我猜(一)

    经过惨淡的面试,也是知道了自己的不足,刚好最近在学习node,心中便有了做一个web版的你画我猜的想法 首先说下思路,在做准备工作的时候,有两个大概的思路: 1.规定一块div,捕捉鼠标事件,动态生成 ...

  5. 网站压力负载测试工具:Web版已逝,只好送大伙单机版

    前言: 最近老板资金周转出了点问题,工资好久没发了,于是暂闲置在家,静待老板弄到钱东山再起的消息: QQ群里,偶尔不时的会有人问,原来的分布式网站负载工具怎么下载不了啦?或者不能用啦?之类的问题. 我 ...

  6. 挖掘微信Web版通信的全过程 [转]

    昨天是周末,在家闲得无聊,于是去weiphone.com逛了一圈,偶然发现有人发了一帖叫<微信 for Mac>, 这勾起了我的好奇心,国内做Mac开发的人确实很少,对于那些能够独自开发一 ...

  7. 结对编程项目——四则运算vs版

    结对编程项目--四则运算vs版 1)小伙伴信息:        学号:130201238 赵莹        博客地址:点我进入 小伙伴的博客 2)实现的功能: 实现带有用户界面的四则运算:将原只能在 ...

  8. RDIFramework.NET Web版介绍

    RDIFramework.NET  Web版介绍 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件.这种模式统一了 ...

  9. RDIFramework.NET V2.5(.NET快速信息化系统开发框架) Web版界面样例(可参考)

    RDIFramework.NET V2.5(.NET快速信息化系统开发框架)  Web版介绍 现已升级到V2.8,点击查看 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起 ...

随机推荐

  1. STM32 HAL库学习系列第1篇 ADC配置 及 DAC配置

    ADC工作均为非阻塞状态 轮询模式 中断模式 DMA模式 库函数: HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc);//轮询模式,需放 ...

  2. 苏州Uber优步司机奖励政策(4月21日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  3. P4211 [LNOI2014]LCA

    P4211 [LNOI2014]LCA 链接 分析: 首先一种比较有趣的转化是,将所有点到1的路径上都+1,然后z到1的路径上的和,就是所有答案的deep的和. 对于多次询问,要么考虑有把询问离线,省 ...

  4. CentOS7中使用阿里云镜像

    之前因为下载Docker镜像很慢所以用了一家国内的镜像DaoCloud,今天要用的是阿里云的镜像库. 首先要开通了阿里云开发者帐号,地址 : https://dev.aliyun.com/search ...

  5. 一个导致MGR数据混乱Bug的分析和修复

    1.背景 MGR是个好东西,因为他从本质上解决了数据不一致的问题.不光是解决了问题,而且出自名门正派(Oracle的MySQL团队),对品质和后续的维护,我们是可以期待的. 但是在调研的过程中,发现有 ...

  6. int类型转换的几种方式差异

    1.(int)是一种类型转换:当我们觟nt类型到long,float,double,decimal类型,可以使用隐式转换,但是当我们从long类型到int类型就需要使用显式转换,否则会产生编译错误. ...

  7. Java实现Oracle的to_char函数

    /** * 将int.long.double.float.String.Date等类型format成字符类型 * * 一.数字format格式处理: * 01)99.99的实现,小数位四舍五入不够位数 ...

  8. HALCON视觉算子相关函数中文说明System(2)

    16.6  Parameters get_system_ 功能:根据HALCON系统参数获取关于当前的信息. set_system 功能:HALCON系统参数的设置. 16.7  Serial cle ...

  9. 年薪30W的软件测试“老司机”工作经验

    这几天,新入职的小MM提议“老司机”们把自己这些年的软件测试工作经验跟大家分享一下,让新同学学习学习,利用空闲时间我整理了一些,可能不全,勉强看看,这也算是对自己这些年的工作总结. 测试阶段划分 1. ...

  10. flask中的简单的前端写入

    那么flask这个框架是web开发,那么肯定离不开前端的一些代码,那么python用的web开发框架 开发所用的前端模板就是jinja2模板.相对于jinja1比起来性能做到了很大的提升,那么Vue一 ...