学习时间
2021-03-16
学习内容
软件过程概述
软件过程思想:软件生产的一组互相连贯的活动。
软件过程是一组引发软件产品生产的活动。
软件过程的4种基础活动
- 软件描述
客户和工程师定义所要成产的软件以及对其操作的一些约束。 - 软件开发
软件得以设计和编程实现。 - 软件有效性验证
软件经过检查,以保证他就是客户所需要的 - 软件进化
软件随不同的客户和变化的市场需求而进行修改。
软件过程的其他方面
- 产品,也就是软件过程的结果。
- 角色,反映了人在软件过程中的职责。
- 牵制和后置条件。
我们知道整个软件过程是复杂的,它可以分为计划驱动过程和敏捷过程。
软件过程模型
软件过程模型是软件过程的简化表示。每一个过程模型都是从一个特定的侧面表现软件过程。我们将对一下三个模型作为例子进行解读:
- 瀑布模型
瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 - 增量式开发
其中增量是指在软件开发过程中,先开发主要功能模块,再开发次要功能模块,逐步完善,最终开发出符合需求的软件产品。 - 面向复用的软件工程
将软件看成是由不同功能部分的“组件”所组成的有机体,每一个组件在设计编写时可以被设计成完成同类工作的通用工具,这样,如果完成各种工作的组件被建立起来以后,编写一特定软件的工作就变成了将各种不同组件组织连接起来的简单问题,这对于软件产品的最终质量和维护工作都有本质性的改变。
这三个模型相互不排斥,且经常结合使用。
瀑布模型
主要阶段直接映射基本的开发活动:
- 需求分析和定义:
通过咨询系统用户建立系统的服务、约束和目标,并对其详细定义形成系统描述。 - 系统和软件设计:
将总体分为硬件需求和软件需求。软件设计包括和描述一些基本的软件系统抽象以及之间的关系。 - 实现和单元测试:
将软件设计实现1为一组程序或者程序单元。 - 继承和系统测试:
集成单个的程序单元或一组程序,并对系统整体进行测试以确保其满足了软件的需求。 - 运行和维护:
在一般情况下,这是一个漫长的过程。系统被安装并且投入实际的使用中。维护和改正那些在早期各阶段没有被发现的问题。
净室软件工程
由IBM公司提出,在净室过程中每一个软件增量都要给出行时化描述,然后此描述经过变换得以实现。
该净化系统的目标是生产零缺陷软件,是的教父的系统具有高度的可靠性。
净室软件工程在百度百科中的解释:净室软件工程
增量式开发
思想就是先开发出一个初始的实现,再给用户并听取用户的使用意见和建议,通过对多个版本的不断修改知道产生一个充分的系统。
需求工程过程的四个主要阶段
- 可行性研究
- 需求导出和分析
- 需求描述
- 需求有效性验证
复用级别
按抽象程度的高低,可以划分为如下的复用级别:
- 代码的复用
包括目标代码和源代码的复用。其中目标代码的复用级别最低,历史也最久,当前大部分编程语言的运行支持系统都提供了连接(Link)、绑定(Binding)等功能来支持这种复用。源代码的复用级别略高于目标代码的复用。 - 设计的复用
设计结果比源程序的抽象级别更高,因此它的复用受实现环境的影响较少,从而使可复用构件被复用的机会更多,并且所需的修改更少。这种复用有三种途径,第一种途径是从现有系统的设计结果中提取一些可复用的设计构件,并把这些构件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计构件。 - 分析的复用
这是比设计结果更高级别的复用,可复用的分析构件是针对问题域的某些事物或某些问题的抽象程度更高的解法,受设计技术及实现条件的影响很少,所以可复用的机会更大。复用的途径也有三种,即从现有系统的分析结果中提取可复用构件用于新系统的分析;用一份完整的分析文档作输入产生针对不同软硬件平台和其它实现条件的多项设计;独立于具体应用,专门开发一些可复用的分析构件。 - 测试信息的复用
主要包括测试用例的复用和测试过程信息的复用。
声明:
- 《软件工程》(原书第9版)机械工业出版
- 《软件项目管理》(中文版第5版)机械工业出版
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!