软件工程学之软件过程
目录
1.概述
2.软件工程再定义
3.软件工程与软件过程
4.软件过程模型
5.各类软件过程模型对比,及使用情况
一、概述
软件过程-我很喜欢的解释就是软件从最初想法到使用灭亡的一个过程。那么很自然人们就会想到,软件过程是就是软件工程呢?答案是:不是,完全不是。下面就是笔者讲述软件过程及软件工程的一些理论。
二、软件工程的再定义
1、为什么使用软件工程学来开发软件的再定义:使用软件工程来开发软件的一个根源是什么呢?是为了提高软件产品的质量,因为要求质量的保证所以采用工程学方法来开发软件。
2.软件工程再定义:在《使用软件工程学来开发软件》一文中,曾经定义过软件工程是:使用工程学来开发软件,工程学向来包括一个过程,一组方法和一系列的工具,我们称之为软件工程。现在我们仍然是这个概念,那么到底软件工程学怎么去组织产品开发的呢?
3、软件工程是一种层次化的技术:过程是软件工程的根基,它定义一组关键的过程区域。方法,定义“如何做”,它贯穿了过程中每一个步骤,提供解决方案。工具,是用于是支持过程和方法自动和半自动化的工作,它同样贯穿过程中每一个步骤。
4.软件工程的一般视图
(1)工程是对技术(或社会)实体的分析、设计、建造、验证和管理。
(2)工程学是如何创建实体的?
<1>要解决的问题是什么?
<2>要用于解决该问题的实体具有什么特点?
<3>如何实现该实体(解决方案)?
<4>如何建造该实体?
<5>采用什么方法去发现该实体设计和建造过程中产生的错误?
(3)软件工程的一般视图:分为三个阶段,<1>定义阶段:解决“做什么”?<2>开发阶段:解决”如何做”?<3>维护阶段:解决“改变”,一般包括“纠错”,“适应”,“修改”,“增强”四种?
(4)其它的视图,下面是补充的视图,也应该附加到软件工程:
·软件项目追踪和控制。
·正式的技术复审。
·软件质量保证。
·软件配置管理。
·文档的准备和产生。
·可复用管理。
·测试。
·风险管理
5.软件工程学理论图示:
三.软件工程与软件过程
通过上面的说明,我们可以完全清楚软件过程只是软件工程中的一个层级,也是软件工程中重要的一层级,是软件工程的根基.软件工程与软件过程是包括与被包括的关系.
四.软件过程模型
1.为了解决产业环境中的实际问题,必须综合出一个开发策略,该策略能够覆盖过程、方法和工具三个层次和(二2(3)所述的)软件开发的一般阶段。这个策略常常被称为过程模型或软件工程范型。下面讨论各种软件范型,每种范型都有各自的优点和缺点,也有各自己的使用场合。
2.所有软件开发都可看成是一个问题循环解决过程,其中包含四个截然不同的阶段:状态描述,问题定义,技术开发和方案综述。状态描述“表示了事物的当前状态”;问题定义标识了要解决的特定问题;技术开发通过应用某些技术来解决问题;方案综述提交结果(如文档、程序、数据、新的商业功能、新产品)给那些从一开始就需要方案的人。[注意:这四个阶段可以贯穿过程中每一个开发的阶段]
3.各种模型的描述
(1)线性顺序模型:也称为传统生命周期(或瀑布模型),它定义软件开发如流水线一样,它包括如下阶段:分析、设计、编码、测试、维护。
<1>特点:
<2>优点:
<3>缺点:
<4>实用环境:
<2>原型模型:
<1>特点:
<2>优点:
<3>缺点:
<4>实用环境:
<3>RAD模型:
<1>特点:
<2>优点:
<3>缺点:
<4>实用环境:
<4>演化软件过程模型:
<1>特点:
<2>优点:
<3>缺点:
<4>实用环境:
<5>形式化方法模型:
<1>特点:
<2>优点:
<3>缺点:
<4>实用环境:
五.各类软件过程模型对比,及使用情况
上一篇:《使用软件工程学开发软件(软件工程实践之一)》