第一次个人编程作业

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了第一次个人编程作业脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

第二次软件工程作业

前提
这个作业属于哪个课程 软件工程
这个作业要求在哪里 个人项目作业
这个作业的目标 (1)完成个人编程作业编码部分(2)学会使用PSP表格(3)GITHub代码管理(4)学会单元测试
GitHub链接

heiweiluck的个人GitHud链接

PSP表格
PSP2.1 PErsonal Software PRocess Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划
· EstiMATE 估计这个任务需要多少时间 60 50
Development 开发 600 960
· Analysis 需求分析(包括学习新技 180 240
· Design Spec 生成设计文档 20 30
· Design review 设计复审 15 30
· Coding Standard 代码规范(为目前的开发制定合适的规范) 10 20
· Design 具体设计 50 40
· Coding 具体编码 180 200
· Code Review 代码复审 30 30
· test 测试(自我测试,修改代码,提交修改 60 60
Reporting 报告
· Test Repor 测试报告 160 100
· Size Measurement 计算工作量 40 30
· Postmortem & Process Improvement Plan 事后总结,并提出过程改进机计划 20 20
合计 1425 1810
计算模块接口的设计与实现过程

1.工程截图

第一次个人编程作业

2.计算流程

第一次个人编程作业

3.计算相似度算法关键:余弦相似度

(1)计算公式

第一次个人编程作业

(2)举例

句子A:这只皮靴号码大了。那只号码合适

句子B:这只皮靴号码不小,那只更合适

基本思路是:如果这两句话的用词越相似,它们的内容就应该越相似。因此,可以从词频入手,计算它们的相似程度。

第一步,分词。

句子A:这只/皮靴/号码/大了。那只/号码/合适。

句子B:这只/皮靴/号码/不/小,那只/更/合适。

第二步,列出所有的词。

这只,皮靴,号码,大了。那只,合适,不,小,很

第三步,计算词频。

句子A:这只1,皮靴1,号码2,大了1。那只1,合适1,不0,小0,更0

句子B:这只1,皮靴1,号码1,大了0。那只1,合适1,不1,小1,更1

第四步,写出词频向量。

  句子A:(1,1,2,1,1,1,0,0,0)

  句子B:(1,1,1,0,1,1,1,1,1)

到这里,问题就变成了如何计算这两个向量的相似程度。我们可以把它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向。两条线段之间形成一个夹角,如果夹角为0度,意味着方向相同、线段重合,这是表示两个向量代表的文本完全相等;如果夹角为90度,意味着形成直角,方向完全不相似;如果夹角为180度,意味着方向正好相反。因此,我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。

计算两个句子向量

句子A:(1,1,2,1,1,1,0,0,0)

和句子B:(1,1,1,0,1,1,1,1,1)的向量余弦值来确定两个句子的相似度。

计算过程如下:

第一次个人编程作业

计算结果中夹角的余弦值为0.81非常接近于1,所以,上面的句子A和句子B是基本相似的

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

1.JProfiler性能监控图:

@H_304_286@

2.cpu load图:

第一次个人编程作业

3.占堆内存图:

第一次个人编程作业

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

public class test { @BeforeClass public static void beforeTest(){ System.out.println("测试即将开始"); } @AfterClass public static void afterTest(){ System.out.println("测试结束"); }

//输入错误的路径

@Test

public void test1(){ String [] test={"","",""}; try { new application.application().main(test); } catch (IOException e) { e.printStackTrace(); Assert.fail(); } }

//输入空文件

@Test

public void test2(){ String [] test={"D:/1/orig.txt","D:/1/orig_0.8_add.txt","D:/1/result.txt"}; try { new application.application().main(test); } catch (IOException e) { e.printStackTrace(); Assert.fail(); } }

//输入错误的输出文件路径 @Test public void test3(){ String [] test={"D:/1/orig.txt","D:/1/orig_0.8_add.txt","D:/1/1.txt"}; try { new application.application().main(test); } catch (IOException e) { e.printStackTrace(); Assert.fail(); } }

//测试调换语序文本 @Test public void test4(){ String [] test={"D:/1t/orig.txt","D:/1/orig_0.8_dis_1.txt","D:/1/result.txt"}; try { new application.application().main(test); } catch (IOException e) { e.printStackTrace(); Assert.fail(); } }

@Test public void test5(){ String [] test={"D:/1/orig.txt","D:/1/orig_0.8_dis_10.txt","D:/1/result.txt"}; try { new application.application().main(test); } catch (IOException e) { e.printStackTrace(); Assert.fail(); } }

//测试相同文本 @Test public void test6(){ String [] test={"D:/1/orig.txt","D:/1/orig.txt","D:/1/result.txt"}; try { new application.application().main(test); } catch (IOException e) { e.printStackTrace(); Assert.fail(); } }

@Test public void test7(){ String [] test={"D:/1/orig_0.8_dis_15.txt","D:/1/orig_0.8_dis_15.txt","D:/1/ result.txt"}; try { new application.application().main(test); } catch (IOException e) { e.printStackTrace(); Assert.fail(); } }

}

代码覆盖率以及测试

1.代码覆盖率

第一次个人编程作业

2.测试

第一次个人编程作业

异常处理

1.判断文件是否为txt

第一次个人编程作业

2.判断命令行是否输入正确

第一次个人编程作业

3.判断受否输入正确的文件路径

第一次个人编程作业

命令行输入结果

1.命令行输入

第一次个人编程作业

2.输出文件内容

第一次个人编程作业

个人总结:

这次作业难度对我来说很难,所以不知道从哪下手,使用了这次的PSP文件后,我才发现做一个项目所需要的过程可以分成很多个细节,这让我想到在某些科目的作业里耗费了很多时间且效率很低的原因。在此次作业中,遇到了很多的问题,比如GitHub的代码签入,GIU bash命令中加不了文件。

脚本宝典总结

以上是脚本宝典为你收集整理的第一次个人编程作业全部内容,希望文章能够帮你解决第一次个人编程作业所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。