软件工程笔记_第1页
软件工程笔记_第2页
软件工程笔记_第3页
软件工程笔记_第4页
软件工程笔记_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(建筑工程管理)软件工程

笔记整理

2020年4月

多年的企业咨询顾问经验,经过实战险证可以落地执行的卓越管理方案,值得您下载拥有!

软件工程概论

1、软件危机

11软件工程的目的:倡导以工程的原理、原则和方法进行软件开发,以解决当时出现的软

件危机。

21软件危机:指在计算机软件开发和维护过程中所遇到的一系列问题。

A、如何开发软件以满足对软件日益增长的需求。

B、如何维护数量不断增长的已有软件。

3I软件危机的主要表现形式

A、软件开发成本高,研制进度无法准确估计,用户不满意。

B、软件产品的可靠性得不到保证。

C、软件产品难以维护。

D、软件发展跟不上硬件的发展和用户的要求,硬件成本逐年下降,软件成本越来越昂贵。

2、软件工程概念

11软件:计算机系统中的程序及其文档。程序是计算任务的处理对象和处理规则的描述;

文档是为了便于理解程序所需的阐明性资料。细言之,软件有三层含义:

A、个体含义:即指计算机系统中的程序及其文档。

B、整体含义:即指在特定计算机系统中所有上述个体含义下的软件的总称。

C、学科含义:即指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、方法、

技术所构成的学科。21工程:将理论和所学的知识应用于实践的科学。

3X软件工程:应用计算机科学、数学及管理科学等原理,开发软件的工程。它借鉴传统工

程的原则、方法,以提高质量,降低成本为目的。其中,计算机科学、数学用于构造模型与

算法,工程科学用于制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、资源、

质量、成本等管理。

3、软件工程框架(参见附图软件工程框架示意图)

1X软件工程目标:生产具有正确性、可用性和开销合宜的产品。

A、正确性:是指软件产品达到预期功能的程度。

B、可用性:是指软件基本结构、实现以及文档为用户可用的程度。

C、开销合宜:是指软件开发、运行的整个开销满足用户要求的程度。

21软件开发活动:生产一个最终满足需求且达到工程目标的软件产品所需要的活动。软件

开发的基本活动包括:需求、设计、实现、确认、和支持。

A、需求:就是定义问题。

B、设计:在需求的基础上,给出被建系统的软件设计方案。

C、实现:在软件设计的基础上,编码被建系统软件体系结构中的每一模块或构件。

D、确认:需求复审、设计复审及程序测试。

E、支持:为系统的运行提供纠错性维护和完善性维护。

3\软件工程原则:围绕软件开发,提出了以下基本原则。

A、选取适宜的开发范型:在系统设计中,经常需要权衡软件需求、硬件需求以及其它因素

之间的相互制约和影响,适应需求的易变性。选用适宜的开发范型,以保证软件开发的可持

续性,并使最终的软件产品满足客户的要求。

B、采用好的设计方法:在软件设计中,通常需要考虑软件的模块化、信息隐蔽、局部化、

一致性以及适应性等问题。采用合适的设计方法,支持这些问题的解决和实现。

C、提供高质量的工程支持:如其它工程一样,需要提供高质量的工程支持,例如配置管理、

质量保证等,才能按期交付高质量的软件产品。

D、有效的软件工程管理:软件工程的管理,直接影响可用资源的有效利用,提高软件组织

的生产能力。仅当对软件过程实施有效管理时,才能实现有效的软件工程。

4X软件工程学科研究的内容:软件开发模型、软件开发方法、软件过程、软件工具、软件

开发环境、计算机辅助软件工程以及软件经济学等。

51软件开发方法学:是一种已定义好的技术集和符号表示习惯,来组织软件开发的过程,

一般表示为一系列步骤,包括结构化方法、面向对象方法、Jackson方法、Warnier方法、

PAM方法、可视化方法等。

软件开发模型

1、软件开发模型:软件开发全部过程、活动、任务的结构框架。

2、软件生存周期:软件产品从定义开始,经过开发、使用和维护,直到最后被淘汰的整个

过程。

3、软件过程:是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各

项任务的工作步骤。

4、瀑布模型(参见瀑布模型示意图)

1\概述:将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作,形如瀑布流

水,最终得到软件产品,是一种线性模型。

2X各阶段活动:提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行。

3X每一阶段的特征

A、从上一阶段接受本阶段工作的对象,作为输入。

B、对上述输入实施本阶段的活动。

C、给出本阶段的工作成果,作为输出传入下一阶段。

D、对本阶段工作进行评审,若本阶段工作得到确认,则继续下阶段工作;否则返回前一阶

段,甚至更前阶段。

4X优缺点

A、优点:在支持结构化软件开发、控制软件开发的复杂性、促进软件开发工程化等方面起

着显著作用。

B、缺点:缺乏灵活性,无法通过开发活动澄清本来不够确切的软件需求。

5、演化模型(参见演化模型示意图)

1)概述:演化模型主要针对事先不能完整定义需求的软件开发。

2X开发过程:首先开发核心系统,当核心系统投入运行后,开发人员根据用户的反馈,实

施开发的迭代过程。每一迭代过程均由需求、设计、编码、测试、集成等阶段组成,直到软

件开发结束。

3X优点:一定程度上减少了软件开发活动的盲目性。

6、螺旋模型(参见螺旋模型示意图)

1)概述:在瀑布模型和演化模型的基础上,加入两者所忽略的风险分析所建立的一种软件

开发模型。

21特点:沿螺旋模型顺时针方向,依次表达了四个方面的活动,制定计划、风险分析、实

施工程、客户评估。

7、喷泉模型:它体现了软件创建所固有的迭代和无间隙特征。主要用于面向对象开发过程。

(参见喷泉模型示意图)

8、增量模型:在设计了软件系统整体体系结构之后,首先完整的开发系统的一个初始子集,

继之,根据这一子集,建造一个更加精细的版本,如些不断地进行系统的增量开发。(参见

增量模型示意图)

9、各种模型之间的区别与联系

IX瀑布模型、演化模型、螺旋模型之间的异同。

A、相同点:都分为多个阶段。

B、不同点:瀑布模型一次完成软件;演化模型分为多次完成,每次迭代完成软件的一个部

分;螺旋模型也分为多次完成,每次完成软件的一个新原型,并考虑风险分析。

2X演化模型和增量模型的区别

A、演化模型:首先开发核心系统,每次迭代为系统增加一个子集,整个系统是增量开发和

增量提交。

B、增量模型:首先完整的开发系统的一个初始子集,然后不断的建造更精细的版本。

3X需要完整定义需求的模型:瀑布模型、增量模型。

4X属于迭代风范的模型:演化模型、增量模型、喷泉模型、螺旋模型。

第三章结构化需求分析

L需求分析

1)、基本任务:准确定义未来系统的目标,确定为了满足用户的需要系统必须

做什么。

2)、承担者:系统分析员。

3)、两个阶段:需求获取和需求规约。

2、需求获取

1)、目的:清楚地理解所要解决的问题,完整地获取用户需求。2)、主要活动:

通过学习、请教领域专家、向用户提问等。

3)、三大挑战:问题空间理解;人与人之间的通信;需求的不断变化。

4)、分类及内容

A、功能性需求:定义系统做什么。

B、非功能性需求:定义系统工作时的特性。

5)、原则

A、划分:捕获问题空间的"整体/部分"关系。

B、抽象:捕获问题空间的"一般/特殊"或"特例"关系。

C、投影:捕获问题空间的多维"视图"。

6)、技术

A、一种好的需求获取技术应具备的基本特征。

①提供方便的通信;

②提供定义系统边界的方法;

③提供支持抽象的基本机制;

④鼓励分析员使用问题空间的术语思考问题,编写文档;

⑤为分析员提供多种可供选择的设计方案;

⑥适应需求的变化。

B、Jacobson提出的用况法基本符合以上特征,详见"第五章面向对象方法"的

“用况图"。

3、需求规约:对需求陈述进行分析,解决其中存在的二义性和不一致性,并以

一种系统化的形式准确地表达用户的需求,形成所谓的需求规格说明书。

4、结构化方法:是一种系统化开发软件的方法,该方法基于模块化的思想,采

用"自顶向下,逐步求精”的技术对系统进行划分,分解和抽象是它的两个基本

手段,结构化方法是结构化分析、结构化设计和结构化编程的总称。

6、结构化分析

1)、基本步骤

A、通过对现实系统的了解和分析,或基于需求陈述,建立该系统的数据流图;

B、基于得到的数据流图,建立该系统的数据字典;

C、基于得到的数据流图,对最低层的加工给出其控制结构描述;

D、依据需求,建立人机接口和其他性能描述;

E、通过分析和验证,建立系统完整的需求规约。

2)、结构化分析模型:数据流图(DFD)是一种描述数据变换的图形工具,是

结构化分析方法最普遍采用的表示手段,数据字典和小说明为数据流图提供了补

充,并用以验证图形表示的正确性、一致性和完整性,以上三者构成了结构化分

析的模型。

A、数据流图:是一种描述数据变换的图形工具,系统接受输入的数据,经过一

系列的变换(或称加工),最后输出结果数据。包括加工、数据流、数据存储、

数据源和数据潭。

①加工:是对数据进行处理的单元;用圆圈表示;顶层的加工名就是软件系统的

名字,加工的名字最好使用动宾词组(e.g.计算费用),也可用主谓词组(e.g.

费用计算),不要使用意义空洞的动词作为加工名(e.g.计算)。

②数据流:表示数据(由一组数据项组成)和数据流向(三种流向:从加工流向

加工;从数据源流向加工或从加工流向数据潭;从加工流向数据存储或从数据存

储流向加工。两个加工之间可以有多个数据流,这些数据流之间没有任何联系,

数据流图不表明它们的先后次序);用箭头表示;用名词或名词词组命名,尽量

选用现实系统中已有的名字。

③数据存储:表示信息的静态存储;用两条平行线表示;其命名方法同数据流。

④数据源:数据的来源;用矩形表示;

⑤数据潭:数据的最终目的地;用矩形表示。

B、数据字典:以一种准确的和无二义的方式定义所有被加工引用的数据流和数

据存储。包括数据流条目、数据存储条目、数据项条目。常用逻辑操作符:"="

等价于(定义为)、"+"与(顺序结构)、"{}"重复(循环结构)、"[『或

(选择结构)、"()"任选、界域。

C、小说明:用于描述底层加工,集中描述一个加工的输入数据和输出数据的逻

辑关系,即加工逻辑,并不描述具体的加工过程。一般用自然语言、结构化自然

语言、判定表和判定树等描述。

①结构化自然语言:分为内外两层,外层语法描述操作的控制结构,内层语法用

自然语言描述。如:在飞机票预订系统中

在旅游旺季的7~9,12月

如果订票超过20张

优惠票价的15%

如果订票20张以下

优惠票价的5%

在旅游淡季的1~6,10,11月份

如果订票超过20张

优惠30%

如果订票20张以下

优惠20%

②判定表:分四个区,一区列出所有的条件类别,二区列出所有的条件组合,三

区列出所有的操作,四区列出在相应的组合条件下某个操作是否执行或执行情

况。如:

旅游时间7~9,12月1~6,10,U月

订票量<=20>20<=20>20

折扣量5%15%20%30%

③判定树:用图形形式描述加工逻辑。

3)、建立结构化分析模型的步骤(附实例)

A、确定系统边界,画出系统环境图(参见系统环境示意图)

B、自顶向下,画出各层数据流图

①功能分解(参见功能分解示意图)

②数据流的分派(参见数据流分派示意图)

③文件引入与精化(参见精化示意图)

④如果有必要,从①开始对分解后的加工再次进行分解,建立更下一层的数据流

C、定义数据字典

D、定义小说明

E、汇总前面各步骤的结果

4)、注意事项

A、模型平衡原则

①数据流图中所有的图形元素必须根据它们的用法规则正确使用;

②每个数据流和数据存储都要在数据字典中有定义,数据字典将包括各层数据流

图中数据元素的定义;

③数据字典中的定义使用合法的逻辑构造符号;

④数据流图中最底层的加工必须在小说明中有定义;

⑤父图和子图必须平衡,即父图中某加工的输入输出(数据流)和分解这个加工

的子图的输入输出(数据流)必须完全一致;

⑥小说明和数据流图的图形表示必须一致。

B、控制复杂性的一些规则

①上层数据流可以打包,上、下层数据流的对应关系用数据字典描述,同层的数

据流也可编号对应在,包内流的性质(输入/输出)必须一致;

②为便于理解,一幅图中的图元个数控制在7±2以内;

③检查同每个加工相关的数据流,并寻找是否有其他可降低界面复杂性的划分方

法;

④分析数据内容,确定是否所有输入信息都用于产生输出信息;相应地,由一个

加工产生的所有信息是否都能由进入该加工的信息导出。

7、需求验证:就是对软件需求规格说明书(SRS)加以验证,需要从以下方面进

行:正确性,无二义性,完整性,可验证性,一致性,可理解性,可修改性,可

被跟踪性,可跟踪性,设计无关性,注释。

8、需求规格说明书

1)、概述:是需求分析阶段产生的一份最重要的文档,它以一种一致的、无二

义的方式准确的表达用户的需求。

2)、作用

A、作为软件开发机构和用户之间一份事实上的技术合同书;

B、作为软件开发机构下一步进行设计和编码的基础;

C、作为测试和验收目标系统的依据。

3)、基本结构:引言、概述、数据流图与数据字典、接口、性能需求、属性、

其他需求。

9、需求分析阶段的另外两份文档:初步测试计划和用户系统描述。

结构化设计

1、软件设计阶段:需求分析阶段的主要任务是确定系统必须"做什么",形成软件的需求

规格说明书,软件设计阶段主要任务是确定系统"怎么做",从软件需求规格说明书出发,

形成软件的具体设计方案,软件设计可以采用多种方法,如结构化设计方法、面向数据结构

的设计方法、面向对象的设计方法等,结构化软件设计可以分为总体设计和详细设计两个阶

段。

2、数据流图的类型

1X变换型数据流图:具有较明显的输入、变换、输出界面的数据流图。(参见变换型数据

流图示意图)

2X事务型数据流图:当数据到达一个处理T后,该处理T根据输入数据的类型或数据值,

在其后的若干动作序列(称为一个事务)中选出一个来执行。(参见事务型数据流图示意图)

3、设计类型(以上面两图为实例)

1X变换设计:对应于变换型数据流图。其步骤如下:

A、确定输入、变换、输出的边界:逻辑输入就是离物理输入端最远的,但仍被看作是系统

输入的数据流;逻辑输出就是离物理输出端最远的,但仍被看作是系统输出的数据流。

B、"第一级分解"-系统模块结构图顶层和第一层的设计:主模块位于最顶层,一般以所建

系统的名字命名;输入模块部分,一般有几个不同的逻辑输入,就设计几个输入模块;变换

模块部分;输出模块部分,一般有几个不同的逻辑输出,就设计几个输出模块。(参见变换

设计之第一级分解示意图)

C、"第二级分解"-自顶向下,逐步求精:输入模块部分,通常可分解为两个下属模块:一

个是接收数据模块,另一个是把接收的数据变换成它的上级模块所需的数据的模块,继之,

对下属的输入模块以同样方式进行分解,直到一个输入模块为物理输入为止;输出模块部分,

通常也可分解为两个下属模块:一个将得到的数据向输出形式转换的模块,另一个将转换后

的数据输出,对下属的模块以同样方式进行分解,直到一个输出模块为物理输出为止;中心

变换模块,通常依据数据流图的具体情况,并以功能分解的原则,考虑如何对中心变换模块

进行分解。这样就得到了初始模块结构图。(参见变换设计之第二级分解示意图)

D、使用设计度量和启发式规则,对初始模块结构图进行精化。(参见变换设计之精化示意图)

2X事务设计:对应于事务型数据流图,其步骤如下:

A、确定事务处理中心。

B、"第一级分解"-系统模块结构图顶层和第一层的设计:首先为事务中心设计一个主模块;

然后,为每一条活动路径设计一个事务处理模块;一般来说,事务型数据流图都有输入部分,

对其输入部分设计一个输入模块;如果一个事务型数据流图的各活动路径又集中于一个加

工,则为此设计一个输出模块;如果各活动路径是发散的,则在第一层设计中就不必为其设

计输出模块。(参见事务设计之第一级分解示意图)

C、"第二级分解"-自顶向下,逐步求精:关于输入模块、输出模块的细化,如同变换设计

对输入模块、输出模块的细化。关于各条活动路径的细化,则要根据具体情况进行。

D、使用设计度量和启发式规则,对初始的模块结构图进行精化。

4、设计评价准则

1X模块化:把一个待开发的软件分解成若干简单的模块,即为模块化。

2X信息隐蔽:在自顶向下逐步求精时,其较低层的设计细节都被“隐蔽"起来,只给出模

块的接口,这样不仅使功能的执行机制被隐蔽起来,而且控制流程的细节和一些数据也被隐

蔽起来。

31模块:是执行一个特殊任务或实现一个特殊的抽象数据类型的一组例程和数据结构。通

常由两部分组成:接口和实现模块功能的执行机制。

4X评价软件设计的基本准则是“高内聚"、"低耦合"。

51耦合:是对不同模块之间相互依赖程度的度量。紧密耦合是指两个模块之间存在着很强

的依赖关系;松散耦合是指两个模块之间存在一些依赖关系,但它们之间的连接比较弱;无

耦合是指模块之间根本没有任何连接。

A、耦合的强度依赖的因素

①一个模块对另一个模块的引用。

②一个模块向另一个模块传递的数据量。

③一个模块施加到另一个模块的控制的数量。

④模块之间接口的复杂程度。

B、耦合从强到弱分类

①内容耦合:一个模块直接修改或操作另一个模块的数据,就发生了内容耦合,被修改的模

块完全依赖于修改它的模块。

②公共耦合:两个以上的模块共同引用一个全局数据项就称为公共耦合,对全局数据项的修

改作用于所有访问该数据项的模块,所以模块间的依赖关系依旧存在。

③控制耦合:一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据

信号值进行调整,称为控制耦合。

④标记耦合:若两个模块至少有一个通过界面传递的公共参数包含内部结构,则为标记耦合。

⑤数据耦合:模块间通过参数传递基本类型的数据。

C、原则:如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合

的范围,坚决避免使用内容耦合。

61内聚:度量的是一个模块内部各成分之间相互关联的强度。

A、从低到高分类

①偶然内聚:一个模块的各成分之间毫无关系。

②逻辑内聚:几个逻辑上相关的功能被放在同一模块中。

③时间内聚:如果一个模块完成的功能必须在同一时间内执行(如初始化系统或一组变量),

但这些功能只是因为时间因素关联在一起。

④过程内聚:如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序进行。

⑤通信内聚:如果一个模块的所有成分都操作同一数据集或生成同一数据集。

⑥顺序内聚:如果一个模块的各个成分和同一个功能密切相关,而且一个成分的输出作为另

一个成分的输入,则称为顺序内聚。

⑦功能内聚:模块的所有成分对于完成单一的功能都是基本的。

5、启发式规则

IX改进软件结构提高模块独立性。

2X模块规模应该适中。

3\深度、宽度、扇出和扇入应适中。

A、深度:表示软件结构中控制的层数。

B、宽度:软件结构同一个层次上的模块总数的最大值。

C、扇出:一个模块直接控制(调用)的下级模块数目。

D、扇入:表明有多少个上级模块直接调用它。

4\模块的作用域应该在控制域之内。

A、作用域:受该模块内一个判定影响的所有模块的集合。

B、控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。

5\力争降低模块接口的复杂性。

6X模块功能应该可以预测。

6、总体设计

11主要任务:把系统的功能需求分配给软件结构,形成软件的模块结构图(MSD\

2\表示工具

A、层次图:用来描绘软件的层次结构,很适合于在自顶向下设计软件的过程中使用。

B、HIPO图:由H图(层次图)和IPO图(输入/处理/输出图)两部分组成。

C、结构图:通常用带注释的箭头表示模块调用过程中来回传递的信息,尾部是空心圆表示

传递的是数据,实心圆表示传递的是控制信息。

3\方法:首先对需求规约所产生的DFD分类,然后将不同类型的DFD,采用不同方法进

行映射M各DFD转换为初始模块结构图,再根据基本的模块化设计原则高内聚,低耦合”,

精化初始模块结构图,使之成为最终可供详细设计使用的模块结构图。

7、结构化程序设计:结构化程序设计技术采用自顶向下逐步求精的设计方法和单入口单出

口的控制结构,并且只包含顺序、选择和循环三种结构,结构化程序设计的目标之一是使程

序的控制流程线性化,即程序的动态执行顺序符合静态书写结构,结构化程序设计的观点是

要求设计好结构的程序。

8、详细设计

IX目标:确定怎样具体实现所要求的系统。

2X详细设计包含实现对应的总体设计的模块所需要的处理逻辑,主要有,详细的算法;数

据表示和数据结构,实施的功能和使用的数据之间的关系。

3X工具

A、程序流程图(程序框图,参见程序流程图示意图)

B、盒图(N-S图,参见盒图示意图)

C、PAD图(参见PAD图示意图)

D、类程序设计语言(PDL)(伪码)

9、软件方法学:是以软件方法为研究对象的学科。主要涉及指导软件设计的原理和原则,

以及基于这些原理、原则的方法和技术。狭义的软件方法学也指某种特定的软件设计指导原

则和方法体系。

面向对象方法

1、构造模块的四种基本观点

1\以"过程"或"函数"为基点,使每一模块实现一项功能;

2X以一个“数据结构”为基点,使每一模块实现该数据结构上的操作功能;

3\以"事件驱动”为基点,使每一模块识别一个事件并对该事件作出响应;

41以"问题域中的一个成分"为基点,使每一模块对应现实世界中的一个事物。

2、用况图

1\概述:就是由参与者、用况以及它们之间的关系所构成的图。作用:主要用来明确需求;

用来辅助分析;用来辅助设计,特别是用户界面的设计;用来指导测试。

2\概念

A、系统边界:一个系统所包含的所有系统成分与系统以外各种事物的分界线。

B、参与者:在系统边界以外,与系统进行交互的事物-人员、设备、外系统。一个参与者定

义了一组功能上密切相关的角色,当一个事物与系统交互时,该事物可以扮演这样的角色。

C、用况:对参与者使用系统的一项功能时所进行的交互过程的描述。

31关系

A、参与者之间的关系

①泛化(继承):如果一组参与者具有共同的性质,可以把这些性质抽取出来放在另一个参

与者中,它们再从中继承。

B、用况之间的关系

①泛化(继承):子用况继承父用况的行为和含义;子用况可以增加或覆盖父用况的行为;

子用况可以出现在父用况出现的任何位置。

②扩展:从用况A到用况B的扩展关系是指,用况B的实例是可以被用况A指定的行为扩

充(服从于在扩展中指定的特定条件),行为被插入到由B中的扩展点定义的位置。

③包含:从用况A到用况B的包含关系表明,用况A的一个实例也包含了用况B所指定的

行为,在用况A中定义的位置包含该行为。

④扩展与包含的异同

同:都是不完整的;都离不开基本用况;都可实现为子程序。

异:方向不同;1对多选包含关系;多对1选扩展;包含处理一般的情况;扩展处理特殊的

情况。

C、参与者与用况之间的关系

①关联:连接参与者与用况之间的线段,表示参与者实例与用况实例之间的交互。

4X实例(参见用况图实例)

3、类图

1\概述:类图用以表示模型的静态结构,即表示静态元素及其之间各种静态关系。为了控

制信息组织的复杂性,可以把类图组织成包,但这并不表示对构成模型的基本元素的划分。

2\概念

A、类:是具有相同结构、行为和关系的一组对象的描述符。

B、属性:是一些有着确定值的、用于描述对象状态信息的数据。

C、服务:为了完成某一任务,一个对象所提供的、并体现其责任的操作。

D、对象:在系统分析和系统构造中,对象是对客观世界事物的一种抽象,是由数据(属性)

和其上操作(行为)组成的封装体,是类的一个实例。对象的特点:自治性,对象具有一定

的独立计算能力;封闭性,对象具有信息隐蔽的能力;通信性,对象具有与其他对象通信的

能力。

E、接口:是指描述类中提供给另一个类使用的一组操作。

总结:上述五个概念围绕一个问题,即如何描述客观事物对象"展开的:如何抽象对象

的"结构":属性,操作;如何描述一组具有相似性质的对象:类;如何抽象并描述在特定

环境中对象的功能:接口。

F、关联:把对一组具有相同结构特性、行为特性和语义的链的描述称为关联。

G、聚合:是一种特殊的关联,表示整体类和部分类之间的"整体-部分"关系,其中的整体

类称为聚集。

H、组合:是一种关联,是聚合的一种形式,其部分和整体之间具有很强的“属于"关系,

并且他们的生存期是一致的。这种聚集称为组成。

I、链:是对象引用的元组(列表),是关联的一个实例。

J、泛化:是一般元素(父亲)和特殊元素(儿子)之间的一种分类关系,其中特殊元素的结

构完全与一般元素一致,并附加了一些信息。

K、依赖:一个依赖规约了两个模型元素(或两个模型元素集合)之间的一种语义关系,即:

对目标元素的改变可能需要改变该依赖中的源元素。

总结:给出了表达客观事物之间关系的基本概念:链;给出了关联的语义;还给出了一些特

定的关联(分类),主要包括:二元关联与N元关联、聚合与组合、泛化、依赖。

L、包:模型元素的一个分组。

M、访问依赖:目标包的内容可以被客户包引用,或被递归嵌套在客户包中的其它包引用。

N、引入依赖:一个引入依赖获得访问,并将目标名字空间中的那些具有合适可见性的名字

引入到客户包(即对它们的引用可不需要一个路径名X

总结:包是控制文档组织复杂性的机制;包也可以作为"模块化"、"构件化"机制;包之

间(在包的层次上)存在两种依赖:访问和引入。

0、注释:是一个符号项,用以表示某一语义元素的一些文本信息。

3\表示法

A、类(参见类的表示法)

B、属性:可见性名称[多重性]:类型表达式=初始值{性质串}。

C、服务:可见性名字(参数列表):返回类型表达式{性质字符串}。

D、对象(参见对象的表示法)

E、接口(参见接口的表示法)

F、关联

①二元关联(参见二元关联的表示法)

②N元关联(参见N元关联的表示法)

G、聚合(参见聚合的表示法)

H、组合(参见组合的表示法)

I、链(参见链的表示法)

J、泛化(参见泛化的表示法)

K、依赖(参见依赖的表示法)

L、包(参见包的表示法)

4、顺序图

1\概述:是一种表达对象间交互的图,由一组对象(参与者)以及其间顺序发送的消息组

成。

2\概念和表示法

A、对象生命线:在顺序图中,对象生命线表示扮演特定角色的对象。”对象生命线”表示

为垂直虚线。

B、激活(控制焦点):表示一个对象直接或者通过从属例程执行一个行为的时期。它既表示

了行为执行的持续时间,也表示了活动和它的调用者之间的控制关系。用一个窄长的矩形表

示激活(活化1

C、消息:是两个对象间的通讯,这样的通讯用于传输将产生的动作所需要的信息。一个消

息会引起一个被调用的操作,产生一个信号,或者引起一个对象被创建或者被消除。在顺序

图中,把消息表示为从一个对象生命线到另一个对象生命线的一个水平实线箭头。

D、转换时间:消息可以指定几个不同的时间(例如,发出时间和接受时间X这些时间可以

用在约束表达式中。用户可以按需要为特定的目的给出时间表达,如elapsedTime(占用时

间)和startExecutionTime(开始执行时间\可以在约束中使用这些表达式,以给消息指

派有效的具体时间约束。可以赋予消息一个名字。把时间约束写成为一个基于消息名字的表

达式。例如,如果消息的名字是stim,用stim.sendTime()表示发送时间,用

stim.receiveTime()表达接收时间。可以把时间约束表示在与箭头对齐的图的左边上,也

可以通过把布尔表达式(可能包括时间表达式)放在括号中表示约束。

3X实例(参见顺序图实例)

5、状态图

1X概述:通过描述对事件实例接收的响应,状态图描述了具有动态行为能力的实体之行为。

通常用状态图描述类的行为,也可以用它描述其它模型实体(如用况、参与者、子系统、操

作或方法)的行为。

2\概念与表示法

A、状态:一个状态是对象(类)生命期的一个阶段,在该阶段中该对象要满足一些特定的

条件,并可从事特定的活动。把一个状态表示成一个四角均为圆角的矩形。

B、事件:是指可以引发状态转换的所发生的事情。事件有信号事件、调用事件、时间事件、

条件事件。

C、转换:是两个状态之间的关系,表示当一个特定事件出现时,如果满足一定的条件,对

象就从第一个状态进入第二个状态,并执行一定的动作。把转换表示成从源状态出发并在目

标状态上终止的带箭头的实线。

3\举例(参见状态图实例)

6、面对对象方法

11派别

A、”方法驱动的方法”:在给出符号体系的基础上,明确规定进行的"步骤",并在每一

步中给出"实现策略"。如Coad-Yourdon方法。

B、"模型驱动的方法":给出模型化概念,即符号体系以及目标模型;而不明确规定实现

目标的"步骤",但给出一些必要的指导。如D.W.Embley的OSA方法和J.Rumbaugh的

OMT方法。

2\同结构化方法的比较

A、结构化方法:强调过程抽象和模块化,将现实世界映射为数据流和加工,加工之间通过

数据流进行通信,数据作为被动的实体被主动地操作所加工,是以过程(或操作)为中心来

构造系统和设计程序的。

B、面向对象方法:把世界看成是独立对象的集合,对象将数据和操作封装在一起,提供有

限的接口,其内部的实现细节、数据结构及对它们的操作是外部不可见的。能较好的适应复

杂大系统不断发展和变化的要求。优点:更好的刻画问题域,减少映射误差,控制变化性,

便于同用户交流,消除或减少了软件开发各个阶段的鸿沟,便于复用。

7、Coad-Yourdon方法

1\概述:该方法认为,人类在认识和理解现实世界的过程中,普遍运用着下面三个构造法

则:区分对象及其属性;区分整体对象及其组成部分;不同对象类的形成及区分。

2X00A:利用五个层次和活动定义和记录系统行为,输入和输出。

A、发现类及对象:描述如何发现类及对象。从应用领域开始识别类及对象,形成整个应用

的基础,然后,据此分析系统的责任。两层矩形表示类及对象:内层矩形表示类,分为三部

分,类名、属性名、服务名,外层矩形表示该类的对象。

B、识别结构:该阶段分为两个步骤。第一,识别一般/特殊结构,该结构捕获了识别出的类

的层次结构;第二,识别整体/部分结构,该结构用来表示一个对象如何成为另一个对象的

一部分,以及多个对象如何组装成更大的对象。

C、定义主题:主题由一组类及对象组成,用于将类及对象模型划分为更大的单位,便于理

解。精炼主题可以从问题域和接口复杂性入手。

D、定义属性:其中包括定义类的实例(对象)之间的实例连接。可以从四方面标识属性:

原子概念,规范化,标识机制,保持一个可导出的属性。

E、定义服务:其中包括定义对象之间的消息连接。

总结:在面向对象分析阶段,经过五个层次的活动后的结果是一个分成五个层次的问题域

模型,包括主题、类及对象、结构、属性和服务五个层次,由类及对象图表示。五个层次活

动的顺序并不重要。

3100D:面向对象设计模型需要进一步区分以下四个部分。

A、问题域部分(PDC):面向对象分析的结果直接放入该部分。

B、人机交互部分(HIC):这部分的活动包括对用户分类,描述人机交互的脚本,设计命令

层次结构,设计详细的交互,生成用户界面的原型,定义HIC类。

C、任务管理部分(TMC):这部分的活动包括识别任务(进程X任务所提供的服务、任务

的优先级、进程是事件驱动还是时钟驱动、以及任务与其它进程和外界如何通信。

D、数据管理部分(DMC):这一部分依赖于存储技术,是文件系统,还是关系数据库管理

系统,还是面向对象数据库管理系统。

8、OSA方法

IXOSA模型

A、对象关系模型:对象、关系、对象类、关系集合、约束。

B、对象行为模型:状态、触发与转换、动作。

C、对象相互作用模型。

2X特殊的关系集合

A、一般关系(isa):一个对象类中的每一个对象是另一对象类的一个对象。

B、聚合关系(ispartof):由一些称之为成分的对象构成称之为聚合的对象。

C、联合关系(ismemberof):该关系用于生成一个由对象构成的集合,并把该集合看作是

一个对象。

9、UML

IXUML简介:UML是一种通用的可视化建模语言,用于对软件进行描述、可视化处理、

构造和建立软件系统的文档。UML融合了许多面向对象开发方法的基本概念和优点,具有

一致的图形表示法和语义,同时也出现了许多UML工具,能够很好地支持软件开发,例如

UML的开发工具RationalRose提供了面向对象的分析和设计(00A和00D)到面向对象

编程(OOP)的平滑过渡机制,完整地体现了面向对象的软件工程思想。

2XUML的静态建模机制和动态建模机制:静态结构定义了系统中重要对象的属性和操作

以及这些对象之间的相互关系;动态行为定义了对象的时间特性和对象为完成目标任务而相

互进行通信的机制。UML定义了9种图用于系统建模,分为两类:静态结构图和动态行为

图。

A、静态结构图:可用于对系统的静态方面进行可视化、详述、构造和文档化。可以把系统

的静态方面看作是对系统的相对稳定的骨架的表示,它由类、接口、协作、构件和节点等事

物的布局组成。结构图包括:

类图(Classdiagram)描述系统中类的静态结构,它定义了系统中类的内部结构以及类之间

的联系,用来捕获信息和事件中的对象;对象图(Objectdiagram)是类的实例化图;构件

图(Componentdiagram)描述程序代码的物理结构;部署图(Deploymentdiagram)

描述系统中软、硬件的物理体系结构,用于捕获系统硬件和软件构件的部署关系。

B、动态行为图:用于对系统的动态方面进行可视化、详述、构造和文档化。可以把系统的

动态方面看作是对系统变化部分的表示,它由诸如随时间变化的信息流和在网络上构件的物

理运动之类的事物组成。行为图包括:

用例图(UseCasediagram)从用户的角度描述系统的功能,并指出各功能的执行者,说明

执行者与提供的用例之间的某种联系;顺序图(Sequencediagram)描述几个对象之间的

动作协作关系;协作图(Collaborationdiagram)从另一个角度展示对象之间的动作协作

关系。它可以和顺序图相互转换。在RationalRose中可以由顺序图生成协作图;状态图

(Statediagram)描述一类对象具有的所有可能的状态以及状态转移关系;活动图

(Activediagram)描述系统中各种活动的执行顺序。

10、RUP(参见RUP示意图)

1\概述:RUP,即Rational统一过程,是一种适应UML的软件生命周期方法,是一个通

用的过程框架,可用于各种不同类型的软件系统、各种不同的应用领域、各种不同类型的组

织、各种不同的功能级别以及各种不同的项目规模。它是UseCase驱动的、以体系结构为

中心的、迭代、增量的开发。

2X阶段:初始、细化、构造、移交。

3X核心工作流:捕获需求、分析、设计、实现、测试。

软件测试

1、软件测试

1X软件产品与其他产品不同,其最大的成本是检测软件错误、修正错误的成本,以及为了

发现这些错误所进行的设计测试程序和运行测试程序的成本。

2X软件测试可定义为:按照特定规程,发现软件错误的过程。

3X软件测试的目标:一是预防错误;二是发现错误。

2、软件测试和软件调试的区别

1X测试从一个侧面证明程序员的"失败",而调试是为了证明程序员的正确。

21测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是

否通过测试。调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。

3X测试是有计划的,并要进行测试设计,而调试是不受时间约束的。

4X测试是一个发现错误、改正错误、重新测试的过程,而调试是一个推理过程。

5\测试的执行是有规程的,而调试的执行往往要求程序员进行必要推理以至知觉的“飞

跃"。

61测试经常是由独立的测试组在不了解软件设计的条件下完成的,而调试必须由了解详细

设计的程序员完成。

7X大多数测试的执行和设计可由工具支持,而调试时,程序员能利用的工具主要是调试器。

3、测试过程模型(参见测试过程模型示意图)

1X程序环境包括支持其运行的硬件、固件和软件。一般来说,程序环境经过了生产厂家的

严格测试,出现错误的概率比较小,软件可靠性较好。因此,对环境的抽象——环境模型,

只考虑计算机指令系统、操作系统宏指令、操作系统命令以及高级语言语句等。

2\另外,为了测试,必须简化程序概念,形成被测试对象的简化版本,即程序模型。不同

测试技术,对同一被测对象一一程序,可产生不同的程序模型。这一简化或着重于程序的控

制结构,或着重于处理过程,于是形成了所谓的“白盒"测试和"黑盒"测试。如果程序的

简单模型不能解释未料到的行为,则必须修改程序模型,使其包含更多的事实和细节。如果

还有问题,则要考虑是否修改程序。

3X由于参与软件开发的人员众多,且各有各的侧重面,因此,他们对"什么是错误"往往

在认识上是不一致的。为了统一认识,必须定义"什么是错误",即给出"错误模型"。

41在建立了环境模型、程序模型、以及错误模型的基础上,才能执行测试及测试结果的比

较。如果预料结果与实际结果不符,就要考虑是否是环境模型、程序、程序模型和错误模型

的问题。

4、软件测试技术

1X软件测试技术大体上可分为两大类:一类是白盒测试技术,典型的是路径测试技术;一

类是黑盒测试技术,又称为功能测试技术,包括事务处理流程技术、状态测试技术、定义域

测试技术等。

2X白盒测试技术依据的是程序的逻辑结构,而黑盒测试技术依据的是软件行为的描述。

3X软件错误可分为结构错误、数据错误、编程错误和接口错误。

4X测试用例指的是为了发现程序中的故障而专门设计的一组或多组数据。

5、路径测试技术

IX基本概念

A、控制流程图:是程序控制结构的图形表示,其基本元素是过程块、结点、判定。过程块

是既不能由判定,也不能由结点分开的一组程序语句,其基本属性是:如果过程块中的某个

语句被执行,那么块中的所有语句都被执行。判定是一个程序点,此处控制流可以分叉。结

点是程序中的一个点,此处控制流可以结合。控制流程图与程序流程图之间的差异是在控制

流程图中,不显示过程块的细节,而在程序流程图中,着重于过程属性的描述。

B、路径:是一串指令或语句。它在一个入口、结点、判定处开始,在另一入口(或同一入

口X结点、判定或出口处结束。显然一条路径可一次或多次地穿过几个结点、过程块或判

定。

2\基本策略

A、路径测试(PX)和100%路径覆盖率:执行所有可能的穿过程序的控制流程路径。该策

略最强,但一般不可实现。

B、语句测试(P1)和100%语句覆盖率(C1):至少执行程序中所有语句一次。最弱的逻

辑覆盖准则。

C、分支测试(P2)和100%分支覆盖率(C2):至少执行程序中每一分支一次。

D、条件组合测试:设计足够的用例,使每个判定的所有可能的条件取值组合至少执行一次。

3\路径测试的目标:执行足够的测试,以确保最小的C1+C2覆盖率。

4\路径选取的一般规则

A、选择最简单的、具有一定功能含义的入口/出口路径;

B、对已选的路径进行演化,选取无循环的路径;选取短路径、简单路径;

C、选取没有明显功能含义的路径,此时要研究这样的路径为什么存在,为什么没有通过功

能上合理的路径得到覆盖。

5)、对于循环的路径选取

A、单循环

最小循环次数为0,最大次数为N,且无"跳跃"值:选取"旁通循环"(零次循环)的

路径;对循环控制变量指定为负数;一次通过循环;典型的重复次数;重复次数为N-1;重

复次数为N;重复次数为N+L

非零最小循环次数,且无"跳跃"值:重复次数为最小次数减1;重复次数为最小次数;

重复次数为最小次数加1;一次通过循环,除非已覆盖;二次通过循环,除非已覆盖;典型

的重复次数;重复次数为最大次数减1;重复次数为最大次数;重复次数为最大次数加1»

具有跳跃的单循环:除把每"跳跃"边界,按"最小循环次数"和"最大循环次数"处理

外,其他均同前两种循环的路径选取规则。

B、嵌套循环

在最深层的循环开始,设定所有外层循环取它的最小值;

测试最小值,最小值加1,典型值,最大值减1,最大值,与此同时,测试最小值减1,

最大值加1以及“跳跃值"边界;

设定内循环在典型值处,按测试处层循环,直到覆盖所有循环。

C、级联循环:如果在退出某个循环以后,到达另一个循环,目还在同一入口/出口路径上,

则称这两个循环是级联的。其中,如果在退出某个循环以后,到达另一个循环,且循环的重

复值与另一个循环的重复值相关,该循环还在同一入口/出口路径上,则可认为是嵌套循环。

如果两个循环不在同一入口/出口路径上,则可认为它们是单循环。

6X举例

例如:以下为一个程序流程图(参见程序流程图实例),其中该例子中有两个判断,每个判

断都包含复合条件的逻辑表达式。

其控制流程图为:(参见控制流程图实例)

A、路径测试

该控制流程图有4条不同的路径。4条路径可表示为:

LI(a—c—e)简写ace、L2(a—b—d)简写abd

L3(a—b—e)简写abe、L4(a—Ld)简写acd

要想实现路径覆盖,可选择以下一组测试用例(规定测试用例的设计格式为:【输入的(A,

B,X),输出的(A,B,X)]):

测试用例覆盖路径

[(2,0,4),(2,0,3)]L1

[(1,1,1),(1,1,1)]L2

[(1,1,2),(1,1,3)]L3

[(3,0,3),(3,0,1)]L4

B、语句测试(P1):

[(2,0,4),(2,0,3)]L1

C、分支测试(P2):

如果选择路径L1和L2,就可得到实现分支覆盖的测试用例:

[(2,0,4),(2,0,3)]L1

[(1,1,1),(1,1,1)]L2

如果选择路径L3和L4,还可得另一组可用的测试用例:

[(2,1,1),(2,1,2)]L3

[(3,0,3),(3,1,1)]L4

D、条件组合测试:

要满足条件组合覆盖,设计的测试用例必须满足以下16种条件组合:

(1)(A>1),(B=O),(A=2),(X>1),可标记为Tl、T2、T3、T4;

(2)(A>l),(B=0),(A=2),(X41),可标记为Tl、T2、T3、F4;

(3)(A>1),(B=O),(A/2),(X>1),可标记为Tl、T2、F3、T4

(4)(A>1),(B=O),(A,2),(XW1),可标记为Tl、T2、F3、F4。

(5)(A>1),(B/O),(A=2),(X>1),可标记为Tl、F2、T3、T4;

(6)(A>l),(B/0),(A=2),(X41),可标记为Tl、F2、T3、F4;

(7)(A>1),(BWO),(A,2),(X>1),可标记为Tl、F2、F3、T4;

(8)(A>1),(BWO),(A,2),(XW1),可标记为Tl、F2、F3、F4O

(9)(A41),(B=O),(A=2),(X>1),可标记为Fl、T2、T3、T4;

(10)(A41),(B=0),(A=2),(X41),可标记为Fl、T2、T3、F4;

(11)(A41),(B=O),(AH2),(X>1),可标记为Fl、T2、F3、T4;

(12)(A41),(B=0),(AH2),(X41),可标记为Fl、T2、F3、F4O

(13)(A41),(BHO),(A=2),(X>1),可标记为Fl、F2、T3、T4;

(14)(A41),(BH0),(A=2),(X41),可标记为Fl、F2、T3、F4;

(15)(A41),(BHO),(AH2),(X>1),可标记为Fl、F2、F3、T4;

(16)(A41),(B/0),(AH2),(X41),可标记为Fl、F2、F3、F40

可以采用以下四组测试数据,从而实现条件组合覆盖:

测试用例覆盖条件覆盖组合号通过路径

[(2,0,4),(2,0,3)]T1T2T3T41,5L1

[(2,1,1),(2,1,2)]T1F2T3F42.6L3

[(1,0,3),(1,0,4)]F1T2F3T43,7L3

[(1,1,1),(1,1,1)]F1F2F3F44,8L2

6、事务处理流程测试技术

IX基本概念

A、事务:是从系统用户的角度出发所见到的一个工作单元。

B、事务处理流程:是系统行为的一种表示方法,为功能测试建立了程序的动作模式。

C、事务处理流程图:一个系统的行为表现为多个事务的执行,这一行为可抽象为事务处理

流程图。

2\事务处理流程图与控制流程图的异同

A、相同之处:两者使用了相同的概念成分,例如处理(对应于过程块)、分支、结点。

B、不同之处:事务流程图是一种数据流程图,即从操作应用的历史,观察数据对象;事务

流程图中的判定"抽象”了一个复杂的过程;事务流程图存在“中断",把一个过程等价地

变换为具有繁多出口的链支。

3)、测试步骤

A、获取事务流程图,即建立被测对象模型;

B、浏览与复审,主要对事务进行分类,为设计用例奠定基础;

B、用例设计

4X要解决的问题:路径选取;激活;测试设备;测试数据库。

7、其他功能测试技术

1X等价类划分

A、等价类划分是把所有可能的输入数据即程序的输入域划分成若干(即若干等价类),然后

从每一部分中选取数据作为测试用例。

B、有效等价类:指对于程序的规格说明来说,是合理的、有意义的输入数据构成的集合;

无效等价类:指对于程序规格说明来说,是不合理的、无意义的输入数据构成的集合。

C、测试步骤:首先划分等价类,然后确定测试用例。

D、确定等价类的参考原则

①如果某个输入条件规定了输入数据的取值范围,则可以确立一个有效等价类和两个无效等

价类;

②如果某个输入条件规定了输入数据的个数,则可划分一个有效等价类和两个无效等价类。

③如果输入条件规定了输入数据的一组可能取的值,而且程序可以对每个输入值分别进行处

理,则可为每一个输入值确立一个有效等价类,而针对这组值确定一个无效等价类。

④如果输入条件是一个布尔量,则可以确立一个有效等价类和一个无效等价类。

⑤如果某个输入条件规定了必须符合的条件,则可划分一个有效等价类和一个无效等价类。

⑥若在已划分的某一等价类中各元素在程序中的处理方式不同,则应将此等价类进一步划分

为更小的等价类。

E、确立测试用例

①为每一个等价类规定一个惟一的编号;

②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直

到所有的有效等价类都被覆盖为止;

③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所

有的无效等价类都被覆盖为止。

2X边界值分析

A、主要思想:经验表明,大量的错误经常发生在输入或输出范围的边界上。因此,使用等

于、小于或大于边界值的数据对程序进行测试,发现错误的概率较大。

B、测试原则

①如果某个输入条件规定了输入值的范围,则应选择正好等于边界值的数据,以及刚刚超过

边界值的数据作为测试数据。

②如果某个输入条件规定了值的个数,则可用最大个数、最小个数、比最大个数多1、比最

小个数少1的数作为测试数据。

③根据规格说明的每个输出条件,使用前面的原则①。

④根据规格说明的每个输出条件,使用前面的原则②。

⑤如果程序的规格说明中,输入域或输出域是有序集合,则选取集合的第一个元素,最后一

个元素以及典型元素作为测试用例。

⑥如果程序中使用了内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用

例。

⑦分析规格说明,找出其他可能的边界条件。

3X因果图:是设计测试用例的一种工具,它着重检查各种输入条件的组合。

8、软件测试步骤

1)、合理的测试序列:单元测试、集成测试、有效性测试和系统测试。

2X单元测试:主要检验软件设计的最小单位——模块。一般采用白盒测试技术。在单元测

试期间,通常考虑模块的四个特征:模块接口;局部数据结构;"重要的"执行路径;错误

执行路径。单元测试步骤分四部分:首先测试穿过模块接口的数据流;继之进行数据结构的

测试;还要进行执行路径的选择测试;边界测试是单元测试中的最后工作,也是最重要的工

作。

3X集成测试:是软件组装的一个系统化技术,其目标是发现与接口有关的错误,将经过单

元测试的模块构成一个满足设计要求的软件结构。分为自顶向下的集成测试和自底向上的集

成测试。

4X有效性测试:目标是发现软件实现的功能与需求规格说明书不一致的错误,有效性测试

通常采取黑盒测试技术。

软件过程与改善

1、软件过程

1X软件过程是软件生存周期中的一系列相关过程,又称为软件生存周期过程。过程是活动

的集合,活动是任务的集合,任务是将输入变换为输出的操作。活动的执行可以是顺序的,

可以是重复的,可以是并行的,也可以是嵌套的。

2X按照不同人员的工作内容来分,软件过程可分为三类:基本过程、支持过程和组织过程。

2、基本过程

1X指那些与软件生产直接相关的过程,包括获取过程、供应过程、开发过程、运行过程和

维护过程。

2X获取过程:是获取者为了得到一个软件系统或软件产品所进行的一系列活动。它从确定

获取该系统或软件产品的需求定义开始,经过招标准备,合同的准备和修改,对供应方的监

督,直到验收完成方告结束。

3X供应过程:是供应者为获取者提供软件产品的一系列活动。它从理解系统或软件产品的

需求开始,经过投标准备,签订合同,制定计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论