软件工程-原理方法与应用第三版重点

上传人:w****4 文档编号:58123333 上传时间:2022-02-26 格式:DOCX 页数:47 大小:267.40KB
收藏 版权申诉 举报 下载
软件工程-原理方法与应用第三版重点_第1页
第1页 / 共47页
软件工程-原理方法与应用第三版重点_第2页
第2页 / 共47页
软件工程-原理方法与应用第三版重点_第3页
第3页 / 共47页
资源描述:

《软件工程-原理方法与应用第三版重点》由会员分享,可在线阅读,更多相关《软件工程-原理方法与应用第三版重点(47页珍藏版)》请在装配图网上搜索。

1、软件工程-原理、方法与应用【第 三版】重点第一章绪论1. 软件:是能够完成预定功能和性能的可执行的计算机诚信度。包括使程序正常执行所需的数据,以及有关描述程 序操作和使用的文档。即:软件 =程序+文档2. 软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修。3. 软件工程方法学:把在软件生命周期全过程中使用的一整套技术方法的集合。三要素:方法、工具、过程4. 软件工程学的范畴:软件开发技术(软件开发方法学、软件工具、软件工程环境)、软件工程管理(软件管理学、软件经济学、度量学)。5. 软件工程:是指导计算机软件开发和维护的工程学科。它采用工程的概念、原理、技术和方法来开发与维

2、护软件, 目的是为了实现按照预期的进度和经费完成软件生产计 戈同时提高软件的生产率和可靠性。6. 软件的发展:大体经历了 程序、软件、软件产品3个阶段。7. 工具和方法是软件开发技术的2大支柱。8.3种编程泛型:过程式编程泛型、面向对象编程泛型、基 于构件技术的编程泛型9. 面向对象程序设计中,数据和操作被封装在一个对象中,对象之间则是通过消息相互联系。10. 构件:标准化/规格化的对象类。11. 3种编程泛型的差异:粒度由小到大依次是:过程式编 程范式、面向对象编程范式、基于构件的编程泛型。12. 软件工程的分化:1、传统软件工程2、面向对象软件工 程3、基于构件的软件工程13. 消除软件危

3、机的途径:正确认识计算机软件;充分 认识到软件开发是一种组织良好、管理严密、各类人员 协同工作的工程项目;推广使用在实践中总结出来的开 发软件的成功的技术和方法;开发和使用更好的软件 工具。第二章软件生存周期与软件过程1. 软件生存周期:计划、开发、运行 3个时期。需求分析-软件分析-软件设计-编码测试-软件测试- 运行维护2. 需求分析(用户视角):功能需求、性能需求、环境约束、外部接口描述。3. 软件分析(开发人员视角):建立与需求模型一致的,与实现无关的软件分析模型。4. 软件设计:总体设计/概要设计、详细设计(确定软件的数据结构和操作)。5. 软件测试:单元测试、集成测试、系统测试。6

4、. 软件开发方法可区分:形式化方法、非形式化方法。开发模型特点场合瀑布模型(历史悠久、广为人知,它的优势在于它是规范的、 文档驱动的方法;这种模型的问题是,最终开发的软件产品可能并不是客户 真正需要的)线性模型,每个阶段必须完成 固定文档需求明确的中小型软件开发快速原型模型(正是为了克服瀑布模型的缺点提出来的,他通过快速构建起一个可以在计算机上运行的原型系统,让用户使用原型并收集用户反馈意见的方法,获取用户的真实需求)用户介入早,通过迭代完善用户需求,应用快速开发工具需求模糊的小型软件开发增量模型(具有可在软件开发的早期阶使投资获得明显回报和 交易维护的优点,但是,要求软件具有开放的结构是使用

5、这种模型固有的困 难。)每次迭代完成一个增量,可用 于OO开发容易分块的大型软件开发螺旋模型(适用于内开发的大型软件项目,但是只有在开发人员具有风险分 析和排除风险的经验及专门知识时,使用这种模型才会成功。)典型迭代模型,重视风险分析,可用于OO开发具有不确定性的大型软件开发构件集成模型(面向对象基于构件库,融合螺旋模型的特 征,支持软件开发,迭代方法,软件复用思想)软件开发与构件开发平行进 行,主要用于OO开发领域工程, 件开发,主行业的中型软它要用于00开发转换模型(是将形式化软件开发和程序自动生成技术相结合的 一种软件开发模型。)形式化的需求规格说明书,自 动的程序变换系统理想化的模型,

6、尚无成熟工具支持净室模型(是一种形式化的增量开发模型,其基本思想是力求 在分析和设计阶段就消除错误,确保正确,然后在无缺陷或洁净的状态下实 现软件的制作。)形式化的增量开发模型,在洁净状态下实现软件的制作开发团队熟悉形式化方法,中小型软件开发7. 形式化开发模型:转换模型、净室模型8. 软件可行性研究:经济可行性、技术可行性、运行可行性、法律可行性。9. 可行性研究的步骤:对当前系统进行调查研究、导出新系统的解决方案、提出推荐方案、编写可行性论证报告。10. 可行性论证报告的内容:系统概述、可行性分析、结论 意见。11. 软件风险分析包括:风险识别(项目风险、技术风险、 商业风险)、风险预测、

7、风险的驾驭和监控。12. 软件计划的7种类型:项目实施计划、质量保证计划、 软件测试计划、文档编制计划、用户培训计划、综合支 持计划、软件分发计划。第三章结构化分析与设计1. 瀑布模型的生命周期:需求定义与分析-总体设计-详细设计-编码-测试-维护2. 系统的开发流程(SA和SD流程):结构化分析(工具:DFD PSPEC -分析模型(分层DFD 图)+SRS结构化设计(工具:SC图(映射)-初始设计模型(初 始SC图)初始设计模型(初始SC图)(优化)最终设计模型(最终SC图)3. SA需求分析的两项基本任务:建立系统分析模型、编写SRS4. 分析模型组成:功能模型、数据模型、行为模型3种,

8、5. 抽象 和 分解 是结构化分析的主要指导思想,细化的实质是分解。分解 和 细化 是软件设计的策略6. SD阶段把分析模型中的DFD图转换为 最终SC图。7. 传统软件的开发技术:结构化设计、模块设计。8. 软件设计:总体设计/概要设计(初始SC图、最终SC图)、详细设计(用逐步细化的方法,完成模块的说明)。9. 需求分析的步骤:需求获取、需求提炼、需求描述、需求验证。10. DFD图不能表示程序的控制结构(如选择、循环结构)11. 加工规格说明通常用结构化语言、判定表、判定树作为描述工具12. 软件中的数据分为3类:数据项(数据元素)、数据流(多个相关数据项)、数据文件和数据库。13. 数

9、据字典的组成:数据项、数据流、数据存储(文件或数 据库)、加工(处理逻辑)、外部项(人、物或其它软件系 统)。14. SD模型是由SA模型映射而来的。SA模型的数据字典可转换为待开发系统的数据 设计数据流图可转换为体系结构设计(SC图)与接口设计加工规格说明可转换为模块内部的详细过程设计15. SD模型的组成:从上到下依次是:过程设计、接口设计、体系结构设计、数据设计16. 结构化分析的基本步骤:自顶向下对系统进行功能分解,画出 DFD图;由后向前定义系 统的数据和加工;编制 DD和 PEPES写出SRS17. 把不需要分解的加工成为基本加工。把逐步分解成为“自 顶向下,逐步细化”。18. D

10、FD的优点:便于实现,便于使用。19. 传统的软件设计可细分为:面向数据流设计(SD方法)、 面向数据结构设计(Jackson方法)。20. 用数据流图表示逻辑模型,在设计阶段,按照数据流图的不同类型(变换型、事务型)转换为相应的软件结构21. 结构化设计通常从DFD图到SC图的映射开始。22.面向数据流的设计方法:从图到SC图的映射的4个步变授和DFD爭帖DFD变换甘析事务分析初始scDFD骤:1、复审DFD图,必要时可再次进行修改或细化;2、鉴别DFD图的结构特征:事务?变换?;3、按照规则,把DFD图为初始的SC图;4、改进初始的SC图23. 变换型结构:由输入、变换中心和输出三部分组成

11、 事务型结构:具有在多种事务中选择执行某类事物的能力。24. 变换映射的步骤:划分DFD图的边界、建立初始SC图的 框架、分解SC图的各个分支。事务映射的步骤:在 DFD图上确定边界、画出SC图框架、分 解和细化接受分支和发送分支。25. 优化结构设计的指导规则:对模块分割、合并和变动调 用关系的指导规则、保持高扇入/低扇出的原则、作用域 /控制域规则。26. 模块设计(详细设计)的主要任务是编写软件的模块设 计说明书。目的是确定模块采用的算法和块内数据结构。27. 模块设计的原则:清晰第一的设计风格、结构化的控制 结构、逐步细化的实现方法。28. 结构化程序设计原理和逐步细化的实现方法是完成

12、模块 设计的基础。第四章面向对象和UML1. 面向对象的基本特征:抽象、圭寸装、集成、多态。2. 面向对象开发的优点:提高软件系统的可复用性、可扩展性、可维护性、面向对象符合人类习惯的思维方式。3. 元素之间的联系有:关联、泛化、依赖、实现、聚集、组合。4. UML的4个抽象层次:用户模型、模型、元模型、元元模型。5. UML的2类图:静态图(用例图、类图、对象图、构件图、部署图); 动态图(状态图、时序图、协作图、活动图)UML的5种视图:用例视图、逻辑视图、进程视图、构件视图、 部署视图。6. UML的特点:统一标准、面向对象、表达能力强,可视化。7. UML模型作为测试阶段的依据:单元测

13、试使用类图和类规格说明;集成测试使用构件图和协作 图;系统测试使用用例图来验证系统行为。8. UML中用例图由系统边界、用例、参与者、关联组成。用例之间存在的关系:扩展关系、包含关系。包与包之间的关系有:依赖、泛化。9. 根据类/对象之间的具体情况,可分为普通关联,递归关联、多重关联、有序关联、限制关联、或关联、关联类10. 消息(类里面的方法加参数):简单消息、同步消息、异 步消息。状态图有:初态、终态、中间态。11. 时序图中的消息可以是信号或操作调用。12. 时序图着重体现交互的时间顺序;协作图着重体现交互 对象间的静态链接。13. 时序图和协作图适合描述单个用例中几个对象的行为;活动图

14、适合表现跨越多用例或多线程的复杂行为。14. 构件图可以用来表现、编译、链接、执行时构件间的依 赖关系。15. UML用图表示语法,用元模型表示语义,米用模型来描 述系统的结构(静态特征)以及行为(动态特征)。第五章需求工程和需求分析1. 软件需求的3个层次:业务需求、用户需求、功能需求。软件项目中40%60的问题源自软件需求阶段。2. 软件需求的6个特性:功能性、可用性、可靠性、性能、可支持性、设计约束。3. 需求分析的步骤:需求获取、需求建模、需求描述(编写SRS、需求验证。4. 需求分析的主要任务:建立需求模型。需求分析是迭代过程。常见模型有:用例图、数据流图、实体联系图、控制流图、状

15、态转换图。5. 需求获取的方法:1、建立联合分析小组2、用户访谈。6. 获得用例的方法通过问问题:1、系统用户是谁?系统维护时谁?从哪获得信息?给谁?7. 需求建模方法:结构化分析建模方法、面向对象分析建模。8. 结构化需求模型由3部分组成:功能模型(数据流图、加工规格说明书)、数据模型(数据字典、ER图)、行为模 型(状态转换图、控制流图、控制规格说明书)。9. 面向对象需求模型:用例模型(用例图、用例规约)、补充规约、术语表。10. 面向对象需求建模的步骤:画用例图、写用例规约、描 述补充规约、编写术语表、调整优化。11. 用例规约文档的内容:简要说明、事件流、特殊需求、 前置条件和后置条

16、件。12. 用例规约的检查:功能需求的完备性、模型是否易于理 解、是否存在不一致性、避免二义性。13. 软件需求规格说明书SRS的内容:引言、信息描述、功 能描述、行为描述、质量保证、接口描述、其他描述。14. 需求管理的流程:需求确认、需求跟踪、需求变更。需 求跟踪有两种方式,正向跟踪与逆向跟踪。需求变更的流程:变更申请、审批、更改、更新确认。第六章面向对象分析1. 建立面向对象分析模型步骤:1、建立类/对象层(抽象出类和对象)、2、建立属性层(设计静态属性和关系)、3、 建立服务层(定义动态属性和消息通信)、4、建立结构 层(定义层次结构关系)、5、建立主题层2. OOA方法的共同特征:类

17、和类层次的表示、建立对象-关系 模型、建立对象-行为模型。3. 面向对象开发的全过程:00A(分析)、00(设计)、OOP(编码)、00(测试)。4. 用例模型是面向对象分析最常用的一种模型。5. 分析类的类型:边界类、控制类、实体类。6. 每个参与者与用例之间确定一个边界类,每个用例设置一个控制类,而实体类为现实生活中的对象,类(属性与 方法)或用于保存和更新信息的有关对象。7. 边界类包括:用户界面类、系统接口类、设备接口类。如事务管理器、资源协调器、错误处理器都可为控制类。8. 控制类分离边界类和实体类,可用来建立系统的动态行为模型。实体类用于保存和更新一些对象的有关信息。9. 为分析类

18、分配职责是00D勺重点。实体类具有持久性。10. 对象-关系模型的内容:分析类的属性、分析类的关联、 分析类图、分析类的合并。(用类图来表示)11. 对象行为模型用状态转换图、时序图、协作图、活动图 来表示。12. 面向对象分析时:1、确定分析类,2、静态模型建立画 类图,3、动态模型建立画时序图和协作图。13. 时序图中的元素有:对象、对象生命线、消息。协作图 中的元素有:对象、链接、消息流。14. 面向对象分析的任务是:将需求阶段产生的需求模型转 换为软件分析模型。面向对象设计的任务是:将分析阶段建立的分析模型转换为软件设计模型。第七章面向对象设计1. 软件设计的基本概念:模块(拥有明确定

19、义的输入、输出和特性的程序实体)与构件、抽象与细化、信息隐藏、 软件复用。2. 软件设计的基础:分析阶段对目标系统的数据、功能、行为建模。3. 软件设计的任务:把分析阶段产生的分析模型转换为软件设计模型。4. 软件设计包括:数据设计、体系结构设计、接口设计、过程设计。5. 面向对象设计准则:模块化;抽象;信息隐藏;弱耦合;强内聚;可重用6. 分解和模块独立性是实现模块设计的重要指导思想。7. 模块的独立性从2个方面度量:模块本身的内聚、模块之间的耦合。8. 内聚分类:低内聚(偶然性内聚、逻辑性内聚、时间性内聚)、中内聚(过程性内聚、通讯性内聚)、高内聚(顺序性内聚、功能性内聚)。9. 耦合分类

20、:弱耦合(非直接耦合、数据耦合、特征耦合)中耦合(控制耦合)、较强耦合(外部耦合、公共耦合) 强耦合(内容耦合)。10. 一个模块,一个功能 是模块化设计的一条准则。11. OO设计模型由系统架构层、类和对象层、消息层、责任 层4个层次组成。12. 面向对象设计中,数据和过程被封装为类/对象的属性和 操作;接口被封装为对象间的消息,而体系结构的设计 则体现为系统的技术基础设施和具有控制流程的对象间的协作。13. 传统的软件设计任务包括:概要设计和详细设计14. 概要设计(总体设计):包括软件的结构和接口设计,并 编写概要设计文档。详细设计,确定模块内部的算法和 数据结构,产生描述各模块程序过程

21、的详细文档。每个 阶段完成的文档都必须经过复审。15. 00D勺软件设计任务可划分为2个层次:系统架构设计、 系统元素设计。16. 系统架构设计的内容:系统高层结构设计、确定设计元 素、确定任务管理策略、实现分布式机制、设计数据存 储方案、人机界面设计。系统元素设计的内容:子系统 设计、分包设计、类/对象设计。17. 常用的架构模式有:层次架构、模型-视图-控制(MVC 架构、管道-过滤器架构、黑板架构。18. 面向并行需求,任务管理策略主要 3种解决方案:多处 理机方案、操作系统方案、应用程序方案。19. 分包的原则:将边界类打包、将功能相关的类打包。高 内聚-低耦合的原则,包之间的耦合表现

22、为依赖关系。20. a向b发送消息的必要条件是a能够引用b,a可以通过 4种方式引用b,对应于从a到b的4种连接可见度:1、全局:b是可以在全局范围内直接引用的对象。2、参数:b作为a的某一项操作的参数或返回值。3、局部:b在a的某一操作中充当临时变量。4 、域:b作为a的数据成员。21. 操作的可见性:公有:除了累本身以外,操作对其他模 型元素也是可见的;也可以用“ +”表示;保护:操作只对类本身、它的子类也是可见的; 也可以用“ #”表示。私有:操作只对类本身是可见的,也可以用“一”表示。第八章编码和测试1. 编码的风格:1、追求“聪明”和“技巧”-提倡“简明”和“直接” 2、使用标准的控

23、制结构 3、清晰的前 提下求取效率2. 编码的目的:设计模型(不可执行的)-(编码)源程序-可执行代码3. 选择编码语言的标准:1、应用领域2、算法与计算复杂性3、数据结构的复杂性4、效率的考虑4. 测试和纠错:测试(testing )的目的与任务:目的:发现程序的错误;任 务:通过执行程序,暴露潜在的错误。纠错(debugging )的目的与任务:目的:定位和纠正错误; 任务:消除软件故障,保证程序的可靠运行。5. 测试的特性:挑剔型、复杂性、不彻底性、经济型。6. 测试分类:静态分析(静态分析器分析、代码评审(代码会审、走查、办公桌检查);动态测试(黑盒测试(功能测试)、白盒测试(结构测试

24、)c7. 黑盒测试分类(根据被测试程序功能来进行测试):等价类法、边界值法、错误猜测法。8. 白盒测试分类(以程序结构为依据的测试方法):路经测试(点覆盖、边覆盖、路径覆盖)、逻辑覆盖测试(语句 覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合发砚错误的能力语句覆盖每条语匂至少执行一次判走環盖每判矩的海个分支至少执存次遥件頊盖每一判宦中的毎个聚件,分别按*直片、 欄假歩至少各执行一次判定漆件 覆盖同时満足判定覆盖和条件覆盖的更求条件组合求出判走中所有条件的各种可能组合信. 每一可能的養呷组合至少执行一次第九章软件维护毗;iU血1. 决定软件可维护性的因素修改数据的副作2. 软件副作用的类型:

25、修改编码的副作用、 用、修改文档的副作用。3什么是再工程:将新技术和新工具应用于老的软件的一种 较“彻底”的预防性维护。4. 软件配置项包括:程序(源代码和可执行程序),文档,数据5. 基线(Baseline) 是软件文档或源码(或其它产出物)的一个稳定版本,它是进一步开发的基础。6. 维护的代价i.有形代价:ii.无形代价:占用资源以致延误开发;修改不及时引起用户不满;维 护引入新错误,降低了软件质量;等等。维护工作量的经验模型:M = P + KeA(c-d)其中:M =维护用的总工作量;P =生产性活动(如. 分析,评价,修改设计,编码,测试等);K = 经 验系数;c=复杂度(非结构化

26、设计和缺少文档会增加复 杂度)d = 维护人员对软件的熟悉程度.第十章软件复用1.软件复用的定义:(SR)定义为利用工程知识或方法,由一 已存在的系统,来建造一新系统。目的:这种技术,可 改进软件产品质量和生产率。还有软件检查、软件计量、 软件可靠性、软件可维修性、软件工具评估和选择等。2. 软件复用的目的是能更快、更好、成本更低地生产软件制品。3. 按照可复用的粒度,软件制品从小到大分为以下几类:源代码复用(高级语言编写的源代码)、软件体系结构复用 (已有软件的体系结构)、应用程序生成器(对整个软件 体系结构、相应的子系统、特定的数据结构和算法)、领 域特定的软件体系结构的复用(特定领域中存

27、在的公共 体系结构及其构件)。4. 领域:指的是一组具有相似或相近软件需求的应用系统所覆盖的功能区域。领域工程:通过领域分析(domain an alysis) 找出最优复用, 对它们进行设计和构造,形成为可复用构件,进而建立大 规模的软件构件仓库的过程。5. 横向复用:是指复用不同应用领域中的软件元素。纵向复用:是指在一类具有较多公共性的应用领域之间进行软 件构件进行复用。6. 领域分析:领域分析是在特定应用领域寻找最优复用,以公共对象、类、子集合和框架等形式进行标识、分析和 规约。目标:是获得领域分析模型。7. 构件应具有的特征:通用性、可变性、易组装性;基于面向对象技术的复用通用构件8.

28、 领域构件的设计框架:标准数据:标识标准的全局数据结构;标准接口协议:三个层次(构件内、夕卜、人机接口); 程序模板:成形的结构模型作为新程序的体系结构设计 的模板9. 几种流行的构件技术:组件对象模型技术(COM)、公共对象请求代理体系结构(CORB)开放式文档接口。10. 建立可复用构件库目前最常用的有三种分类模式 :枚举 分类、呈面分类(呈面=8)、属性-值分类。11. 应用系统工程(ASE:定义:在基于构件的软件开发中, 通过复用构件系统开发某个特定应用系统的构件工程。12. ASE过程的基本步骤:获取需求(建立用例模型)、分析(用用例模型输入来组装和特化分析构件)、设计应用系 统(用

29、分析模型输入来组装和特化设计构件)、实现应用 系统(用设计模型输入来组装和特化实现构件)、测试应 用系统(组装和特化测试构件,测试应用系统)、应用系 统打包。13. OO方法对软件复用的支持: OOA模型、OOA与OO的分 工、对象的表示、一般-特殊结构、整体-部分结构、 实例连接、类描述模板、用例。14. 复用技术对OC方法的支持:类库、构件库、构架库、工具、00A过程。题目1多模块程序的测试有哪些层次?各层测试主要解决 什么问题?解答:多模 块测 试的 层次所 处 时 段解决的问题涉及测试方 法成果单元 测试/ 模块 测试编 码 阶 段1. 对模块代码进行编译,发现并纠正其语法错误;2.

30、进行静态分析,验证模块结构及其内 部调用序列是否正确;3. 确定模块的测试策略,并据此设计一 组测试用例和必要的测试软件;4. 用选定的测试用例对模块进行测试, 直至满足测试终止标准为止;5. 注重执行路径、岀错处理路径、局部 数据结构、模块的对外接口的测试6. 编制单元测试报告。黑盒测试程序夕卜 部测试、功能 性测试测试报告白盒测试程序内 部测试、覆盖 测试集成测试集 成 测 试 阶1. 制订集成测试实施策 略2. 确定集成测试的实施 步骤,设计测试用例3. 逐地添加模块,进行模块(子系统 或小系统)集 成测试;训练 驱动与桩的 设计、组合及已组 装软 件段测试集成测试。高确集1.进步验证软

31、件的有已确级认成效性,即验证软件的功认软测 试测试测 试 阶 段能和性能是否与用户的要求致件系验1.测试是否与硬件协调系统的性能可运统收运行检验和软件行的测试阶 段2. 测试是否和原来就有 的其它软件协调运行3. 测试是否完成SRS对 它的要求系统实时运 行状况的测试系统软件测试表7.1“电话号码”的等价分类输入数据地区码1有效等价类空2、3位数字无效等价类3、非空,但有非数字字符4、非空,位数小于3位数字5、非空,位数多于3位数字电话号码前三位6、非000111的 3 非位数7、空&非三空,但有非字数字:9、非于310、于3字符三空,位数小位数字非空,位数多位数字电话号码后四位11、任意4位

32、数字12、13、数字:14、于415、于4空非空,但有非 字符非空,位数小 位数字非空,位数多位数字表7.2有效等价类的测试用例测试数据期望结果测试范围地区码号码前三位号码后 四位NULL1234567输入有效1、 6、 110102345678输入有效2、 6、 1131 /41表7.3无效等价类的测试用例测试数据期望结果测试范围地区码号码前三位号码后四位#1*1234567地区码输入无效3、 6、 11012345678地区码输入无效4、 6、 1101232588888地区码输入无效5、 6、 11NULLNULL8888号码前三位 输入无效1、 7、 11010#1*6666号码前三位

33、 输入无效1、& 11020456688号码前三位 输入无效1、 9、 11NULL7898866号码前三位 输入无效1、 10、 11NULL666NULL号码后四位 输入无效2、 6、 12010888*02#号码后四位 输入无效2、6、1302068823号码后四位2、 6、 14输入无效NULL86645678号码后四位 输入无效2、6、15阅读下列程序:PROCEDURE SAMPAL (A, B: REAL VARX: REAL);BEGINIF (A3) AND (B=2)THEN X:=X/AIF (A=6) OR (X4)THEN X:=X+1END;为上述程序设计测试用例(

34、参考教材相关例题)。 实验要求:形成相应的实验报告。包括:1、画出程序流程图,程序图2、实现语句覆盖用例设计3、实现判定覆盖用例设计4、实现条件覆盖用例设计5、实现判定/条件覆盖用例设计6、实现条件组合覆盖用例设计7、实现路径覆盖用例设计(完全覆盖)第一部分:程序流程图、程序图F-T-.(A3) AND (B=2)-Cb1开始aF_(A=6) OR (X4) fJdTeX=X+1结束设本例中的两个判断IF (A3) AND(B=2)记为P1,IF (A=6) OR (X4)记为 P2。第二部分:语句覆盖用例设计使程序中每个语句至少执行-次。测试用例P1P2执行路径ABX6236TTa-c-e第

35、三部分:判定覆盖用例设计一一使每个判定的真假分支都至少执行一次测试用例P1P2执行路径ABX8232TFa-c-d6032FTa-b-e第四部分:条件覆盖用例设计一一使每个判定的每个条件的 可能取值至少执行一次。第一判定表达式:设条件A3取真记为T1假-T1条件B=2取真记为T2假-T2第二判定表达式:设条件A=6取真记为T3假-T3条件X4取真记为T4假-T4测试用例第判定表 达式第二判定表达式执行路 径ABXA3B=2A=6X43236-T1T2-T3T4a-b-e6024T1-T2T3-T4a-b-e未覆盖c、d分支,不满足判定覆盖的要求。条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含

36、条件覆第五部分:判定/条件覆盖用例设计一一选取足够多的测试用 例,使判断中的每个条件的所有可能取值至少执行一次, 同时每个判断本身的所有可能判断结果至少执行一次。测试用例第判定表 达式第二判定表达式执行路;径ABXA3B=2A=6X46236T1T2T3T4a-c-e3236-T1T2-T3T4a-b-e6024T1-T2T3-T4a-b-e6024-T1-T2-T3-T4a-b-d能同时满足判定、条件两种覆盖标准。第六部分:条件组合覆盖用例设计一一所有可能的条件取值组合至少执行一次。A3, B=2; A3 B 半 2; A 3, B=2; A 3,2A=6, X4; A=6, X 4 ; A

37、m 6, X4; Am 6, X 4测试用例第判定表第二判定表执行路径达式达式aBXA3B=2A=6X46236T1T2T3T4a-c-e3236-T1T2-T3T4a-b-e6024T1-T2T3-T4a-b-e6024-T1-T2-T3-T4a-b-d第七部分:实现路径覆盖用例设计一一覆盖每一个可能的路径测1试用例第判定表 达式第二判定表达式执行路径aBXA3B=2A=6X46236T1T2T3T4a-c-e4216T1T2-T3-T4a-c-d3024-T1-T2-T3T4a-b-e6024-T1-T2-T3-T4a-b-d第一早1、什么是软件危机?为什么会产生软件危机?答:软件危机是指

38、在计算机软件的开发和维护过程中遇到的一系 列严重问题,如软件费用、软件可靠性、软件维护、软件生 产、软件重用等。(1).软件维护费用急剧上升,直接威胁计29 /41算机应用的扩大。(2).软件生产技术进步缓慢2、何谓面向对象软件工程?简述它与传统软件工程的差别和联系?传统方法学:采用结构化技术;软件生命周期的全过程依次划分为若干阶段;自顶向下顺序完成;八1什么是软件生存周期?把生存周期划分为阶段的目的是什価千AT怖屁.个阶段米用科学的管理技术和良好的技术 和对数据的操作结 消理解互相联化;么?答:软件生存周期是指一个软件从提出需求开始直到该软件报 废为止的整个时期。需求分析、软件分析、软件设计

39、、编 码、软件测试、运行维护等活动,可以将这些活动以适当 方式分配到不同阶段去完成。;把整个生存周期划分为较 小的阶段,给每个阶段赋予确定而有限的任务,就能够化 简每一步的工作内容,使因为软件规模而增长而大大增加 了软件复杂性变得交易控制和管理。2传统的瀑布模型把生存周期分为哪些阶段?瀑布模型软件 开发有哪些特点?答:瀑布模型在编码以前安排了分析阶段和设计阶段;阶段间 具有顺序性和依赖性。3 什么是快速原型法?其快速表现在哪里?答:首先建立一个能够反映用户主要需求的原型,让用户实际 看一看未来系统的概貌,以便判断哪些功能是符合需要 的,哪些方面还需要改进。然后将原型改进,最终建立完 全符合用户

40、要求的新系统。它的快速表现在能够缩短开发 周期的语言和工具,能在短时间内提供出成品,但不包括 成品中的细节,然后让客户进行对比。6比较增量模型和螺旋模型的特点,有什么不同和相似的地 方?答:增量模型是瀑布模型的顺序特征与快速原型法的迭代特征 相结合的产物。螺旋模型是一种迭代模型,每迭代一次, 螺旋线就前进一周。增量模型每个增量具有高内聚低耦 合,高度的独立性。而螺旋模型它在结合瀑布模型与快速 原型的基础上还增加了风险分析。8哪些开发模型适用于面向对象的软件开发? 答:构件集成模型、转换模型、净室模型。第三章问题1 .需求分析的任务是什么?怎样理解分析阶段的任务是决定 “做什么”,而不是“怎么做

41、”?答:需求分析主要有两个任务:第一是通过对问题及其环境的 理解、分析和综合建立分析模型;第二是在完全弄清用户 对软件系统的确切要求的基础上,用软件需求规格说明 书”把用户的需求表达出来。需求分析的任务就是为了明 确要开发的是一个什么样的系统,而不是去怎么去实现这个系统2 需求分析要经过哪些步骤? 答:需求获取、需求提炼、需求描述、需求验证。3. 有哪两种主要的分析模型,它们有什么联系?答:面向对象分析模型、结构化分析模型。前者是采用面向对 象的思想进行软件需求分析的建模过程,而后者模型的核 心是DD,它是设计各种数据对象的总和。他们的模型分别 起到了描述数据模型,功能模型与行为模型的作用。5

42、什么是面向对象分析?其主要思想是什么?答:OOA面向对象的分析是采用面向对象的思想进行软件需求 分析建模的过程主要思想是采用面向对象的思想。7.为什么DFD要分层?画分层DFD要遵循哪些原则?答:大型复杂的软件系统,其 DFD可能含有数百乃至数千个加 工,不能设想一次就将它们全部画齐。正确的做法是:从 系统的基本模型(把整个系统看成一个加工)开始,逐层 地对系统进行分解。原则:由顶向下,逐步细化。第四章问题1、面向对象有哪些基本特征? 封装,继承,抽象,多态2、uml中提供了哪9种图?试诉每种图所描述的内容1、用例图描述角色以及角色与用例之间的连接关系。说明的是 谁要使用系统,以及他们使用该系

43、统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并 且显示了这些元素之间的各种关系,如泛化、关联和依赖。2、类图类图是描述系统中的类,以及各个类之间的关系的静 态视图。能够让我们在正确编写代码以前对系统有一个全 面的认识。类图是一种模型类型,确切的说,是一种静态 模型类型。3、对象图与类图极为相似,它是类图的实例,对象图显示类的 多个对象实例,而不是实际的类。它描述的不是类之间的 关系,而是对象之间的关系。4、活动图描述用例要求所要进行的活动,以及活动间的约束关 系,有利于识别并行活动。能够演示出系统中哪些地方存 在功能,以及这些功能和系统中其他组件的功能如何共同 满足前面

44、使用用例图建模的商务需求。5、状态图描述类的对象所有可能的状态,以及事件发生时状态 的转移条件。可以捕获对象、子系统和系统的生命周期。 他们可以告知一个对象可以拥有的状态,并且事件(如消 息的接收、时间的流逝、错误、条件变为真等 )会怎么随 着时间的推移来影响这些状态。一个状态图应该连接到所 有具有清晰的可标识状态和复杂行为的类;该图可以确定 类的行为,以及该行为如何根据当前的状态变化,也可以 展示哪些事件将会改变类的对象的状态。状态图是对类图 的补充。6、序列图(顺序图)序列图是用来显示你的参与者如何以一系列顺序的步 骤与系统的对象交互的模型。顺序图可以用来展示对象之 间是如何进行交互的。顺

45、序图将显示的重点放在消息序列 上,即强调消息是如何在对象之间被发送和接收的。7、协作图和序列图相似,显示对象间的动态合作关系。可以看 成是类图和顺序图的交集,协作图建模对象或者角色,以 及它们彼此之间是如何通信的。如果强调时间和顺序,则 使用序列图;如果强调上下级关系,则选择协作图;这两 种图合称为交互图。8构件图(组件图)描述代码构件的物理结构以及各种构建之间的依赖关 系。用来建模软件的组件及其相互之间的关系,这些图由 构件标记符和构件之间的关系构成。在组件图中,构件时 软件单个组成部分,它可以是一个文件,产品、可执行文 件和脚本等。9、部署图(配置图)是用来建模系统的物理部署。例如计算机和

46、设备,以 及它们之间是如何连接的。部署图的使用者是开发人员、 系统集成人员和测试人员。3、用uml所提供的图形符号建立工资管理系统的静态模型第五章问题1、软件需求的任务是什么?要经过哪些步骤?2、有哪两种主要的需求模型?它们各由哪些部分组成 ?1 .结构化需求模型该模型主要由3部分组成:即包括数据流图和加工规格说明书 的功能模型;主要由数据字典和 E-R图组成的数据模型; 由状态转换图,控制图和控制规格说明书等组成的行为模 型。2. 面向对象需求模型由三部分组成:用例模型,补充规约和术语表。其中用例模型 包括用例图跟用例规约。3、建立用例模型时,如何确定参与者和用例?参与者泛指所有存在于系统外

47、部并与系统进行交互的人,硬件或其他系统。通俗地讲,参与者主要是待开发系统的使用 者,寻找参与者可从以下问题入手:a. 系统开发完成后,有那些人会使用这个系统?b. 系统需要从那些人或其他系统中获取数据?c. 系统会为纳西尔或者其他系统提供数据?d. 系统会与哪些其他系统相关联?e. 系统是由谁来维护和管理?第六章问题1、软件分析的目标是什么?包含哪些任务 ?2、软件模型包含哪些内容?它们之间有什么联系?3、用哪种uml图可以表示对象间的交互?第七章问题1、面向对象设计的任务是什么?设计阶段的主要任务是数据设计,体系结构设计,接口设计和 过程设计2、什么是模块独立性?可用什么来度量?答:模块独立

48、性指每个模块只完成系统要求的独立的子功能 并且与其他模块的联系最少且接口简单。模块独立的概念 是模块化、抽象、信息隐蔽和局部化概念的直接结果。独立性可以从两个方面来度量: 模块本身的内聚性(Cohesion) 和模块之间的耦合(Coupling)。3、系统架构设计包括哪些内容?系统高层结构设计,确定设计元素,确定任务管理策略,实现 分布式机制,设计数据存储方案,人机界面设计信息隐藏:把系统分解成模块时应遵守的指导思想。高内聚,低耦合。内聚:从功能的角度对模块内部聚合能力的 量度。耦合:对软件内部块间联系的度量。第九章问题1、怎样避免维护的副作用?要加强对维护的管理尤其是配置管理,有效第对软件的

49、配置 尽心跟踪和控制,避免造成文档的混乱。对于微小的修改, 也要严格遵守规定的步骤和标准,决不能掉以轻心。2、什么是软件配置?说明做好维护时期配置的意义与方法? 答:软件配置是一个软件在生存周期内,它的各种形式、各种版本的文档与程序的总称。对软件配置进行科学的管理,是保证软件质量的重要手段。配 置管理贯穿于整个生存周期,在运行和维护时期,其任务 尤为繁重。为了方便对多种产品和多种版本进行跟踪和控制,常常借助于 自动的配置管理工具:配置管理数据库工具和版本控制库 工具3、计算软件价格时,应不应该把维护费用计入成本,为什么?4、什么是软件再工程?软件再工程的主要活动有哪些?答:软件再工程是将新技术

50、和新工具应用于老的软件的一种较 “彻底”的预防性维护。主要活动有6类:数搦更构立自単构代苗孟枸- ATS第十章问题1什么是软件复用?为什么要复用软件答:在构造新的软件系统的过程中,对已存在的软件人工制品 的使用技术。2、当前流行的构件技术有哪几种?几种流行的构件技术:组件对象模型技术(COM)、公共对象 请求代理体系结构(CORB)开放式文档接口。其他问题2.解释下列名词:(1)模块;(2)模块化;(3)模块化设计。 答:模块是一个拥有明确定义的 、输出和特性的程序实体。模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组

51、装起来,成为一个 整体,完成整个系统所要求的功能。6.需求说明(或需求规格说明书)由哪些部分组成?各部分 的主要内容是什么?答:引言、信息描述、功能描述、行为描述、质量描述、接口 描述、其他描述。引言:主要叙述在文体定义阶段确定的关于软件的目标与范 围,简要介绍系统背景、盖帽、软件项目约束和按考资料 等。信息描述:给出对软件所含信息的详细描述,包括信息的内容、 关系、数据流向、控制流向和结构等。功能描述:对软件功能要求的说明,包括系统功能划分、每个 功能的处理说明、限制和控制描述等。行为描述:包括对系统状态变化及事件和动作的描述,据此可 以检查外部事件和软件内部的控制特征。质量描述:阐明在软件

52、交付使用前需要进行的共更能测试和性 能测试,并且规定源程序和文档应该遵守的各种标准。接口描述:包括系统的用户界面、硬件接口、软件接口和通信 接口等的说明。其他描述:阐述系统设计和实现上的限制,系统的假设和依赖 等其他需要说明的内容。一、面向对象方法主要应用的概念(准则)i. 模块化ii. 对象(Object)ii. 类(Class)iv. 继承(In herita nee)v. 消 息 (Messagevi. 圭寸装(Encapsulation )ii.对象结构和类结构ii. 多态性(Polymorphism)47 /41Booth方法表示系统模型:L静卞邃埜a) Booch的方法对栄图-钺态匪一烹可1T凋圈b) Jacobson的面向对象软件工程(OOSE冋題蚀郃好旬诽与所面螂盅用谭宜抿有关的肿有粪和時 在夏它的三于瞞也册1和定斓的谿MdUML顺序图umlM 序UML协作图UML活动图C也串器P闪州帕肝 亠.隐目可匸1刖酣J1找列可可乐1怒一听喝蝴牛 JWr移动电话弟统的顺序图移动电话丢统的用例图:移动显承:妙韵手机f密鲂対站X建立連粮I*t连接血约移动申.诂系统的廊作图T;聊襯我

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!