版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程,二级公共基础辅导,软件工程基础,1 软件工程的基本概念 2 结构化分析方法 3 结构化设计方法 4 软件测试 5 程序的调试,1 软件工程基本概念,软件定义与软件特点 软件危机与软件工程 软件工程过程与软件生命周期 软件工程的目标与原则 软件开发工具与开发环境,软件定义,软件定义:软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相关文档组成的完整集合。 软件=程序+数据+文档 软件按功能分为应用软件、系统软件、支撑软件(或工具软件),(1)软件是指 A)程序B)程序和文档 C)算法加数据结构 D)程序、数据和相关文档的集合,答案:D,软件危机,软件危机:泛指在软件的开
2、发和维护过程中所遇到的一系列严重问题。 总之,可以将软件危机归结为成本、质量、生产率等问题。,软件工程,软件工程三要素:方法、工具、过程。 方法:完成软件工程项目的技术手段; 工具:支持软件的开发、管理、文档生成; 过程:支持软件开发的各个环节的控制、管理。,3)软件工程三要素方法包括工具、方法和过程,其中 支持软件开发的各个环节的控制和管理,过程,(5)下列描述中正确的是 A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题,答案:C,软件工程就是试图用工程、
3、科学和数学的大批量与方法研制、 维护计算机软件的有关技术及管理方法。 软件工程的核心思想:把软件产品看作是一个工程产品来处理。 软件工程包括两方面的内容:软件开发技术 软件工程管理,软件工程过程与软件生命周期,软件工程过程:把输入转化为输出的一组彼此相关的资源和活动。(通常把用户的要求转变为软件产品的过程也叫做软件开发过程). 软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。 软件生命周期的三个阶段: 定义阶段(可行性研究、需求分析) 开发阶段(概要设计、详细设计、编码、测试) 运行维护阶段(使用、维护、退役),3.下列选项中不属于软件生命周期开发阶段任务的
4、是 A)软件测试B)概要设计 C)软件维护D)详细设计,答案:C,软件工程的目标与原则,软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。 软件工程的原则: 抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性,返回,软件开发工具与软件开发环境,软件开发工具:为软件工程方法提供了自动的或半自动的软件支撑环境。 软件开发环境:是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。 计算机辅助软件工程(C
5、ASE Computer Aided Software Engineering)是当前软件开发环境中富有特色的研究工作和发展方向。,2 结构化分析方法,需求分析与需求分析方法 结构化分析方法 软件需求规格说明书,需求分析方法,结构化分析方法 面向数据流的结构化分析方法(SA) 面向数据结构的Jackson方法(JSD) 面向数据结构的结构化数据系统开发方法(DSSD) 面向对象的分析方法(OOA) 按模型特性分类: 静态分析方法 动态分析方法,需求分析,软件需求:指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 需求分析任务:发现需求、求精、建模和定义需求的过程。 需求分析阶段的
6、工作: 需求获取 需求分析 编写需求规格说明书 需求评审,返回,结构化分析方法,含义:是结构化程序设计理论在软件需求分析阶段的运用。 目的:帮助弄清用户对软件的需求。 实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。,结构化分析的常用工具,数据流图 (Data Flow Diagram)DFD 数据流图是描述数据处理过程的工具,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。 加工 数据流 存储文件 源(潭) 数据字典(Data Dictionary,DD)是结构化分析方 法的另一种有力工具,在数据字典中建立的一组
7、严密一 致的定义有助于消除分析员和用户之间的沟通障碍,因 此将消除许多可能的误解。 判定树 判定表,表1数据流图的基本符号,图2 工资计算系统的顶层数据流图,5)数据流图中带有箭头的线段表示的是 A)控制流B)事件驱动C)模块调用D)数据流 6)在软件开发中,需求分析阶段可以使用的工具是 A)N-S图B)DFD图C)PAD图D)程序流程图,D,(5)在结构化分析使用的数据流图(DFD)中,利用_对其中的 图形元素进行确切解释。,答案:B,数据字典,软件需求规格说明书,含义(SRS):是需求分析阶段的最后成果,是软件开发中的重要文档之一。 作用: 便于用户、开发人员进行理解和交流; 反映出用户问
8、题的结构,可以作为软件开发工作的基础和依据; 作为确认测试和验收的依据; 特点:正确性、完整性、确定性、一致性、可理解性、可验证性、课修改、可追踪性。,3 结构化设计方法,软件设计的基本概念 概要设计 详细设计,软件设计的基本概念,软件设计基础 软件设计的基本原理 结构化设计方法,软件设计基础,软件设计的目标:用比较抽象概括的方式确定目标系统如何完成预定的任务,即确定系统的物理模型。 分类:概要设计和详细设计,返回,软件设计的基本原理,抽象:就是提取出事物的本质特征而暂时不考虑它们的细节。 模块化 信息隐蔽:在一个模块内包含的信息,对于不 需要这些信息的其他模块来说是不能访问的。 模块独立性:
9、每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。(模块独立程度是评价设计好坏的重要度量标准),模块独立性,内聚性:一个模块内部各个元素间彼此结合的紧密程度的度量。分类如下:(由弱到强) 偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚 耦合性:模块间相互连接的紧密程度的度量。分类如下(由高到低) 内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合 优秀的设计:尽量做到高内聚、低耦合。,(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合 B)高内聚低耦合 C)低内聚高耦合 D)高内聚高耦合,答案:B,结构化设计方法,含义:结构
10、化设计方法与结构化分析方法相对应,它是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术。 基本思想:将软件设计成由相对独立、单一功能的模块组成的结构。,概要设计,概要设计的任务: 设计软件系统结构 数据结构及数据库设计 编写概要设计文档 概要设计文档评审 常用软件结构设计工具:结构图(SC) 一般模块 数据信息 控制信息,概要设计,面向数据流的设计方法 1.数据流的类型: 变换型:取得数据、变换数据、输出数据 事务型:接受事务、分析确定其类型、选取活动通路 2. 设计过程: 第一,分析、确认数据流图的类型; 第二,说明数据流的边界; 第三,把数据流映射为程序结构; 第四,
11、根据设计准则对产生的结构进行细化和求精。,概要设计,设计的准则: 提高模块的独立性; 模块规模适中; 深度、宽度、扇出和扇入适当; 顶层高扇出、中间扇出较少、底层高扇入 使模块的作用域在该模块的控制域内; 应减少模块的接口和界面的复杂性; 设计成单入口、单出口的模块; 设计功能可预测的模块,返回,详细设计,详细设计: 在概要设计阶段完成了软件系统的总体设计,规定了各个模块的功能及模块之间的联系之后,进一步就要考虑实现各个模块规定的功能,也就是进行软件的详细设计,也称为过程设计。 在详细设计阶段,要根据概要设计对每个模块的定义进行设计,以实现指定的功能、算法和外部接口所要求的模块内部的数据结构和
12、程序的逻辑结构。,详细设计,模块设计要完成的工作包括: 详细的算法过程设计 内部数据结构设计 程序逻辑结构设计 当前流行的表示程序逻辑结构的主要方式有: 图形描述(程序流程图、N-S图及PAD图) 语言描述(PDL),详细设计,程序流程图: 程序流程图(Program Flow Chart)又称为程序框图,是软件设计中经常使用的一种算法表达工具。它独立于程序设计语言,较为直观、清晰,易于学习掌握。 控制流 加工步骤 逻辑条件,详细设计,N-S图(盒图) N-S图也称盒图(Box-Diagram),是一种符合结构化程序设计原则的图形描述工具。 如下图所示为选择结构的NS图。,图3-10 盒图的基
13、本符号,详细设计,PAD图:(Problem Analysis Diagram,问题分析图),是用结构化程序设计思想表现程序逻辑结构的图形工具。 用PAD所表达的程序,结构清晰并且结构化程度高。作为一种详细设计的工具,它比流程图更易读,且由于PAD是一种树形结构,比流程图更容易在计算机上处理,容易将PAD图转换成程序。另外,PAD除了可以描述程序的逻辑结构,还可以描述数据结构。 程序开始于最左主干线,结束于最左主干线。,PAD图示例,多分支选择结构,图3-11 PAD图的基本符号,详细设计,PDL(Procedure Design Language) PDL是一种用于描述功能模块的算法设计和加
14、工细节的语言,称为过程设计语言。它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,类似编程语言。,4 软件测试,软件测试的目的 软件测试的准则 软件测试技术与方法 软件测试的实施,软件测试的目的,软件测试的定义: 软件测试是为了发现错误而执行程序的过程。 软件测试的目的 测试是程序的执行过程,目的在于发现错误; 一个好的测试用例在于能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。,返回,软件测试的准则,所有测试都应追溯到需求; 严格执行测试计划,排除测试的随意性; 充分注意测试中的群集现象; 程序员应避免检查自己的程序; 穷举测试不可能; 妥善保存测试计划、测
15、试用例、出错统计和最终分析报告,为维护提供方便。,返回,软件测试技术与方法,测试技术分类: 按是否需要执行被测软件分: 静态测试:代码检查、结构分析等。 (人工测试或借助软件工具) 动态测试:设计高效、合理的测试用例是关键。 按功能划分: 白盒测试和黑盒测试。 (注意:白盒测试和黑盒测试均属于动态测试),白盒测试,软件的白盒测试是把测试对象看作一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 白盒测试又称为结构测试或逻辑驱动测试。 白盒测试主要对程序模块进行如下的检查: 对程序模块的所有独立的执行路径至少测试一次; 对所有的逻辑判
16、定,取“真”与取“假”的两种情况都至少测试一次; 在循环的边界和运行界限内执行循环体; 测试内部数据结构的有效性等。,白盒测试,白盒测试设计测试用例的方法: 逻辑覆盖 基本路径测试,白盒测试,逻辑覆盖 : 逻辑覆盖是以程序内部的逻辑结构为基础设计测试用例的技术,属于白盒测试。这一方法要求测试人员对程序的逻辑结构有清楚的了解,甚至要求能掌握源程序的所有细节。逻辑覆盖又可分为:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖和路径覆盖。,图3-12 语句覆盖,白盒测试,基本路径测试: 思想:根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试
17、用例对每一条独立执行路径进行测试。,返回,黑盒测试,黑盒测试:就是依据软件的需求规格说明书,检查程序的功能是否符合用户要求。这种测试不需要考虑程序内部的逻辑结构和内部特性,完全把测试对象看作一个黑盒子。又称为功能测试或数据驱动测试。 黑盒测试主要针对以下内容: 程序是否按照需求完整正确地实现了功能。 程序的接口是否正确有效。 程序输出的数据或外部数据库访问是否正确。 程序性能是否符合需求。 程序初始化和终止是否正确。,黑盒测试,黑盒测试方法有: 等价类划分法:将所有可能的输入数据划分成若干等价类,然后从每一类中选取数据作为测试用例。 边界值分析法:对各种输入输出范围的边界情况设计测试用例。 错
18、误推测法:列举出程序中所有可能的错误和容易发生错误的特殊情况,根据它们选择测试用例。 因果图法 功能图 应用阶段:确认测试。,返回,软件测试的实施,单元测试 集成测试 确认测试 系统测试,单元测试,定义:对软件设计的最小单位模块(程序单元)进行正确性检验的测试。 目的:发现各模块内部可能存在的各种错误。 依据:详细设计说明书和源程序。 技术手段:静态分析和动态测试(以白盒测试为主,黑盒测试为辅)。,集成测试,含义:测试和组装软件的过程。它是把模块在按照设计要求组装起来的同时进行测试。 目的:发现与接口有关的错误。 依据:概要设计说明书。 组装模块方式:非增量方式和增量方式(分为自顶向下、自底向
19、上、混合增量)。,确认测试,任务:验证软件的功能和性能及其他特性是否满足了需求规格说明书中的需求,以及软件配置是否完全、正确。 技术手段:黑盒测试。 依据:需求规格说明书。,系统测试,含义:将通过测试确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素组合在一起,在实际运行环境下对计算机系统进行一系列的集成测试和确认测试。 功能:评估系统环境下软件的性能,发现和捕捉软件中潜在的错误。 目的:在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方。 具体实施:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测
20、试等。,5 程序的调试,程序调试的基本概念 软件调试方法,程序调试的基本概念,任务:诊断和改正程序中的错误。 基本步骤 错误定位 修改设计和代码,以排除错误 进行回归测试,防止引进新的错误 程序调试的原则 确定错误的性质和位置时的原则: 分析思考与错误征兆有关的信息; 避开死胡同; 只把调试工具当辅助手段使用; 避免用试探法,最多只当最后手段。,程序调试的基本概念,程序调试的原则 修改错误的原则: 在出现错误的地方,很可能还有别的错误; 避免只修改错误的一部分; 修正一个错误的同时还可能引入新错误; 修改错误的过程将迫使人们暂时回到程序设计阶段; 修改源程序代码,不要改变目标代码。,返回,软件
21、调试方法,调试的关键在于推断程序内部的错误位置及原因。 以静态调试(通过人的思维来分析源程序代码和排错)为主,动态调试为辅。 调试方法: 强行排错法 回溯法 原因排除法,2005-4,(6)下列对于软件测试的描述中正确的是_。 A) 软件测试的目的是证明程序是否正确 B) 软件测试的目的是使程序运行结果正确 C) 软件测试的目的是尽可能多地发现程序中的错误 D) 软件测试的目的是使程序符合结构化原则 答案:C (7)为了使模块尽可能独立,要求_。 A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C) 模块的内聚程度要尽量低
22、,且各模块间的耦合程度要尽量弱 D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强 答案:B (8)下列描述中正确的是_。 A)程序就是软件 B)软件开发不受计算机系统的限制 C)软件既是逻辑实体,又是物理实体 D)软件是程序、数据与相关文档的集合 答案:D,2005-4,二、填空题 (2)在面向对象方法中,类的实例称为 【2】 。 答案:对象 (3)诊断和改正程序中错误的工作通常称为 【3】 。 答案:程序调试,2005-9,(1)下列叙述中正确的是 A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成 C)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试
23、 答案:C (5)下列描述中正确的是 A)软件工程只是解决软件项目的管理问题 B)软件工程主要解决软件产品的生产率问题 C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则 D)软件工程只是解决软件开发中的技术问题 答案:C,2005-9,(6)在软件设计中,不属于过程设计工具的是 A)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图 答案:D DFD图:数据流图(需求分析) (7)下列叙述中正确的是 A)软件交付使用后还需要进行维护 B)软件一旦交付使用就不需要再进行维护 C)软件交付使用后其生命周期就结束 D)软件维护是指修复程序中被破坏的指令 答案:A,2005
24、-9,(3)在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中 【3】 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。 答案:驱动模块,2006-4,1) 两个或两个以上模块之间关联的紧密程度称为 A)耦合度 B)内聚度 C)复杂度 D)数据传输特性 答案:A 2)下列叙述中正确的是 A) 软件测试应该由程序开发者来完成 B) 程序经调试后一般不需要再测试 C) 软件维护只包括对程序代码的维护 D) 以上三种说法都不对 答案:D,2006-4,(2)两个或两个以上模块之间关联的紧密程度称为( )。 A)耦合度 B)内聚度 C)复杂度
25、 D)数据传输特性 (3)下列描述中正确的是( )。 A)软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护 D)以上三种说法都不对 (2) 程序测试分为静态分析和动态测试。其中【2】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。 答案:静态分析,A,D,2006-9,2.从工程管理角度,软件设计一般分为两步完成,它们是: A)概要设计与详细设计 B)数据设计与接口设计 C)软件结构设计与数据设计D)过程设计与数据设计 答案:A 3.下列选项中不属于软件生命周期开发阶段任务的是 A)软件测试B)概要设计 C)
26、软件维护D)详细设计 答案:C (2)_的任务是诊断和改正程序中的错误。,程序调试,2007-4,(2) 在结构化程序设计中,模块划分的原则是 A) 各模块应包括尽量多的功能 B) 各模块的规模应尽量大 C) 各模块之间的联系应尽量紧密 D) 模块内具有高内聚度、模块间具有低耦合度 答案:D (3)下列叙述中正确的是 A) 软件测试的主要目的是发现程序中的错误 B) 软件测试的主要目的是确定程序中错误的位置 C) 为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 D) 软件测试是证明软件没有错误 答案:A (2)软件测试分为白箱(盒)测试和黑箱(盒)测试。等价类划分法属于_测试
27、。 (4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于_阶段。 (5)在结构化分析使用的数据流图(DFD)中,利用_对其中的图形元素进行确切解释。,黑箱(盒),开发,数据字典,2007-4,(4)下面选项中不属于面向对象程序设计特征的是 A)继承性 B)多态性 C)类比性 D)封装性 答案:C 二填空题: (2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于 测试。 答案:黑箱或黑盒 (4) 软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于 _阶段。 答案:开发,2007-9,(1)软件是指 A)程序B)程序和文
28、档 C)算法加数据结构 D)程序、数据和相关文档的集合 答案:D (2)软件调试的目的是 A)发现错误 B)改正错误 C)改善软件的性能 D)验证软件的正确性 答案:B,2007-9,(3)在面向对象方法中,实现信息隐蔽是依靠 A)对象的继承 B)对象的多态 C)对象的封装 D)对象的分类 答案:C (4)下列叙述中,不符合良好程序设计风格的是 A)程序的效率第一,清晰第二 B)程序的可读性好 C)程序中有必要的注释 D)输入数据前要有提示信息 答案:A,2007-9,(1) 软件需求规格说明书应具有完整性、无歧义性、正确性、可验证性、可修改性等特性,其中最重要的 _. (无歧义性) (2) 在两种基本测试方法中, _测试的原则之一是保证所测模块中每一个独立路径至少要执行一次. (白盒),2008-4,(3)软件设计中模块划分应遵循的准则是A)低内聚低耦合 B)高内聚低耦合 C)低内聚高耦合 D)高内聚高耦合 答案:B (4)在软件开发中,需求分析阶段产生的主要文档是 A)可行性分析报告 B)软件需求规格说明书 C)概要设计说明书 D)集成测试计划 答案:B 二、填空题: (1)测试用例包括输入值集和_值集。 答案:预期输出。,2008-9,一、选择题: 5)数据流图中带有箭头的线段表示的是 A)控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度江西省高校教师资格证之高等教育心理学考前冲刺试卷B卷含答案
- 2024年中国高速钻孔刀市场调查研究报告
- 2024年中国香橙酥脆饼市场调查研究报告
- 文书模板-孝亲敬老计划方案
- 2024年中国全法兰密封塑料容器桶市场调查研究报告
- 高校科研实验室试剂供给与管理方案
- 教师培训与发展计划方案
- 秋季校园文化活动方案计划
- 学生个性化教育实施方案计划
- 2023年文化艺术服务项目综合评估报告
- 假如我是班主任-高中主题班会课件
- 市政道路工程施工全流程图
- 语文部编版六上语文17第一课时《浪淘沙》(其一)课件
- 黑布林阅读初一10《霍莉的新朋友》英文版
- 高一第一学期期中考试及家长会教学课件
- 详细解读公文格式
- 农产品市场营销-东北农业大学中国大学mooc课后章节答案期末考试题库2023年
- 教师心理健康及其维护培训课件PPT
- EN81-41升降平台欧洲标准
- 内镜下粘膜剥离术-课件
- 华夏航空股份有限公司
评论
0/150
提交评论