1 软件生命周期
软件开发到使用,结束的过程。一般来说,包含三个时期,计划,开发和维护。每个时期可以划分为多个阶段。
1.1 需求分析:根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。
1.2 设计:根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。
1.3 编程: 将设计转换成计算机可读的形式。
1.4 测试:对设计、编程进行验证和用户需求确认的过程。
1.5 维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。
2 软件开发模式-瀑布模型
2.1 瀑布模型的优点:
效率高,好管理,产出质量稳定。
3.2 瀑布模型的缺点:
开发过程一般不能逆转,否则代价太大;
实际的项目开发很难严格按该模型进行;
客户往往很难清楚地给出所有的需求,而该模型却要求如此。
软件的实际情况必须要到项目开发的后期客户才能看到,这要求客户的支持。
4.3 瀑布模型的使用范围:
用户的需求非常清楚全面,且在开发过程中没有或很少变化;
开发人员对软件的应用领域很熟悉;
用户的使用环境非常稳定;
开发工作对用户参与的要求很低。
3 软件开发模式-原型模型
原型模型是先借用已有系统作为原型模型,通过“样品”不断改进,使得最后的产品就是用户所需要的。主要是通过向用户提供原型获取用户的反馈,使开发出的软件能够真正反映用户的需求。同时,原型模型采用逐步求精的方法完善原型,使得原型能够“快速”开发,避免了像瀑布模型一样在冗长的开发过程中难以对用户的反馈作出快速的响应。相对瀑布模型而言,原型模型更符合人们开发软件的习惯,是目前较流行的一种实用软件生存期模型
3.1 原型模型的优点:
开发人员和用户在“原型”上达成一致。这样一来,可以减少设计中的错误和开发中的风险,也减少了对用户培训的时间,而提高了系统的实用、正确性以及用户的满意程度。
缩短了开发周期,加快了工程进度。
降低成本。
3.2 原型模型的缺点:
当告诉用户,还必须重新生产该产品时,用户是很难接受的。这往往给工程继续开展带来不利因素。
开发者为了使一个原型快速运行起来,往往在实现过程中采用这种手段。不宜利用原型系统作为最终产品。采用原型模型开发系统,用户和开发者必须达成一致:原型被建造仅仅是用户用来定义需求,之后便部分或全部抛弃,最终的软件是要充分考虑了质量和可维护性等方面之后才被开发。
3.3 原型模型的适用场所:
原型模型适用于那些不能预先确切定义需求的软件系统的开发,更适用于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好的交流或者通信的情况下使用。
4 软件开发模式-增量迭代模型
增量模型适用于需求比较明确,架构比较稳定的软件开发,每次增量不影响已有的架构,在已有的架构下增加新的功能。迭代模型适用于需求不甚明确、难度比较大的软件开发。
在实际应用中,增量、迭代经常一起使用,如迭代时加入新的功能进行开发,这也是他们经常一起出现的原因。我们在开发自己的软件时,需要根据软件项目的实际情况,进行不同的增量、迭代组合,以充分利用资源,降低项目风险。