软件工程作业-基于python实现的wc统计工具

时间:2021-09-14 06:32:58

 

ruanjiangongcheng

软件工程作业

github地址:https://github.com/Etsukkko/ruanjiangongcheng

 

个人项目:**WC**

 

实践是理论的基础和验证标准,希望读者贯彻“做中学”的思想,动手实现下面的项目,并和别人的成绩相比较,分析产生差距的原因。

\1. 实现一个简单而完整的软件工具(源程序特征统计程序)。 \2. 进行单元测试、回归测试、效能测试,在实现上述程序的过程中使用相关的工具。 \3. 进行个人软件过程(PSP)的实践,逐步记录自己在每个软件工程环节花费的时间。

1 WC 项目要求

wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。

实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。 具体功能要求: 程序处理用户需求的模式为:

wc.exe parameter

 

 

基本功能列表:

wc.exe -c file.c //返回文件 file.c 的字符数

wc.exe -w file.c //返回文件 file.c 的词的数目

wc.exe -l file.c //返回文件 file.c 的行数

 

2. 工作的细分

正如谚语所说:不能一口吃成个胖子。罗马不是一天建成的。同样,一个功能完备的程序也不是一蹴而就的。在这里,我们讨论如何把大任务划分为可操作的小任务,以及任务的次序。 读完项目的要求后,首先请估计完成整个项目需要多少时间?把这个[ 估计值 1] 记下来,并且写成PSP 的形式。其次,如何逐步分解一个项目的需求?在这个项目中,各种需求已经通过各种参数表达得比较清楚了。

基本功能 扩展功能 高级功能

详细地了解了需求后,我们再估计需要的时间并记录 [ 估计值2]。 最后,列出各类功能下面的详细需求。

基本功能

支持 -c 支持 -w 支持 -l

 

 

PSP

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

 

代码说明

 软件工程作业-基于python实现的wc统计工具

 

功能实现

软件工程作业-基于python实现的wc统计工具

 软件工程作业-基于python实现的wc统计工具

软件工程作业-基于python实现的wc统计工具

软件工程作业-基于python实现的wc统计工具

运行测试:

空文件

软件工程作业-基于python实现的wc统计工具

软件工程作业-基于python实现的wc统计工具

只有一个字符的文件

软件工程作业-基于python实现的wc统计工具

 软件工程作业-基于python实现的wc统计工具

只有一个词的文件

软件工程作业-基于python实现的wc统计工具

 软件工程作业-基于python实现的wc统计工具

只有一行的文件

软件工程作业-基于python实现的wc统计工具

 软件工程作业-基于python实现的wc统计工具

一个典型的源文件

软件工程作业-基于python实现的wc统计工具

 软件工程作业-基于python实现的wc统计工具

项目小结

1. 我接触python时间不算长,在编写程序的过程中遇到很多语法的错误

2. git bash和git gui的使用方法不同,摸索了好久

3. pycharm这个IDE好难用,以后的日子要继续发掘这个IDE的使用方式。