zoukankan      html  css  js  c++  java
  • 四则运算web版

    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

  • 相关阅读:
    Spring-AOP
    spring学习笔记
    费曼学习法:学习任何知识的好方法
    Spring学习
    Spring学习笔记
    Markdown学习(Typora)
    2020-07-16日报博客
    2020-07-15日报博客
    2020-07-14日报博客
    2020-07-13日报博客
  • 原文地址:https://www.cnblogs.com/leiqh549/p/8765158.html
Copyright © 2011-2022 走看看