下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

软件开发——一个学习的过程

作者:课课家教育     来源: 玉龙点击数:1532发布时间: 2020-09-13 09:21:05

标签: 软件开发开发学习学习过程过程介绍

  我们的目的是讲述主要的方法,并说明它们的长处和弱点。这将会使潜在的用户获得更多有关它们的能力与局限性的知识,以便他们可以为自己的目标选择适当的方法,并快速有效地加以使用。

  测试驱动开发(TDD)是一个貌似简单的想法:在写代码之前先为代码写测试。这里用“貌似简单”,是因为它把测试所扮演的角色转移到了开发过程中,对业界关于测试目的的假定提出了挑战。测试不再是为用户消除缺陷,而是帮助团队理解用户需要的特征,并可靠地、可预测地交付这些特征。如果遵循了它的结论,TDD将彻底改变软件开发的方式。根据我们的经验,它将极大地改变我们建造的系统的品质,特别是系统的可靠性和响应新需求时的灵活性。

  测试驱动开发广泛地应用于“敏捷”软件开发方法之中。它是极限编程(XP)[Beck99]的核心实践,是CrystalClear[Cockburn04]的推荐实践,经常在Scrum项目[Schwaber01]中使用。我们在所有的敏捷项目中使用TDD,并在非敏捷项目中也见到有人使用TDD。我们甚至发现它有助于在纯研究项目中取得进展,这种项目的动机是探索思想而不是交付特征。

  第1章测试驱动开发的要点

  人必须在做中学;因为即使你认为自己知道,你也不能肯定,除非你去尝试。

  ——Sophocles

  1.1软件开发是一个学习过程

  几乎所有的软件项目都是在尝试一些从来没有人做过的事情(或者至少是该组织机构中以前没有人做过)。这些事可能指的是涉及的人员、应用的领域、使用的技术,或(最有可能的是)它们的组合。尽管我们在这个学科做了很多努力,但几乎所有的项目都有让人惊讶的部分。有趣的项目(那些有可能提供最大好处的项目)也常包含许多惊讶。

  开发者通常并不完全理解他们正在使用的技术。他们必须在完成项目的同时学习组件的工作方式。即使他们对技术有很好的理解,新的应用也会把他们赶到不熟悉的角落。系统包含了许多重要的组件(这意味着专业程序员的主要工作是面对这些组件),它会变得极为复杂,没有一个人可以了解所有的可能性。

  对于客户和最终用户来说,体验就更糟了。创建系统的过程迫使他们比以前更仔细地观察他们的组织机构。他们必须常常商讨和编写一些过程,而这些过程到目前为止都是基于惯例和经验的。

  在项目推进过程中,软件项目中的每一个人都必须学习。要让项目取得成功,所有人必须一起工作,理解他们需要实现什么,并在此过程中确定并解决一些误解。他们都知道会有变化,只是不知道什么会变化。随着经验的增长,他们需要一个过程来帮助应对不确定性——预期那些无法预期的变化。

赞(21)
踩(6)
分享到:
华为认证网络工程师 HCIE直播课视频教程