软工第一次个人作业 需求分析、模块规划与时间规划

目标功能

  1. 统计文件的字符数
  2. 统计文件的单词总数
  3. 统计文件的总行数
  4. 统计文件中各单词的出现次数
  5. 对给定文件夹及其递归子文件夹下的所有文件进行统计
  6. 统计两个单词(词组)在一起的频率,输出频率最高的前10个。

需求分解

  1. 能从命令行中获取参数。
  2. 对给定文件夹及其递归文件夹里的文件进行读取,并有一定的容错能力。疑问:递归是强制功能还是可选功能?)
  3. 能够判断单词的定义。
  4. 能够快速存取单词出现次数与词组次数。
  5. 对字符流中的字符按照不同规则进行统计。疑问:不同规则的统计是否要拆解成不同功能?)
  6. 对字符流中的单词进行统计。
  7. 对统计的出现次数进行排序,筛选出最高的10个。
  8. 对结果进行输出。

模块分解

  1. 文件的读取模块。具体需求:遍历给定文件夹,依次读取每个文件。
  2. 简单的字符和行数的统计功能,作为一个模块。具体需求:统计字符流的字符与行数。
  3. 将单词的判断条件封装为一个独立的类。具体需求:对于给定的字符,可以判断是否为单词、为哪个单词。
  4. 单词的统计功能。具体需求:统计字符流中的单词数、词组数。
  5. 表单功能。具体需求:提供查表功能,尽量快速地查找与修改每个单词的统计数目。另外提供查找最大值的功能。思路:使用stl,哈希表或字典树。查找最大值可以通过维护一个最大值表(较慢)、直接搜索(较慢)或者采用特定的数据结构(是否与前述矛盾?)疑问:3.4.5.模块是否划分过于细致?
  6. 输出模块。具体需求:从给定数据给出输出。
  7. 主模块。具体需求:从命令行读取数据,调用各模块完成工作。

疑问

各个字符、单词的统计是一次性、一起统计,还是多次访问文件、分别统计?若是前者,恐怕耦合严重。若是后者,读文件可能效率不高。假如用buff暂时存储字符串从而多次统计过于浪费资源,而且可能出现溢出,还会将字符流划分成多段,可能带来问题。为了方便编码,先使用后者多次读文件完成,后期进行效率优化。

进度规划

由于其他任务,今天才开始进行这个作业。因此之后必须加紧时间。

上述模块分解只是一个初步分解,仍然有很多不妥之处。个人打算先分别完成各个模块的初步功能,再根据问题进行调整。因此,进度规划只能大概规划,无法太细致。

进度计划:

模块1. 和7. 的命令行读取:较为简单,首先尽快解决,尽量增强健壮性。

模块6. :今天之内完成。完成这些之后,大体框架就能够运行了。

模块2. :今天之内完成。

模块3. :尽量今天之内完成。至少周一之内完成。

模块4. 5. :周一完成初步

模块5. :周一、周二更改方案,选择最合适的方案。

性能测试:周三进行。

语言:c++

平台:visual studio

单元测试:

vs有自带的单元测试模块,但是过于庞大,所以我打算自己写简单的单元测试类。

原文地址:https://www.cnblogs.com/jennawu/p/8645291.html

时间: 2024-08-28 11:46:59

软工第一次个人作业 需求分析、模块规划与时间规划的相关文章

软工第一次作业-01 软件工程的实践项目的自我目标

1.对实践项目完成后学习到的能力的预期: 完成实践项目,首先有利于自己编程代码的能力,对软工项目的热情也能有所提高,熟悉并熟练掌握项目的开发过程.培养团队合作精神.在实践课程结束之前,希望自己能掌握单独完成一个简单项目的能力. 2.对项目课程的期望: 希望课程能深度的讲授项目开发的操作过程,如何应用.并且能给予团队之间更多配合交流的机会.能不拒绝同学的一些提问和疑惑. 3.对项目的愿景规划: 在初期,投入百分百的热情去学习与交流,努力加强团队意识.之后,会努力完成自己所要做的任务,在团队中尽可能

软工第零次作业[补交]

目录 第一部分:结缘计算机    2 i.    你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)    2 ii.    计算机是你喜欢的领域吗?是你擅长的领域吗?    3 iii.    你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?    3 第二部分:在计算机系里学习    4 i.    你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能

软工实践总结作业

忽然间,说结束就结束了. 明明是一直以来觉得头疼无比.时间占用巨大的这门课程,在结束的时候,却没有想象中的轻松,反而有一丝失落. 1.课程总结: 翻开刚刚开课时写下的目标,字里行间读出的,半是憧憬,半是迷茫.计划中要做的,有一些没有完成: 原打算学习java,最后却学习了一些php和mysql: 想要学会更好的管理时间,熬夜的次数好像却更加频繁: 原以为可以初步成长为一个合格的pm,但是回头看看自己做的好像也不怎么样.. .当然,也有不少的收获: 学会了一些软件的使用,例如原型开发软件Axure

软工个人阅读作业3

M1/M2阶段总结: 从M1阶段开始到现在已有几个月,不知不觉我参与这个高大上的团队完成app的工作已经有这么久了,从刚开始的手足无措到现在的完美结束,期间有任务压身的紧迫感,也有做出成果的激动和欣慰.下面分享一下这一段时间我的思想与感悟. 对于我自己: 1 这两次的团队作业我收获最大的就是又学会了另一种爬虫方法,相对我之前了解的另一种爬取网页的机制,这次学到的方法更加简洁易懂,学起来也很快,了解了其中的机制之后就觉得这种方法很神奇,很有趣. 2 软工课的团队作业也是我参加过的为数很少的多人合作

软工第一次作业简单总结

PSP2.1 Personal Software Process Stages Time Planning 计划 · Estimate · 估计这个任务需要多少时间 50h Development 开发 · Analysis · 需求分析 (包括学习新技术) 30h · Design Spec · 生成设计文档 5h · Design Review · 设计复审 (和同事审核设计文档) 1h · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 1h · Design

软工第一次作业

我快速的看完了整本教材,发现有以下不太明白的地方: 1)不是已有单元测试了吗?为什么要进行回归测试? 2)什么时候选用敏捷开发? 3)MSF为开发思想与宣言,那与需求分析的联系? 4)多种测试方法,如何确定测试时使用哪种方法? 5)需求变动过多怎么办? 6)如何衡量软件的质量? 7)怎样才算是好的用户体验?

软工第一次作业 - 我和计算机

我和计算机 ----阅读优秀博文,结合问题谈感想 第一部分:结缘计算机 计算机是在我记事的时候就接触到了的一个事物,不过在当时它的作用只有一个,就是给我打游戏娱乐,在上网之后又多了一个查资料的功能罢了.不得不说,除此之外,我和计算机这个行业以及在大学专业里学的任何内容都没有任何的结缘.可我为什么选择这个专业呢?大家都常说,21世纪是互联网的时代,学计算机意味着未来可以更好的找到工作,未来的发展空间是巨大的.于是在高考填写志愿以后,计算机专业就正式与我结缘了. 大家都知道没有兴趣学什么都不容易学好

软工第一次作业 进度记录三 简单的性能分析

到了今天,编码工作已经基本完成.除了非文本文件的字符.单词计数仍然和标准答案不一样以外,文本文件计数都是正确的,而且效率较高.非文本文件的读取大概无解了,不打算修改了. 对于助教给出的样例,visual studio生成的Release版本exe能在30s内完成,linux下经过少许修改生成的可执行文件大约20s完成. 在visual studio上进行了一个简单的性能测试.分析如下: 1. fclose函数占用非独占时间最多,几近20%,但占用独占时间少.说明文件操作依然较慢,尤其是测试集中小

[2017BUAA软工]第零次作业

第一部分:结缘计算机 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 我当初选择计算机,是因为:1.北航的前辈对北航计算机专业评价非常高:2.我也喜欢通过编程来代替我完成一些繁琐的任务(如,用按键精灵写简单的脚本来打游戏)3.我觉得计算机很神奇,怎么靠电路完成了这么多神奇的操作(如,IO.计算.存储等) 我觉得我的条件:1.肯定在dalao们面前毫无竞争力,不过也不至于就因此无法弥补差距2.在学习两年后,感觉当初dalao们的一些很666的知识,现在看来其实也不算太难掌握(