大连理工大学软件工程导论复习课件省公共课一等奖全国赛课获奖课件.pptx
《大连理工大学软件工程导论复习课件省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《大连理工大学软件工程导论复习课件省公共课一等奖全国赛课获奖课件.pptx(135页珍藏版)》请在咨信网上搜索。
大连理工大学软件学院软件工程复习第1页第第1章章 基础知识基础知识/10/102大连理工大学软件学院第2页什么是软件什么是软件软件定义软件定义软件由三部分组成:软件由三部分组成:程序:在运行时,能提供所希望功效和性能指令集程序:在运行时,能提供所希望功效和性能指令集数据:使程序能够正确运行数据数据:使程序能够正确运行数据文档:描述程序研制过程、方法及使用文档:描述程序研制过程、方法及使用文档文档软件处理是信息和逻辑软件处理是信息和逻辑软件开发,绝不但仅是编写程序软件开发,绝不但仅是编写程序软件围绕着逻辑进行软件围绕着逻辑进行软件就是一个信息交换器软件就是一个信息交换器产生、管理、获取、修改、显示或传送信息产生、管理、获取、修改、显示或传送信息/10/103大连理工大学软件学院第3页什么是软件危机什么是软件危机软件危机是指在计算机软件开发和维护过程中所碰到软件危机是指在计算机软件开发和维护过程中所碰到一系列严重问题。一系列严重问题。软件工程(软件工程(IEEE)1993年,提出软件工程年,提出软件工程1)将系统化、规范化、可量化工程标准和方法,应将系统化、规范化、可量化工程标准和方法,应用于软件开发、运行和维护。用于软件开发、运行和维护。2)对对1)中方法理论研究。中方法理论研究。/10/104大连理工大学软件学院第4页软件工程基本原理软件工程基本原理(开发与维护指导开发与维护指导)1.用分阶段生命周期计划严格管理用分阶段生命周期计划严格管理2.坚持进行阶段评审坚持进行阶段评审3.实施严格产品控制实施严格产品控制4.采取当代程序设计技术采取当代程序设计技术5.结果应能清楚地审查结果应能清楚地审查6.开发小组人员应该少而精开发小组人员应该少而精7.认可不停改进软件工程实践必要性认可不停改进软件工程实践必要性/10/105大连理工大学软件学院第5页软件工程方法学软件工程方法学把在软件生命周期全过程中使用一整套把在软件生命周期全过程中使用一整套技术集合技术集合称为方法称为方法学学(methodology),也称范型,也称范型(paradigm)。软件工程方法学三个要素:软件工程方法学三个要素:方法、工具和过程方法、工具和过程。方法是完成软件开发各项任务技术,回答方法是完成软件开发各项任务技术,回答“怎样做怎样做”;工具是为方法利用提供自动或半自动软件支撑环境,回答工具是为方法利用提供自动或半自动软件支撑环境,回答“用什么做用什么做”;过程是为取得高质量软件要完成一系列任务框架,要求完成各项任过程是为取得高质量软件要完成一系列任务框架,要求完成各项任务步骤,回答务步骤,回答“怎样控制、协调、确保质量怎样控制、协调、确保质量”。管理方法管理方法/10/106大连理工大学软件学院第6页当前使用得最广泛软件工程方法学。当前使用得最广泛软件工程方法学。传统方法学也称为传统方法学也称为生命周期方法学生命周期方法学或或结构化范型结构化范型。当软件规模较大,或对软件需求是当软件规模较大,或对软件需求是含糊含糊或随时间或随时间改变改变时候,使时候,使用结构化范型开发软件往往不成功;用结构化范型开发软件往往不成功;另外,使用传统方法学开发出软件,维护起来通常都很困难。另外,使用传统方法学开发出软件,维护起来通常都很困难。结构化静态分析,面向对象动态分析结构化静态分析,面向对象动态分析世界万物是改变世界万物是改变传统方法学与面向对象方法学传统方法学与面向对象方法学/10/107大连理工大学软件学院第7页传统方法特点传统方法特点生命周期模型生命周期模型软件过程划分为若干个阶软件过程划分为若干个阶段段每个阶段有各自任务每个阶段有各自任务阶段之间有某种次序性阶段之间有某种次序性/10/108大连理工大学软件学院第8页面向对象方法:面向对象方法:1.对象作为融合数据及在数据之上操作行为统一软件构件。对象作为融合数据及在数据之上操作行为统一软件构件。2.把全部对象都划分成把全部对象都划分成类类(Class)。每个类都定义了一组。每个类都定义了一组数据数据和一组和一组操作操作。3.按照父类按照父类(或称为基类或称为基类)与子类与子类(或称为派生类或称为派生类)关系,把若关系,把若干个相关类组成一个干个相关类组成一个层次结构层次结构系统系统(也称为类等级也称为类等级)。在类。在类等级中,下层派生类自动拥有上层基类中定义数据和操作,等级中,下层派生类自动拥有上层基类中定义数据和操作,称为称为继承继承。4.对象彼此间仅能经过发送消息相互联络对象彼此间仅能经过发送消息相互联络封装性封装性。数据:静态数据:静态操作:动态操作:动态Everything is Object./10/109大连理工大学软件学院第9页1.3 软件生命周期软件生命周期 软件生命周期由软件生命周期由软件定义、软件开发软件定义、软件开发和和运行维护运行维护三个时期组成,每个时期又可深入划分成若干个三个时期组成,每个时期又可深入划分成若干个阶段,每个阶段有各自任务。阶段,每个阶段有各自任务。1软件定义软件定义2软件开发软件开发3运行维护运行维护/10/1010大连理工大学软件学院第10页1.问题定义问题定义2.可行性研究可行性研究 3.需求分析需求分析4.概要设计概要设计5.详细设计详细设计6.编码和单元测试编码和单元测试7.综合测试综合测试8.软件维护软件维护/10/1011大连理工大学软件学院第11页实际瀑布模型实际瀑布模型软件过程模型(生命周期模型)软件过程模型(生命周期模型)/10/1012大连理工大学软件学院第12页快速原型模型快速原型模型/10/1013大连理工大学软件学院第13页增量模型增量模型瀑布模型:力争一次性瀑布模型:力争一次性给用户完整系统。给用户完整系统。增量模型:逐步增加系增量模型:逐步增加系统功效。统功效。需要开放架构设计。需要开放架构设计。/10/1014大连理工大学软件学院第14页完整螺旋模型完整螺旋模型/10/1015大连理工大学软件学院第15页喷泉模型喷泉模型迭代迭代是是OO开发过程主要特征。开发过程主要特征。喷泉模型是经典面向对象生命周期模型。喷泉模型是经典面向对象生命周期模型。“喷泉喷泉”表达了面向对象软件开发过程表达了面向对象软件开发过程迭代和无缝迭代和无缝特征。特征。为防止喷泉模型过分无序,把一个为防止喷泉模型过分无序,把一个线性过程线性过程作为总目标。作为总目标。迭代迭代/10/1016大连理工大学软件学院第16页喷泉模型喷泉模型迭代:逐步求精迭代:逐步求精阶段间没有显著界限阶段间没有显著界限面向对象思想确保了各个面向对象思想确保了各个阶段开发一致性。阶段开发一致性。迭代迭代是是OO开发过程开发过程主要特征。主要特征。喷泉模型是经典面喷泉模型是经典面向对象生命周期模向对象生命周期模型。型。“喷泉喷泉”表达了面表达了面向对象软件开发过向对象软件开发过程程迭代和无缝迭代和无缝特征。特征。/10/1017大连理工大学软件学院第17页可行性与需求分析第18页可行性研究可行性研究不是处理问题,而是确定问题是否值得去处理不是处理问题,而是确定问题是否值得去处理较高层次系统分析和设计过程较高层次系统分析和设计过程需求分析需求分析发觉、求精、建模、规格说明和复审过程发觉、求精、建模、规格说明和复审过程重复求精屡次细化,得出对目标系统完整、准确和详重复求精屡次细化,得出对目标系统完整、准确和详细要求。细要求。建立数据模型、功效模型和行为模型等三种模型。建立数据模型、功效模型和行为模型等三种模型。还要写出准确软件需求规格说明。还要写出准确软件需求规格说明。/10/1019大连理工大学软件学院第19页系统流程图系统流程图系统流程图系统流程图概括描绘物理系统传统工具概括描绘物理系统传统工具用图形符号,以黑盒子形式描述组成系统每个用图形符号,以黑盒子形式描述组成系统每个部件部件程序、文档、数据库、人工过程程序、文档、数据库、人工过程/10/1020大连理工大学软件学院第20页系统流程图例子系统流程图例子例子例子每个符号用黑盒子每个符号用黑盒子形式定义了组成系形式定义了组成系统一个部件。统一个部件。没有部件内部详细没有部件内部详细工作过程工作过程箭头确定经过系统箭头确定经过系统逻辑路径(信息流逻辑路径(信息流动路径)动路径)/10/1021大连理工大学软件学院第21页 数据流图数据流图数据流图数据流图(DFD)描绘信息流和数据从输入描绘信息流和数据从输入移动到输出过程中所经受变换。移动到输出过程中所经受变换。或或或或或或或或或或或或符符符符 号号号号含含含含 义义义义数据源点或终点数据源点或终点数据源点或终点数据源点或终点数据流数据流数据流数据流数据存放数据存放数据存放数据存放加工加工加工加工(数据处理数据处理数据处理数据处理)/10/1022大连理工大学软件学院第22页加工中常见关系符号表示加工中常见关系符号表示加工中常见关系符号表示加工中常见关系符号表示符符符符 号号号号含含含含 义义义义由数据由数据由数据由数据A A和和和和B B共同变换为数据共同变换为数据共同变换为数据共同变换为数据C C由数据由数据由数据由数据A A变换为数据变换为数据变换为数据变换为数据B B和数据和数据和数据和数据C C由数据由数据由数据由数据A A或或或或B B,或者数据,或者数据,或者数据,或者数据A A和和和和B B共同变换为数据共同变换为数据共同变换为数据共同变换为数据C C由数据由数据由数据由数据A A变换为数据变换为数据变换为数据变换为数据B B或或或或C C,或者同时变换为数,或者同时变换为数,或者同时变换为数,或者同时变换为数据据据据B B和和和和C C由数据由数据由数据由数据A A或或或或B B其中之一变换为数据其中之一变换为数据其中之一变换为数据其中之一变换为数据C C由数据由数据由数据由数据A A变换为数据变换为数据变换为数据变换为数据B B或或或或C C其中之一其中之一其中之一其中之一T*T*T+T+TT/10/1023大连理工大学软件学院第23页/10/1024大连理工大学软件学院第24页把处理事务功效深入分解后数据流图把处理事务功效深入分解后数据流图/10/1025大连理工大学软件学院第25页数据字典数据字典数据字典是关于数据信息集合,即对数据字典是关于数据信息集合,即对DFD图中包图中包含元素定义集合。含元素定义集合。数据字典用途是供人查阅不了解条目标解释。提数据字典用途是供人查阅不了解条目标解释。提供分析设计过程中关于数据描述。供分析设计过程中关于数据描述。数据字典与数据字典与DFD相辅相成。相辅相成。只有只有DFD和对应元素准确定义放在一起,才能组和对应元素准确定义放在一起,才能组成系统规格说明。成系统规格说明。/10/1026大连理工大学软件学院第26页定义数据方法定义数据方法 意思是等价于意思是等价于(或定义为或定义为);意思是和意思是和(即,连接两个分量即,连接两个分量);意思是或意思是或(即,从方括弧内列出若干个分量即,从方括弧内列出若干个分量中选择一个中选择一个),用,用“”号分开供选择分量;号分开供选择分量;意思是重复意思是重复(即,重复花括弧内分量即,重复花括弧内分量);()意思是可选)意思是可选(即,圆括弧里分量可有可无即,圆括弧里分量可有可无)。使用上限和下限深入注释表示重复花括弧。使用上限和下限深入注释表示重复花括弧。左边用上角标和下角标分别表明重复上限和下限;左边用上角标和下角标分别表明重复上限和下限;左侧标明重复下限,在闭括弧右侧标明上限。左侧标明重复下限,在闭括弧右侧标明上限。比如:比如:A和和1A5 含义相同。含义相同。15/10/1027大连理工大学软件学院第27页数据字典实现数据字典实现CASE工具工具人工卡片人工卡片/10/1028大连理工大学软件学院第28页 实体实体关系图关系图数据模型包含三种相互关联信息:数据模型包含三种相互关联信息:数据对数据对象象、描述数据对象、描述数据对象属性属性及数据对象彼此间及数据对象彼此间相互连接相互连接关系关系。/10/1029大连理工大学软件学院第29页某校教学管理 ER 图/10/1030大连理工大学软件学院第30页 学生和课程之间学生和课程之间E-RE-R模型模型(a)(a)学生和课程之间多对多联络学生和课程之间多对多联络E-RE-R模型;模型;(b)(b)(b)(b)将多对多联络转换为一对多联络将多对多联络转换为一对多联络E-RE-R模型模型选课mn学号专业年级课名课号课时1n学号专业课名课号课时学号课号n1姓名课程学生姓名课程学分学生年级选课学分(a)(b)/10/1031大连理工大学软件学院第31页 其它图形工具其它图形工具Warnier图图/10/1032大连理工大学软件学院第32页其它图形工具其它图形工具(3)IPO图图/10/1033大连理工大学软件学院第33页其它图形工具其它图形工具(2)IPO图图IPO图是输入、处理、输出图简称图是输入、处理、输出图简称左边框中列出相关输入左边框中列出相关输入中间框中列出主要处理中间框中列出主要处理右边框中列出产生输出右边框中列出产生输出处理次序暗示了执行次序处理次序暗示了执行次序箭头指出数据通信情况箭头指出数据通信情况/10/1034大连理工大学软件学院第34页总体设计第35页总体设计总体设计概要设计和详细设计概要设计和详细设计。概要设计主要任务是经过仔细分析软件规格说明,概要设计主要任务是经过仔细分析软件规格说明,适当地对软件进行功效分解,从而把软件适当地对软件进行功效分解,从而把软件划分为划分为模块模块,而且设计出完成预定功效,而且设计出完成预定功效模块结构模块结构。详细设计阶段详细地设计每个模块,确定完成每详细设计阶段详细地设计每个模块,确定完成每个模块功效所需要个模块功效所需要算法和数据结构算法和数据结构。/10/1036大连理工大学软件学院第36页模块化:就是把程序划分成独立命名且可模块化:就是把程序划分成独立命名且可独立访问模块,每个模块完成一个子功效,独立访问模块,每个模块完成一个子功效,把这些模块集成起来组成一个整体,能够把这些模块集成起来组成一个整体,能够完成指定功效满足用户需求。完成指定功效满足用户需求。能够由许多程序员分工编写不一样模块能够由许多程序员分工编写不一样模块能够使软件结构清楚,便于扩展能够使软件结构清楚,便于扩展使软件轻易测试和调试,因而有利于提升软使软件轻易测试和调试,因而有利于提升软件可靠性。件可靠性。模块大小要适中,不过分细。模块大小要适中,不过分细。/10/1037大连理工大学软件学院第37页模块独立模块独立模块独立程度能够由两个定性标准来度量,模块独立程度能够由两个定性标准来度量,分别称为分别称为内聚和耦合内聚和耦合。耦合:衡量不一样模块彼此间相互依赖耦合:衡量不一样模块彼此间相互依赖(连接连接)紧紧密程度;密程度;内聚:衡量一个模块内部各个元素彼此结合紧内聚:衡量一个模块内部各个元素彼此结合紧密程度。密程度。/10/1038大连理工大学软件学院第38页耦合是对一个软件结构内不一样模块之间耦合是对一个软件结构内不一样模块之间互连程度度量。互连程度度量。尽可能尽可能涣散耦合涣散耦合/10/1039大连理工大学软件学院第39页数据耦合:数据耦合:特征耦合:特征耦合:控制耦合:控制耦合:外部耦合:外部耦合:公共耦合:公共耦合:内容耦合:内容耦合:弱弱强强尽可能使用数据耦合,少用控制耦合,尽可能使用数据耦合,少用控制耦合,限制公共环境耦合范围,完全不用内限制公共环境耦合范围,完全不用内容耦合。容耦合。/10/1040大连理工大学软件学院第40页内聚:标志一个模块内各个元素彼此结合内聚:标志一个模块内各个元素彼此结合紧密程度,它是信息隐蔽和局部化概念自紧密程度,它是信息隐蔽和局部化概念自然扩展。然扩展。简单地说,简单地说,理想内聚模块只做一件事情理想内聚模块只做一件事情。/10/1041大连理工大学软件学院第41页功效内聚:功效内聚:信息内聚:信息内聚:通信内聚:通信内聚:过程内聚:过程内聚:时间内聚:时间内聚:逻辑内聚:逻辑内聚:巧合内聚:巧合内聚:强强弱弱设计时应该力争做到设计时应该力争做到高内聚高内聚。/10/1042大连理工大学软件学院第42页改进改进软件结构软件结构提升模块独立性提升模块独立性模块模块规模规模应该适中应该适中深度、宽度、扇出和扇入深度、宽度、扇出和扇入都应适当都应适当模块模块作用域作用域应该在应该在控制域控制域之内之内力争降低力争降低模块接口模块接口复杂程度复杂程度设计设计单入口单出口单入口单出口模块模块模块功效模块功效应该能够预测应该能够预测/10/1043大连理工大学软件学院第43页描绘软件结构图形工具描绘软件结构图形工具层次图和层次图和HIPO图图结构图结构图/10/1044大连理工大学软件学院第44页正文加工系统层次图/10/1045大连理工大学软件学院第45页正文加工系统H图/10/1046大连理工大学软件学院第46页结构图例子产生最正确解普通结构/10/1047大连理工大学软件学院第47页软件结构设计方法软件结构设计方法面向数据流设计方法面向数据流设计方法目标是给出设计目标是给出设计软件结软件结构构一个系统化路径。一个系统化路径。利用数据流图中利用数据流图中“映射映射“,把数据流图变换,把数据流图变换成软件结构。成软件结构。/10/1048大连理工大学软件学院第48页变换流和事务流/10/1049大连理工大学软件学院第49页设计步骤设计步骤1.复查基本系统模型。复查基本系统模型。2.复查并精化数据流图。复查并精化数据流图。3.确定数据流图含有变换特征还是事务特征。确定数据流图含有变换特征还是事务特征。4.确定输入流和输出流边界,从而孤立出变换中确定输入流和输出流边界,从而孤立出变换中心。心。5.完成完成“第一级分解第一级分解”。6.完成完成“第二级分解第二级分解”。7.使用设计度量和启发规则对第一次分割得到软使用设计度量和启发规则对第一次分割得到软件结构深入精化。件结构深入精化。/10/1050大连理工大学软件学院第50页数字仪表数字仪表板系统数板系统数据流图据流图精化数据流精化数据流图图数据流图含数据流图含有变换特征还有变换特征还是事务特征是事务特征/10/1051大连理工大学软件学院第51页含有边含有边界数据界数据流图流图确定输入流和输确定输入流和输出流边界,从而出流边界,从而孤立出变换中心孤立出变换中心/10/1052大连理工大学软件学院第52页第一级分解方法/10/1053大连理工大学软件学院第53页数字仪表板系统第一级分解完成完成“第一级分解第一级分解”/10/1054大连理工大学软件学院第54页第二级分解方法/10/1055大连理工大学软件学院第55页未经精化输入结构未经精化输入结构完成完成“第二级分解第二级分解”/10/1056大连理工大学软件学院第56页精化后数字仪表板系统软件结构软件结构深入精化软件结构深入精化/10/1057大连理工大学软件学院第57页事务分析映射方法事务分析映射方法/10/1058大连理工大学软件学院第58页详细设计第59页详细设计阶段主要完成界面和程序过程设计详细设计阶段主要完成界面和程序过程设计过程设计过程设计应该在数据设计、体系结构设计和接应该在数据设计、体系结构设计和接口设计完成之后进行口设计完成之后进行程序员将依据程序员将依据过程设计过程设计写出实际程序代码。写出实际程序代码。/10/1060大连理工大学软件学院第60页结构程序设计结构程序设计经典定义以下所述:经典定义以下所述:假如一个程序代码块仅仅经过次序、选择和循环假如一个程序代码块仅仅经过次序、选择和循环这三种控制结构进行连接,而且每个代码块只有这三种控制结构进行连接,而且每个代码块只有一个入口和一个出口,则称这个程序是结构化。一个入口和一个出口,则称这个程序是结构化。/10/1061大连理工大学软件学院第61页过程设计工具过程设计工具程序流程图程序流程图/10/1062大连理工大学软件学院第62页盒图盒图(N-S图图)/10/1063大连理工大学软件学院第63页PAD图图/10/1064大连理工大学软件学院第64页判定表判定表/10/1065大连理工大学软件学院第65页用判定树表示计算行李费算法判定树判定树/10/1066大连理工大学软件学院第66页伪码伪码/10/1067大连理工大学软件学院第67页测试第68页/10/1069大连理工大学软件学院第69页回归测试回归测试(已执行过测试用例子集已执行过测试用例子集)包含包含下述三种不一样测试用例。下述三种不一样测试用例。检测软件全部功效代表性测试用例。检测软件全部功效代表性测试用例。专门针对可能受修改影响软件功效附加测试。专门针对可能受修改影响软件功效附加测试。针对被修改过软件成份测试。针对被修改过软件成份测试。/10/1070大连理工大学软件学院第70页白盒测试技术白盒测试技术逻辑覆盖逻辑覆盖是设计白盒测试方案技术。设计测是设计白盒测试方案技术。设计测试方案是测试阶段关键技术问题。试方案是测试阶段关键技术问题。/10/1071大连理工大学软件学院第71页1.语句覆盖语句覆盖为暴露程序错误,最少每个语句应该执行一为暴露程序错误,最少每个语句应该执行一次。次。含义是,选择足够多测试数据,使被测程序含义是,选择足够多测试数据,使被测程序中每个语句最少执行一次。中每个语句最少执行一次。/10/1072大连理工大学软件学院第72页2.判定覆盖判定覆盖又叫分支覆盖又叫分支覆盖不但每个语句必须最少执行一次,不但每个语句必须最少执行一次,而且每个判定每种可能结果都应该最少执行一而且每个判定每种可能结果都应该最少执行一次,也就是每个判定每个分支都最少执行一次。次,也就是每个判定每个分支都最少执行一次。3.条件覆盖条件覆盖不但每个语句最少执行一次,而且判定表不但每个语句最少执行一次,而且判定表示式中每个条件都取到各示式中每个条件都取到各种可能结果。种可能结果。/10/1073大连理工大学软件学院第73页4.判定判定/条件覆盖条件覆盖判定覆盖不一定包含条件覆盖,条件覆盖也不一定判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定包含判定覆盖,判定/条件覆盖能同时满足这两种覆条件覆盖能同时满足这两种覆盖标准。盖标准。选取足够多测试数据,使得判定表示式中每个条件选取足够多测试数据,使得判定表示式中每个条件都取到各种可能值,而且每个判定表示式也都取到都取到各种可能值,而且每个判定表示式也都取到各种可能结果。各种可能结果。5.条件组合覆盖条件组合覆盖要求选取足够多测试数据,使每个判定表示式要求选取足够多测试数据,使每个判定表示式中条中条件各种可能组合都最少出现一次。件各种可能组合都最少出现一次。/10/1074大连理工大学软件学院第74页路径测试路径测试Tom McCabe提出一个白盒测试技术。提出一个白盒测试技术。首先计算过程设计结果逻辑复杂度,并以该复首先计算过程设计结果逻辑复杂度,并以该复杂度为指南定义执行路径基本集合,从该基本杂度为指南定义执行路径基本集合,从该基本集合导出测试用例能够确保程序中每条语句最集合导出测试用例能够确保程序中每条语句最少执行一次,而且每个条件在执行时都将分别少执行一次,而且每个条件在执行时都将分别取取true(真真)和和false(假假)值。值。/10/1075大连理工大学软件学院第75页求平均值过程流图使用基本路径测试技术设计使用基本路径测试技术设计测试用例步骤以下。测试用例步骤以下。1.依据过程设计结果画依据过程设计结果画出对应流图出对应流图/10/1076大连理工大学软件学院第76页PROCEDURE average;/*这个过程计算不超出这个过程计算不超出100个在要求值域内有效数个在要求值域内有效数字平均值;同时计算有效数字总和及个数。字平均值;同时计算有效数字总和及个数。*/INTERFACE RETURNS average,total_input,total_valid;INTERFACE ACCEPTS value,minimum,maximum;TYPE value 1.100 IS SCALAR ARRAY;TYPE average,total_input,total_valid,minimum,maximum,sum IS SCALAR;/10/1077大连理工大学软件学院第77页TYPE i IS INTEGER;1:i1;total_inputtotal_valid0;sum0;2:DO WHILE valuei -999 3:AND total_input 1004:increment total_input by 1;5:IF valuei=minimum6:AND valuei 011:THEN average=sum/total_valid;12:ELSE average=-999;13:END IFEND average/10/1079大连理工大学软件学院第79页2.计算流图计算流图环形复杂度环形复杂度环形复杂度定量度量程序逻辑复杂性。三种环形复杂度定量度量程序逻辑复杂性。三种方法来计算环形复杂度。方法来计算环形复杂度。流图中区域数等于环形复杂度。流图中区域数等于环形复杂度。流图流图G环形复杂度环形复杂度V(G)E-N+2,其中,其中E是流图是流图中边条数,中边条数,N是流图中节点数。是流图中节点数。流图流图G环形复杂度环形复杂度V(G)P+1,其中,其中P是流图中判是流图中判定节点数目。定节点数目。使用上述任何一个方法,都能够计算出流图使用上述任何一个方法,都能够计算出流图环形复杂度为环形复杂度为6。/10/1080大连理工大学软件学院第80页3.确定确定线性独立路径线性独立路径基本集合基本集合对于所描述求平均值过程来说,因为环形复杂度为对于所描述求平均值过程来说,因为环形复杂度为6,所以共,所以共有有6条独立路径。比如,下面列出了条独立路径。比如,下面列出了6条独立路径:条独立路径:路径路径1:1-2-10-11-13路径路径2:1-2-10-12-13路径路径3:1-2-3-10-11-13路径路径4:1-2-3-4-5-8-9-2-路径路径5:1-2-3-4-5-6-8-9-2-路径路径6:1-2-3-4-5-6-7-8-9-2-/10/1081大连理工大学软件学院第81页4.设计可强制执行基本集合中每条路径测试用例设计可强制执行基本集合中每条路径测试用例选取数据使得在测试每条路径时都适当设置好选取数据使得在测试每条路径时都适当设置好了各个判定节点条件。了各个判定节点条件。路径路径1测试用例:测试用例:valuek有效输入值,其中有效输入值,其中ki(i定义在下定义在下)valuei-999,其中,其中2i100预期结果:基于预期结果:基于k正确平均值和总数正确平均值和总数注意,路径注意,路径1无法独立测试,必须作为路径无法独立测试,必须作为路径4、5和和6一一部分来测试。部分来测试。路径路径2测试用例:测试用例:value1-999预期结果:预期结果:average-999,其它都保持初始值,其它都保持初始值/10/1082大连理工大学软件学院第82页路径路径4测试用例:测试用例:valuei有效输入值,其中有效输入值,其中i100valuek minimum,其中,其中ki预期结果:其于预期结果:其于k正确平均值和总数正确平均值和总数路径路径5测试用例:测试用例:valuei有效输入值,其中有效输入值,其中i100valuekmaximum,其中,其中ki预期结果:其于预期结果:其于k正确平均值和总数正确平均值和总数路径路径6测试用例:测试用例:valuei=有效输入值,其中有效输入值,其中i100预期结果:正确平均值和总数预期结果:正确平均值和总数/10/1083大连理工大学软件学院第83页黑盒测试技术黑盒测试技术黑盒测试着重测试软件黑盒测试着重测试软件功效需求功效需求,让软件工程师,让软件工程师设计出能充分检验程序全部功效需求输入条件集。设计出能充分检验程序全部功效需求输入条件集。黑盒测试并不能取代白盒测试技术,它是与白盒黑盒测试并不能取代白盒测试技术,它是与白盒测试互补测试互补方法,它很可能发觉白盒测试不易发觉方法,它很可能发觉白盒测试不易发觉其它不一样类型错误。其它不一样类型错误。/10/1084大连理工大学软件学院第84页黑盒测试力图发觉下述类型错误:黑盒测试力图发觉下述类型错误:功效不正功效不正确或遗漏了功效;确或遗漏了功效;界面错误;界面错误;数据结构错数据结构错误或外部数据库访问错误;误或外部数据库访问错误;性能错误;性能错误;初初始化和终止错误。始化和终止错误。白盒测试在测试过程早期阶段进行,而黑盒测试白盒测试在测试过程早期阶段进行,而黑盒测试主要用于测试过程后期。主要用于测试过程后期。黑盒测试有意黑盒测试有意不考虑程序控制结构,而把注意力不考虑程序控制结构,而把注意力集中于集中于信息域信息域。/10/1085大连理工大学软件学院第85页等价划分等价划分:确定确定输入数据有效等价类和无效等输入数据有效等价类和无效等价类价类。边界值分析边界值分析错误推测错误推测/10/1086大连理工大学软件学院第86页面向对象基础第87页什么是对象技术什么是对象技术 基于对象概念软件开发方法基于对象概念软件开发方法 对象包含有数据及处理数据功效函数对象包含有数据及处理数据功效函数 在分析、设计和实现整个过程中只使用一在分析、设计和实现整个过程中只使用一个概念对象开发方法个概念对象开发方法 能够处理软件危机中大多数问题方法能够处理软件危机中大多数问题方法对象对象=数据数据+功效功效/10/1088大连理工大学软件学院第88页对象技术优势对象技术优势稳定稳定:较小需求改变不会造成系统结构大较小需求改变不会造成系统结构大改变改变举例:某企业销售处理系统举例:某企业销售处理系统定单定单协议协议出费出费/10/1089大连理工大学软件学院第89页对象技术优势对象技术优势 稳定稳定:数据和功效都打包在一起,从而改进软件数据和功效都打包在一起,从而改进软件再重用性再重用性软件重用能提升质量,降低因为编制新系统代码软件重用能提升质量,降低因为编制新系统代码而产生成本而产生成本FileMgrMacroEditorMathUtilitiesTextEditorPrintUtilitiesFormatEditorMenusStringUtilitiesSpreadsheetWord ProcessorReusable-Component Repository/10/1090大连理工大学软件学院第90页对象技术优势对象技术优势面向对象模型愈加贴切地反应了现实世界面向对象模型愈加贴切地反应了现实世界 愈加准确地描述公共数据和过程愈加准确地描述公共数据和过程 易于了解,尤其对于使用者易于了解,尤其对于使用者现实世界现实世界Laser PrinterExternal DriveComputer对象图对象图/10/1091大连理工大学软件学院第91页对象技术优势对象技术优势 面向对象方法支持大规模开发面向对象方法支持大规模开发 能够严格定义各个组件之间交互能够严格定义各个组件之间交互 降低内部依赖关系降低内部依赖关系 降低集成问题降低集成问题 支持并行开发支持并行开发/10/1092大连理工大学软件学院第92页对象技术优势对象技术优势帮助开发多层结构帮助开发多层结构 Equipment and Customer specific CodeProcesses and other application code Major abstractions,classes,etc.MechanismsH/W specific code,O/S specific code general-purpose code12345ApplicationSpecificApplicationIndependentLess ReuseMore Reuse/10/1093大连理工大学软件学院第93页面向对象概念面向对象概念Object 对象对象Class 类类Instance 实例实例State 状态状态Behavior 行为行为Attribute 属性属性Operation 操作操作(Method方法方法)Inheritance 继承继承Subclasses 子类子类Superclasses 父类父类Generalization 普遍化普遍化Polymorphism 多态多态/10/1094大连理工大学软件学院第94页面向对象概念面向对象概念Abstraction 抽象抽象Encapsulation 封装封装Association 关联关联Role 角色角色Multiplicity 多重性多重性Aggregation 聚合聚合Dependency association 依赖依赖Package 包包Use Case 用例用例Scenario 脚本脚本Actor/10/1095大连理工大学软件学院第95页什么是对象什么是对象一个对象代表了一个现实或虚构实体一个对象代表了一个现实或虚构实体自然实体自然实体概念实体概念实体软件实体软件实体化学过程化学过程连接显示连接显示/10/1096大连理工大学软件学院第96页对象属性对象属性 对象是应用中含有显著边界和含义概念、对象是应用中含有显著边界和含义概念、抽象或事物抽象或事物 一个对象有三个主要属性一个对象有三个主要属性:状态状态 行为行为 标识标识 术语术语“实例实例”是是“对象对象”同义词同义词/10/1097大连理工大学软件学院第97页对象状态对象状态 一个对象状态是它反应于现实世界一系列一个对象状态是它反应于现实世界一系列属性:属性:参数数值参数数值(也就是也就是,与对象相关系数据与对象相关系数据)它与其它对象关系它与其它对象关系 任一时刻历史状态任一时刻历史状态可能状态:可能状态:停泊停泊 运行运行着陆着陆 终止终止班机班机 747 747/10/1098大连理工大学软件学院第98页对象行为对象行为定义当其它对象发出请求时,该对象怎样定义当其它对象发出请求时,该对象怎样反应反应由为对象定义一系列操作决定由为对象定义一系列操作决定班机班机 747查对出发时间查对出发时间(返回返回 9:27)机票代理机票代理/10/1099大连理工大学软件学院第99页对象标识对象标识 每一个对象都有一个唯一标识每一个对象都有一个唯一标识,即使其状即使其状态有可能与其它对象一样态有可能与其它对象一样班机班机 747 on 11/10班机班机 747 on 11/11班机班机 747 on 11/12/10/10100大连理工大学软件学院第100页什么是类(什么是类(Class)类是一组含有相同结构和行为对象集合类是一组含有相同结构和行为对象集合 共同结构经过属性表现出来共同结构经过属性表现出来(i.e.数据数据)共同行为经过操作表现出来共同行为经过操作表现出来(i.e.功效功效)班机班机 747结构结构班机号班机号日期日期分配班机分配班机起点起点终点终点状态状态行为行为装载设备装载设备起飞起飞延迟延迟取消取消终止终止/10/10101大连理工大学软件学院第101页类示例类示例ClassEmployeeStructureNameAddressPositionSalaryStart DateEnd DateBehaviorHireFirePromoteIncrease SalaryRetire/10/10102大连理工大学软件学院第102页类图:用来表示类类图:用来表示类 类图是一个主要图形化对象表示法类图是一个主要图形化对象表示法 类图显示类及类之间关系类图显示类及类之间关系 一个类经过在类图标中类名(唯一)来代表一个类经过在类图标中类名(唯一)来代表班机班机/10/10103大连理工大学软件学院第103页属性属性 属性是类特征或特征属性是类特征或特征 属性值是某一特定对象属性值属- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连理工大学 软件工程 导论 复习 课件 公共课 一等奖 全国 获奖
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文