zoukankan      html  css  js  c++  java
  • 软件工程网络15个人阅读作业2--提出问题(201521123027 陈龙)

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

    提出问题

    快速通读教材《构建之法》,并参照提问模板,提出5个问题。
    如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:

    在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
    列出一些事例或资料,支持你的提问。
    说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?

    1.什么是好的软件设计思想?什么是好的软件工程思想?
    P49页初级软件工程师如何成长中提到初级软件工程师要对通用的软件设计思想和软件工程思想要有一定的了解,但是作者并没有明确的说明这两个名词的概念,只例举了两个工程师的做法对比,感觉很空泛,很难让人轻易理解。随后在查阅了相关的资料,感觉软件设计思想包含在软件工程思想里,这二者的目标就是提高软件的质量和生产率,这就需要工程师在大量的实践后慢慢总结属于自己的思想,并且不能全然不变,需要通过了解顾客对软件需求的变化而改变。可能我的理解有错误,希望可以指出。

    2.什么是敏捷流程?怎么去理解“敏捷”二字?
    书中P114页提到:

    ”敏捷流程“是一系列价值观和方法论的集合。
    

    P125提到:

    敏捷是一股思潮,或者是一种价值观,它涵盖了好几种软件开发的方法论,这些方法论又是建立在许多行之有效的最佳实践方法之上的。
    

    既然敏捷建立在实践方法上,有涵盖了多种方法论,这就要求个人或者团队对这些方法论具有一定的认识,以及需要大量的实践才可以做到敏捷。那么,对于我们这些实践尽力不足没有对这些方法论毫不知情的学生来说,该如何做到敏捷呢?难道就看看前人的经历,总结他们的经验就可以了吗?

    3.迷思之四:创新者都是一马当先
    作者在这一小节里例举了多个领域中的先行者和现在的领导者,我发现在这里面有的公司生产的软件或者其他的东西和先行者的东西在功能等方面都有很多相似之处,甚至只是在此之上增添了一些新的功能或者商业模式等等,这难道就是创新吗?所以我百度了一下创新的概念:

    创新是指以现有的思维模式提出有别于常规或常人思路的见解为导向,利用现有的知识和物质,在特定的环境中,本着理想化需要或为满足社会需求,而改进或创造新的事物、方法、元素、路径、环境,并能获得一定有益效果的行为。
    

    在上述概念里,“改进”两个字尤为关键,创新不一定是创造出一种人们都没有见过的事物、方法,也可以是在原有基础上改进,成为更适合用户的东西。

    4.结对编程
    在书中P85页,作者提到结对编程的好处有一条是:

    在开发层面,结对编程能提供更好的设计质量和代码质量,两人合作解决问题的能力更强。两人合作,还有互相激励的作用,工程师看到别人的思路和技能,达到实时的讲解,受到激励,从而努力提高自己的水平,提出更好的创意。
    

    对于上述观点,我也挺赞同的。但是我想既然两个人合作可以达到这样的效果,为什么不能使用一个团队(多于两人)去开发一个项目去取代两个人开发一个项目呢?这样是不是会有更好的效果?而且效率应该也会增加,同时减少个人的工作时间。那为什么现在还在鼓励结对编程?

    5.需求分析
    在第八章需求分析中功能的定位和优先级提出将团队的资源合理分配到四个象限中,也画出了用户满意度和投资力度的关系图,这里提到了一个名词:卫生属性。虽然作者给出了蟹粉小笼包店和词典APP的例子来说明卫生属性,但是我还是对这个名词感到疑惑。什么叫做卫生属性?

  • 相关阅读:
    世界编程大赛第一名编写的程序3D世界
    bool与BOOL
    防浪涌电路
    用户至上,体验第一
    VC菜菜鸟创建多线程任务HelloWorld
    Google,a good dog
    算法学习之路
    巧用VC工程下的rc文件
    堆与栈
    关于信息量的压缩
  • 原文地址:https://www.cnblogs.com/DevilRay/p/8594801.html
Copyright © 2011-2022 走看看