十、软件工程
软件工程是指合理利用工程方法和原则写出能在真实机器上工作的可靠软件的过程。
10.1 软件生命周期
软件生命周期是软件工程中的基础概念,软件和其他产品一样,周期性地重复着一些阶段。
软件开发完成之后,通常需要使用一段时间才会修改。修改可能是由于软件中的bug、设计规则或公司本身发生变化导致的,软件在过时之前会一直重复使用和修改这一回路。当软件的效率低下或是用户需求发生了重大变化后,软件就会由于过时而失去它的有效性,软件地生命周期就到此停止。
10.2 开发过程模型
在软件的生命周期中,开发过程分为四个阶段:分析、设计、实现和测试,开发过程有两个常见模型:瀑布模型和增量模型。
10.2.1 瀑布模型
瀑布模型是指开发过程只朝一个方向进行,也就是说前一个阶段没有完成,后一个阶段就不能开始。
瀑布模型的优点之一是每一个阶段开始前,它前面的所有阶段都已经完成。例如,在实现阶段开始前,分析和设计阶段就已经完成,所以程序员在实现阶段清楚的知道他们要实现一些什么样的功能等。瀑布模型的缺点就是难以定位问题,当软件出现错误时,需要对整个过程进行检查。
10.2.2 增量模型
在增量模型中,开发者首先完成一个软件的简化版本,这个版本中不包括具体的细节。然后在第二个版本中向软件中加入更多细节,完成测试后继续开发第三个版本,知道软件的所有功能被实现。在这种模型中,如果在某一个版本的测试中出现错误,可以清楚的知道是这个版本中新加入的功能出现问题。
10.3 分析阶段
在分析阶段生成