[I.1] 个人作业:阅读和提问
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 2025年春季软件工程(罗杰,任建) |
| 这个作业的要求在哪里 | [I.1] 个人作业:阅读和提问 |
| 我在这个课程的目标是 | 体验完整的软件开发流程,并且学习软件的搭建与如何在团队中与他人协作 |
| 这个作业在哪个具体方面帮助我实现目标 | 对于文本的通读能力,对于表述的精确与凝练概括能力 |
Q1:关于软件工程代码编译的实践困境
第四章4.2中提及,代码风格的原则是:简明,易读,无二义性。提示:这里谈的风格是一家之言,如遇争执,关键是要本着“保持简明,让代码更容易都”的原则,看看争执中的代码规范能否让程序员们更好地理解和维护程序
作者提及代码应是“简明,易读,无二义性”的,但是当着手一份传承已久的代码时,重构的成本将极高,并且可能引入新的问题,应该如何平衡运行与简明之间的关系。暂且不提代码的传承是否悠久,就个人之前与他人合作完成项目,因为我是时间稍晚才加入项目,当我看到别人已经写出来的代码的时候,因为其排版并不简明易懂,导致就理解原本的代码已经出现了较大的问题,但是项目截至时间又不满足重构的标准,这种时候应当如何权衡利弊?
Q2:关于如何获取用户需求
第八章8.3中提及,下面是几种常用的用户调研方法。... 5.用户日志研究(User Diary Study) 这一调研方式要求用户记录自己日常工作或生活中与所用软件相关的行为,供软件团队分析。用户可以写类似日记体的文字描述,也可以每天填表(例如跟踪自己每天的饮食种类),也可以使用软件见来跟踪。
作者提及的这几种形式都对用户的自律能力具有很高的要求,并且也如文章中提出的“如何保护用户的隐私”也是一个很难以解决的问题。尤其对于第一点,能拥有极强自律能力的人群终究是少数,那这个用户调研方式的有效性与可实施性还有待考证。
Q3:关于测试资源的消耗
第十三章13.1.2中提及,2.非功能测试:一个软件除了基本功能之外,还有很多功能之外的特性,这些叫非功能需求,或者服务质量需求。然而,若没有软件的基本功能,这些特性都将无从表现出来,因此,我们要在软件开发的适当阶段——基本功能完成后再来做这些非功能测试
在现实中测试的资源是有限的,那么在这些资源受限的项目中应该如何平衡覆盖率与成本。例如,是否应优先采用自动化测试工具(如书中提到的单元测试框架),还是依赖人工探索性测试?书中强调的“持续集成”是否能够有效缓解这一矛盾?
Q4:关于如何解决人员安排问题
第四章4.6中提供了一段关于结对编程的描述,定义了两种角色 1.驾驶员:写设计文档,进行编码和单元测试等XP开发流程。 2.领航员:审阅驾驶员的文档;监督驾驶员对编码等开发流程的执行;考虑单元测试的覆盖率;思考是否需要和如何重构;帮助驾驶员解决具体的技术问题。领航员也可以设计TDD中的测试用例。
在这段描述中只存在两个人的合作,但是当团队中的人数变得更多的时候是否存在某种方案可以解决团队合作的问题来提高工作效率?
Q5:关于创新的问题
第十六章16.1.6讨论了新技术需解决实际问题,但是当前AIGC工具可以辅助代码生成,软件工程师的核心竞争力将如何重新定义?教育中应如何调整课程重点以培养适应技术变革的工程师?

浙公网安备 33010602011771号