zoukankan      html  css  js  c++  java
  • 实验二 软件工程个人项目

    实验二  软件工程个人项目

    实验时间 2018-3-7/8

     

    Deadline:2018-3-20 10:00,以博客发表日期为准

    评分标准:

    • 按时交 ,满分100分,代码和博客各50分。检查项目包括:
    • 未提交项目源码到Github上,代码部分不得分;未提交博客到班级博客上,博客部分不得分;
    • 根据项目完成质量累计加分,完成基本功能原则上不超过满分100分,完成软件的附加功能,给予加分
    • 代码提交(代码规范,否则倒扣分)
    • 博文规范(行文清晰流畅,如果行文中涉及代码,请使用博客园代码控件,或使用MarkDown语法块)
    • 抄袭 - 倒扣本次作业分数,关于抄袭:[http://www.cnblogs.com/ZCplayground/p/8511250.html]

    1、实验目的与要求

    (1)掌握软件项目个人开发流程。

    (2)掌握Github上发布软件项目的操作方法。

    2、实验内容和步骤

    任务1:尝试按照《构建之法》第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发。软件基本功能要求如下:

    1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。

    2.程序需要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。

    3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。

    4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。

    5.统计该文本所有单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。

    任务2:将包含任务1源码的完整工程文件提交到你注册Github账号下的项目仓库中。

    开发须知:

    • 测试机为Windows环境,所有提交到Github上的项目必须包含src文件夹,在src文件夹中必须包含名为Main.java文件,且Main.java中包含 public static void main(String[] args) 方法。同时请注意以下三点:
    • 生成文件时请使用相对路径(也就是说,不要带任何C: 这样的路径),生成的 result.txt 文件需在项目的根目录下。如何自测:在windows系统中打开命令行界面(Linux/Mac 使打开终端,后续操作一致),进入项目所在根目录下,使用 javac src/Main.java,然后再使用 java src/Main 1,生成的results.txt在当前目录下。
    •  使用的JDK版本为 jdk8u161,windows版下载链接:http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-windows-x64.exe
    • 使用的JRE版本为jre8u161,windows版下载链接:http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jre-8u161-windows-x64.exe
    • 本次项目较为简单,故不得使用除限定版本jdk与jre外的额外依赖包。
    •  一个示例组织目录如下所示:

     /src

        Main.java (主程序,可以从命令行接收参数)

        Lib.java (自定义函数,名字可不一样)

    /result.txt(运行程序后生成的文件) 

    任务3:完成个人项目报告博文作业

    博文名称要求:学号+词频统计软件项目报告;

    博文中要有任务1源码在Github的仓库主页链接地址;

    博文作为个人项目实施过程的文字资料,请完整包含下面7个部分:

    1.需求分析,即使老师已经给出了题目,也要对题目的需求做分析。

    2. 功能设计,题目的需求,以及从真实调研里获得的需求后,要对程序做功能设计,有同学会问:“不就是出题嘛,有啥好设计的?”,其实,题目要求的只是项目基本的功能要求,自己思考和调研会有超出题目要求的需求,甚至你有天才的设计,作出特色的功能。因此,功能会有:

    • 基本功能
    • 扩展功能

    3. 设计实现,设计包括你会有哪些类,这些类分别负责什么功能,他们7之间的关系怎样?你会设计哪些重要的函数,关键的函数是否需要画出流程图?函数之间的逻辑关系如何?

    4. 测试运行,你的程序必须是可运行的,请展示程序的运行截图,包括题目要求实现功能对应的运行截图。这些截图说明你的程序确实完成了项目需求,如果程序实现了扩展需求,也请大方秀出来。

    5. 粘贴自己觉得比较独特的或满意的代码片段,用博客园正确的代码控件来显示。(提示:要有必要的注释说明,提示:不要贴所有代码!不符合规定的要倒扣分)

    6. 总结:你设计的程序如何实现软件设计的“模块化”原则。

    7. 展示PSP,这个环节重要的是让自己看到自己的估计和实际消耗时间,哪个环节耗时最多,哪个环节估计和实践相差巨大?为什么?

    PSP参考:http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html

     

     

    PSP2.1

    任务内容

    计划共完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    8

    6

    ·       Estimate

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

    8

    6

    Development

    开发

    82

    88

    ··       Analysis

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

    6

    10

    ·       Design Spec

    ·  生成设计文档

    5

    6

    ·       Design Review

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

    4

    6

    ·       Coding Standard

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

    3

    3

    ·       Design

      具体设计

    10

    12

    ·       Coding

      具体编码

    36

    21

    ·       Code Review

    ·  代码复审

    7

    9

    ·       Test

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

    13

    21

    Reporting

    报告

    9

    6

    ··       Test Report

    ·  测试报告

    3

    2

    ·       Size Measurement

      计算工作量

    2

    1

    ·       Postmortem & Process Improvement Plan

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

    3

    3

    如果所有的环节你都认真做了,那么,此处你应该会有很多经验愿意与大家分享。

     

     

  • 相关阅读:
    n的阶乘
    二叉树遍历
    二分查找练习
    字符串中最长回文序列求解
    复数集合
    AppCrawler自动化遍历使用详解(版本2.1.0 )(转)
    谷歌驱动下载链接
    谷歌浏览器插件
    Pycharm破解方法
    go学习链接
  • 原文地址:https://www.cnblogs.com/nwnu-daizh/p/10487329.html
Copyright © 2011-2022 走看看