• 软件工程


    软件工程 - 最长单词链

    项目 内容
    这个作业属于哪个课程? 北航软工2019班级博客
    这个作业的要求在哪里? 结对项目-最长单词链
    我在这个课程的目标是? 按时完成老师给的任务
    这个作业在哪个具体方面帮助我实现目标 ? 让我了解该课程的基本内容

    1、Github地址

    GitHub - HansBug/pair_program_word_chain

    大佬的博客地址

    2、PSP表格(独立)

    PSP2.1 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时)
    Planning 计划 1 0.5
    · Estimate · 估计这个任务需要多少时间 10 50
    Development 开发 20 22.7
    · Analysis · 需求分析 (包括学习新技术) 6 5.43
    · Design Spec · 生成设计文档 0.5 2
    · Design Review · 设计复审 (和同事审核设计文档) 3 1
    · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 0.5 3
    · Design · 具体设计 0.5 4
    · Coding · 具体编码 10 13
    · Code Review · 代码复审 1 3
    · Test · 测试(自我测试,修改代码,提交修改) 1 3
    Reporting 报告 3 2
    · Test Report · 测试报告 1 3
    · Size Measurement · 计算工作量 1 3
    · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 1 2
    合计 38 82.3

    3、结对编程的设计(独立)

    基本设计过程

    我们把代码分成3个部分:

    1. 核心接口
    2. 命令行程序
    3. GUI程序

    core.dll中的接口

    接口定义在文件core.h中,EXPORT关键字是我们自己定义的 DLL函数导出前缀。

    EXPORT int TEST_LIB_PLUS(int a, int b);
    EXPORT int gen_chain_word(char *words[], int len, char *result[], char head, char tail, bool enable_loop);
    EXPORT int gen_chain_char(char *words[], int len, char *result[], char head, char tail, bool enable_loop);
    

    4、计算模块接口的设计与实现过程

    上手就是埋头写代码,哪有时间来设计?

    5、画出UML图(独立)

    UML图

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

    性能分析图

    7、描述这些做法的优缺点, 说明你是如何把它们融入结对作业中的(独立)

    这些做法非常棒!我们

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

    下图就是计算模块的部分单元测试啦:

    单元测试

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

    异常我们采用负数返回值表示,定义在 core.h 里面。

    // This is all the possible return value for exported dll function
    #define CORE_WORDS_HAS_CIRCLE        (-1)
    #define CORE_WORDS_HAS_EMPTY         (-2)
    #define CORE_WORDS_HAS_INVALID       (-3)
    #define CORE_NO_WORD_CHAIN           (-4)  // no word chain
    #define CORE_NO_MATCHED_WORD_CHAIN   (-10) // we found word chains, but they don't match start or end characters.
    

    10、界面模块(如果没有实现GUI,则可以描述命令行模块)的详细设计过程

    界面设计

    画界面用的是 QT 自带的 QT Designer 设计工具。这个工具灰常好用,所见即所得,操作又略略繁琐,虽然耗费了我们大量的时间来熟悉这个鬼东西,但最终还是取得了不错的效果。

    QT Designer 设计的界面是保存在一个名字为.ui文件中的,这个文件采用 xml 语言描述了界面设计。在编译QT App时,QT会自动将这个 .ui 文件转换成一个 .h 文件,我们可以直接在代码中使用这个文件,特别方便。

    界面特色

    我们的 GUI 是采用 QT 框架实现的,它具有以下特色:

    1. 界面美观、简洁大方、操作简单、功能完善
    2. 计算采用后台线程进行计算,较长时间运算不会卡 UI 线程

    QT App 界面截图

    11、界面模块(GUI或命令行模块)与计算模块的对接

    界面模块与计算模块的对接最后进行的几个步骤,此时我们已经完成了核心模块的编写,因此,直接在代码中调用核心模块的头文件即可正常编写代码,再配合上cmake,就能自动进行动态链接。

    所以,对接就这样完成啦。

    12、描述结对的过程

    我们同心协力,携手并进,有说有笑的完成了结对。

    图片记录:

    结对过程 - 滑稽打码

    13、结对的每一个人的优点和缺点在哪里(独立)

    张少昂
    优点 听大佬的话 技术666
    缺点 技术水平太菜了 (大佬没有缺点)
  • 相关阅读:
    UIWindowLevel详解 一片
    关于博客的原创和转载的一点儿看法 一片
    UIViewController生命周期学习笔记 一片
    UINavigationController详解 一片
    UIColor,CGColor,CIColor三者间的区别和联系 一片
    subview事件响应范围 一片
    viewWithTag获取subview规则详解 一片
    FirstResponder 释放问题 一片
    UITabBarController详解 一片
    做IOS开发这一年 一片
  • 原文地址:https://www.cnblogs.com/fondoger/p/buaa-software-engineering-pair-project-longest-word-chain.html
Copyright © 2020-2023  润新知