提问回顾与个人总结

项目 内容
作业所属的课程 2020春季计算机学院软件工程(罗杰 任健)
作业的要求 提问回顾与个人总结
我在这门课程的目标是 学习一个软件的开发过程,提升自己的工程能力。
这个作业在哪些方面帮助我实现目标 回顾问题,深刻了解软工中的做法与思想

提问的博客

个人博客作业

问题的解答

问题1:计算机科学中的“理想化”指的是什么?

我提出这个问题是因为在书中对比计算机科学与软件工程时,有一项区别是计算机科学是理想化的而软件工程是对各种因素的折中。

我认为这的理想化并没有什么深意,只是在阐述一个事实而已。一项科学,它必定是严谨的,否则它经不起考验,总会被证实或者证伪,时间问题。因此如果一项工作被称作科学,它必定经受过考验,它的条件和环境要是明确的,是“一刀切”式的说法,不能够含糊其辞,因此必定是一个理想的条件,不掺杂其他东西。这样的条件也利于我们进行分析和学习,因为我们可以少考虑许多因素。而软件工程是一项实际的工作,更多的是需要我们动手。在实际环境中我们要考虑许多因素,实际环境中也没有理想的条件,所有事物都有限制,因此我们需要折中考虑最优解,调整自变量,得到最好的效果。

这个问题是我在软件工程课设中实践得来的。在我们小组开发过程中遇到许多问题,比如不同分工同学之间接口的冲突、软件内部模块之间的冲突,都让我们去折中考虑工作;而在学习计算机理论技术时,给定了条件,就去计算,没有其他的考虑。

问题2:如何看待PSP的内容的不断增加?

这个问题是我在书中看到了个人开发流程PSP历史版本对比时提到的问题,我发现随着PSP版本的升高,不仅增加了许多流程,每个阶段的内容也有所增高。

对于这个问题我有两方面的考虑。首先从PSP的不断细分和增加方面考虑。PSP是面向个人开发的一套流程,不像我们计算机网络中最广泛的TCP/IP协议,它是一个商业标准,它面向不同国家地区,这些国家和地区有着不同的标准。因此TCP/IP协议趋向于融合和概括,这样才能够不改变其他的原有标准的情况下,适应更多的网络。而PSP面向个人,个人的开发流程是很容易改变的,这不是什么硬性标准,如果想改,也不用付出什么代价,因此越具体,就越容易理解,越容易被使用。其次从发展的角度来讲,这并非是最终的趋势,这只是一段时间内的规律,如果有新思想汇入,开发流程也可能会减少一些。

这个问题是我在学习计算机网络课程时想到的。对于TCP/IP协议和PSP开发流程的趋势差异性,我是十分感兴趣的,因此往下考虑了一番。

问题3:学习知识时,如何去处理“知其然”与“知其所以然”的关系?

这个问题是在书中一个例子讲到的,辩证对一个技能的掌握和对技能原理的掌握。

“知其然”显然是指只知道表面的一些情况,会使用的水平;“知其所以然”就是更深层次的东西了,这种水平就达到了会制造。对于此问题,我认为应该把“知然”的对象划分。“知其所以然”是一个花费时间的过程。俗话说,“好钢要用在刀刃上”。时间不充裕的情况下,对于眼下只需要会用,但是具有某些让自己不舒服因素的东西,我们可以忽略那些因素,“知其然”就完事啦。对于眼下很需要,而且未来也很需要,那就要下定决心,花功夫去“知其所以然”。这样会使自己受益良多。那么如果时间充裕,建议多学点东西,“知其所以然”,不一定什么时候就用上了。

这个问题是我在赶ddl时候想到的。在本学期某门课中,需要使用latex写作。我之前配置好的vscode+latex的环境被我给删了,因此我有两个选择:重新配置或者使用tex live自身带的ide(不好用)。ddl只剩一个小时,我来不及做配置,因此捏着鼻子用原装ide写了,先交上作业再说,忽略让我不舒服的ui和编写过程。我联想到了这个问题。

问题4:敏捷流程是”走一步看一步“吗?

这个是我看知乎上一个大牛对敏捷开发流程的简单扼要概括。

我现在认为从大体上来看,这样理解是正确的。在我们小组作业中,我们只知道当前的任务,商量好就开始实现现在的计划的内容。所有成员,PM、测试、开发,都不知道下一步干啥,走一步看一步。首先“走一步”,完成这阶段的目标;随后PM就带领着小组头脑风暴,想接下来的阶段所要做的内容,也就是“看一步”。为了效率,敏捷开发不注重于布局,而注重于工作,编写、交付,编写、再交付,这就是敏捷的主旋律。冲着小目标一直写,当然获得了较高的效率。

这个问题的解答也是在做小组开发项目时想到的。我们做到了Beta阶段,开会的时候大家都不知道接下来干什么,于是商量一番,到现在的最终交付,我们又过了一个“走一步看一步”的过程。

问题5:创新者和成功者的区别?

这是在看到书中的创新迷思时提出的问题,该迷思说“创新者总是一马当先”。

现在我认同“创新者总是一马当先”这句话。之前不理解,可能是我引申了“一马当先”的含义。创新者,肯定是第一个做该项工作的人,因此他们是快人一步的。创新可以使得自己获得较大优势,所有人都鼓励创新。我也是这样认为。但是我还认为创新并非是全部。哪有那么多的创新去做?创新之后仅有创新可做?答案是否定的。成功者并非是创新者。像google搜索引擎,它并非是搜索引擎的发明者,但是得益于公司的管理与技术,它成为搜索引擎的龙头企业。同样,ipod也不是随身听的发明者,但是苹果公司的设计理念与对产品精益求精的态度,使得它脱颖而出,获得了巨大成功。

这个问题解答是我在接触苹果的一些产品后想到的。苹果公司为什么会成功,不仅仅是他们的创新,还有他们对创新的延续与维护。iphone4问世是一大创新,而后的6、7、8、x、11都是创新的延续,也收获了成功,这是品牌的力量,包括使用体验、设计理念、产品维护等等因素。

阶段知识点

需求

多从用户的角度进行需求分析,要讲究实用,花里胡哨没什么用处的要删掉。

设计

UI是一个重要的问题。

实现

接口要足够简单,要给予充分的说明,这样多人协作才容易对接。

测试

多方面测试,要考虑正常情况,更要兼顾异常情况。

发布

首先需要了解发布平台的规则,否则很难通过。

维护

做好充分记录,以免后期出现更离谱的情况。

理解和心得

在个人项目中,我们需要规划好我们要做什么,不然很容易会浪费时间,陷入无所事事的情况。

在结对项目中,对于问题的分歧,我们应该认真对待,要积极沟通,得到尽可能使两人都满意的答案,切忌伤和气。

在团队项目中,要做好接口规范,对接的时候会省好多力气;对于组内的同伴,要认真听取他们的讲解,这样对团队项目的理解才能够更透彻。

你可能感兴趣的:(提问回顾与个人总结)