个人作业-提问回顾与个人总结

文章回顾了在软件工程课程中的学习经验,讨论了单元测试的维护策略,参数检验的重要性,以及在需求变化下的适应方法。提到了在项目不同阶段如需求分析、设计、实现、测试、发布和维护中学到的关键点,如NABCD需求分析法、减少模块耦合、代码性能优化和团队协作的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人作业-提问回顾与个人总结

项目内容
这个作业属于哪个课程课程社区
这个作业的要求在哪里作业要求
我在这个课程的目标是学习软件工程
这个作业在哪个具体方面帮助我实现目标总结和回顾这一学期的软件工程学习历程

链接到以前提问题的博客

以前提问题的博客

请尝试对自己曾经提出的问题进行解答,并阐明,是如何通过看书,实践,或者讨论弄清楚的。

  • Q:单元测试的维护应当以什么标准进行迭代?如果是需求改变,那么如何覆盖改变的需求影响到的单元测试的全体呢?
    A: 在测试和开发者为同一个人时,在需求变化后完成开发的同时需注意同时维护单元测试。不应当直接运行单元测试,根据是否pass判定是否需要重新编写,因为可能出现单元测试覆盖率不够导致未覆盖到变化部分、变化部分引起的单元测试结果恰好未发生变化等情况。最稳妥、正确的方式还是测试和功能代码一起维护。
    如何弄清楚:实践中单元测试在一次需求变动后仍通过,两次变动后不通过,发现判定单元测试是否需要更新不应当以是否pass为依据。
  • Q:构造函数中应当对传入的参数进行参数检验吧?如果参数不符合要求,是不是应该抛出异常呢?
    A:该题语境是C++中构造函数时抛出异常导致不会调用其析构函数,进而资源无法被正确释放。正常情况应当在构造函数中进行参数检查,但检查不通过的行为则需要根据具体场景、语言等再确定。
    如何弄清楚:提出问题后自行查阅资料解决。
  • Q:上文中提出的“计划没有变化快”解决方案是“那就别做详细的设计、做频繁的增量开发、重构和频繁地发布”是否过于极限?频繁的重构带来的工作量可能大于设计的工作量,还会导致代码的可扩展性不强
    A:尽量开工前先把需求明确了。敏捷适用场景可能是需求变化非常频繁或非常少的场景,非常频繁的需求变化可以通过频繁重构、增量开发解决;非常少的需求变化则可以进行大致的设计后敏捷开工。
    如何弄清楚:课程实践+大致猜测。在软工实践中,我们的需求开始时就是明确了的,因为产品比较典型,因此全部的过程中没有面临大规模的重构、详细的设计等开发以外的工作量。

是否原来的问题还不明白?如果有,请分析。

是否产生了新的问题?如果有,请提出。

  • Q:贡献度应当如何更好的量化?绩效指标中是否应当考虑个体差异,即应当追求“每个人把自己能力以内的事做好”还是“所有人以最优秀者为基准”来衡量业绩?
  • Q:开发过程中若有不影响功能的标准变动(如代码规范、命名规范、函数复用等),是否总是需要重构原来已有的功能已经完备的代码?

软件工程这门学问有很多 “知识点”, 这门课强调 “做中学” - 在实践中学习知识点。请问你们在项目的 需求/设计/实现/测试/发布/维护阶段(一共6 个阶段)中都学到了什么“知识点”,每个阶段只要说明一个知识点即可。

  • 需求
    需求分析我学会了使用NABCD进行需求分析,其分别指需求、做法、好处、竞争、推广五部分。可以从这五个维度对需求本身进行延拓与扩充,使需求分析更加充分、清晰。
  • 设计
    设计部分尽量在开发前完成,设计过程中应当尽量减少模块之间的耦合度,通常在实现之前需要先对API有充分的思考与设计,尽量实现复用、解耦等。
  • 实现
    实现过程中可以多用git保存阶段性成果。实现过程总是与重构相互交织,为了减少重构带来的麻烦,复用和解耦仍然是重要的两环。同时在实现层面,需要在保证正确性的基础上关注代码的性能,尽量使用性能更优的写法。
  • 测试
    完成代码后需要进行单元测试。通常单元测试不保证顺序,因此需要保证每个单元测试case的回归性,即运行是无后效性的,不会带来数据库、全局变量等状态量的改变。
  • 发布
    发布阶段需要考虑宣传的效用。对不同的应用场景、宣传客体可以设计不同的宣传文案,通常宣传客体是目标用户群体,应当已经在需求分析部分刻画过用户肖像,宣发可以结合目标用户特点进行。
  • 维护
    维护主要是发现bug、接收反馈的过程。通常需要维护文档、建立用户交流群接收反馈、进行改进等。

结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得。

  • 结对项目心得
    尽量不要盲目用最新版软件,尽量用老一版的(对吧jyzjj
    老版的往往意味着平台支持更加全面、封装维护的也更加成熟,新版的则会有一定的风险。我在结对项目中使用了最新版的qt,gg
  • 团队项目心得
    团队项目需要更多的配合和协调,很重要的是沟通和协调需要及时进行,因此一个好的项目需要的可能不是一个个聪颖的个体,更需要的是一个个认真负责的伙伴。就我的团队项目而言,对接和配合工作总是很流畅,队友也都很负责靠谱,这些可能才是优秀团队项目的必需品。
    最后,感谢老师助教的指导、队友的陪伴~!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值