201671010435-王潇-软件工程结对项目

  • 博客任务
任务1 要给出所点评做业的博客、github连接地址,点评内容和点评心得
任务2 须要给出结对项目源码在Github的仓库主页连接地址;
任务3 博文做为结对项目实施过程的文字资料,请完整包含下面7个部分:



  • 做业互评
点评的博客地址 http://www.javashuo.com/article/p-ecoqavme-ma.html
github连接地址 https://github.com/jessiyx/jessiyx
评论与心得 这位同窗很是清楚的将实验的内容清楚的展示出来,而且该实现的功能基本上都实现了出来,思路清晰明了,结构清晰易懂,感受是下足了功夫的,该同窗的学习态度值得学习,可是就是柱状图的功能尚未彻底的实现,整体很是不错,值得学习和借鉴。



  • 实验目的与要求
项目 内容
软件工程 任课教师博客主页连接
做业要求 做业连接地址
课程学习目标 熟悉软件开发总体流程,提高自身能力
本次做业在哪一个具体方面帮助咱们实现目标 第一次体验一个完整的工程





  • 需求分析
    • 实验2要求的功能;
    • 单词频数可视化柱状图要求是如下样式:


    • 统计该文本行数及字符数;
    • 各类统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
    • 可处理任意用户导入的任意英文文本;
    • 人机交互界面要求GUI界面(WEB页面、APP页面均可);
    • 附加功能:统计文本中除冠词、代词、介词以外的高频词;
    • 附加功能:统计前10个两个单词组成的词组频率。
  • 软件设计(类图表示)



  • 核心功能代码展现
    • 统计每一个功能运行的时间:
    while (num != 0) {
              switch (num) {
              case 1:
                  long startTime1=System.currentTimeMillis();
                  Find rs = new Find();
                  rs.find(wordsCount);
                  long endTime1=System.currentTimeMillis();
                  double time1=(endTime1-startTime1)/1000;
                  //long time1=endTime1-startTime1;
                  System.out.println("功能1实现的运行的时间为:"+time1+"秒");
                  break;
              case 2: 
                  long startTime2=System.currentTimeMillis();
                  Valuesort vs = new Valuesort();
                  vs.valuesort(wordsCount);
                  long endTime2=System.currentTimeMillis();
                  long time2=endTime2-startTime2;
                  System.out.println("功能2实现的运行的时间为:"+time2+"毫秒");
                  break;
              case 3: 
                  //实现统计每一行的单词数量
                  long startTime3=System.currentTimeMillis();
                  SortWords sortword=new SortWords();
                  sortword.SortWords();
                  long endTime3=System.currentTimeMillis();
                  long time3=endTime3-startTime3;
                  System.out.println("功能3实现的运行的时间为:"+time3+"毫秒");
                  break;
              case 4: 
                  //实现统计文本文档的行数
                  long startTime4=System.currentTimeMillis();
                  //EnterCount ec=new EnterCount();
                  //ec.
                  EnterCount entercount=new EnterCount();
                  entercount.enterCount();
                  long endTime4=System.currentTimeMillis();
                  long time4=endTime4-startTime4;
                  System.out.println("功能4实现的运行的时间为:"+time4+"毫秒");
                  break;
              }
              System.out.println("再次选择想要了解的:");
              num = in.nextInt();
              if (num > 2) {
                  System.out.println("请输入正确问题序号");
              }
          }
    
      }
    • 统计文档的行数和字符数:
try{
            if(file.exists()){
                FileReader fr = new FileReader(file);
                LineNumberReader lnr = new LineNumberReader(fr);
                int lineNum = 0;
                    while (lnr.readLine() != null){
                    lineNum++;
                    }
                    System.out.println("该文本文档的总行数为 : " + lineNum);
                    lnr.close();
            }else{
                 System.out.println("File does not exists!");
            }
        }catch(IOException e){
            e.printStackTrace();
        }


while((line = reader.readLine()) != null)
        {
            if(line.equals(""))
            {
                paragraphCount++;
            }
            if(!(line.equals("")))
            {
                
                characterCount += line.length();
                
                // \s+ is the space delimiter in java
                String[] wordList = line.split("/s+");
                
                countWord += wordList.length;
                whitespaceCount += countWord -1;
                
                // [!?.:]+ is the sentence delimiter in java
                String[] sentenceList = line.split("[!?.:]+");
                
                sentenceCount += sentenceList.length;
            }
            
        }



  • 程序运行(功能界面截图)

人机交互界面首页.
html

细节功能.
java

页面设计.
git

实现的功能.
github

功能实现结果.
编程



  • 描述结对的过程,提供两人在讨论、细化和编程时的结对照片

1)结对编程
结对编程场景:两位学习伙伴坐在一块儿,面对着同一台显示器,使用着同一键盘,同一个鼠标,他们一块儿思考问题,一块儿分析问题,一块儿编写程序。学习



  • PSP描述



PSP2.1 任务内容 计划共完成须要的时间(min) 实际完成须要的时间(min)
Planning 计划 30 60
· Esitimate 估计这个任务须要多少时间,并规划大体工做步骤 200 400
· Development 开发 200 300
· Analysis 需求分析(包括学习新技术) 60 50
· Design Spec 生成设计文档 20 15
· Design Review 设计复审(和同事审核设计文档) 15 15
· Coing Standard 代码规范(为目前开发制定合适的规范) 20 20
· Design 具体设计 20 30
· Coding 具体编码 200 300
· Code Review 代码复审 7 9
· Test 测试(自我测试,修改代码,提交修改) 17 25
· Reporting 报告 10 15
· Test Report 测试报告 15 22
· Size Measurement 计算工做量 2 1
· Postmortem&Process Improvement Plan 过后总结,并提出过程改进计划 3 2



  • 小结感觉
    感觉和体会:
    (1)两人合做真的能够大于每一个人所付出的工做量和思考问题的能力,两人结对编程,不只能够分配巨大的工做量,并且还能够将两我的人互当作需求人员,也就是用户,使得项目的需求分析可以更加的完整,需求更加详细。
    (2)另外对于两人结对编程不只使得每一个人锻炼了思考问题的能力并且能够锻炼团队如何合做的能力。对于此次结对合做,我以为我学会了如何进行小团队之间进行合做,以及汲取队员的优秀之处,弥补本身的不足。因此两人合做我以为是能够起到1+1大于2的做用。



相关文章
相关标签/搜索