[I.1] 个人作业:阅读和提问
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR |
| 这个作业的要求在哪里 | https://edu.cnblogs.com/campus/buaa/BUAA_SE_2025_LR/homework/13365 |
| 我在这个课程的目标是 | 学习较为完整基础的软件开发流程,以及如何在软件工程中进行良好的团队协作 |
| 这个作业在哪个具体方面帮助我实现目标 | 帮我了解软件工程开发中的许多知识,增加理论知识储备 |
-
如何更好地理解软件开发过程中的服从性难题
在第一章中提到了软件开发过程的五大难题,其中对服从性的描述是:“软件不能独立存在,它总是要运行在硬件上面,它要服从系统中其他组成部分的要求,它还要服从用户的要求、行业系统的要求(例如银行利率的变化)。”我对此的理解是:软件在开发过程中对硬件需要去适配。新的硬件出现之后,软件需要进行适配和优化,这样才能发挥新硬件的全部性能。不知道这样的一个理解是否满足书上对服从性的定义。同时,服从性是否仅仅是在硬件以及系统层面上的服从性,我们是否还需要考虑一个软件在法律法规上的合规性,是否符合数据隐私法规或者遵守行业合规要求以及是否遵循知识产权和版权法规。我认为这也是在软件开发过程中所需要克服的服从性难题。 -
对于结对编程在某些情况可能存在的问题的思考
在第四章中提到了“在结对编程中,因为有随时的复审和交流,程序各方面的质量取决于一对程序员中各方面水平较高的那一位。”,从这句话可以看出,结对编程主要是通过水平高的来带动水平低的一起进行编程。课本给出的优点表述是这样代码的错误就会变少,质量就会较高。但是我认为在某些情况下,当另一方水平低到难以发现水平高的一方在编写过程的bug的时候,是否会因为结对编程而忽略了对bug的发现。同时,对于水平高的一方,在编写的过程中,会由于考虑到水平低的一方而放慢自己的开发进度。所以我认为结对编程的双方是否需要根据自己的水平寻找相近的搭档进行结对编程,这样在开发的过程中不会出现一方拖着一方,而是双方互相勉励共同开发。 -
保持敏捷,预期和适应变化但不要过于早地适应变化
在本书的第七章中的MSF方法论中,有一条是保持敏捷,预期和适应变化。在软件工程中,不仅是外部会变化,即客户的需求可能会随着时间的推移而增删改。同时内部也会产生变化,技术发展日新月异,我们可能随时会遇到由于技术升级而使得原来的难题不攻自破的情况。所以我们药时刻去应对变化。但是在本书的第三章中提到了避免过早的扩大化或者泛化,即为了应对可能出现的外部变化,而过于全面地处理未知的问题。所以我们在软件工程中,要充分地利用到“软”这一特性,发挥软件的高可塑性,既避免没有任何适应变化的能力情况出现,导致无法应对潜在的变化,也要避免过早的扩大化,而加大工作量或者天马行空的想法出现。 -
对于NABCD分析方法的补充和完善
在课本的第八章中提到了NABCD分析方法,分别指的是:N(Need)需求、A(Approach)做法、B(Benefit)好处、C(Competitors)竞争以及D(Delivery)推广。在近期的上课中,都强调了客户反馈的重要性。所以我认为在推广之后可以增加一个 E(Evaluation)——评估的步骤,以构建一个更完整的闭环反馈机制。这样可以评估方案交付后的实际效果和用户反馈,来进行进一步的改进完善,形成持续改进闭环。PDCA 循环这一经典管理循环中,“Check”阶段强调对执行结果的评估与反馈,为下一步的“Act”提供依据。这一思路证明了在产品或方案交付后进行系统性评估的重要性。所以我认为可以将NABCD方法完善成NABCDE方法,通过持续的反馈和迭代改进,使得产品更加符合市场变化和用户的需求。 -
对于效能测试、负载测试以及压力测试三者异同的理解,能归纳到同一种测试类别吗
在本书的第十三章中出现了这三种测试的三个例子,“效能测试:在100个用户的情况下,产品搜索必须在3秒钟内返回结果;负载测试:在2000个用户的情况下,产品搜索必须在5秒钟内返回结果;压力测试:在高峰压力(4000个用户)持续48小时的情况下,产品搜索的返回时间必须保持稳定。系统不至于崩溃。”。这让我对于这三种测试的异同产生了一些疑惑与思考。在前面,书中指出了压力测试并不属于效能测试。我认同这个观点,因为压力测试的目的是测试软件在超过设计负载的情况下是否仍能返回正常结果,没有产生严重的副作用或崩溃。但是,在举出的三个例子中,我认为这三种测试有着异曲同工的地方,都是测试在一定压力下,系统的性能如何,只是随着压力的不断增加,对于系统的性能提出了更低的要求。虽然可以看出这三种测试的侧重点有所不同,主要区别在于施加的压力程度和对系统性能的要求,但是这三种测试方法都涉及对系统施加负载。根据这个共同点,我认为这三种测试可以在一定程度上归纳到同一种测试类别:负载测试,即测试系统在不同负载,包括:正常工作、低负载以及高负载。

浙公网安备 33010602011771号