zoukankan      html  css  js  c++  java
  • 第三次作业!

    作业地址:https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/2879

    GIT仓库地址:https://github.com/pg7go/SchoolAssignment_WordCount.git

    一. PSP表格

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

       

    · Estimate

    · 估计这个任务需要多少时间

     180  122

    Development

    开发

       

    · Analysis

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

     10  12

    · Design Spec

    · 生成设计文档

     0  0

    · Design Review

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

     0  0

    · Coding Standard

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

     0  0

    · Design

    · 具体设计

     5  3

    · Coding

    · 具体编码

     90  75

    · Code Review

    · 代码复审

     10  0

    · Test

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

     10  20

    Reporting

    报告

       

    · Test Report

    · 测试报告

     10  7

    · Size Measurement

    · 计算工作量

     0  0

    · Postmortem & Process Improvement Plan

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

     10  5
     

    合计

     145  122

    二.结对讨论

    昨天晚上何婷同学和我说又有新作业后,我就简单看了下作业要求,我俩就讨论了一下

    讨论图↑

    首先都是团队成员,我俩接触项目也不少了,这种需求基本上是上手就来,不需要查太多资料准备什么的

    接下来是分工

    我负责主代码方面,她这边负责代码测试和复审,做单元测试等等

    我和她简单分析后简单画了下结构图

    基本上是这样了,所有功能都囊括进去了

    讨论很简短,可能10分钟不到,毕竟大家都有经验

    三.开发过程

    1.GIT的fork和clone,这个步骤太简单就没截图了

    2.代码编写

    两个难点吧,统计英文单词那里,还有排序那里,不过有以往经验,还是写得挺快的

    写完何婷这边就进行审查和测试

    3.何婷这边的测试

    首先我们选了一个几十万字(算字数是10W多字,算字符是50多W,这是用msword统计的结果,老师指出后修正)的英文反乌托邦小说《1984》作为测试数据

    这里可以看到一个bug,就是程序把空白算进去了

    何婷给我说的时候,马上我就意识到哪里的问题了

    这里少了个判断

    加上

    完成

    4.复测

    经过改正后,基本上没有问题了

    5.加入新功能

    6.单元测试

    这方面也是一次通过,实际上是验证一下数据在正确性,结果也是正确的

    7.性能测试

    可以看出,占比最多的是CountWord函数,就是分析统计单词频率的这个函数

    这是一个正常的结果

    8.异常处理

    这个在最早编码的时候就已经考虑进去了,这里只贴一张图

     

    新改后也加入了相关的输入正确性判断

    9.GIT提交

    顺便把测试样例上传,方便大家做测试

    四.总结

    1. 结对编程特别适合学习新知识,帮助开发者快速熟悉自己所不熟悉的领域,对于新加入的成员,能很快学习到经验

    2.结对编程的时间要求比较高,要两者都有时间才行

    3.对于这种很小的项目,结对编程效率反而不高

  • 相关阅读:
    创建线程的方式三:实现Callable接口 --- JDK 5.0新增
    线程的通信
    多线程的实例练习:银行账户双储户问题
    解决线程安全问题的方式三:Lock锁 --- JDK5.0新增
    演示线程的死锁问题
    Synchronized的各场景使用方法(多窗口售票例子接上篇)
    线程的【生命周期】和【线程的同步】(下面有多窗口售票例子)
    多线程:继承方式和实现方式的联系与区别
    创建多线程的方式二:实现Runnable接口
    Java项目生成可执行jar包、exe文件以及在Windows下的安装文件
  • 原文地址:https://www.cnblogs.com/pg7go/p/10626306.html
Copyright © 2011-2022 走看看