ruanjiangongcheng
软件工程作业
个人项目:**WC**
实践是理论的基础和验证标准,希望读者贯彻“做中学”的思想,动手实现下面的项目,并和别人的成绩相比较,分析产生差距的原因。
\1. 实现一个简单而完整的软件工具(源程序特征统计程序)。\2. 进行单元测试、回归测试、效能测试,在实现上述程序的过程中使用相关的工具。\3. 进行个人软件过程(PSP)的实践,逐步记录自己在每个软件工程环节花费的时间。
1WC项目要求
wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。
实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。具体功能要求:程序处理用户需求的模式为:
基本功能列表:
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.1Personal 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
代码说明
功能实现
运行测试:
空文件
只有一个字符的文件
只有一个词的文件
只有一行的文件
一个典型的源文件
项目小结
1. 我接触python时间不算长,在编写程序的过程中遇到很多语法的错误
2. git bash和git gui的使用方法不同,摸索了好久
3. pycharm这个IDE好难用,以后的日子要继续发掘这个IDE的使用方式。