688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023软件工程实践W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 课程回顾与总结 个人技术总结 |
| 其他参考文献 | 《构建之法》 |
问题一:如何能证明一个软件是可以继续发展的?戳这里
对于这个问题的解答,我仍然坚持之前寒假时的观点,这个软件在产品设计之初的大方向上必须是正确的,只有这样,在面对之后的发展中,才能够根据用户的需求做出适当的修改维护。但同时我对此也有了新的认识,即这个产品之前的设计架构必须是合理正确的,而不能是草草了事,能够达成功能即可。如在Alpha冲刺阶段,我们对于很多功能的实现是堆积起来的,并没有一个合理的架构,也没能达到软件设计“高内聚、低耦合”的目标,这导致我们在Beta阶段需要对功能进行升级时十分困难。因此,一个软件能否继续发展,与这两个点都息息相关。
问题二:作者用商用民航发动机来对比普通的商用软件,是否合适?戳这里
曾经的我对于这个问题的看法是不合适,因为当初看到这个问题时内心是十分嗤之以鼻的,认为一个商用软件怎么能够和民航发动机进行对比。直到后来在社区中再次看到这个问题时,有一条回答让我一下理解过来,并非提到商用软件就是“无所谓的”,相反,随着科技越发深入我们的生活,软件已经在我们的生活中占据了至关重要的地位,此时,若类比VX发生致命性错误,难道不是几十万甚至更多的人的生活遭受影响吗?并且,我赞成一条回答:商用民航发动机应该对标的是重要的商用软件,而非普通的商用软件。
问题三:如何区分一个好的程序员和不好的程序员呢?戳这里
对于这个问题在经历了多次的团队合作之后深有感触。在曾经,我只是简单的认为能够把基本的功能不断地做的更完整就已经是一个好的程序员了。可是在这次漫长的团队合作中,我见识了各式各样的“程序员”,有的具有团队协调能力,能够根据队员的能力和时间合理分配任务;有的具有挑战精神,能够提出各式各样的新点子并将之付诸实践,带领团队更进一个台阶;有的虽然沉默却能够很好的完成自身的任务;有的情绪稳定抗压能力强,能够在队友面临崩溃时“抗下”一些,这些在我看来都是十分美好的品质,都能够称之为是一个好的程序员。而有的队员每次分配任务时就推脱不做;有的队员完成一个任务时总是拖拖拉拉,导致他人的进度也被耽误,还有的做事时张口say no,拿分时格外积极,这些都是我不愿意在合作第二次的程序员。因此,在我看来,一个好的程序员不仅需要看其能力的高低,更重要的是他是否具有一个程序员应该具备的品质和素养,能否吸引与他合作过的程序员想要再次与他合作。
问题四:花费时间越多,代表工作量越高吗?戳这里
大No特No,花费的时间越多,有时往往不代表工作量越高,相反,经常意味着那个程序员的水平不够,查找问题和解决问题的能力不足。因此我觉得对于这样一个问题并不能够片面的根据时间来判断,我们还应该结合这个程序员的水平能力、以及时间花费的地方而决定,如果大量的时间花费在了修改bug上,是不是也意味着,这个程序员的大量时间都是浪费的呢?并且对于工作量的评价不应该只有花费时间这一个因素,代码行数、bug比例都是很重要的因素,且代码内容也十分关键。这次的冲刺我们曾经花费一个晚上的时间查找一个bug,最后发现只是因为名字没有对应而导致映射失败,显而易见,这个晚上的工作量是极低的。
问题五:什么人群适合看《构建之法》这本书?戳这里
对于这个问题我的观点并没有改变,我认为《构建之法》最适合有一定代码量积累和经验的人阅读,尤其是在做项目过程中,时常感到困惑的一线工程师,或者是面对一个庞大的软件项目开发任务而感觉力不从心,无力掌控的负责人。因此当我们已经到了大三的时候,是非常适合读这本书的。同时,将阅读与实践结合是十分必要的,做中学,学中做不应该只是一句空话。这次的软工实践,真正的做到了学中做,做中学,受益匪浅。
在这个阶段我们学会了NABCD模型,通过对于需求、做法、好处、竞争、推广这五个方面的评估,来判断一个产品是否具有市场竞争力,是否值得投入资金与时间,它教会我们理性的从这五个角度进行多维度评估,而非盲目的编程。而这次的团队项目,我们正是从当下最热门的抖音小游戏出发,从而选定了做这样一个小程序。
这个阶段主要是对产品进行建模、对数据库进行分析设计。结合《软件工程》这门课程,我们对我们的产品进行类图、用例图的分析,以及数据库的分析与设计,但其实团队最初的设计是不充分的、甚至存在一些错误的,因此,我们这次团队合作对于设计阶段最大收获可能不是在数据库设计那次作业中,而是真正到了Alpha冲刺才发现这么一个问题,通过在Alpha冲刺阶段对于设计的重新构思,我们才真正获得了进步,该如何通过一个产品,或者说是通过需求去获得UML图。
此次冲刺我主要负责后端云函数的编写以及前后端接口的连接,在这个阶段,我最大的收获是认识到API文档的重要性。初次对于认为无分配时其实我只负责后端云函数的编写的,并没有负责前后端的连接,是到了项目开发中期大家才发现这个问题,连接的同学对于前后端的接口无论是名字、功能还是输入输出参数都一无所知,因此他们无从下手。因此我们后面紧急调整为花两个小时编写前后端API文档,并且分配一个后端的成员去进行前后端接口连接的工作,这个问题才得以解决。因此,我认为在团队开发中,API文档是至关重要的。
此次的项目测试我们运用了课上学会的内容,对我们的产品分别进行了黑盒测试和接口测试。我们首先对每一个接口都进行了单独的单元测试,确保每一个接口都是正常可运行的,接着,我们根据产品的功能流程图对于每一个功能都进行了测试,接着我们将功能连接,确保产品能正确运行。在最后,我们在手机上进行黑盒测试。唯一遗憾的是,因为微信小程序的限制原因,体验版小程序并不能邀请非名单内成员进行程序的测试,只能通过录屏的形式让其他成员感受,但这对于我们的测试就造成了影响,一个对于该产品不熟悉的成员能够成功的运行这个程序呢?我们其实并不清楚。
由于我们开发的是微信的小程序,由于小程序上线审核时间长,且好像有限制说定位功能需要公司申请,个人无法申请,因此此次很遗憾我们未能发布成功,只能发布体验版本。
顺应时代潮流,学会利用新工具来促进知识的学习掌握,很多开发中的经验不是AI能够轻易取代的
@CSDN-Ada助手当你是一个软件开发团队的领导, 当开发软件过程中压力过大,一些组员的积极性反而降低时,应该如何提高组员的积极性?
感谢你的详细的 ‘回答’ + ‘再次回答’。 希望你可以把你的回答加到 https://bbs.csdn.net/forums/SoftwareEngineering?typeId=828 原始的提问中,帮助后来者。