第二次作业 个人项目(1)

第二次作业 个人项目(1)

1.代码仓库项目地址

https://gitee.com/snail-yin/software_engineering

2.PSP表格(Personal Software Process-个人开发流程,或称个体软件过程)

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划  60  120
· Estimate · 估计这个任务需要多少时间  1800  2700
Development 开发  2000  3000
· Analysis · 需求分析 (包括学习新技术)  1000  1200
· Design Spec · 生成设计文档  180  200
· Design Review · 设计复审  100  120
· Coding Standard · 代码规范 (为目前的开发制定合适的规范)  60  60
· Design · 具体设计  300  300
· Coding · 具体编码  600  600
· Code Review · 代码复审  100  120
· Test · 测试(自我测试,修改代码,提交修改)  120  120
Reporting 报告  300  0
· Test Repor · 测试报告  120  0
· Size Measurement · 计算工作量  100  0
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划  80  60
  合计  6840  8540

3.软件工程学习日志

①IDE:Python 3.7 ; JetBrains PyCharm

第二次作业 个人项目(1)_第1张图片

 

 

 

 

 

 

 

 

 

第二次作业 个人项目(1)_第2张图片

②参考书籍:《编程小白的第1本Python入门书》、《Python编程:从入门到实践》

第二次作业 个人项目(1)_第3张图片

 

 

 

 

 

 

 

 

 

 

 

 

第二次作业 个人项目(1)_第4张图片

 

③网络资源:微信公众号、Python免费直播课程



 

 

 

 

 

 

④学习时段、学习内容

1)2018.12.26-2018.12.28 变量与字符串、函数

2)2018.12.30-2018.12.31 联系朋友,寻求帮助

3)2018.1.1-2018.1.4 循环与判断、数据结构

4)2018.1.5-2018.1.7 接触项目“外星人入侵”

5)2018.1.8-2018.1.10 整合资料,完成“WordCount”

⑤收获体会、自我效率评价

1)编程难,难于上青天!向每一个深夜里敲代码的程序猿致敬,做一个码农难,做一个优秀的码农更难!

      作为一个非计算机专业的门外汉来说,在朋友的竭力帮助下,能做到这个结果,我已经很满足了,Python的路还很远,未来可期!

2)自我认为计划安排比较妥当,整体工作思路还是很清晰,哪里该自己看书找资料,哪里该寻求朋友帮助,把握很有分寸。

      对着电子书籍和免费视频课,做了厚厚的笔记, 并且层次分明,这点对自己还是比较满意,整体执行力80%。

4.解题思路描述

    由于程序逻辑不复杂,在计算量上并不大,所以如果在读完数据之后,分3个线程来并行处理单词、有效行数以及字符数,极有可能创建线程所耗费的资源远大于并行处理所提高的略微性能(多线程理论上并不能提高单核cpu的利用率,但是对于多核多线程的cpu而言,多线程确实是可以提高多核cpu的利用率),所以我决定放弃多线程,只用单线程来处理。

 5.设计实现过程

    ①我把功能分为了4份,文件读写、统计单词、统计行数以及统计字符数。

    ②统计单词时,我使用了正则表达式来分割单词以及判断是否为单词。

    ③在统计单词个数的时候,我选择了使用hash表来统计,hash表对于list在查找的时候有着无与伦比的优势,此优势随着数据量的扩增而不断增大。

6.测试结果展示

input.txt

第二次作业 个人项目(1)_第5张图片

result.txt

第二次作业 个人项目(1)_第6张图片

7.心路历程与收获

    这次的作业花费了我太多的时间和精力,我的能力比我想象中的还要不足,作业中列出了一项项具体的要求,所以我在实践中就按照这一项项要求去思考、搜索和学习,在  搜索过程中我找到了很多比我原先想的要方便得多的解决方法,见识了很多新知识和新技术,可以说,我在这次个人项目里做的最多的就是学习,比如软工的流程和规范、字符串处理、Python的应用,这些新知识和新技术算是我这次最大的收获了吧。

你可能感兴趣的:(第二次作业 个人项目(1))