• 软件工程结对作业博客


    软件工程结对作业博客

    Github项目原地址 (https://github.com/BillDior/BUAA_SE_01)
    Github项目现地址 (https://github.com/kenyin123/WordChains)

    作业介绍

    项目 内容
    作业所处课程 班级博客
    作业要求介绍 作业要求
    我在这个课程的目标 初步了解结对编程的规范,增加协作编程经验
    这个作业在哪个具体方面帮助我实现目标 加深了对于C++的了解,学习了图论算法等
    psp表格
    Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    计划 60
    · 估计这个任务需要多少时间 60
    开发 2910
    · 需求分析 (包括学习新技术) 600
    · 生成设计文档 100
    · 设计复审 (和同事审核设计文档) 30
    · 代码规范 (为目前的开发制定合适的规范) 20
    · 具体设计 240
    · 具体编码 1500
    · 代码复审 120
    · 测试(自我测试,修改代码,提交修改) 300
    报告 150
    · 测试报告 60
    · 计算工作量 30
    · 事后总结, 并提出过程改进计划 60
    合计 3120
    接口设计

    Information Hiding:设计了private参数

    Interface Design:接口封装得还可以。

    Loose Coupling:没有实现

    计算模块接口的设计与实现过程
    UML图

    计算模块接口部分的性能改进

    第一张图是30个单词左右的时候。第二张图是增加到了36个。测试数据内有很多环,增加了六个就极大地影响了整体时间。图内搜索最长链的算法还可以进一步优化。

    Design by Contract

    契约式设计,优点是可以保证程序的正确性,缺点是过于繁琐。我并未使用这种编程思想。

    计算模块部分单元测试展示

    我学习了单元测试的知识,并尝试写了一些测试数据。

    测试覆盖率的检测暂未实现。

    计算模块部分异常处理说明

    这里我处理了当没有r参数时发现环的异常。

    这里我处理了文件名缺失和参数逻辑错误。

    命令行模块的详细设计过程

    读取命令行参数,先判断参数是否有逻辑或者格式错误。如果有错误给出错误信息。



    命令行模块与计算模块的对接

    使用了一个github上的工具,cxxopts

    将得到的参数判断后传给wlOption

    描述结对的过程

    在结对后我们没能有效地沟通。首先是我对题目感到畏惧觉得自己没有能力完成,然后队友可能事情比较忙,也不是很主动。后来我因为个人原因没能在规定时间内继续完成作业。后续是我单独完成的作业。

    结对编程的优缺点
    优点:

    1、自己不会的地方可以请教队友

    2、两个人沟通顺利的情况下,比多人团队轻松

    3、分配任务、交流进度方便及时

    缺点:

    当两个人沟通不顺利、闹矛盾的时候,相比团队编程,会更加消极,难以处理问题。多人团队的队员之间矛盾相对来说会小很多。

    我的优点:

    1、性格温和

    2、愿意出力

    我的缺点:

    1、不够自律,喜欢拖延

    2、编程能力弱

    3、沟通能力差

    我的结对对象优点:

    1、编程能力好

    2、耐心

    我的结对对象缺点:

    1、不够努力

    2、不主动交流

    psp表格
    Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    计划 60 60
    · 估计这个任务需要多少时间 60 60
    开发 2910 2550
    · 需求分析 (包括学习新技术) 600 360
    · 生成设计文档 100 30
    · 设计复审 (和同事审核设计文档) 30 0
    · 代码规范 (为目前的开发制定合适的规范) 20 10
    · 具体设计 240 300
    · 具体编码 1500 1500
    · 代码复审 120 60
    · 测试(自我测试,修改代码,提交修改) 300 300
    报告 150 180
    · 测试报告 60 120
    · 计算工作量 30 30
    · 事后总结, 并提出过程改进计划 60 30
    合计 3120 2790

    最后,感谢老师和助教一直以来对我的关心和帮助。也感谢结对编程作业,让我收获很多。

  • 相关阅读:
    【编译原理】文法解析算法以及左递归消除算法
    【编译原理】 DFA词法分析和递归下降语法分析代码
    编译原理 第三章 词法分析(下)
    详解KMP算法
    编译原理 第三章 词法分析(上)
    ExtJs4.0入门错误
    致好友的一封信
    解析Xml四种方法
    Spring AOP实现原理
    Spring Ioc知识整理
  • 原文地址:https://www.cnblogs.com/impuresaint/p/10597017.html
Copyright © 2020-2023  润新知