zoukankan      html  css  js  c++  java
  • 结对项目

    写在最开始:

             在这里我想特别感谢我的搭档,王玉同学,如果没有同伴,我估计已经进精神病院了。

             首先不得不说,两个搞前端的菜鸡结对绝对是个错误。当我们大眼瞪小眼地看着报错信息的时候,我感到了绝望。后端知识的匮乏导致时间不协调,前端都没做好。

    而写着博客的我,现在依然是崩溃的,短短两周,学了GUI,学了数据库,但是依然不够,毕竟智商这东西,我发现它是学不来的。

    这次作业让我感觉到清明节应有的悲伤。在此祭奠我逝去的头发和脑细胞。

    一、    代码地址

    1、 coding.net地址:https://git.coding.net/sikiqk/teamworkassis.git

     

    2、 url测试地址:http://localhost:8080/index.jsp

    二、psp表格

    PSP2.1

    任务内容

    估计需要完成的时间

    (张慧)(min)

    估计需要完成的时间

    (王玉)(min)

    Planning

    计划

    30

    30

    ·        Estimate

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

    30

    30

    Development

    开发

    300

    300

    ·        Analysis

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

    120

    120

    ·        Design Spec

    ·         生成设计文档

    20

    20

    ·        Design Review

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

    0

    0

    ·        Coding Standard

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

    45

    45

    ·        Design

    ·         具体设计

    90

    90

    ·        Coding

    ·         具体编码

    360

    360

    ·        Code Review

    ·         代码复审

    60

    60

    ·        Test

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

    240

    240

    Reporting

    报告

    60

    60

    ·         Test Report

    ·         测试报告

    0

    0

    ·         Size Measurement

    ·         计算工作量

    24*2

    24*4

    ·         Postmortem & Process Improvement Plan

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

    120

    120

     

    三、Information Hiding, Interface Design, Loose Coupling

     对于面向对象的程序设计而言,信息隐藏是一种重要的软件开发手段,它与对象的封装(encapsulation)与模块化(modularity)密切相关。在我看来,信息隐藏使得一个类把复杂的、敏感的、一旦被外界捕获可能会引起不良后果的内容封装在自身内部,这个类以外的代码得不到此类信息(通过反射等手段可能对得到),以提高程序的安全性与健壮性。

    资料链接:https://blog.csdn.net/gongchuangsu/article/details/53895916
    interface design与loose coupling
    我个人感觉,这两个概念是相辅相成的,后者是前者的目的,前者是后者的实现手段。  面向接口编程是软件工程领域常用的设计手段,这对于一个团队而言,也是非常重要的,在做一个团队项目时,有人可能负责领域模型M(Model),有人负责前台V(View),有人负责业务逻辑C(Controller),在这种MVC的设计模式驱动下,我们首先想到的就是:定义一套公共的接口,方便各个模块之间的通讯。面向接口的程序设计思想是一种有效的手段。比如一个做业务逻辑的Team,他们并不清楚业务数据的CURD实现,但他们只要通过面向于数据组提供的一整套接口进行编程即可,同时,数据组的开发可以并行进行,这样,不需要等待一个模块的完成就可以预先“使用”这个模块,极大的提高了团队的效率
    而对于loose coupling(松耦合),它现在几乎已经与interface design等价了,很多项目中,loose coupling就是interface design,虽然向Spring等模块提供了IOC(Inverse of Control)等更高端的方法,但这些还是基于面向接口编程的。
    资料链接:https://www.cnblogs.com/magiccode1023/archive/2012/10/23/2736257.html

    4)计算模块接口的设计与实现过程。

    session变量有:fanwei(出题范围)、tishu(题目数)。

    index.jsp从用户获得fanwei、tishu和题目类型,传到xuanze.jsp进行处理,xuanze.jsp将fanwei和tishu设为全局变量,并根据题目类型重定向到ZSAssis.jsp、YSCFAssis.jsp或KHAssis.jsp,三个页面接收题目数和出题范围输出题目并用eval()函数进行计算,并记录页面时间,将正确结果和用户答案储存在数据库中并分别比较,得到正确题目数并设为全局变量,在result.jsp中反馈给用户正确题目数和答题时间。

    
    
    (1)    介绍求最大公约数与最小公倍数的方法的博客连接:https://blog.csdn.net/tingzhiyi/article/details/52058710
    (2)    介绍检测输入的重复数据博客链接:
    https://blog.csdn.net/carolcoral/article/details/78745159

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

    单元测试与覆盖率https://www.cnblogs.com/xiongmaopanda/p/3314660.html

    IntelliJ IDEA单元测试入门https://blog.csdn.net/u011138533/article/details/52165577

    单元测试流程(使用IntelliJ IDEA)

    1、        创建新的项目

    2、        创建一个新的类用于测试()

    3、        创建测试源根目录

    4、        创建一个测试类(IntelliJ IDEA提供了一个快捷操作Cmd + Shift + T作为类和测试之间的导航。同时允许用户在那里创建一个测试类。)

    选择JUnit 4作为单元测试库。IntelliJ IDEA将提供到件这个库添加到模块中。

    5、        运行测试(可以通过右键菜单在这个类上运行'MyClassTest'来进行测试)

    6、        收集覆盖(运行覆盖收集覆盖率,需要通过Run → Run 'MyClassTest' with Coverage或工具栏上的选项运行特定模式的测试。)

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

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

    界面展示

    Login界面

     

    通过连接数据库,验证用户登陆。数据库名:sizeyunsuan

    Register界面

     

    注册信息储存于数据库内。

    四则运算生成器

     

     

    输入题目数选择数值范围与题目类型,session成全局变量,有利于后面的开发。选择了题目的类型,分别进入不同的界面。我们分三个界面输出不同的运算类型。

     

    答题界面

     

    将题目和答案储存于数据库中,再进行对比得到正确的题目数,用js的setInterval函数编写计时器,记录用户从页面打开开始到提交题目所用的时间即为答题时间。

     

    成绩界面

     

    从全局变量session中获得答对题目个数和答题时间,反馈给用户。

     

     

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

    在前端页面中嵌入后端代码,没有模块化,没有对接。

    十、结对照片

     

    十一、说明结对的优缺点

    优点

    (1)在开发层次,结对编程能提供更好的设计质量和代码质量,两人合作能有更强的解决问题的能力。

    (2)对开发人员自身来说,结对工作能带来更多的信心,高质量的产出能带来更高的满足感。

    (3)在企业管理层次上,结对能更有效地交流,相互学习和传递经验,能更好地处理人员流动。因为一个人的知识已经被其他人共享。

    (4)结对编程的过程也是一个互相督促的过程,每个人的一举一动都在别人的视线之内,所有的想法都要受到对方的评价。由于这种督促的压力,使得程序员更认真地工作。结对编程“迫使”程序员必须频繁地交流,而且要提高自己的技术能力以免被别人小看。

    (5)结对编程让两个人所写的代码不断地处于“复审”的过程。复审是不断地审核,提高设计和编码质量的过程,这样能够及时地发现问题和解决问题,避免把问题拖到后面的阶段。

    (6)结对编程中驾驶员和领航员的互换可以让程序员轮流工作,从而避免出现过度思考而导致观察力和判断力下降。

    缺点

    (1)结对编程是一个相互学习、相互磨合的渐进过程。开发人员需要时间来适应这种新的开发模式。刚开始的结对编程很可能不比单独开发效率更高。

    (2)如果团队的人员要在多个项目中工作,不能充分保证足够的结对编程时间,那么成员要经常处于等待的状态,反而影响效率。

    (3)当两个人的技术水平或经验不均衡的时候,那么水平较弱或缺乏经验的一方往往会成为旁观者,或者需要对方给予一定的讲解,这无疑拖延了编程的进度。

    (4)当其中一人希望独自思考一段时间时,有可能会被认为是一种不合作的表现。

    评价

    姓名

    张慧

    王玉

     

    优点

    学习努力刻苦呕心沥血

    乐观

    在崩溃中容易找到希望

    容易沟通交流,容易合作

    鸡汤本人,在队友几欲想放弃的崩溃边缘用鸡汤解救队友,告诉她,分不重要,学到东西最重要。

    态度积极热爱学习

    缺点

    容易崩溃

    编程经验不足

     

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

    PSP2.1

    任务内容

    实际需要完成的时间

    (张慧)(min)

    实际需要完成的时间

    (王玉)(min)

    Planning

    计划

    20

    20

    ·        Estimate

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

    0

    0

    Development

    开发

    1200

    1200

    ·        Analysis

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

    360

    660

    ·        Design Spec

    ·         生成设计文档

    60

    60

    ·        Design Review

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

    0

    0

    ·        Coding Standard

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

    90

    90

    ·        Design

    ·         具体设计

    360

    360

    ·        Coding

    ·         具体编码

    1200

    1200

    ·        Code Review

    ·         代码复审

    600

    600

    ·        Test

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

    1200

    1200

    Reporting

    报告

    30

    90

    ·         Test Report

    ·         测试报告

    0

    0

    ·         Postmortem & Process Improvement Plan

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

    90

    90

     

    如何用eclipse生成jar exe文件

    https://blog.csdn.net/luoweifu/artic

  • 相关阅读:
    WebView Android 调用js且须要获取返回结果
    推荐系统--揭开推荐的神奇面纱
    回调函数
    对CAB文件进行数字签名
    adodb.RecordSet的属性和方法
    Code Review中的几个提示
    Linux下find命令具体解释
    html5中关于input使用方法的改变
    关于 ioctl 的 FIONREAD 參数
    Grant的时候报错的解决:Access denied for user 'root'@'localhost' (using password: YES)
  • 原文地址:https://www.cnblogs.com/zhh2016/p/8763316.html
Copyright © 2011-2022 走看看