[I.1] 个人作业:阅读和提问

项目 内容
这个作业属于哪个课程 2025年春季软件工程(罗杰、任健)
这个作业的要求在哪里 [I.1] 个人作业:阅读和提问
我在这个课程的目标是 在实践中提升前后端开发与撰写报告的能力,培育需求分析与团队协作素养
这个作业在哪个具体方面帮助我实现目标 从理论层面了解软件工程的概念与流程

问题一
如何平衡编写单元测试益处与其使用时间?
讲义2.c中提到单元测试必须覆盖所测单元的所有代码路径,包括错误处理路径,为了保证单元测试的代码覆盖率,单元测试必须测试公开的和私有的函数/方法。100%覆盖率意味着高耗费时间,在OO课程的实际操作中,Junit测试的确有效降低了bug的含量。但倘若比较该方法所使用的时间,和bug被其他样例所发现的几率,很难决定在注重效率的环境下是否该追求并完全满足其标准。

问题二
如何确保结对编程在极限情况下实际效益处于最优?
讲义3.b中提到结对编程是一种极限情况下更为高效的做法,缩减了项目整体所需开发时间。维基百科中也将结对编程定义为code review的一种形式。但结对编程能否确保该情况下的最优解呢?个人感觉结对编程较为依赖结对两者的水平,在两者相差较大时,如何确保是双方协作而非水平高者独立完成;而若两者水平相当,如考虑到结对编程可能造成的人力资源浪费问题,又应该如何去评估其效益。

问题三
如何选择PM角色?
讲义5.c中PM角色的重要性不用赘述,但在实际工程中,如何去选择PM角色使得团队协作能顺利进行?在过往的团队竞赛中,有幸曾被能力极强的PM带飞,深刻感受到其对于团队的贡献,也曾有因PM一意孤行而使团队协作难以进行,造就文中“猪,鸡和鹦鹉”角色与期待不相匹配的时刻。那么在团队中,应该选择一个人担任PM角色,还是由多人轮换PM,或是采纳其他方案,能借以缓和单PM模式下团队可能处于的困境?

问题四
如何将PSP模型运用至学习阶段?
讲义2.a中比较了PSP各阶段花费时间的百分比,得出学生与工程师间的差异。但学生的需求(完成课程作业&实际工程)以及经验(对需求的敏感度,编码熟练度)与工程师也存在差异。是否能将其简化,使其更适应于从学生到工程师的过渡阶段。

问题五
如何决定在何时何处优化?
书中第二章提到需要注重效能提高的时间,需要进行分析,避免过早。在实际过程中,早期确实存在分析不透彻,不明确优化方式的问题;但在晚期也存在架构确定,改写优化工程浩大的问题。如何选择一个明确的时间节点,进行重构或者优化,借以实现效率和性能的最优解?

posted on 2025-03-09 23:00  xfDeng  阅读(20)  评论(0)    收藏  举报

导航