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

    一。

    结对项目地址: https://github.com/xuyixiaowoaini/WordCount.git

    结对伙伴作业地址:https://www.cnblogs.com/TakeRabbit/p/10637605.html

                        

        

    1. 描述结对的过程,提供非摆拍的两人在讨论的结对照片(一起工作编码时的照片)。

    我与我的结对同学先把项目需要完成的功能划分为几个模块,再一起填写psp表格进行分工,我们各自完成分配的任务,中途遇到问题再一起查资料解决,最后我们将两部分互相审查好的代码合并起来。

     

    PSP表格。

    PSP2.1

    Personal Software Process Stages

    预估耗时(分钟)

    实际耗时(分钟)

    Planning

    计划

     5min

     5min

    · Estimate

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

     5

     5

    Development

    开发

     720

     810

    · Analysis

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

     60

     120

    · Design Spec

    · 生成设计文档

     10

     10

    · Design Review

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

     10

     10

    · Coding Standard

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

     10

     10

    · Design

    · 具体设计

     30

     60

    · Coding

    · 具体编码

     360

     360

    · Code Review

    · 代码复审

     60

     60

    · Test

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

     180

     180

    Reporting

    报告

     130

     190

    · Test Report

    · 测试报告

     60

     120

    · Size Measurement

    · 计算工作量

     10

     10

    · Postmortem & Process Improvement Plan

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

     60

     60

     

    合计

     855

     1005

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    计算模块的 设计

    拿到题后,我和小伙伴先对项目作出来分析,

    这个项目有五个基本功能点:计算Input文件的字符数、单词总数、有效行数、单词出现次数并排序,以及输出到Result文件。

    这些功能总体由三个类来完成:

    (1)WordIO(实现输入文件以及输出文件的功能)

    (2)WordTrie(实现计算单词出现次数并排序的功能)

    (3)WordCalculate(实现计算字符数、单词总数、有效行数的功能)

    大致结构如图:

     

     

     

    代码复审过程。

    1、代码规范

    参考https://wenku.baidu.com/view/b5be911b6bd97f192279e9bd.html。

    2、代码互审情况、发现的问题

     我们完成这个项目时基本是在一起讨论编程的,因此最后没有发现什么大的问题,只是合并时改了不同的参数,以及对代码规范的问题进行了一些修改。

    性能分析

     

    代码详情:

     

     见队友链接:  https://www.cnblogs.com/TakeRabbit/p/10637605.html

    单元测试:

    共实现了四个测试内容:1.单词以英文字母开头

                                            2.单词以分隔符分割

                                            3.统计有效行数

                                            4.字母后可跟数字

    代码详情:

     

     using Microsoft.VisualStudio.TestTools.UnitTesting;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.IO;
    using WORDCOUNT;

    namespace TestWORDCOUNT
    {
        [TestClass]
        public class UnitTest1
        {
            

            [TestMethod()]
            public void MainTest01()
            {
                string test;
                Program.Result trueres = new Program.Result();
                string reason;
                test = "123abcd";
                trueres.charactersnumber = 7;
                trueres.wordsnumber = 0;
                trueres.linesnumber = 1;
                reason = "测试用例1";
                UnitTest(test, trueres, reason);

            }
            
            [TestMethod()]
            public void MainTest02()
            {
                string test;
                Program.Result trueres = new Program.Result();
                string reason;
                test = "abcd abcd@abcd";
                trueres.charactersnumber = 14;
                trueres.wordsnumber = 3;
                trueres.linesnumber = 1;
                reason = "测试用例2";
                UnitTest(test, trueres, reason);
            }
            
            [TestMethod()]
            public void MainTest03()
            {
                string test;
                Program.Result trueres = new Program.Result();
                string reason;
                test = "abcd\n\nabcd";
                trueres.charactersnumber = 8;
                trueres.wordsnumber = 2;
                trueres.linesnumber = 2;
                reason = "测试用例3";
                UnitTest(test, trueres, reason);
            }
            
            [TestMethod()]
            public void MainTest04()
            {
                string test;
                Program.Result trueres = new Program.Result();
                string reason;
                test = "abcd123";
                trueres.charactersnumber = 7;
                trueres.wordsnumber = 1;
                trueres.linesnumber = 1;
                reason = "测试用例4";
                UnitTest(test, trueres, reason);
            }
            
            public void UnitTest(string test, Program.Result trueres, string reason)
            {
                FileStream fs = null;
                StreamWriter sw = null;
                bool result = false;
                string pathinput = "F:\\Demo.txt";
                Program.Result testres = new Program.Result();
                result = false;
                fs = new FileStream(pathinput, FileMode.Create);
                sw = new StreamWriter(fs);
                sw.WriteLine(test);
                sw.Close();
                fs.Close();
                testres = Program.Maintest();
                result =
                    (testres.charactersnumber == trueres.charactersnumber) &&
                    (testres.wordsnumber == trueres.wordsnumber) &&
                    (testres.linesnumber == trueres.linesnumber);
                Assert.AreEqual(true, result, reason);
            }
        }
    测试结果:

     

     

     心得体会:

     

    1由于编程不熟悉,以及在实际的开发过程中遇到种种问题的阻挠,使得完成这个项目实际花费的时间远远大于预估计划的时间,并且一些功能也没有完善的很好,我感受到以后的学习还有很长的路需要去努力。

     

    结对感受:第一次结对完成作业,在与小伙伴的交流和共同努力过程中,让我体会到了协作的重要性,并且在互审过程中彼此更容易发现错误,及时交流与该正,在这次的实际操作过程中,也让我对结对编程的认识更进了一步。

     

     

     

     

     

     

  • 相关阅读:
    Django + Uwsgi + Nginx 的概念
    ubantu+nginx+uwsgi+django部署
    FileZilla以root用户登录Linux
    全文检索django-haystack+jieba+whoosh
    七牛云上传视频
    JWT登录与多方式登录
    vue绑定用户页面
    绑定微博用户接口
    vue微博回调空页面
    微博回调接口
  • 原文地址:https://www.cnblogs.com/CHIQING123/p/10659152.html
Copyright © 2011-2022 走看看