软件工程读书笔记(2)——第二章 软件过程

第二章 软件过程

软件工程的目标是在规定的时间和预算内开发出高质量软件。

软件项目失败的主要原因几乎与技术和工具没有任何关系,更多的是由于缺少过程规范,只有建立规范的软件开发过程,并持续不断地加以改进,才能管理和控制软件产品的质量。

一.软件过程的概念

1.任务思维与过程思维

软件发展的前期阶段:强调软件开发结果,忽略软件开发过程。(类似于黑盒子)

Watts Humphery首先将过程管理的原则和思想引入软件开发过程中,将软件开发任务看做是一个可控的,可度量的和可改进的过程。

2.软件过程的定义

软件过程的“粘合”性质:软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动。

3.软件过程的基本活动

①问题提出

②软件需求规格:明确软件过程。(文档的重要性)

③软件设计

④软件实现

⑤软件确认:先分开测试各个组件,再集成测试。

⑥软件演化:是一个不断演化的过程。

4.软件过程的制品

软件需求:构想文档;需求模型;软件需求规格说明。

软件设计:软件系统结构文档;设计模型。

软件实现:源程序;目标代码;可执行构件。

软件测试:测试规格;测试用例;软件测试报告。

软件实施:相关的运行时文档;用户手册。

开发管理制品:①计划文档:工作分解结构;业务实例;发布规格说明;软件开发计划。

②运行文档:发布版本说明;状态评估;软件变更申请;实施文档;环境(环境包括系统的硬件和软件配置、软件开发工具以及相应的间接培训等)。

什么是脚本?

纯文本保存的文件;是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。

二.软件过程模型

软件过程模型描述软件过程的整体框架,它是软件过程的一种抽象表示。

1.瀑布模型(经典)

由Winston Royce在1970年提出。

它将软件过程划分为需求定义与分析、软件设计、软件实现、软件测试和运行维护等一系列基本活动,并且规定这些活动自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落,严格按照线性的方式进行。

适用于在开发的早期阶段软件需求被完整确定的情况,显然这种要求过于理想化。

2.快速原型模型(快速)

第一步是迅速构建一个可以运行的软件原型;第二步则在第一步的基础上开发客户满意的软件产品。

缺点:开发技术和工具往往不一定符合主流的发展,快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。

3.增量模型

增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。

第一个增量往往是实现基本需求的核心产品。

缺点:软件需具备开放式的体系结构;

软件过程的控制失去整体性。

4.螺旋模型(重视风险分析)

强调了其他模型所忽视的风险分析,特别适合于大型复杂的软件系统。

缺点:适用于内部的大规模软件开发;

只适用于大规模软件项目;

软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。

5.形式化方法模型(难掌握)

适用于那些对安全性、可靠性和保密性要求极高的软件系统开发,它采用形式化的数学方法将系统描述转换成可执行的程序。

缺点:难以掌握;

难以用形式化方法进行描述;

在成本和质量等方面并不占有优势。

6.基于组件的开发模型(软件复用)

提高开发效率和产品质量,降低开发风险和成本 ,能够快速交付所开发的软件。

三.案例:微软公司的软件开发过程

1.微软公司的开发管理原则

①以目标驱动的开发过程。

②具有外部可见的里程碑。

③基于多版本的产品发布。

④并行协作的小型化团队。

⑤经常性的同步和稳定。

2.微软公司的软件过程模型

微软公司的软件开发过程模型由规划、设计、开发、稳定和发布5个主要阶段组成,每个阶段都是由里程碑驱动的。

⑴规划阶段:项目团队必须对项目的前景有一个清晰的认识,明确最终要提供给客户的是什么样的产品。

⑵设计阶段:程序经理根据产品的远景目标,完成软件的功能或特性规格说明书,并确定产品开发的主要进度。

⑶开发阶段:开发任务划分为若干阶段,并设置多个内部里程碑,在每个里程碑都提交阶段性的工作成果。

⑷稳定阶段:在产品代码基本完成的情况下,测试人员根据产品规格说明书,对开发人员提交的软件产品进行功能测试和性能测试。

⑸发布阶段:再确认产品质量符合发布标准之后,程序经理将产品的最终发布版发送到软件生产工厂。

3.递进式的软件开发策略

递进式的软件开发模式具有易于管理和适应变化的显著特点:

①解决问题的及时性。

②不确定和变更因素的可控性。

③缩短产品上市周期。

时间: 2024-10-13 00:21:47

软件工程读书笔记(2)——第二章 软件过程的相关文章

【vue.js权威指南】读书笔记(第二章)

[第2章:数据绑定] 何为数据绑定?答曰:数据绑定就是将数据和视图相关联,当数据发生变化的时候,可以自动的来更新视图. 数据绑定的语法主要分为以下几个部分: 文本插值:文本插值可以说是最基本的形式了.在vue.js中,使用了Mustache的语法,类似于Angular中的{{}}双大括号的形式.代码如下 <span>Text:{{text}}</span> 当然,如果你只想渲染一次数据,而对以后的数据不再关心的话,你也可以使用下面的语法: <span>Text:{{*t

Javascript高级程序设计读书笔记(第二章)

第二章  在HTML中使用Javascript 2.1<script>元素 延迟脚本(defer = "defer")表明脚本在执行时不会影响页面的构造,脚本会被延迟到整个页面都解析完毕后再运行.相当于告诉浏览器立即下载,但延迟执行.HTML5规定要求脚本按照它们出现的先后顺序执行. 异步脚本(async)如果有多个脚本文件,执行顺序不确定,指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容. XHTML代码的规则比编写HTML严格得多,下面

《深入理解bootstrap》读书笔记:第二章 整体架构

一.  整体架构 1. CSS-12栅格系统 把网页宽度均分为12等分(保留15位精度)——这是bootstrap的核心功能. 2.基础布局组件 包括排版.按钮.表格.布局.表单等等. 3.jQuery bootstrap插件的基础 4.响应式设计 兼容多个终端.这是bootstrap的终极理念. 5.css插件 提供丰富的样式. 6.js插件 二. 栅格系统 1.基本实现过程 定义容器的大小——跳转边距——媒询 有以下要求: (1)一行(row)数据必须包含在.container中. .con

深入理解计算机系统读书笔记之第二章信息的表示和处理

这一章读完,嗯,感觉怎么说呢? 就是读完了而已,没有想第一章那样,有具体的一些收获什么的.可能是没有很认真的阅读.读的很匆忙,有的内容很晦涩难懂............ 不管怎样还是在写一写自己的收获吧 这一章讲的是信息的表示和处理, 信息在系统中是怎样表示的呢?就是以字节来进行存储.信息就是位+上下文(第一章里面讲的) 具体的信息是怎样表示的? 带符号整数,不带符号整数,浮点数,等等. 1位运算 移位,向右移位 x>>k 分为两种形式 (1)逻辑上,向右移位就是在左端添加k个零[an-1,a

Android深度探索(卷1)HAL与驱动开发--读书笔记(第二章)

搭建Android底层开发环境的步骤 l  安装JDK: 1.下载JDK,解压,打开profile设置PATH环境变量 2.#gedit  /etc/profile Export PATH= .:/developer/jdk6/bin:$PATH 3.#source /etc/profile # . /etc/profile 注:可通过echo $PATH查看环境变量的值 l  搭建Android应用程序开发环境 安装Android SDK 首先下载好SDK,然后将这个压缩包文件复制到Linux

谁说菜鸟不会数据分析--读书笔记之第二章

这张主要说的是Excel的基本操作,以及问卷的录入. Excel的操作很基本,新记住了几个快捷键. 其他最大的收获,就在问卷的录入了.

Java编程思想读书笔记_第二章

java对于将一个较大作用域的变量"隐藏"的场景会有保护:编译告警.比如: 1 int x = 5; 2 { 3 int x = 6; 4 } 但是对于类中方法的局部变量和类成员变量确是可以重名的,比如 1 class Test { 2 int x = 4; 3 String s = "hello"; 4 5 void show() { 6 int x = 5; 7 System.out.println(this.x); 8 System.out.println(x

电子结构引论读书笔记:第二章-多电子波函数和算符

更新:3 MAY 2016 多电子哈密顿算符的一般写法: \(\mathscr{H}=-\sum\limits_{i=1}^{N}\dfrac{1}{2}\nabla_i^2-\sum\limits_{A=1}^{M}\dfrac{1}{2M_A}\nabla_A^2-\sum\limits_{i=1}^{N}\sum\limits_{A=1}^{M}\dfrac{Z_A}{r_{iA}}+\sum\limits_{i=1}^{N}\sum\limits_{j>i}^{N}\dfrac{1}{r

SQL Server2012 T-SQL基础教程--读书笔记(5-7章)

SQL Server2012 T-SQL基础教程--读书笔记(5-7章) SqlServer T-SQL 示例数据库:点我 Chapter 05 表表达式 5.1 派生表 5.1.1 分配列别名 5.1.2 使用参数 5.1.3 嵌套 5.1.4 多个引用 5.2 公用表表达式 5.2.1 分别列别名 5.2.2 使用参数 5.2.3 定义多个CTE 5.2.4 CTE的多次引用 5.2.5 递归CTE 5.3 视图 5.3.1 视图和ORDER BY 子句 5.3.2 视图选项 5.4 内嵌表