软件工程网络15个人阅读作业2-提出问题

一、提出问题

快速通读教材《构建之法》,并参照提问模板,提出5个问题。

如何提出有价值的问题?
请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:
在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
列出一些事例或资料,支持你的提问。
说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?
一个模板可以是这样:

我看了这一段文字 (引用文字),有这个问题(提出问题)。 我查了资料,有这些说法(引用说法),根据我的实践,我得到这些经验(描述自己的经验)。 但是我还是不太懂,我的困惑是(说明困惑)。

或者这样:

我反对作者的观点(提出作者的观点,自己的观点,以及理由)。

大学生应该能写出自己的思考, 而不是摘抄书本内容。

(提示:编程经验不多的同学,建议看16章 “创新”, 提出自己的问题。)

answer

提问一:第一章绪论 P27

“中国大陆高校大多设有与“计算机科学”相关的院系。除了学术水平排名前20的学校,其他学校的这些院系大部分老师做的都是偏工程方面的研究(所谓“横向项目”),大部分学生毕业后也投身于解决具体的工程问题,这跟软件学院、软件工程系的研究和培养方向非常雷同”

  • 我对其中的横向项目的概念不理解,对应的纵向项目指的又是什么呢。我查了资料,有这些说法:

横向项目和纵向项目的全称分别为横向科技项目和纵向科技项目。1、横向科技项目指企事业单位、兄弟单位委托的各类科技开发、科技服务、科学研究等方面的项目,以及政府部门非常规申报渠道下达的项目。2、纵向科技项目是指上级科技主管部门或机构批准立项的各类计划(规划)、基金项目。

  • 我明白了横向科技更注重实践应用;纵向科技更重视探索未知领域和研究前沿话题。这个问题的解决让我更加了解了计算机科学和软件工程的不同侧重点——即计算机科学较偏向理论教学(但大部分的学校的计算机科学老师做的都是偏实践应用,导致目前中国IT产业发展的现状为“计算机科学就等同于软件工程”),软件工程偏向实践应用。不知道是不是因为就业竞争压力大,中国IT产业中计算机科学也走向偏实践应用的这条路。我的问题是在当今时代,有必要去纠正计算机科学的发展方向(修正为重视理论)吗?

提问二:第二章个人技术和流程

创建单元测试函数的主要步骤是:1、设置数据 2、使用被测试类型的功能 3、比较实际结果和预期的结果......单元测试必须和产品代码一起保存和维护。

  • 单元测试的概念不是很懂,测试是模拟用户的使用来发现程序的不足之处,那单元的具体含义是什么呢?我通过查找资料,了解到了单元测试的含义:

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。

  • 在c++编写的程序中,单元测试指的是对某一类进行测试。课本中还提到单元测试必须和产品代码一起保存和维护,我的问题是那是不是意味着只要产品的代码改变时,单元测试才有必要进行呢?如果产品的代码未改变,单元测试就可以一直沿用以前的内容吗?

提问三:第四章两人合作 P91

如何结对编程1、......2、......3、驾驶员和领航员不断轮换角色,不要连续工作超过一小时,每工作一小时休息15分钟。领航员要控制时间。

  • 虽然说每个人每天的高效率工作时段不超过3-4个小时,但我觉得我们现阶段水平不高,针对软件的开发,往往一个小时不能编译出一个有粗略框架的代码,一个小时还是太短了。我觉得应该连续工作到有一定成果的时候再进行复审,当然如果时间过长如超过两个小时后就应该停止并休息片刻以提高效率,如果一个程序只写到一半就放在一边进行对他人复审,过一段时间回来看,有些逻辑关系会淡忘,打代码的效率就有所降低,与此同时结对编程的另一个伙伴也会看不懂写到一半的、不成型的代码,这对两者合作的软件开发的都是不利的。总的来说,我觉得结对编程中留给个人编程的时间需要看情况进行调整,当然分配两个人的工作量时,要注意两人实现工作所花的时间也要大致相同,在有一定成果的情况下可以同时对对方进行复审。

提问四:第七章MSF

微软在总结了自己产品团队的开发经验和教训,以及微软咨询服务部门的业务经验后,推出了MSF(Microsoft Solution Framework)。......MSF基本原则包括推动信息共享与沟通、为共同的远景而工作、充分授权和信任、各司其职、交付增量的价值、保持敏捷,预期和适应变化、投资质量、学习所有的经验、与顾客合作

  • MSF基本原则在理论上十分严谨,又是在实践中总结的经验。在我看来,这个MSF基本原则考虑十分周全,但也可能我的目光比较短浅,没有看出它的局限性。我的问题是MSF基本原则是不是适用于所有的软件开发呢?还是有它自己适用的范围呢?

提问五:第十六章IT行业的创新 P333

就像拼图一样,很多聪明人都模糊地看出了最终图像,都在一块一块地拼接,往往拼好最后一块的人得到了最大的荣誉。但是没有前人的积累,没有自身扎实的功力,就没有“最后一块”等着大家去拼。另一个推论是——不要一开始就想着找到并凭对所有的拼图块,以为能够打造一个巨大的创新。Peter Drucker说过:Those entrepreneurs who start out with the idea that they will make it big-and in a hurry-can be guaranteed failure.在“现代软件工程”课上,许多同学也提出了不少宏大的创新想法,但是到了课程结束时,最后什么也没做成,剩下的就是一个空的构想。

  • 我对其中另一个推论是——不要一开始就想着找到并凭对所有的拼图块,以为能够打造一个巨大的创新。有所疑问。

  • 当有创新的点子,却没有将其付诸行动,那这个人的打造一个巨大的创新的梦想终将幻灭。Peter Drucker说过那些刚开始创业的企业家们认为,他们会让公司变得更大、更大,这是可以保证失败的。但是如果一个人有一个创新想法,结合实际情况进行需求分析等将想法不断与现实进行磨合,做适时地调整,一步一个脚印将想法切分化为行动,当然是有可能打造出一个巨大的创新的。我认为有一个创新的想法并很有自信去完成不失为一个好的开始,况且对未来的憧憬也是有利于促进想法实现的。

posted @ 2018-03-18 11:27  卟噜卟噜  阅读(212)  评论(1)    收藏  举报