实验四 软件工程结队项目

项目 内容
该做业所属课程 任课教师博主主页连接
做业要求 实验四 软件工程结队项目
课程学习目标 熟悉软件开发总体流程,提高自身能力
本次做业在哪一个具体方面帮助咱们实现目标 第一次体验一个完整的工程
项目源码 https://github.com/Z-zt/shiyan4

任务一

  • 点评博客地址和点评内容:
    • [点评博客地址](http://www.javashuo.com/article/p-tffqdhum-eg.html)[GitHub连接地址](https://github.com/XL1105/xlproject/blob/master/CiPin.zip
      点评内容:首先你的博文结构有条有理,项目要实现什么,该怎么实现每个步骤你都表达得很清晰,能看出你在前期也作足了相关的准备,可是我我的有点小小的建议就是你能够把你的标题字号稍微放小一点就看上去更美观和谐一点。还有一点就是你在博文内容上面应该简单阐述一下你的模块化设计是怎么实现的就更好了,我简单分析了一下你的PSP表,我发现你在开发和具体编码两个环节中,计划完成时间和实际完成时间一共相差了80分钟,我想应该是编程能力影响了你的进展速度,我也是因为编程基础薄弱,才致使个人实际完成时间和计划时间有很大的落差,因此咱们一块儿学习,慢慢进步,我相信总会有收获的。最后经过运行你的程序,我发现你的词频统计以柱状图的形式显示出来的这一功能是很值得我去学习的,下来咱们能够一块儿交流一下,互相学习,共同进步!
  • 点评心得
    • 经过互相的博客点评,PSP的互相对比,我发现我还有不少不足的地方,其中最大的问题就是因为个人编程基础太薄弱,因此直接影响到个人项目进展。在本次的博客点评过程当中,我也发现了对方的不少优势值得我去学习,好比在博文结构上对方的显然结构更为清晰,条理明确,在项目的功能上她的也更为完善,因为个人编程能力有限,因此我并无实现该功能,经过在个人机子上运行对方的源码,我发现她在这以功能上作的很好,因此在下来以后我也认真向对方请教了一番。对于互相的博客点评,我以为颇有必要,我认为这样可使咱们互相取长补短,发现对方的闪光点,而且向对方去学习,弥补本身的不足。

任务二

需求分析

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

软件设计

核心功能代码展现

  • 显示程序所消耗时间
for(Map.Entry<String, Integer> map : list) {
                if(num <= sb.length()) {
                    bw.write("出现次数第" + num + "的单词为:" + map.getKey() + ",出现频率为" + map.getValue() + "次");
                    bw.newLine();
                    System.out.println(map.getKey() + ":" + map.getValue());
                    num++;
                }
                else break;
            }
            bw.write("耗时:" + (System.currentTimeMillis() - t1) + "ms");
            br.close();
            bw.close();
            System.out.println("耗时:" + (System.currentTimeMillis() - t1) + "ms");
        } catch (FileNotFoundException e) {
            System.out.println("找不到指定文件!");
        } catch (IOException e) {                                    
            System.out.println("文件读取错误!");
        }
  • 统计文本行数及字符数
public static void main(String[] args) {
        BufferedReader br = null;
        int line = 0;
        String str = "";
        StringBuffer sb  = new StringBuffer();
        try {
            br = new BufferedReader(new FileReader("src/file.txt"));
            while ((str = br.readLine()) != null) {
              sb.append(str);
                ++line;
            }
            System.out.println("\n文件行数: " + line);
            TreeMap<Character, Integer> tm = Pross(sb.toString());
            System.out.println("\n字符统计结果为:" + tm);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

程序运行结果

  • 初始化界面
  • 程序运行消耗时间结果显示图
  • 文件行数显示

结对过程

PSP

任务内容 计划共完成须要的时间(min) 实际完成须要的时间(min)
计划 15 20
估计这个任务须要多少时间,并规划大体工做步骤 20 15
开发 300 350
需求分析 (包括学习新技术) 200 220
生成设计文档 10 15
设计复审 (和同事审核设计文档) 10 10
代码规范 (为目前的开发制定合适的规范) 10 10
具体设计 40 35
具体设编码 200 300
代码复审 15 20
测试(自我测试,修改代码,提交修改) 40 35
报告 20 30
测试报告 8 8
具体设计 40 35
计算工做量 15 20
过后总结 ,并提出过程改进计划 10 15

小节感觉:两人合做真的可以带来1+1>2的效果吗?经过此次结队合做,谈谈感觉与体会。

  • 经过本次实验,我得出的结论是在两我的配合默契的前提下,能达到1+1>2的效果,在结队的初期,咱们配合的还算能够,实验进展的速度也还行,可是在中后期,因为两我的的能力有限,咱们被卡在一个地方和长时间,因此这也是的为何咱们在开发和具体实施的环节耗费了那么多的时间。结队编程的优势就是两我的在合做的过程当中能够互相学习,取长补短,两我的在合做时也能避免走许多弯路,都能起到监督的做用,发现问题也得以及时解决。可是我认为结队也有他的缺点,那就是两我的不够熟悉,在合做的过程当中会有一个磨合的过程,但这个过程也下降告终队的进展速度。在本次实验后咱们也认识到两我的最致命的缺点,那就是编程能力薄弱,因此整个实验设计的结果也不是很满意,因此当下的一个问题就是课后进行学习,努力提升编程能力。
相关文章
相关标签/搜索