寒假作业(2/2)

软工实践寒假作业(2/2)


这个作业属于哪个课程 2021春软件工程实践|W班(福州大学)
这个作业要求在哪里 软工实践寒假作业(2/2)
这个作业的目标 阅读《构建之法》并提问、完成词频统计个人作业、撰写博客
其他参考文献 《构建之法》邹欣、廖雪峰Git教程

《构建之法》的读与问

问题1

章节5.2提到:功能团队模式——软件开发公司的团队最后总是会演变成功能团队。且不同能力的人之间平等协作。
可对于一个团队而言,合作没有绝对的平等,每个开发者的开发思想、能力和编码方式都有所不同。那么要完成一项任务,工作分配就很重要。团队中怎样才能结合每一个人的优点来分配任务?

问题2

章节6.2提到:长期任务,这种任务比较艰难且对项目又很重要,完成的时间超过Sprint的计划时间。邹老师对此只提到往往开发人员对此并不重视,并没提到如何较好的解决这类问题。日常学习的经验告诉我最难的那部分应该尽早去做,是不是对这“长期任务”也应该尽早安排人来承担这部分责任?

问题3

章节8.3提到:软件就是为了解决用户的需求,那么开发者在开发阶段是否应该满足用户大量的需求改动?

答:企业在开发软件之前必须充分了解用户的需求,结合各种调查方法。一个新的软件开发是由开发者主导并且全程执行。但毕竟是新产品所以前期用户的需求可能会有一些不完善,此时就需要开发者在设计产品时和用户保持一个良好胡沟通

问题4

章节14提到:我同意第一印象很重要,但是当用户已经是第N次使用你的产品时,你的UI能否为这些用户提供方便呢?
章节16提到:长期以来,人们已经习惯了QWERTY键盘,所谓先入为主。
因为先入为主这一意识的存在,当UI设计出现大的修改时,很容易让人产生抵触情绪,拒绝接受更改。我们该如何权衡两者之间的关系?是继续使用原来的界面,再进行一步步修改?还是放手一搏,说不定会有出乎意料的效果?

问题5

章节14提到:软件工程质量可以用一套比较成熟的理论CMMI(能力成熟度模型集成),帮助企业进行对软件工程过程的管理和改进,增强开发制造能力,从而能按时地,不超预算地制造质量的软件。那CMMI适用于什么样的公司或者团队?CMMI怎么应用到具体工作中?


软件工程发展史之奇闻轶事

Unix系统的发明来自一次贪玩

肯·汤普森是贝尔实验室的一名研究员,当时贝尔实验室接了一个开发MULTICS系统的项目,肯·汤普森为MULTICS这个操作系统写了一个游戏,游戏名叫“Space Travel”。但是,他发现这个游戏在MULTICS操作系统上运行速度很慢而且耗费昂贵 —— 每次运行花费75美元。而后来,由于MULTICS操作系统过于庞大和复杂,贝尔实验室决定退出这个项目。退出这个项目以后,肯·汤普森为了可以继续玩这个游戏,就计划自己写一个操作系统。然后他找来丹尼斯·里奇为这个游戏开发一个极其简单的操作系统,这就是Unix系统原型。


词频统计软件编程

Github项目地址

个人项目地址

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 60 45
• Estimate • 明确需求和其他因素,估计这个任务需要多少时间 60 45
•Development 开发 1320 1215
• Analysis • 需求分析 (包括学习新技术) 150 120
• Design Spec • 生成设计文档 90 45
• Design Review • 设计复审 90 90
• Coding Standard • 代码规范 (为目前的开发制定合适的规范) 45 45
• Design • 具体设计 180 90
• Coding • 具体编码 315 390
• Code Review • 代码复审 135 105
• Test • 测试(自我测试,修改代码,提交修改) 315 330
Reporting 报告 120 140
• Test Repor • 测试报告 40 60
• Size Measurement • 计算工作量 20 20
• Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 60 60
合计 1500 1400

解题思路描述

  1. 统计文件的字符数
    使用FileReader按字符读取文件后过滤非ASCII码字符;

  2. 统计文件的单词总数
    读取文件后,先统一将字母变为大写或小写,再通过正则表达式判断单词合法性,最后将单词和它的出现次数储存在map容器中;

  3. 统计文件的有效行数
    将每一行的字符串分离出来,再通过正则表达式判断每个字符串中是否含非空白字符;

  4. 统计文件中各单词的出现次数
    通过sort函数和Comparator比较器对map容器中的单词进行字典序排序后遍历统计即可;

代码规范制定链接

个人代码规范

设计与实现过程

(〃'▽'〃)

性能改进

φ(>ω<*)

单元测试

(/ω\)

异常处理说明

(。・ω・。)

心路历程与收获

  1. 复习了正则式的使用
  2. 复习了bufferreader的使用方法
  3. 体会到了PSP表格在软件工程中的重要性
posted @ 2021-07-09 19:46  李子李子李  阅读(42)  评论(0编辑  收藏  举报