《软件工程 ——理论、方法与实践》知识概括第二章 软件过程

第2章 软件过程

软件项目的失败更多是由于缺少过程规范。只有建立规范的软件开发过程,并持续不断的加以改进,才能管理和控制软件产品的质量。

一、软件过程的概念

在软件发展的前期阶段,人们强调软件开发的结果而忽略软件开发的过程,即任务思维的模式。这种模式下,用户交互只发生在确定需求知识和产品发布之后,不符合实际。

Watts Humphrey 认为“为了解决软件的问题,首要的步骤是将整个软件开发任务看做是一个可控的、可度量的和可改进的过程”。即过程思维的模式。整个软件开发过程被划分成若干可管理的开发阶段,让用户的声音和过程的声音吻合。

软件过程定义:软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动。

软件过程的基本活动:问题提出、软件需求规格说明、软件设计、软件实现、软件确认和软件演化等活动。

软件过程的制品涉及软件需求、软件设计、软件实现、软件测试和软件实施等活动产生的结果。具体如下:

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

软件设计:软件体系结构文档、设计模型;

软件实现:源代码、目标代码、可执行构件;

软件测试:测试规程、测试用例、软件测试报告;

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

开发管理制品计划文档:工作分解结构、业务案例、发布规格说明、软件开发计划;运行文档:发布版本说明、状态评估、软件变更申请、实施文档、环境。

二、软件过程模型

瀑布模型:将软件过程划分为需求定义与分析、软件设计、软件实现、软件测试和运行维护等一系列基本活动,并且规定这些活动自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。适用于在开发的早期阶段软件需求被完整确定的情况。

快速原型模型:第一步是迅速构建一个可以运行的软件原型,实现客户和未来的用户与系统的交互,有用户和客户对该原型进行评价,并进一步细化待开发软件的需求。经过逐步调整原型使其满足客户的需求之后。开发人员可以将客户的真正需求确定下来;第二步则在第一步的基础上开发客户满意的软件产品。

增量模型:软件被作为一系列的增量构件来设计、实现、集成和测试。在各个阶段交付满足客户需求的一个子集的可运行产品。第一个增量往往是实现基本需求的核心产品,核心产品交付用户使用后,经过评价形成下一个增量的开发计划,其中包括对核心产品的修改和一些新功能的发布。这个过程在每个增量发布后不断重复,知道产生最终的完善产品。

螺旋模型:将软件过程划分为若干个开发回线,每一个回线表示开发过程的一个阶段,每一个回线又被分为4个步骤,即首先确定该阶段的目标,完成这些目标的选择方案及其约束条件;其次从风险角度分析方案的开发策略,努力排除各种潜在的风险,在需求不合适的情况下可能需要原型系统;如果风险不能排除,该方案可能立即终止,否则继续启动下一步的软件开发和验证工作;最后,评价该阶段的结果,并规定下一个开发阶段。它将瀑布模型和快速原型模型结合起来,强调风险分析,特别适合于大型复杂的软件系统。

形式化方法模型:首先将软件需求描述提炼成采用数学符号表示的形式化描述,然后经过一系列的形式化转换将形式化描述自动转换成可执行程序,最后将整个系统集成起来测试。适合于那些对安全性、可靠性和保密性要求极高的软件系统开发。

基于组件的开发模型:在确定需求描述的基础上,开发人员首先寻找满足要求的现成组件,并对所得到的组件信息进行分析;在组件分析的基础上,开发人员可能适当修改需求以适应所选择的组件,也可能修改现有的组件或继续寻找新的组件;在组件选择完成之后,开发人员开始设计或者选用已有的体系结构框架,复用所选择的组件,必要时也可能设计开发一些新的组件;最后,将所有的组件继承在一起,并完成系统测试。

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

微软公司的开发管理原则:以目标驱动的开发过程;具有外部可见的里程碑;基于多版本的产品发布;并行协作的小型化团队;经常性的同步和稳定。

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

微软公司的软件开发过程采用递进式的开发策略,即产品的功能并不是在一次开发过程中全部完成,而是在不断推出的多个版本中逐渐形成和完善。

时间: 2024-10-29 19:06:43

《软件工程 ——理论、方法与实践》知识概括第二章 软件过程的相关文章

阅读《软件工程—理论方法与实践》第五章心得体会

阅读第五章所了解到的基本知识,形式化方法是指将离散数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动.主要目的是保证软件的正确性.已建立的形式化方法可分为操作类和描述类.操作类方法基于状态和转移;描述类基于数学公理和概念.形式证明与验证技术主要包括模型检测(适用于有穷状态系统,完全自动化并且验证速度快)和定理证明(采用逻辑公式来表示系统规约及其性质,分为自动和交互式两种).一阶线性时态逻辑是一阶谓词逻辑的扩展.对汉诺塔操作规划问题有了更深一步的理解.计算树逻辑是

阅读《软件工程—理论方法与实践》第三章心得体会

通过对第三章的阅读,对以下概念有了了解:软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而对成本.人员.进度.质量.风险等进行分析和管理的活动.其有利于将软件开发人员的个人开发能力转化成企业的开发能力,并使企业的软件开发能力不断提高和成熟.软件项目的特征有软件产品的不可见性.项目的高度不确定性.软件过程的多变化性,降低复杂性和控制变化成为软件项目管理面临的关键问题.软件项目管理集中于人员.产品.过程和项目.软件项目的生命周期包括项目启动(确定项目的目标和范围).项目规划(建立

阅读《软件工程—理论方法与实践》第六章心得体会

面向对象技术是软件工程领域中的重要技术,不仅仅是一种程序设计方法,更是一种对真实世界的抽思维方式.面向对象的软件工程方法涉及到从面向对象分析.面向对象设计.面向对象编程.面向对象测试到面向对象软件维护的全过程.面向对象的基本概念包括对象.类.封装.继承.消息.关联.聚合.多态性.属性和服务是构成对象的两个基本要素.使用共同的建模语言进行软件建模在软件开发过程中很必要(①以一种容易理解的形式为后期使用信息提供了便利的方法,②便于交流).UML富有表达力,描述开发所需要的各种视图,以此为基础组建系统

阅读《软件工程—理论方法与实践》第七章心得体会

面向对象的分析模型有功能模型(用例.场景).分析对象模型(类图.对象图).动态模型(状态图.顺序图).识别分析类提供了发现过界类.控制类和实体类的试探途径,但运用这种方法依然需要开发人员的丰富经验.边界类来自参与者的信息,这些信息可以被实体类和控制类使用.控制类与用例存在着密切的关系,它在用例开始执行时创建,在用例结束时取消.实体类通常是用例中的参与对象,对应着现实世界中的”事物”.面向对象分析要进行交互行为,并进行建立分析类图,最后评审分析模型.

阅读《软件工程—理论方法与实践》第四章心得体会

阅读第四章所得体会.软件需求是决定软件开发是否成功的一个关键因素.开发人员应当学会正确地理解软件需求,实行开非完善但是高质量的需求开发和管理,最大限度地降低软件需求风险.软件需求可以划分为业务需求(定义了项目的远景和范围).用户需求(使用该系统需要完成的任务).系统需求.功能需求(说明了需要开发实现的功能)和非功能需求(功能需求的补充)等型.需求工程是应用已证实有效的原理和方法,并通过合适的工具和符号,系统地描述出待开发系统及其行为特征和相关约束,其过程包括需求获取.需求分析.需求规格说明.需求

阅读《软件工程—理论方法与实践》第十一章心得体会

软件维护是必然的,软件的不断修改会导致软件的退化,开发效率与投入资源无关.软件维护指软件运行或维护阶段对软件产品所进行的修改.软件维护分为改正性维护.适应性维护.完善性维护.软件维护受开发过程影响大.困难多.成本高.软件维护过程包括维护申请.维护分类.影响分析.版本规划.变更实施.软件发布等步骤.软件再工程是将现有系统重新构造成为新的形式.软件再工程包括对象选择.反向工程(设计恢负).文档重构.代码重构(常见).数据重构和正向工程等活动.

软件工程理论方法与实践

第一章. 概述  软件是人类思维的杰作,并成为人类现代生活的催化剂.今天软件遍布整个世界,在生物工程.现代通信.宇宙探索.商务处理.工业控制等方面发挥出巨大的威力,并推动了商业.科学和工程领域的跨越式发展,对整个社会的经济和文化产生了深远的影响.软件工程师为了解决开发成本效益和软件质量的问题而产生的.软件是计算机程序.规程以及运行计算机系统可能需要的相关文档和数据.软件分为通用软件和定制软件.软件的特性分别是软件是复杂的.软件是不可见的.软件是不断变化的.大多数软件是定制的而不是通过已有构件组装

软件工程——理论方法与实践(段落概述第一章至第十一章)

第一章软件软件是计算机程序,规程及运行计算机系统可能需要的文档和数据.软件分为通用软件和定制软件.软件的特性:1.复杂性2.不可见性3.不断变化4.大多数软件仍然是定制的,而不是通过已有的构件组装而成.软件于二十世纪50~60年代,70年代,80年代,90年代至今进行发展.在此过程中遇到一些危机:1.软件的开发成本和进度难以估计,延迟交付甚至取消项目的现象屡见不鲜.2.软件存在着错误多,性能低,不可靠,不安全等质量问题.3.软件的成本在计算机系统的整个成本中所占的比例越来越大.4.软件的维护极其

软件工程理论方法与实践第二章读后感

第二章读后感 为解决软件开发的问题,首先是将整个软件开发任务看做是一个可比较的刻度量的可改造,而软件过程是软件工程人员为了获得软件产品而在软件工具的支持下实施的一系列软件工程活动,主要包括问题提出,软件需求规格说明,软件设计等等.软件过程模型主要分为瀑布模型,快速原型模型,增量模型,螺旋模型,形式化方法模型,基于组件的开发模型.而微软公司的软件过程模型由规划,设计,开发,稳定和发布五个主要阶段组成,采取低近视的软件开发策略,具体表现在解决问题的及时行.不确定和变更因素的可控性,缩短按产品的上市周