第一次个人编程作业
这个作业属于哪个课程 | 软件工程2024 (广东工业大学) |
---|---|
这个作业要求在哪里 | 个人项目 |
这个作业的目标 | 学习个人完成项目的过程 |
正文
一、GitHub
二、PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 15 | 15 |
·Estimate | ·估计这个任务需要多少时间 | 15 | 15 |
Development | 开发 | 220 | 300 |
·Analysis | ·需求分析(包括学习新技术) | 20 | 45 |
·Design Spec | ·生成设计文档 | 10 | 10 |
·Design Review | ·设计复审 | 5 | 10 |
·Coding Standard | ·代码规范(为目前的开发制定合适的规范) | 5 | 5 |
·Design | ·具体设计 | 30 | 30 |
·Coding | ·具体编码 | 60 | 50 |
·Code Review | ·代码复审 | 30 | 60 |
·Test | ·测试(自我测试,修改代码,提交修改) | 60 | 90 |
Reporting | 报告 | 60 | 80 |
·Test Report | ·测试报告 | 20 | 40 |
·Size Measurement | ·计算工作量 | 20 | 20 |
·Postmortem &Process Improvement Plan | ·事后总结,并提出过程改进计划 | 20 | 20 |
·合计 | 295 | 395 |
三、计算模块接口的设计与实现过程
各个模块接口
主要的算法运用类似于编辑距离的算法,简述为计算抄袭文章需要花费多少操作才能与原文一样。
四、计算模块接口部分的性能改进
若不计main函数,程序消耗最大的是保存文章内容的操作。
因为要对比文章内容,必须要使用数据类型进行存储,由于文章内容长度未知,若提前开辟数组空间可能造成浪费或者不足,故本文使用string来保存内容,暂时想不到其他改进方法。
五、计算模块部分单元测试展示
该函数思路为以原文为模板,将原文每个字符按顺序在抄袭文章中寻找相应位置,若两个字的位置相差过大则舍去,看作需要添加该字,反之将该距离算作要删除的字数,最后利用相应算式得出结果。
在测试的样例文章《活着》中,先输入两个文章的绝对路径,最后命令行输出答案的绝对路径,打开答案文件则得到:
六、计算模块部分异常说明
若输入文件不存在,则命令行会提示文件打开失败,同时说明答案文件属于错误文件。