软件过程管理-小生之见-浅析

       

目录

1.惯例过程模型:

2.面向对象模型:

3.敏捷过程模型:

1、瀑布模型,

2、原型开发模型,

3、螺旋模型,

4、XP(极限编程)模型,

5、RUP(统一软件开发过程),


       小二在实验室内也跟着老师写过一些软件系统,不过都没有按照具体的软件过程去实施过,但是在实验室内开发软件的流程,却能看出有一些类似于原型模型、瀑布模型等的过程管理模式。如在确定要开发一款软件系统之时,老师会召集我们和客户见一面,去听述客户的需求,如需要一个具体实现什么功能的软件系统,一些重要的页面内需要实现哪些功能。客户没有给我们说很多具体的功能,因为他们也不知道自己最终需要的是一个具有哪些功能的软件系统。只能给我们一个大概方向,让我们开发出一个version1.0,然后客户在根据我们的软件给出一些建议或者是重新修改。我经历了一个这样的软件开发模式,只觉得很费时费力。因为在最初软件需求没有定义好,在工程的最后阶段,客户需要更改需求,我们就需要花费更多的精力去修改,完善。类似于原型模式开发时,一遍一遍的从头开始完善软件系统。又类似于瀑布模型中的从需求分析、设计、编码、测试、支持等方面去完善系统。

想要找一个适合我自己的软件过程,就需要从有那些软件过程出发。

过程模型分为三种,如下:

1.惯例过程模型:

(1) 瀑布模型。

(2) 增量过程模型: 包括增量模型。

(3) 演化过程模型: 包括原型开发模型、螺旋模型、协同开发模型。

2.面向对象模型:

(1)喷泉模型。

(2)可重用部件组装模型。

3.敏捷过程模型:

(1) XP模型(极限编程模型)。

(2) 自适应软件开发。

(3) 动态系统开发。

(4) 特征驱动开发。

(5) 敏捷建模。

 

这些都在书上写到过的软件过程模型,但是根据我现在的知识储备而言,有很多是不适合现在的我的,如特征驱动开发,自适应软件开发,可重用部件组装模型等。现在我先介绍几个惯用过程模型。

我的理解是:

1、瀑布模型,

       依据软件开发过程的顺序性,系统化。从需求分析、设计、编码、测试、支持等去实现系统的开发,优点就是通过一个模板去开发系统,会减少一次开发中的问题数量。当然缺点也是明显的,必须按照严格的顺序去执行,即开发周期会变长,并且在需求二义性的时候,不利于后期对系统的维护。

2、原型开发模型,

       开发者和客户在一起定义软件的总体目标,标识已知的需求并且规划出需要进一步定义的地方。然后是“快速设计”,集中于软件中那些对客户可见的部分的表示,这就导致了原型的创建,并由客户评估并进一步精化待开发软件的需求。原型开发过程是客户非常喜欢的,因为客户并不需要具体的去指出自己的需求是什么,没有指定自己具体的需要的软件,而是指定了一个大致的目标,利于客户最后在修改需求。但是缺点也是致命的,有可能会造成软件质量不达标,需要修改很多的地方。

3、螺旋模型,

       这种方式提出了强调客户交流的一个框架活动。该活动的目标是从客户处诱导项目需求。在理想情况下,开发者简单地询问客户需要什么,而客户提供足够的细节进行下去。但是理想总归理想,并不是每次的开发都能够顺风顺水,所以这种模式并不适合与各种开发场景。

4、XP(极限编程)模型,

       这是一个针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。类似于目前很火的微服务,是一种轻量级的软件开发体系,他的重点在于开发某一个部分,不强调文档的重要性,当多个部分完成组成一个整体的时候,就能够完成一个软件系统的开发。轻量级中的“量”的轻重是指用于软件过程管理和控制的、除程序量以外的文档量的多少。极限编程强调我们将任务/系统细分为可以在较短周期解决的一个个子任务/模块,并且强调测试、代码质量和及早发现问题。极限编程是需要一个完整的团队才能够正常开发的。

5、RUP(统一软件开发过程),

       描述了如何有效地利用商业的可靠的方法开发和部署软件,是一种重量级过程。适合开发大型的软件系统。软件开发由用例驱动,软件开发迭代循环,软件开发以架构为核心,这是RUP过程的三个特点。RUP定义为横轴的时间组织,及迭代次数的循环。纵轴的内容组织,及建模,需求,分析与设计,实现,测试,环境等等的步骤。RUP的迭代模型与瀑布模型类似,但是却又比瀑布模型有些优点,如降低了在一个增量上的开支风险,也加快了整个开发工作的进度。目前来看,RUP是一种比较先进的软件开发的过程模型。

       就先介绍这几个软件过程模式。对于目前的我而言,我觉的更适合我的是原型开发模式,虽然说原型开发模式有着不可磨灭的缺点,但是也不可否认的是这种过程管理模式是现在最适合我们的,我们需要在尽可能短的时间的去开发出一个版本,然后再进行版本的更迭,修改,完善。但是以后,进入到一个公司内时,我们需要的一个团队的协同努力,需要使用更为先进的,错误比较少的过程管理模式。如极限编程模式,统一软件开发过程模式。

你可能感兴趣的:(计算机基础)