版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程二级公共基础辅导第3章软件工程基础3.1软件工程的基本概念3.2结构化分析方法3.3结构化设计方法3.4软件测试3.5程序的调试3.1软件工程基本概念软件定义与软件特点软件危机与软件工程软件工程过程与软件生命周期软件工程的目标与原则软件开发工具与开发环境3.1.1软件定义与软件特点1.软件定义:软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及其相关文档组成的完整集合。
软件=程序+数据+文档程序:程序是按事先设计好的功能和性能要求执行的指令序列。数据:数据是指程序能正常处理信息的数据和数据结构。文档:文档是与程序运行和维护有关的图文资料。2.软件的特点:(1)
软件具有抽象特征。(2)
软件具有无明显制造过程特征。(3)
软件无设备的特征。(4)
手工制作特征。(5)
成本昂贵特征。3.1.2软件危机与软件工程1.软件危机:泛指在软件的开发和维护过程中所遇到的一系列严重问题。总之,可以将软件危机归结为成本、质量、生产率等问题。2.软件工程软件工程:应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。主要思想:强调在软件开发过程中需要应用工程化原则。软件工程三要素:方法、工具、过程。方法:完成软件工程项目的技术手段;工具:支持软件的开发、管理、文档生成;过程:支持软件开发的各个环节的控制、管理。返回3.1.3软件工程过程与软件生命周期软件工程过程:把输入转化为输出的一组彼此相关的资源和活动。(通常把用户的要求转变为软件产品的过程也叫做软件开发过程).软件生命周期:将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。软件生命周期的三个阶段:定义阶段(可行性研究、需求分析)开发阶段(概要设计、详细设计、编码、测试)运行维护阶段(使用、维护、退役)返回3.1.4软件工程的目标与原则软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。软件工程的原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性、可验证性返回3.1.5软件开发工具与软件开发环境软件开发工具:为软件工程方法提供了自动的或半自动的软件支撑环境。软件开发环境:是全面支持软件开发全过程的软件工具集合。这些软件工具按照一定的方法或模式组合起来,支持软件生命周期内的各个阶段和各项任务的完成。计算机辅助软件工程(CASEComputerAidedSoftwareEngineering)是当前软件开发环境中富有特色的研究工作和发展方向。3.2结构化分析方法需求分析与需求分析方法结构化分析方法软件需求规格说明书3.2.1需求分析方法软件需求:指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求分析任务:发现需求、求精、建模和定义需求的过程。需求分析阶段的工作:需求获取需求分析编写需求规格说明书需求评审需求分析方法分为:结构化分析方法与面向对象的分析方法:结构化分析方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(OOA),从需求分析建立的模型的特性来分:静态分析方法动态分析方法3.2.2结构化分析方法含义:是结构化程序设计理论在软件需求分析阶段的运用。目的:帮助弄清用户对软件的需求。实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,,以数据流图和数据字典为主要工具,建立系统的逻辑模型。结构化分析的常用工具数据流图(DataFlowDiagram)DFD
数据流图是描述数据处理过程的工具,从数据传递和加工的角度,来刻画数据流从输入到输出的移动变换过程。
加工
数据流
存储文件
源(潭)数据字典(DataDictionary,DD)是结构化分析方法的另一种有力工具,在数据字典中建立的一组严密一致的定义有助于消除分析员和用户之间的沟通障碍,因此将消除许多可能的误解。判定树判定表返回3.2.3软件需求规格说明书含义(SRS):是需求分析阶段的最后成果,是软件开发中的重要文档之一。作用:便于用户、开发人员进行理解和交流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据;特点:正确性、完整性、确定性、一致性、可理解性、可验证性、课修改、可追踪性。3.3结构化设计3.3.1软件设计的基本概念软件设计的目标:用比较抽象概括的方式确定目标系统如何完成预定的任务,即确定系统的物理模型。分类:概要设计和详细设计返回2.软件设计的基本原理抽象:就是提取出事物的本质特征而暂时不考虑它们的细节。模块化信息隐蔽:在一个模块内包含的信息,对于不需要这些信息的其他模块来说是不能访问的。模块独立性:每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。(模块独立程度是评价设计好坏的重要度量标准)模块独立性是评价设计好坏的重要度量标准内聚性:一个模块内部各个元素间彼此结合的紧密程度的度量。分类如下:(由弱到强)偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚耦合性:模块间相互连接的紧密程度的度量。分类如下(由高到低)内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合优秀的设计:尽量做到高内聚、低耦合。3.结构化设计方法含义:结构化设计方法与结构化分析方法相对应,它是采用最佳的可能方法设计系统的各个组成部分以及各成分之间的内部联系的技术。基本思想:将软件设计成由相对独立、单一功能的模块组成的结构。3.3.2概要设计1.概要设计的任务:设计软件系统结构数据结构及数据库设计编写概要设计文档概要设计文档评审常用软件结构设计工具:结构图(SC)
一般模块数据信息
控制信息概要设计2.面向数据流的设计方法(1)数据流的类型:变换型:取得数据、变换数据、输出数据事务型:接受事务、分析确定其类型、选取活动通路(2.
)设计过程:第一,分析、确认数据流图的类型;第二,说明数据流的边界;第三,把数据流映射为程序结构;第四,根据设计准则对产生的结构进行细化和求精。概要设计3.设计的准则:提高模块的独立性;模块规模适中;深度、宽度、扇出和扇入适当;顶层高扇出、中间扇出较少、底层高扇入使模块的作用域在该模块的控制域内;应减少模块的接口和界面的复杂性;设计成单入口、单出口的模块;设计功能可预测的模块返回3.3.3详细设计
详细设计:在概要设计阶段完成了软件系统的总体设计,规定了各个模块的功能及模块之间的联系之后,进一步就要考虑实现各个模块规定的功能,也就是进行软件的详细设计,也称为过程设计。在详细设计阶段,要根据概要设计对每个模块的定义进行设计,以实现指定的功能、算法和外部接口所要求的模块内部的数据结构和程序的逻辑结构。
详细设计
模块设计要完成的工作包括:详细的算法过程设计内部数据结构设计程序逻辑结构设计当前流行的表示程序逻辑结构的主要方式有:图形描述(程序流程图、N-S图及PAD图)语言描述(PDL)
详细设计
程序流程图:
程序流程图(ProgramFlowChart)又称为程序框图,是软件设计中经常使用的一种算法表达工具。它独立于程序设计语言,较为直观、清晰,易于学习掌握。控制流 加工步骤逻辑条件详细设计
N-S图(盒图)
N-S图也称盒图(Box-Diagram),是一种符合结构化程序设计原则的图形描述工具。如下图所示为选择结构的N—S图。
条件THENELSE详细设计
PAD图:(ProblemAnalysisDiagram,问题分析图),是用结构化程序设计思想表现程序逻辑结构的图形工具。用PAD所表达的程序,结构清晰并且结构化程度高。作为一种详细设计的工具,它比流程图更易读,且由于PAD是一种树形结构,比流程图更容易在计算机上处理,容易将PAD图转换成程序。另外,PAD除了可以描述程序的逻辑结构,还可以描述数据结构。
程序开始于最左主干线,结束于最左主干线。PAD图示例A1A2A3……An条件多分支选择结构详细设计PDL(ProcedureDesignLanguage)
PDL是一种用于描述功能模块的算法设计和加工细节的语言,称为过程设计语言。它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,类似编程语言。3.4.1软件测试的目的软件测试的定义:
软件测试是为了发现错误而执行程序的过程。软件测试的目的测试是程序的执行过程,目的在于发现错误;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。
返回3.4软件测试3.4.2软件测试的准则所有测试都应追溯到需求;严格执行测试计划,排除测试的随意性;充分注意测试中的群集现象;程序员应避免检查自己的程序;穷举测试不可能;妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。返回3.4.3软件测试技术与方法测试技术分类:按是否需要执行被测软件分:
静态测试:代码检查、结构分析等。 (人工测试或借助软件工具)
动态测试:设计高效、合理的测试用例是关键。按功能划分:
白盒测试和黑盒测试。(注意:白盒测试和黑盒测试均属于动态测试)白盒测试
软件的白盒测试是把测试对象看作一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性等。白盒测试白盒测试设计测试用例的方法:逻辑覆盖基本路径测试
白盒测试逻辑覆盖:
逻辑覆盖是以程序内部的逻辑结构为基础设计测试用例的技术,属于白盒测试。这一方法要求测试人员对程序的逻辑结构有清楚的了解,甚至要求能掌握源程序的所有细节。逻辑覆盖又可分为:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和路径覆盖。白盒测试发现错误的能力
弱
↓
强语句覆盖每个语句至少能执行一次判定覆盖每个判定的分支至少执行一次。条件覆盖每一判定中的每个条件,分别按“真”、“假”至少各执行一次判断/条件覆盖同时满足判定覆盖和条件覆盖的要求条件组合覆盖求出判定中所有条件的各种可能组合值,每一可能的条件组合至少执行一次逻辑覆盖测试的5种标准
白盒测试基本路径测试:思想:根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例对每一条独立执行路径进行测试。返回黑盒测试
黑盒测试:就是依据软件的需求规格说明书,检查程序的功能是否符合用户要求。这种测试不需要考虑程序内部的逻辑结构和内部特性,完全把测试对象看作一个黑盒子。又称为功能测试或数据驱动测试。
黑盒测试主要针对以下内容:
程序是否按照需求完整正确地实现了功能。
程序的接口是否正确有效。
程序输出的数据或外部数据库访问是否正确。
程序性能是否符合需求。
程序初始化和终止是否正确。黑盒测试黑盒测试方法有:等价类划分法:将所有可能的输入数据划分成若干等价类,然后从每一类中选取数据作为测试用例。边界值分析法:对各种输入输出范围的边界情况设计测试用例。错误推测法:列举出程序中所有可能的错误和容易发生错误的特殊情况,根据它们选择测试用例。因果图法功能图应用阶段:确认测试。返回软件测试的实施单元测试集成测试确认测试系统测试单元测试定义:对软件设计的最小单位——模块(程序单元)进行正确性检验的测试。目的:发现各模块内部可能存在的各种错误。依据:详细设计说明书和源程序。技术手段:静态分析和动态测试(以白盒测试为主,黑盒测试为辅)。集成测试含义:测试和组装软件的过程。它是把模块在按照设计要求组装起来的同时进行测试。目的:发现与接口有关的错误。依据:概要设计说明书。组装模块方式:非增量方式和增量方式(分为自顶向下、自底向上、混合增量)。确认测试任务:验证软件的功能和性能及其他特性是否满足了需求规格说明书中的需求,以及软件配置是否完全、正确。技术手段:黑盒测试。依据:需求规格说明书。系统测试含义:将通过测试确认的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支持软件、数据和人员等其他系统元素组合在一起,在实际运行环境下对计算机系统进行一系列的集成测试和确认测试。功能:评估系统环境下软件的性能,发现和捕捉软件中潜在的错误。目的:在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方。具体实施:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。3.5程序的调试程序调试的基本概念软件调试方法程序调试的基本概念任务:诊断和改正程序中的错误。基本步骤错误定位修改设计和代码,以排除错误进行回归测试,防止引进新的错误程序调试的原则确定错误的性质和位置时的原则:分析思考与错误征兆有关的信息;避开死胡同;只把调试工具当辅助手段使用;避免用试探法,最多只当最后手段。程序调试的基本概念程序调试的原则修改错误的原则:在出现错误的地方,很可能还有别的错误;避免只修改错误的一部分;修正一个错误的同时还可能引入新错误;修改错误的过程将迫使人们暂时回到程序设计阶段;修改源程序代码,不要改变目标代码。返回软件调试方法调试的关键在于推断程序内部的错误位置及原因。以静态调试(通过人的思维来分析源程序代码和排错)为主,动态调试为辅。调试方法:强行排错法回溯法原因排除法(1)构成计算机软件的是A)源代码B)程序和数据C)程序和文档D)程序、数据及相关文档(4)软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是A)学生成绩管理系统B)C语言编译程序C)UNIX操作系统D)数据库管理系统(7)下面描述中,不属于软件危机表现的是A)软件过程不规范B)软件开发生产率低C)软件质量难以控制D)软件成本不断提高(9)下面不属于软件工程的3个要素是A)工具B)过程C)方法D)环境(11)软件生命周期是指A)软件产品从提出、实现、使用维护到停止使用退役的过程B)软件从需求分析、设计、实现到测试完成的过程C)软件的开发过程D)软件的运行维护过程(12)软件生命周期中的活动不包括A)市场调研B)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村住宅交易协议模版
- 集中采购合同的跨国运输管理
- 摄影与设计服务合同样本
- 商家承诺天猫保证书
- 解除劳动合同协议书模板
- 房屋买卖合同担保人权益如何维护
- 物业保洁协议格式
- 建筑基坑挖掘分包合同范本
- 教师与学校之间的聘用协议
- 云端服务终止方案合同
- 青年你为什么要入团-团员教育主题班会-热点主题班会课件
- 2024年教师招聘考试-中小学校长招聘笔试参考题库含答案
- (正式版)SHT 3158-2024 石油化工管壳式余热锅炉
- MOOC 犯罪心理学-西南政法大学 中国大学慕课答案
- 加油站百日攻坚行动实施方案
- 山西开放大学2024年《学前儿童心理健康教育》形成性考核测试1-4答案
- (2024年)农作物病虫害绿色防控技术课件
- 移风易俗乡风文明工作现场推进会上的发言范文
- 《职业安全健康讲座》课件
- 销售配合与带动(课件)
- 部编九年级上册语文《刘姥姥进大观园》课件
评论
0/150
提交评论