• 201671030114 马秀丽 实验四 软件工程结对项目


    源代码
    项目 内容
    课程名称: 2016级计算机科学与工程学院软件工程(西北师范大学)
    课程要求: 实验四 软件工程结对项目
    课程目的: 熟悉软件开发整体流程,提升自身能力
    作业意义: 第一次体验一个完整的工程

    任务一:

        两两自由结对,对结对方的《实验二 软件工程个人项目》的项目成果进行评价。
    
    评价同学
    源代码
    评价:整体排版清晰,基本上实现了要求功能,但是所画柱状图不能看出效果,没有输出到文本的结果显示,代码写的还可以,命名挺规范,在java方面要在多熟悉、练习,那么应用起来结果会好很多。

    结对同学

    任务2:

      采用两人合作方式,设计开发一个英文文本统计分析软件。
    

    功能设计

    1.实验2要求的功能;
    2.单词频数可视化柱状图要求是以下样式:

    3.统计该文本行数及字符数;
    4.各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
    5.可处理任意用户导入的任意英文文本;
    6.人机交互界面要求GUI界面(WEB页面、APP页面都可);
    7.附加分功能:统计文本中除冠词、代词、介词之外的高频词;

    设计实现

    1.StatisticalWord()函数,统计指定单词词频个数且显示柱状图;
    2.WordList()函数,统计词频个数并输出到文本;
    3.Figure()函数,查询K个出现频次最高的单词;
    4.Test()函数,统计文本的行数和字符统计数;
    5.WordList1()函数,统计文本中除冠词、代词、介词之外的单词输出到文本
    6.Main()函数,调用各个功能。

    结果展示

    1.按按钮调用相应功能

    2统计指定单词词频个数且显示柱状图

    3.统计词频个数并输出到文本

    4.查询K个出现频次最高的单词

    5.统计文本的行数和字符统计数

    6.统计文本中除冠词、代词、介词之外的单词输出到文本

    合作中

    代码展示

    监听按钮调用相应函数

    {
    Button1.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent event)
    {
    StatisticalWord frame = new StatisticalWord();
    //frame.setBounds(200,300,500,800);
    frame.setTitle("统计指定单词词频个数且显示柱状图");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    optStatisticalWord();
    }
    });
    add(Panel,BorderLayout.CENTER);
    pack();
    }

    统计各功能时间

    {
    long startTime=System.currentTimeMillis();
    long lines = Files.lines(Paths.get(new File("srcDATA.txt").getPath())).count();
    // System.out.println("行数: " + lines);
    long endTime=System.currentTimeMillis();
    result.append("字符统计结果为:" + n+" 行数: " + lines+" 所消耗时间为:"+ (endTime-startTime)+"ms" );
    //System.out.println("所消耗时间为:"+ (endTime-startTime)+"ms" );
    }

    统计数字或者字符出现的次数

    public static int Pross(String str) { 
    
        char[] charArray = str.toCharArray(); 
        int all = 0;
        TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>(); 
        for (int x = 0; x < charArray.length; x++)
        { 
            if (!tm.containsKey(charArray[x])) 
            { 
                tm.put(charArray[x], 1); 
            } 
            else
            { 
                int count = tm.get(charArray[x]) + 1; 
                tm.put(charArray[x], count); 
                all=all+count;
            } 
          
        }  
        return all;
    }
    

    总结:

    这次作业是在实验二的基础上进行的,首先我们根据实验二的个人PSP做了分析并在开发和编写代码上增加了时间,在开始开发设计之前我们读了对方的代码并选择了这次作业以对方的代码为基础,因为她的代码命名比较规范,完成过程中会遇到各种各样的问题,双方之间的调解和适当的妥协是很有必要的。

    psp

    PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
    Planning 计划 15 20
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 18 15
    Development 开发 480 620
    Analysis 需求分析 (包括学习新技术 20 18
    Design Spec 生成设计文档 20 35
    Design Review 设计复审 (和同事审核设计文档 10 25
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 10 8
    Design 具体设计 15 19
    Coding 具体编码 400 600
    Code Review 代码复审 20 25
    Test 测试(自我测试,修改代码,提交修改 20 47
    Reporting 报告 15 27
    Test Report 测试报告 10 12
    Size Measurement 计算工作量 4 5
    Postmortem & Process Improvement Plan 事后总结 ,并提出过程改进计划 5 8
  • 相关阅读:
    便携版Mysql安装
    Markdown 语法学习
    布局页中的特殊情况(比如说只有某页有的banner)
    Jsp Layout 布局页
    eclipse变量名自动补全
    java中的final关键字(2013-10-11-163 写的日志迁移
    java的重载(overload) (2013-10-11-163 写的日志迁移
    java 的多态(2013-10-11-163 写的日志迁移
    java中类与对象的概念(2013-05-04-bd 写的日志迁移
    java的一些相关介绍(2013-10-07-163 写的日志迁移
  • 原文地址:https://www.cnblogs.com/xliy/p/10576286.html
Copyright © 2020-2023  润新知