本作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/10111
所属团队:构建之法
博客链接:https://home.cnblogs.com/u/goujianzhifa/
团队项目:别吃错喽
git链接:https://e.coding.net/kangzhe/biechicuoleversion.git
在本课程(不包括本学期其他课程)中学习和使用的新软件新工具(全称、版本)及链接
工具:Git 2.20:https://git-scm.com/about
在本课程(不包括本学期其他课程)中学习、提高的语言、开发平台(全称、版本)及平台链接
语言:python、c、c++、java。
微信公众平台 平台链接:https://mp.weixin.qq.com/
回顾1
回顾本学期第一次作业[https://edu.cnblogs.com/campus/nenu/2019fall/homework/5522] 中题目2。
参见 [http://www.cnblogs.com/easteast/p/7403491.html ],阅读其中给出的材料,并回答下面几个问题:
(1)回想一下你曾经对计算机专业的畅想
当初你是如何做出选择计算机专业的决定的?经过一个学期,你的看法改变了么,为什么?
你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?经过一个学期,你的看法改变了么,为什么?
你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?经过一个学期,你的看法改变了么,为什么?
(注:不可以回答 "不是","是"。请把这当成以后工作时面试题,需要回答足够长度,提供足够信息,让对方了解你。比如,给出为什么。)
看法都没有改变,这个学期并没有对当初我选择计算机专业的原因有影响,这学习新学习的课程难度上都较之前有增加但都是预期之内的所以也符合我的期待,这一学期过后计算机依然是我喜欢的领域也依然是我不太擅长的领域,因为这学期大部分都是数学理论学期,对于编码能力的提升较小。
(2)考取研究生,对照前人们走过的路和描述未来发展,现在的你自我感觉你已经具备的专业知识、技能、能力有哪些?
离成为一个合格的计算机学生,在专业知识、技能、能力上还差距哪些?
经过一个学期,你的看法改变了么,为什么?
改变了。虽然开了几门新课,但学习成果并不是很好,并不能算得上已经具备的专业知识。但这一学期让我对于计算机领域的认识有了很大的拓宽。离成为一个合格的计算机学生差距依然很大没有改变。
(3)每天都是一个人生选择的十字路口,学术研究、工程项目、社会实践 (?) ,不同的选择有不同的努力方向。
对照以上你阅读的前人们的经历,你的选择是什么?经过一个学期,你的看法改变了么,为什么?
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?经过一个学期,你的看法改变了么,为什么?
针对你的选择,你给自己的本学期的规划是什么?经过一个学期,你的看法改变了么,为什么?
选择,优势和劣势没有改变。因为这学期的学习生活并没有对这些有任何影响。学期开始对本学期的规划并没有完全实现,论文数没有达到,规划复习的数学内容也没有完全复习。
(4)你对这门课的期待是什么?
你打算平均每周拿出多少个小时用在这门课上?经过一个学期,你的看法改变了么,为什么?
实测结果,每周平均用在本课程上多少小时?
学期开始时估计的是20小时,统计之后每周平均为6.6小时。第一周的作业量觉得有点大,所以估计的时候估计数就大了。
回顾2 分值50
-
5个问题:
(1)第八章需求分析178页,做好WBS的几个要点中第四点是:如"从结果(Outcome)出发构建WBS,而不是从团队的活动(Action)出发",其中从结果出发和从团队的活动出发有什么区别?什么是从团队的活动出发?
(2)同样第八章需求分析179页,最后一个问答--问:对于有些需要考虑、探索、分析的问题,他们并没有具体形式的交付成果,怎么办?答中有这么一句:如"如果是和整个系统的架构攸关的技术问题,则需要有交付成果,并且要有数据支持。",都有哪些的问题属于和整个系统的架构攸关的技术问题呢?如果出现这些问题相应的会导致什么结果呢?
(3)第十二章用户体验253页。原文大概意思是一个同事问作者关于一个软件的怪问题,朋友因为解决方法在高级选项中而不敢操作,以下为作者原文:如"很多程序员都没有意识到,用户对那些选项对话框中的种种选择会有很大的畏难情绪,而程序员则觉得自己开发的功能必须有几个高级选项,才显得有水平"。究竟是软件功能的全面性更重要还是软件功能的简便性更重要呢?Word中有很多功能是大部分人都用不到的,Word的选项也都很复杂,遇到没遇到的过的问题也不是很好解决,一般都需要百度,但少部分人才会用到的功能就应该去掉吗?
(4)第14章质量保障309页,对于软件质量保障工作的定义是,"软件团队为了让软件达到事先定义的质量标准而进行的所有活动,包括测试工作"。那么软件质量保障工作是在哪个阶段执行的?
(5)第15章稳定和发布阶段332页,如"开发人员也要考虑运营团队的需求,例如在代码中加入遥测的代码,收集产品运行时的数据。",遥测就是指收集产品运行时的数据吗?开发人员考虑运营团队的也算需求分析吗?
请回顾这5个问题,自己回答一下。当初的困惑是否还在,你现在如何认为,是更深的困惑么?
答:(1)WBS通常从最终的产品开始,一层一层往下,把大型交付件(Deliverable)分割为小型、具体的交付件。这样的分割可以持续下去,直到WBS的使用者(开发团队、接收方)达到共识。从数据结构方面来看,WBS分割的结果是一棵树。所有子节点都最终有一个根节点。每个节点描述的是要交付的产品或文档,而不是开发团队的努力或花费(各个叶节点的成本可以作为次节点的属性展现出来)。分解原则:
1、将主体目标逐步细化分解,最底层的日常活动可直接分派到个人去完成;
2、每个任务原则上要求分解到不能再细分为止;
3、日常活动要对应到人、时间和资金投入。
根据此分解原则了解到:分解是将主体任务分解,而不是按团队活动能力分解。
(2)整个系统的架构攸关的技术问题取决于系统架构方法,影响或不符合当前架构方法设计要点的均属于和整个系统的架构攸关的技术问题。
(3)软件的功能需要根据用户需求来做,用户需要功能全面则全面性重要,需要简便则简便性重要。
(4)软件质量保障工作在需求分析阶段开始实施。
(5)遥测就是远程测量(telemetering),即应用通信技术传输被测量的测量值。
2.请根据本学期的学习、收获、困惑,再提出5个问题,可以是读后不理解的,或者读后反对的。有求有观点、有证据或分析。体验一下,这5个问题,是不是更有深度了 。
答(1)是否还存在其他类似NABCD的模型?
(2)当一些用户需求和本身设计理念不符,是否要全面更新或淘汰?
(3)如果是一个小团队,是否需要产品经理,项目经理,开发人员,测试人员五脏俱全呢?在实际项目中可以一人身兼数职么?
(4)在团队明确分工之后,是否可以插手其他人的工作,对其提出建议或加以反对。
3.回忆整个学期,你有什么话想对后来的学弟学妹们说。
答:软件工程中需求分析很重要,尽早且全面的对用户的需求进行尽可能全面的理解不光可以最大效果的进行任务分工,也可以最大效果的制作项目计划。与老师就项目进行沟通时要有依据且表达清楚,避免不必要的和模糊的表达。
4.如果重新来过一次,你打算做哪些(技术上,而不是态度上的)改变--基于希望得到什么样的更好结果,你才希望这样改变的;更重要的是,你根据什么估计这些改变会有预期的结果。
答:如果重新来过一次,我觉得在团队项目选择上应该更加慎重。选择技术上擅长熟悉的项目。
5.终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布及成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
答: 通过您学习到了很多软件工程的相关知识。希望老师坚持自己授课风格。
总结 分值50
代码总量,平均每周代码量。
总量:1366行。平均每周代码量:124行。
2.博客字数总量,平均每周字数。
博客字数总量:14518字。平均每周字数。1319字。
3.根据PSP,平均每周在本课程中所用时间(是的,请再回答一次)多少小时。
统计之后每周平均为6.6小时。
4.进度条总结: 遍历每周知识点,以周为单位做如下表格。
起止时间 | 提交PSP例行报告时总结的知识点 | 现在回顾该周收获的知识点 |
2019.9.5-2019.9.11 | 数据流图+构建之法 | 数据流图+构建之法+PSP=命令行 |
2019.9.12-2019.9.18 | 需求分析+linux重定向+git | 需求分析+linux重定向+git |
2019.9.19-2019.9.25 | 单元测试+效能测试+功能测试 | 单元测试+效能测试+功能测试+结对编程 |
2019.10.10-2019.10.16 | 无 | 立会报告+NABCD |
2019.10.17-2019.10.23 | 无 | 燃尽图 |
2019.10.24-2019.10.30 | 无 | 无 |
2019.10.31-2019.11.6 | 无 | 事后诸葛亮分析+用户使用报告+版本控制报告 |
2019.11.7-2019.11.13 | 无 | 无 |
2019.11.14-2019.11.20 | 无 | 无 |
2019.11.21-2019.11.27 | 无 | 无 |
时间分配堆积柱状图。如图所示,给出每周的时间分配,数据来源是每周的PSP。(时间颗粒度:分钟)