软件工程课件重点知识录音_第1页
软件工程课件重点知识录音_第2页
软件工程课件重点知识录音_第3页
软件工程课件重点知识录音_第4页
软件工程课件重点知识录音_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程软件工程第一章第一章 绪论绪论第一节第一节 软件工程概念的提出与发展软件工程概念的提出与发展1 1、软件危机、软件危机速度:速度:软件的发展水平远远滞后于硬件的发展水平,生产软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式率低下,软件制造仍然是一种人工集约生产方式质量:质量:软件的质量低下,不能满足用户的需求、适应性差软件的质量低下,不能满足用户的需求、适应性差 成本:成本:软件开发成本居高不下软件开发成本居高不下软件工程的三个核心问题:软件工程的三个核心问题:软件开发的速度软件开发的速度、软件制品的质量软件制品的质量、软件开发成本软件开发成本2、

2、软件工程的发展软件工程的发展(1 1)2020世纪世纪60806080年代年代瀑布模型;过程化语言;支持工具瀑布模型;过程化语言;支持工具(2 2)2020世纪世纪8080年代年代 今今软件复用技术;软件生产管理;面向对象语言软件复用技术;软件生产管理;面向对象语言(3 3)近几年)近几年软件复用技术:构件技术、平台技术、需求工程技术、领域软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。分析技术、应用集成技术等。3 3、什么是软件工程:、什么是软件工程:应用计算机科学理论和技术以及工程管理原则和方法,按应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实

3、现满足用户要求的软件产品的工程,或以此为研预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的科学究对象的科学第二节第二节 软件开发的本质软件开发的本质 软件软件软件软件= =程序程序+ +文档文档 软件开发的本质:软件开发的本质:“映射映射”,问题域到不同抽象层之间概念和问题域到不同抽象层之间概念和计算逻辑的映射计算逻辑的映射.2 2 实现映射的基本手段实现映射的基本手段 模型模型: 是解决问题的一般途径是解决问题的一般途径!建模:建模: 运用所掌握的知识运用所掌握的知识, 通过抽象,给出该问题的一个结构。通过抽象,给出该问题的一个结构。 映射的方法有:过程方向(求解软件的开发逻辑

4、)映射的方法有:过程方向(求解软件的开发逻辑) 过程途径(开发的手段)过程途径(开发的手段) 模型模型模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。模型元素以及它们之间关系的语义描述。 系统模型的类型系统模型的类型概念模型:描述软件是什么概念模型:描述软件是什么软件模型:实现概念模型的软件解决方案。包括设计模型、实现软件模型:实现概念模型的软件解决方案。包括设计模型、实现模型和部

5、署模型。模型和部署模型。分层的基本动机是为了控制开发的复杂性。分层的基本动机是为了控制开发的复杂性。第二章第二章 软件软件需求需求与软件需求规约与软件需求规约正确定义问题正确定义问题,是解决问题的基础。软件需求是任何,是解决问题的基础。软件需求是任何软件工程项目的基础。软件工程项目的基础。第一节:需求与需求获取第一节:需求与需求获取1 1、需求的定义、需求的定义一个需求是有关一个一个需求是有关一个“要予构造要予构造”的陈述,描述了待开发产品的陈述,描述了待开发产品/ /系统功能能力、性能参数或其它性质。系统功能能力、性能参数或其它性质。2 2、需求的基本性质、需求的基本性质 必要的必要的 无歧

6、义的无歧义的 可测的可测的 可跟踪的可跟踪的 可测量的可测量的3 3、需求的分类、需求的分类 功能需求,功能需求,是整个需求的主体是整个需求的主体。 非功能需求:性能需求、外部接口需求、设计约束和质量属性需非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。求。5 5、接口需求的类别、接口需求的类别 用户接口用户接口 和和用户之间接口的逻辑特性用户之间接口的逻辑特性。 硬件接口硬件接口 说明所要求的说明所要求的支持和协议类型支持和协议类型 软件接口软件接口 允许与其它软件产品进行交互允许与其它软件产品进行交互 通信接口通信接口 与通讯设施与通讯设施(如,局域网如,局域网)之间的交互之间

7、的交互 内存约束内存约束 易失性存储和永久性存储易失性存储和永久性存储的特性和限制的特性和限制 运行运行 正常和异常正常和异常的运行的运行以及以及在系统正常和异常在系统正常和异常运行下运行下如何与系统进行交互如何与系统进行交互 地点需求地点需求 描述系统安装以及如何调整一个地点,以描述系统安装以及如何调整一个地点,以适应新的系统适应新的系统。6 6、设计约束需求、设计约束需求 法法规政策规政策 硬硬件限制件限制 与其它应用的与其它应用的接接口口 并并发操作发操作 审审计能力计能力 控控制功能制功能 高级高级语语言要求言要求 握握手协议手协议 应用的应用的关关键程度键程度 安安全和保密全和保密7

8、 7、质量属性质量属性 可可靠性靠性 软件系统在指定环境中没有失败而正常运行的概率软件系统在指定环境中没有失败而正常运行的概率。 存存活性活性 当系统的某一部分系统不能运行时,该软件继续运行或支当系统的某一部分系统不能运行时,该软件继续运行或支 持关键功能的可能性。持关键功能的可能性。 可可维维护性护性 发现和改正一个软件故障或对特定的范围进行修改发现和改正一个软件故障或对特定的范围进行修改 所要求的平均工作。所要求的平均工作。 用用户户友好性友好性 学习和使用一个软件系统的容易程度。学习和使用一个软件系统的容易程度。 需求发现的技术需求发现的技术自悟:把自己为系统用户,可能不正确自悟:把自己

9、为系统用户,可能不正确交谈:可能超出项目成本和进度交谈:可能超出项目成本和进度观察观察小组会小组会提炼:可能不正确提炼:可能不正确第二节第二节 需求规约(需求规约(SRSSRS)1 1、需求规约的定义、需求规约的定义 是一个软件是一个软件/ /产品产品/ /系统所有需求陈述的正式文档,它表达了系统所有需求陈述的正式文档,它表达了一个软件一个软件/ /产品产品/ /系统的概念模型。系统的概念模型。2 2、需求规约的基本性质、需求规约的基本性质 重要性和稳定性程度:对需求进行分级重要性和稳定性程度:对需求进行分级 可修改的可修改的 完整的:没有被遗漏的需求完整的:没有被遗漏的需求 一致的:不存在互

10、斥的需求一致的:不存在互斥的需求3 3、需求规约(需求规约(SRSSRS)基本格式()基本格式(P28P28)特定需求是文档的技术核心。特定需求是文档的技术核心。4 4、表达需求规约、表达需求规约( (规格说明书规格说明书) )的三种风格的三种风格 非形式化的规约非形式化的规约半形式化的规约半形式化的规约 形式化规约形式化规约5 5、需求规约的作用、需求规约的作用 其作用可概括为:其作用可概括为: 第一:也是最重要的,第一:也是最重要的,作为软件开发组织和用户之间一份事作为软件开发组织和用户之间一份事实的实的技术合同书技术合同书;是;是产品功能及其环境的产品功能及其环境的体现体现。 第二,对于

11、项目的其余大多数工作,它是一个第二,对于项目的其余大多数工作,它是一个管理控制点管理控制点。 第三,对于产品的设计,它是一个正式的、受控的第三,对于产品的设计,它是一个正式的、受控的起始点起始点。 第四,是创建产品验收测试计划和用户指南的第四,是创建产品验收测试计划和用户指南的基础基础 SRSSRS所不能实现的作用所不能实现的作用 第一,它不是一个第一,它不是一个设计文档设计文档。它是一个。它是一个“为了为了”设计的文档。设计的文档。 第二,它不是第二,它不是进度或规划文档进度或规划文档,不应该包含更适宜包含在,不应该包含更适宜包含在 需求规约与项目需求需求规约与项目需求需求规约是软件开发组织

12、和用户之间一份事实上的技术合同书,需求规约是软件开发组织和用户之间一份事实上的技术合同书,而项目需求是客户和开发者之间有关技术合同。而项目需求是客户和开发者之间有关技术合同。第一节第一节 结构化需求分析结构化需求分析第三章第三章 结构化方法结构化方法1 1、需求分析面临的挑战、需求分析面临的挑战问题空间理解问题空间理解人与人之间的通信,人与人之间的通信,“有效沟通有效沟通”需求的变化性需求的变化性2 2、好的需求技术应该:、好的需求技术应该:提供通信机制提供通信机制用问题空间思考用问题空间思考提供系统边界提供系统边界提供抽象机制提供抽象机制多种选择方案多种选择方案适应需求变化适应需求变化3、典

13、型的结构化方法有:结构化方法、面向数据结构、典型的结构化方法有:结构化方法、面向数据结构方法和面向对象方法。方法和面向对象方法。动宾结构动宾结构第三章第三章 结构化方法结构化方法3 3、数据流图、数据流图DFDDFD图图 用于建立系统功能模型。用于建立系统功能模型。是一种描述数据变换的图形化工具,其中包含的元素可以是是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。数据流、数据存储、加工、数据源和数据潭等。4 4、建模过程(绘制流程图的过程)、建模过程(绘制流程图的过程)自顶向下、功能分解自顶向下、功能分解(1 1)建立系统环境图、确定系统语境)建立

14、系统环境图、确定系统语境(2 2) 自顶向下,逐步求精,建立系统的层次数据流图自顶向下,逐步求精,建立系统的层次数据流图 0 0层图:从层图:从0 0层图开始对流程图中的要素编号层图开始对流程图中的要素编号 1 1层图层图(3 3)定义数据字典)定义数据字典(4 4)描述加工)描述加工需求的首要任务是建立系统的功能模型需求的首要任务是建立系统的功能模型第三章第三章 结构化方法结构化方法5 5、数据字典、数据字典定义数据流程图中所有数据流和数据存储的数据结构。定义数据流程图中所有数据流和数据存储的数据结构。定义为:定义为:= =顺序结构:顺序结构:+ +选择结构:选择结构:【1 1】重复结构:重

15、复结构: 子界:子界:m.nm.n包括数据流条目、数据存储条目、数据项条目包括数据流条目、数据存储条目、数据项条目第三章第三章 结构化方法结构化方法6 6、加工的描述、加工的描述 (1 1)判定表)判定表(2 2)、)、判定树判定树3 3)、)、结构化语言结构化语言抽象和分解是结构化方法采用的两个基本手段。抽象和分解是结构化方法采用的两个基本手段。7 7、需求验证、需求验证主要任务包括需求发现、分析和验证,最终形成系统主要任务包括需求发现、分析和验证,最终形成系统的软件需求规格说明书。的软件需求规格说明书。 验证每一个需求满足验证每一个需求满足5 5个性质:个性质:必要的、无歧义的、可测的、可

16、跟踪的、可测量的必要的、无歧义的、可测的、可跟踪的、可测量的 验证需求规格说明书满足验证需求规格说明书满足4 4个性质:个性质:重要性和稳定性程度、可修改的、完整的、一致的重要性和稳定性程度、可修改的、完整的、一致的第二节第二节 结构化设计结构化设计主要任务是在需求分析的基础上,定义满足需求所主要任务是在需求分析的基础上,定义满足需求所需要的结构,确定怎么做的问题。需要的结构,确定怎么做的问题。分为总体设计和详细设计分为总体设计和详细设计总体设计中通常以变换设计为主,事务设计为辅。总体设计中通常以变换设计为主,事务设计为辅。1 1、总体设计的任务总体设计的任务(引入模块和模块调用)(引入模块和

17、模块调用)把系统的功能需求分配到一个特定的软件体系结构把系统的功能需求分配到一个特定的软件体系结构中。中。2 2、表达软件体系结构的工具表达软件体系结构的工具(1 1)yourdonyourdon模块结构图模块结构图(2 2)层次图)层次图(3 3)HIPOHIPO图图(H H图图+IPO+IPO图图 )8 8、模块化(、模块化(一部分是接口,一部分是模块体,目标是基于高内聚低耦合的原则一部分是接口,一部分是模块体,目标是基于高内聚低耦合的原则,提高模块的独立性。,提高模块的独立性。)“分而治之分而治之”和和“抽象抽象”。把一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程把

18、一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程称为模块化。称为模块化。模块化是系统设计基本原理模块化是系统设计基本原理/ /原则之一。原则之一。9 9、内聚、内聚(Cohesion)(Cohesion)是指是指一个模块内部个一个模块内部个成分之间相互关联程度的度量。成分之间相互关联程度的度量。(1 1)偶然内聚)偶然内聚 可维护性最差可维护性最差 (2 2)逻辑内聚)逻辑内聚(3 3)时间内聚)时间内聚(4 4)过程内聚()过程内聚(通过流程图确定模块的划分通过流程图确定模块的划分)(5 5)通信内聚()通信内聚(操作同一数据集操作同一数据集)(6 6)顺序内聚)顺序内聚

19、(7 7)功能内聚)功能内聚 可维护性最好可维护性最好 耦罗时,郭通顺,功耦罗时,郭通顺,功1010、模块耦合、模块耦合耦合耦合(coupling)(coupling)是对是对两个模块之间联接两个模块之间联接程度的一种度量。程度的一种度量。(1 1)内容耦合()内容耦合(直接修改或操作直接修改或操作)(2 2)公共耦合()公共耦合(引用一个全局数据项引用一个全局数据项)(3 3)控制耦合()控制耦合(传递控制信号传递控制信号)(4 4)标记耦合()标记耦合(传递公共参数传递公共参数)(5 5)数据耦合()数据耦合(传递数据传递数据)原则原则是:是:尽量用数据耦合,少用控制耦合,限制公共耦合的范

20、围,避免尽量用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。使用内容耦合。 耦合是影响软件复杂程度和设计质量的一个重要因素耦合是影响软件复杂程度和设计质量的一个重要因素1111、启发式规则、启发式规则高内聚、低耦合。高内聚、低耦合。(1 1)改进软件结构,提高软件独立性。)改进软件结构,提高软件独立性。(2 2)模块规模适中)模块规模适中(3 3)力求深度、宽度、扇出、扇入适中。)力求深度、宽度、扇出、扇入适中。深度:表示其控制的层数。深度:表示其控制的层数。宽度:同一层次上模块总数的最大值。宽度:同一层次上模块总数的最大值。扇出:一个模块直接控制的下级模块的数目。扇出:一个模

21、块直接控制的下级模块的数目。扇入:有多少个上级模块直接调用它。扇入:有多少个上级模块直接调用它。原则原则:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大的扇入。的扇入。(4 4)尽量使模块的作用域在其控制域内。)尽量使模块的作用域在其控制域内。模块的控制域:这个模块本身以及所有直接或间接从属它的模块的集合模块的控制域:这个模块本身以及所有直接或间接从属它的模块的集合。模块的作用域:受该模块内一个判断所影响的所有模块的集合。模块的作用域:受该模块内一个判断所影响的所有模块的集合。(5 5)尽力降低模块接口的复杂度)尽力降低模块接

22、口的复杂度(6 6)力求模块功能可以预测力求模块功能可以预测 总体设计只声明其作用或功能,总体设计只声明其作用或功能,详细设计要提供实现该模块详细设计要提供实现该模块过程或功能的具体算法。过程或功能的具体算法。1 1、结构化程序设计方法、结构化程序设计方法旨在提高编程质量和程序质量旨在提高编程质量和程序质量3 3种结构种结构: :顺序、选择、循环。顺序、选择、循环。2 2、详细设计工具详细设计工具(1 1)程序流程图程序流程图它是历史最悠久使用最广泛的描述过程设计的方法,然而它也它是历史最悠久使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。是用得最混乱的一种方法。(2)(2)盒

23、图(盒图(N-SN-S图)图)(3)PAD(3)PAD图图(4)(4)类程序设计语言类程序设计语言PDLPDLPDLPDL也称为伪码,也称为伪码,1515、设计规约、设计规约设计规约包括概要设计规约和详细设计规约。设计规约包括概要设计规约和详细设计规约。(1)(1)概要设计规约概要设计规约指明高层软件体系结构,主要内容有:指明高层软件体系结构,主要内容有:系统环境系统环境软件模块的结构软件模块的结构模块描述模块描述文件结构和全局数据文件的逻辑结构文件结构和全局数据文件的逻辑结构测试需求测试需求第四章第四章 面向对象方法面向对象方法UML面向对象建模过程的步骤:面向对象建模过程的步骤: 统一建模

24、语言(统一建模语言(UML)支持对象方法和支持对象方法和构件方法构件方法第四章第四章 面向对象方法面向对象方法UML第一节第一节 UML术语表术语表1 1、对象(、对象(objectobject)对象(对象(objectobject)是系统中用来描述客观事物的一个实体。)是系统中用来描述客观事物的一个实体。2 2、类、类类(类(ClassClass)是具有相同属性、操作、关系和语义的一组对)是具有相同属性、操作、关系和语义的一组对象的集合,象的集合,它为属于该类的全部对象提供了同一的抽象描述,它为属于该类的全部对象提供了同一的抽象描述,其内部包括属性和服务两个主要部分。其内部包括属性和服务两个

25、主要部分。对象是类的实例对象是类的实例(InstanceInstance)。)。属性属性:对象或类的属性(对象或类的属性(attributesattributes)描述了对象的具体)描述了对象的具体特征。特征。表达客观事物:表达客观事物:类与对象、接口、协作、用况、主动类、类与对象、接口、协作、用况、主动类、构件、制品构件、制品 和节点。和节点。表达关系的术语:表达关系的术语:关联、泛化、实现和依赖关联、泛化、实现和依赖第四章第四章 面向对象方法面向对象方法UML5 5、接口、接口 接口是操作的一个集合,接口是操作的一个集合,6 6、协作、协作 协作是一个交互,涉及交互的三要素:交互各方、交互

26、方式以及交协作是一个交互,涉及交互的三要素:交互各方、交互方式以及交互内容。互内容。7 7、用况(、用况(use caseuse case)/ /用况用况 对一组动作序列的描述,系统执行这些动作应产生对特定参与者有对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。值的、可观察的结果。9 9、构件、构件 系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。第四章第四章 面向对象方法面向对象方法UML1010、制品、制品系统中包含物理信息的、可替代的物理部件。系统中包含物理信息的、可替代的物理部件。11

27、11、节点、节点节点是在运行时存在的物理元素,通常表示一种具有记忆能力和处理节点是在运行时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。能力的计算机资源。1212、关联(、关联(AssociationAssociation)关联反映了类和类之间的静态关系。关联反映了类和类之间的静态关系。 关联名关联名 导航导航 角色角色 可见性可见性 多重性:多重性(多重性:多重性(MultiplicityMultiplicity)定义了与一个对象)定义了与一个对象/ /类相联系的对象类相联系的对象/ /类出现一次,该对象类出现一次,该对象/ /类可能出现的最小和最大的数目。类可能出现的最小

28、和最大的数目。 限定符限定符 聚合:一个类是另一类的一部分。聚合:一个类是另一类的一部分。 组合:是聚合的一种特殊形式组合:是聚合的一种特殊形式 关联类关联类 约束约束第四章第四章 面向对象方法面向对象方法UML关联、泛化和细化都是依赖的变体。关联、泛化和细化都是依赖的变体。精化、跟踪、包含和扩展也是依赖的变体。精化、跟踪、包含和扩展也是依赖的变体。为了控制信息组织的复杂性,为了控制信息组织的复杂性,UML提供了组织信息的一种提供了组织信息的一种通用机制通用机制包包包是表达组合信息的术语。包是表达组合信息的术语。第四章第四章 面向对象方法面向对象方法UML第二节第二节 UML的模型表达格式的模

29、型表达格式图形化工具。(图形化工具。(一是结构图,表达静态模型结构,二是行为图,是动态结构。一是结构图,表达静态模型结构,二是行为图,是动态结构。)图的类别:图的类别:创建一个系统的创建一个系统的类图类图,要涉及,要涉及4 4方面的工作:方面的工作:(1 1) 模型化待建系统中的概念,形成类图中基本元素模型化待建系统中的概念,形成类图中基本元素(2 2)模型化待建系统中的各种关系,形成该系统的初始关系。)模型化待建系统中的各种关系,形成该系统的初始关系。(3 3)模型化系统中的协作,给出该系统的最终类图。)模型化系统中的协作,给出该系统的最终类图。(4 4)模型化逻辑数据库模式)模型化逻辑数据

30、库模式 第四章第四章 面向对象方法面向对象方法UML2 2、用况图用况图(use case use case 图)图) 用况用况是对一个参与者(是对一个参与者(actoractor)使用系统的一项功能时所进行的交互过程)使用系统的一项功能时所进行的交互过程的一个文字描述序列。的一个文字描述序列。用况图用况图是指反映是指反映活动者,系统边界活动者,系统边界所封闭的用况,及所封闭的用况,及活动者与用况活动者与用况之间之间,用况与用况用况与用况之间关系的一种图。之间关系的一种图。6 6个个模型元素:模型元素:1 1主题主题2 2用况用况3 3参与者:参与者:4 4关联关联5 5泛化泛化6 6依赖依赖

31、第四章第四章 面向对象方法面向对象方法UML3 3、状态图、状态图UMLUML把状态分为类,把状态分为类,初态、终态、和通常状态初态、终态、和通常状态顺序图是一种顺序图是一种交互图交互图,即由一组对象以及按时序组,即由一组对象以及按时序组织的对象之间的关系组成。织的对象之间的关系组成。第五章第五章 面向对象方法面向对象方法-RUP一种软件开发方法学由一种软件开发方法学由3部分组成:一是表达基本信息的术部分组成:一是表达基本信息的术语,二是组织基本信息的表达格式,三是在不同抽象层之间语,二是组织基本信息的表达格式,三是在不同抽象层之间进行进行“映射映射”的过程指导。的过程指导。UML包含前面两个

32、部分,因为它是可视化的面向对象的建包含前面两个部分,因为它是可视化的面向对象的建模语言。模语言。RUP是基于是基于UML过程指导的一种过程框架,满足过程指导的一种过程框架,满足开发方法学的第三个部分,所以开发方法学的第三个部分,所以UML和和RUP组合在一起才组合在一起才称得上是称得上是 一个面向对象开发的方法学。一个面向对象开发的方法学。RUP的特点的特点以以用况用况驱动的、以驱动的、以体系结构体系结构为中心的为中心的迭代迭代、增量增量式开发。式开发。 用况驱动用况驱动用况是能够向用户提供有价值结果的系统中的一种功能用况是能够向用户提供有价值结果的系统中的一种功能用况获取的是功能需求用况获取

33、的是功能需求 以体系结构为中心以体系结构为中心系统体系结构:是对系统语义的概括描述,对所有项目有关人员都是可系统体系结构:是对系统语义的概括描述,对所有项目有关人员都是可以理解的。以理解的。 迭代与增量(迭代与增量(初始、精化、构造和移交阶段初始、精化、构造和移交阶段)第五章第五章 面向对象方法面向对象方法-RUP核心工作流核心工作流在在RUP的每次迭代中都要经历:需求获取、分析、设计、实的每次迭代中都要经历:需求获取、分析、设计、实现和测试。现和测试。需求获取:采用用况技术来获取需求需求获取:采用用况技术来获取需求,目标:使用,目标:使用UML中的中的用况、参与者以及依赖等术语来抽象实际问题

34、,形成系统的用况、参与者以及依赖等术语来抽象实际问题,形成系统的需求获取模型。并产生该模型视角下的体系结构描述。需求获取模型。并产生该模型视角下的体系结构描述。需求分析目标:需求分析目标:在系统用况模型的基础上,创建系统分析模在系统用况模型的基础上,创建系统分析模型以及该模型视角下的体系结构描述。型以及该模型视角下的体系结构描述。分析类分为:边界类、实体类和控制类三种分析类分为:边界类、实体类和控制类三种 设计层设计层定义满足需求规约所需要的软件结构定义满足需求规约所需要的软件结构。RUPRUP的设计目标:定义满足系统的设计目标:定义满足系统/ /产品分析模型所规约需求的产品分析模型所规约需求

35、的软件结构。软件结构。第五章第五章 面向对象方法面向对象方法-RUPRUPRUP的实现的实现RUPRUP实现的目标:实现的目标:(1 1)基于设计类和子系统生成构件)基于设计类和子系统生成构件(2 2)对构成进行单元测试)对构成进行单元测试(3 3)进行集成和连接)进行集成和连接(4 4)把可执行的构件映射到部署模型)把可执行的构件映射到部署模型RUPRUP实现的主要活动:实现的主要活动:实现体系结构实现体系结构集成系统集成系统实现子系统实现子系统实现类实现类完成单元测试完成单元测试第五章第五章 面向对象方法面向对象方法-RUPRUPRUP的测试的测试 168168页表格页表格包括:内部测试、

36、中间测试和最终测试。包括:内部测试、中间测试和最终测试。RUPRUP测试包括的主要活动:测试包括的主要活动:计划测试计划测试设计测试设计测试实现测试实现测试执行集成测试执行集成测试执行系统测试执行系统测试评价测试评价测试第第六六章章 软件测试软件测试错误是不可避免的,发现错误(错误是不可避免的,发现错误(软件测试)是保证软件软件测试)是保证软件过程质量和软件产品质量的基础。过程质量和软件产品质量的基础。 软件评估可分为静态评估和动态评估。评审、走查和形软件评估可分为静态评估和动态评估。评审、走查和形式化证明等是静态评估技术,式化证明等是静态评估技术,而软件测试是一种常用的动而软件测试是一种常用

37、的动态评估技术,有两种:一是基于程序路径的态评估技术,有两种:一是基于程序路径的“白盒白盒”测试测试,二是基于规约的,二是基于规约的“黑盒黑盒”测试技术。测试技术。软件测试的首要目标是预防错误,第二目标只能是发现软件测试的首要目标是预防错误,第二目标只能是发现错误。错误。第第六六章章 软件测试软件测试人们关于软件测试目的的认识,经历了人们关于软件测试目的的认识,经历了5个阶段:个阶段:1、认为软件测试和软件调试、认为软件测试和软件调试没有什么区别。没有什么区别。2、认为测试是为了表明软件、认为测试是为了表明软件能正常工作能正常工作。3、认为测试是为了表明、认为测试是为了表明不能正常工作。不能正

38、常工作。4、认为测试仅是为了将已察觉的错误、认为测试仅是为了将已察觉的错误风险减少风险减少到一个可到一个可接受的程度。接受的程度。5、认为测试、认为测试不仅仅是一种行为,而不仅仅是一种行为,而 是一种理念,是一种理念,那测试那测试是产生是产生 低风险软件的一种训练。低风险软件的一种训练。第第六六章章 软件测试软件测试第第六六章章 软件测试软件测试测试法分为黑盒法测试法分为黑盒法又叫结构测试技术,典型的是路径测试技术;又叫结构测试技术,典型的是路径测试技术;白盒法白盒法又称功能测试技术,又称功能测试技术,包括事务处理流程技术、状态测试包括事务处理流程技术、状态测试技术、定义域测试技术。白盒测试技

39、术依据的是程序的技术、定义域测试技术。白盒测试技术依据的是程序的逻辑结逻辑结构构,而黑盒测试技术依据的是,而黑盒测试技术依据的是软件行为的描述软件行为的描述。功能测试法又具体分为功能测试法又具体分为等价类法,边值分析法,因果图法等价类法,边值分析法,因果图法和错和错误猜测法误猜测法常用的几个覆盖标准有:常用的几个覆盖标准有:语句覆盖、判定覆盖、条件覆盖、语句覆盖、判定覆盖、条件覆盖、判定判定/条件覆盖、条件组合覆盖。条件覆盖、条件组合覆盖。第第六六章章 软件测试软件测试软件测试是按照与系统开发相反的方向来进行的。依次为:软件测试是按照与系统开发相反的方向来进行的。依次为:单元测试单元测试(模块

40、测试模块测试)、集成测试、有效性测试和系统测试、集成测试、有效性测试和系统测试。单元测试又称模块测试,用于测试单个程序模块,确定模块单元测试又称模块测试,用于测试单个程序模块,确定模块的逻辑和功能是否正确。该测试的逻辑和功能是否正确。该测试以详细设计文档以详细设计文档为指导,测试为指导,测试模块内的秣控制路径。模块内的秣控制路径。单元测试采用单元测试采用白盒白盒测试技术。测试技术。1 1、模块接口、模块接口2 2、局部数据结构、局部数据结构3 3、重要的执行路径、重要的执行路径4 4、错误执行路径、错误执行路径需要建立驱动模块和承接模块。需要建立驱动模块和承接模块。第第六六章章 软件测试软件测

41、试集成测试的集成测试的目标是发现模块之间接口的错误目标是发现模块之间接口的错误,也即模块之,也即模块之间的数据和控制传递。集成测试是与单元测试平行进行的。间的数据和控制传递。集成测试是与单元测试平行进行的。集成测试采用黑盒测试技术集成测试采用黑盒测试技术。以以主控模块主控模块作为测试驱动模块。作为测试驱动模块。 自顶向下的集成测试:需要设计自顶向下的集成测试:需要设计承接模块承接模块 自底向上的集成测试:需求设计自底向上的集成测试:需求设计驱动模块驱动模块有效性测试有效性测试目的:目的:发现软件实现的功能与需求规格说明书不一致的错发现软件实现的功能与需求规格说明书不一致的错误。误。方法:采用方

42、法:采用黑盒测试黑盒测试技术技术 第第七七章章 软件生存周期过程与管理软件生存周期过程与管理软件生存周期软件生存周期:软件产品或系统的一系列全周期。从形成软件产品或系统的一系列全周期。从形成概念开始,历经开发、交付使用、在使用中不断修订和演概念开始,历经开发、交付使用、在使用中不断修订和演化,直到最后被淘汰,让位于新的软件产品。化,直到最后被淘汰,让位于新的软件产品。按过程主体,将软件周期分为:按过程主体,将软件周期分为:基本过程、支持过程和组基本过程、支持过程和组织过程。织过程。1 1、基本过程、基本过程指那些与软件生产直接相关的活动集。指那些与软件生产直接相关的活动集。获取过程、供应过程获

43、取过程、供应过程、开发过程、运行过程、开发过程、运行过程、维护过程维护过程2 2、支持过程、支持过程文档过程、配置管理过程、质量保证过程、文档过程、配置管理过程、质量保证过程、验证过程、验证过程、确确认过程、联合评审过程、审计过程、问题解决过程认过程、联合评审过程、审计过程、问题解决过程3 3、组织过程、组织过程与软件生产组织有关的活动集。与软件生产组织有关的活动集。管理过程管理过程、基础设施过程基础设施过程、培训过程、改进过程、培训过程、改进过程第第七七章章 软件生存周期过程与管理软件生存周期过程与管理软件生存周期模型软件生存周期模型:瀑布、增量、演化、螺旋和喷泉模型瀑布、增量、演化、螺旋和

44、喷泉模型瀑布模型瀑布模型:将:将软件生存周期的各项活动规定为按固定顺序而软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工件,形如瀑布流水,最终得到软件产品。连接的若干阶段工件,形如瀑布流水,最终得到软件产品。瀑布模型的贡献:瀑布模型的贡献:1 1、在决定系统怎样做之前存在一个需求阶段,它、在决定系统怎样做之前存在一个需求阶段,它鼓励对系统做什么有一鼓励对系统做什么有一个规约。个规约。 2 2、在系统构造之前有一个设计阶段,它、在系统构造之前有一个设计阶段,它鼓励规划系统结构鼓励规划系统结构3 3、每一阶段都有评审,、每一阶段都有评审,允许获取方和用户的参与允许获取方和用户的参与4 4、

45、前一步作为下一步被认可的、文档化的基线前一步作为下一步被认可的、文档化的基线瀑布模型存在的问题:瀑布模型存在的问题:1 1、要求要求客户能够客户能够完整、正确和清晰地表达完整、正确和清晰地表达他们的他们的需求需求,并要求开发人员,并要求开发人员一开始就理解这一应用。一开始就理解这一应用。2 2、由于需求的不确定性由于需求的不确定性,使设计、编码和测试阶段都可能发生延期,并,使设计、编码和测试阶段都可能发生延期,并且当项目接近结束时,且当项目接近结束时,出现了大量的集成和测试工作出现了大量的集成和测试工作。3 3、在开始的阶段中,很难评估真正的进度状态在开始的阶段中,很难评估真正的进度状态,并且

46、直到项目结束之前,并且直到项目结束之前都不能演示系统的功能。都不能演示系统的功能。4 4、在一个项目的早期阶段,过分地强调了基线和里程碑处的文档,并、在一个项目的早期阶段,过分地强调了基线和里程碑处的文档,并可可能需要花费更多的时间用于建立一些用处不大的文档能需要花费更多的时间用于建立一些用处不大的文档。第第七七章章 软件生存周期过程与管理软件生存周期过程与管理增量模型增量模型增量模型融合了瀑布模型的基本成分(重复应用)和原型实增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每

47、一个线性序列产生软件的一个可发布的序列,每一个线性序列产生软件的一个可发布的“增量增量”。增量模型增量模型适用于适用于“技术驱动技术驱动”的软件产品开发的软件产品开发优点:优点:1、第一个版本所用的时间少,、第一个版本所用的时间少,减少增量开发小系统所承担的风险减少增量开发小系统所承担的风险。2、可以减少用户需求的变更可以减少用户需求的变更。3、允许增量投资允许增量投资。缺点:缺点:增量模型存在以下缺陷:增量模型存在以下缺陷: 1 1、如果没有对用户的变更要求进行规划,、如果没有对用户的变更要求进行规划,可能产生后来增量的不稳可能产生后来增量的不稳定定。2 2、如果需求不像早期思考的那样稳定和

48、完整,、如果需求不像早期思考的那样稳定和完整,可能要重新开发和发可能要重新开发和发布布。3 3、可能会增大管理成本,超出组织的能力可能会增大管理成本,超出组织的能力。第第七七章章 软件生存周期过程与管理软件生存周期过程与管理演化模型演化模型演化模型是一种全局的软件(或产品)生存周期模型。属于演化模型是一种全局的软件(或产品)生存周期模型。属于迭代开发方法。迭代开发方法。 主要是针对事先不能完整定义需求的软件开发主要是针对事先不能完整定义需求的软件开发的。的。该模型可以表示为:每一次迭代该模型可以表示为:每一次迭代( (需求需求-设计设计-编码编码-测试测试-集成集成) ) 根据用户的基本需求,

49、通过快速分析构造出该软件的一个初根据用户的基本需求,通过快速分析构造出该软件的一个初始可运行版本,始可运行版本,这个初始的软件通常称之为这个初始的软件通常称之为原型原型,然后根据,然后根据用户在使用原型的过程中提出的意见和建议对原型进行改进,用户在使用原型的过程中提出的意见和建议对原型进行改进,获得原型的新版本。获得原型的新版本。第第七七章章 软件生存周期过程与管理软件生存周期过程与管理螺旋模型螺旋模型:是在:是在瀑布模型和演化模型瀑布模型和演化模型的基础上,加入两者所的基础上,加入两者所忽略的忽略的风险分析风险分析所建立的一种软件开发模型。所建立的一种软件开发模型。这种模型的每一个周期都包括

50、这种模型的每一个周期都包括需求定义、风险分析、工程实需求定义、风险分析、工程实现和评审现和评审4个阶段,由这个阶段,由这4个阶段进行迭代个阶段进行迭代第第七七章章 软件生存周期过程与管理软件生存周期过程与管理喷泉模型喷泉模型喷泉模型是一种以用户需求为动力,以对象为驱动的模型,喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于采用主要用于采用面向对象技术面向对象技术的软件开发项目。该的软件开发项目。该模型认为软模型认为软件开发过程自下而上周期的各阶段是件开发过程自下而上周期的各阶段是相互迭代和无间隙的特相互迭代和无间隙的特性性。 喷泉模型不像喷泉模型不像瀑布模型瀑布模型那样,需要分析活动结束

温馨提示

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

评论

0/150

提交评论