软件基础第二次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc20
这个作业的目标 从构建之法中提出并试着解决三个疑问
姓名-学号 应嘉豪-2018330301170
一、

我看了这一段文字 :“BUG的多少可以直接衡量一个软件的开发效率、用户满意度、可靠性和可维护性。”——P15 第1章。

有这个问题 :那是不是没有bug才是一个好软件呢?

我查了资料,有这些说法:不能说绝对没有BUG的软件,应该说成是"找不到BUG的软件",有没有BUG不知道,只是目前没找到;实际上不能存在没有bug的软件,Bug和软件如影随形。就像我们使用的Windows,穷尽无数优秀的软件工程师来设计给用户优秀的桌面体验,但也有各种层出不穷的bug。

根据我的实践,我得到这些经验:完全没有BUG的软件是很少的,往往软件能够满足用户需求时基本足够使用了,软件的开发需要兼顾成本,要尽可能的缩短开发时间,因此软件开发者不可能为了完全解决BUG无限延迟软件的发布时间。BUG的存在不一定是软件的缺陷,有时候也会给软件带来不一样的特色,例如PUBG吃鸡里的平底锅可以抵挡子弹,很多人都觉得是游戏的特色,平底锅也因此火了一段时间,然而事实上是游戏设计时的一个小BUG,并没有打算让平底锅有防弹的效果。

但是我还是不太懂,我的困惑是:什么才能直接决定软件的好坏呢?

二、

我看了这一段文字 :“代码注入就是将检测的代码加入到每一个函数中,这样程序的一举一动都被记录在案,程序的各个效能都可以被精准地测量。”——P31 第2章。

有这个问题 :可以看出代码注入是一个比较有计算量的过程,我们应该如何更好的利用代码注入在python中进行效能分析呢?

我查了资料,有这些说法:在Python中的效能分析方法和《构建之法》中描述的有些不一样。 在Python中进行效能分析用到的工具是cProfile;在Python中,由于程序执行期间解释器是处于激活状态的,因此注入程序中的代码是无需进行确定性分析的。Python中的每个事件都自带钩子(可选回调函数)。另外,Python解释性编程语言的本质趋向于给程序添加许多执行开销以致于确定性分析趋向于在典型应用中仅仅添加少量的处理开销。结果就是,确定性分析给Python程序执行提供广泛的运行时统计,却没有那么高昂的代价。

根据我的实践,我得到这些经验:若对所有的程序进行代码注入,肯定会大大加长运行时间,还会产生很大的数据文件,也相应增加了数据分析的时间,我们应该先用抽样的方法找到需要重点考察效能的部分,再进行代码注入在Python中代码注入方法并不会产生太大的开销,原因是因为Python是一种解释型编程语言。解释型的编程语言有一些特性使得代码注入方式的效能分析并不会增加Python程序的运行时间。

但是我还是不太懂,我的困惑是:有没有其他的方法来进行效能分析呢?

三、

我看了这一段文字 :“很多软件公司的团队最后都演变成功能团队,简而言之,就是具备不同能力的同事平等协作,共同完成一个功能。”——P100 第5章。

有这个问题 :功能团队模式有什么优缺点呢?

我查了资料,有这些说法:功能团队模式的优点:效率高;缺点:每个小组必须与其他小组就编程规范达成一致。

根据我的实践,我得到这些经验:功能型团队是一种有效的团队管理方式,它能使组织内(甚至组织之间)不版同领域员工之间交权换信息,激发产生新的观点,解决面临的问题,协调复杂的项目。但是多功能型团队在形成的早期阶段需要耗费大量的时间,因为团队成员需要学会处理复杂多样的工作任务。在成员之间,尤其是那些背景、经历和观点不同的成员之间,建立起信任并能真正的合作也需要一定的时间。

但是我还是不太懂,我的困惑是:功能团队模式适合哪些情景呢?

posted @ 2020-11-01 21:55  应o嘉豪  阅读(119)  评论(0编辑  收藏  举报