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 |
代码说明
功能实现
运行测试:
空文件
只有一个字符的文件
只有一个词的文件
只有一行的文件
一个典型的源文件
项目小结