软件工程导论复习ppt课件.ppt
《软件工程导论复习ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程导论复习ppt课件.ppt(135页珍藏版)》请在三一办公上搜索。
1、软件工程复习,第1章 基础知识,2022/11/14,1,2,2022/11/14,3,什么是软件,软件的定义软件由三部分组成:程序:在运行时,能提供所希望的功能和性能的指令集数据:使程序能够正确运行的数据文档:描述程序研制过程、方法及使用的文档软件处理的是信息和逻辑软件的开发,绝不仅仅是编写程序软件围绕着逻辑进行软件就是一个信息交换器产生、管理、获取、修改、显示或传送信息,软件程序,2022/11/14,4,什么是软件危机软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。,软件工程(IEEE)1993年,提出软件工程1) 将系统化、规范化、可量化的工程原则和方法,应用于软件的
2、开发、运行和维护。2) 对1)中方法的理论研究。,2022/11/14,5,软件工程基本原理 (开发与维护的指导)用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性,2022/11/14,6,软件工程方法学把在软件生命周期全过程中使用的一整套技术的集合称为方法学(methodology),也称范型(paradigm)。软件工程方法学三个要素:方法、工具和过程。方法是完成软件开发各项任务的技术,回答“如何做”;工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什么做”;过程是为获得高
3、质量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答“如何控制、协调、保证质量”。,管理方法,2022/11/14,7,目前使用得最广泛的软件工程方法学。传统方法学也称为生命周期方法学或结构化范型。 当软件规模较大,或对软件的需求是模糊的或随时间变化的时候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。结构化静态分析,面向对象动态分析,世界万物是变化的,传统方法学与面向对象方法学,2022/11/14,8,传统方法的特点,生命周期模型软件过程划分为若干个阶段每个阶段有各自的任务阶段之间有某种顺序性,面向对象方法:对象作为融合数据及在数据之上
4、的操作行为的统一的软件构件。把所有对象都划分成类(Class)。每个类都定义了一组数据和一组操作。按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为继承。对象彼此间仅能通过发送消息互相联系封装性。,数据:静态操作:动态,Everything is Object.,2022/11/14,大连理工大软件学院,9,1.3 软件生命周期,软件生命周期由软件定义、软件开发和运行维护三个时期组成,每个时期又可进一步划分成若干个阶段,每个阶段有各自的任务。,2022/11/14,1,10,问
5、题定义可行性研究 需求分析概要设计详细设计编码和单元测试综合测试软件维护,2022/11/14,1,11,实际的瀑布模型,软件过程模型(生命周期模型),2022/11/14,1,12,快速原型模型,2022/11/14,1,13,增量模型,瀑布模型:力求一次性给用户完整的系统。增量模型:逐步增加系统功能。需要开放的架构设计。,2022/11/14,1,14,完整的螺旋模型,2022/11/14,1,15,喷泉模型,迭代是OO开发过程的主要特性。喷泉模型是典型的面向对象生命周期模型。“喷泉” 体现了面向对象软件开发过程迭代和无缝的特性。为避免喷泉模型的过分无序,把一个线性过程作为总目标。,迭代,
6、2022/11/14,1,16,喷泉模型,迭代:逐步求精阶段间没有明显的界限面向对象的思想保证了各个阶段开发的一致性。,迭代是OO开发过程的主要特性。喷泉模型是典型的面向对象生命周期模型。“喷泉” 体现了面向对象软件开发过程迭代和无缝的特性。,2022/11/14,1,17,可行性与需求分析,可行性研究不是解决问题,而是确定问题是否值得去解决较高层次的系统分析和设计过程需求分析发现、求精、建模、规格说明和复审的过程反复求精多次细化,得出对目标系统的完整、准确和具体的要求。建立数据模型、功能模型和行为模型等三种模型。还要写出准确的软件需求规格说明。,。,2022/11/14,1,19,系统流程图
7、,系统流程图概括描绘物理系统的传统工具用图形符号,以黑盒子形式描述组成系统的每个部件程序、文档、数据库、人工过程,2022/11/14,1,20,系统流程图例子,例子,每个符号用黑盒子形式定义了组成系统的一个部件。没有部件内部的具体工作过程箭头确定通过系统的逻辑路径(信息流动路径),2022/11/14,1,21,数据流图,数据流图(DFD) 描绘信息流和数据从输入移动到输出的过程中所经受的变换。,或,或,或,2022/11/14,1,22,加工中常见关系的符号表示,2022/11/14,1,23,2022/11/14,1,24,把处理事务的功能进一步分解后的数据流图,2022/11/14,1
8、,25,数据字典,数据字典是关于数据的信息的集合,即对DFD图中包含的元素的定义的集合。数据字典的用途是供人查阅不了解的条目的解释。提供分析设计过程中关于数据的描述。数据字典与DFD相辅相成。只有DFD和对应的元素的精确定义放在一起,才能构成系统的规格说明。,2022/11/14,1,26,定义数据的方法, 意思是等价于(或定义为); 意思是和(即,连接两个分量); 意思是或(即,从方括弧内列出的若干个分量中选择一个),用“”号分开供选择的分量; 意思是重复(即,重复花括弧内的分量);( )意思是可选(即,圆括弧里的分量可有可无)。使用上限和下限进一步注释表示重复的花括弧。左边用上角标和下角标
9、分别表明重复的上限和下限;左侧标明重复的下限,在闭括弧的右侧标明上限。例如: A和1A5 含义相同。 ,1,5,2022/11/14,1,27,数据字典的实现,CASE工具人工卡片,2022/11/14,1,28,实体关系图,数据模型包含三种相互关联的信息:数据对象、描述数据对象属性及数据对象彼此间相互连接的关系。,2022/11/14,1,29,某校教学管理 ER 图,2022/11/14,1,30,学生和课程之间的E-R模型学生和课程之间的多对多联系E-R模型;(b) 将多对多联系转换为一对多联系E-R模型,选课,m,n,学号,专业,年级,课名,课号,学时,1,n,学号,专业,课名,课号,
10、学时,学号,课号,n,1,姓名,课程,学生,姓名,课程,学分,学生,年级,选课,学分,(a),(b),2022/11/14,1,31,其他图形工具,Warnier图,2022/11/14,1,32,其他图形工具(3),IPO图,2022/11/14,1,33,其他图形工具(2),IPO图IPO图是输入、处理、输出图的简称左边框中列出有关的输入中间框中列出主要的处理右边框中列出产生的输出处理的顺序暗示了执行的顺序箭头指出数据通信的情况,2022/11/14,1,34,总体设计,总体设计,概要设计和详细设计。概要设计主要任务是通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件划分为模块
11、,并且设计出完成预定功能的模块结构。详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的算法和数据结构。,2022/11/14,1,36,模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。可以由许多程序员分工编写不同的模块可以使软件结构清晰,便于扩展使软件容易测试和调试,因而有助于提高软件的可靠性。模块大小要适中,不过分细。,2022/11/14,1,37,模块独立,模块的独立程度可以由两个定性标准来度量,分别称为内聚和耦合。耦合:衡量不同模块彼此间互相依赖(连接)紧密程度;内聚:衡量一个模块内
12、部各个元素彼此结合的紧密程度。,2022/11/14,1,38,耦合是对一个软件结构内不同模块之间互连程度的度量。尽可能松散耦合,2022/11/14,1,39,数据耦合:特征耦合:控制耦合:外部耦合:公共耦合:内容耦合:,弱强,尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。,2022/11/14,1,40,内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。,2022/11/14,1,41,功能内聚:信息内聚:通信内聚:过程内聚:时间内聚:逻辑内聚:巧合内聚:,强弱,设计时应该力求做到高内聚。,
13、2022/11/14,1,42,改进软件结构提高模块独立性模块规模应该适中深度、宽度、扇出和扇入都应适当模块的作用域应该在控制域之内力争降低模块接口的复杂程度设计单入口单出口的模块模块功能应该可以预测,2022/11/14,1,43,描绘软件结构的图形工具,层次图和HIPO图结构图,2022/11/14,1,44,正文加工系统的层次图,2022/11/14,1,45,正文加工系统的H图,2022/11/14,1,46,结构图的例子产生最佳解的一般结构,2022/11/14,1,47,软件结构设计方法,面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。利用数据流图中的“映射“,把数
14、据流图变换成软件结构。,2022/11/14,1,48,变换流和事务流,2022/11/14,1,49,设计步骤复查基本系统模型。复查并精化数据流图。确定数据流图具有变换特性还是事务特性。确定输入流和输出流的边界,从而孤立出变换中心。完成“第一级分解”。完成“第二级分解”。使用设计度量和启发规则对第一次分割得到的软件结构进一步精化。,2022/11/14,1,50,数字仪表板系统的数据流图,精化数据流图数据流图具有变换特性还是事务特性,2022/11/14,1,51,具有边界的数据流图,确定输入流和输出流的边界,从而孤立出变换中心,2022/11/14,1,52,第一级分解的方法,2022/1
15、1/14,1,53,数字仪表板系统的第一级分解,完成“第一级分解”,2022/11/14,1,54,第二级分解的方法,2022/11/14,1,55,未经精化的输入结构,完成“第二级分解”,2022/11/14,1,56,精化后的数字仪表板系统的软件结构,软件结构进一步精化,2022/11/14,1,57,事务分析的映射方法,2022/11/14,1,58,详细设计,详细设计阶段主要完成界面和程序过程设计过程设计应该在数据设计、体系结构设计和接口设计完成之后进行程序员将根据过程设计写出实际的程序代码。,2022/11/14,1,60,结构程序设计的经典定义如下所述:如果一个程序的代码块仅仅通过
16、顺序、选择和循环这三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。,2022/11/14,1,61,过程设计的工具,程序流程图,2022/11/14,1,62,盒图(N-S图),2022/11/14,1,63,PAD图,2022/11/14,1,64,判定表,2022/11/14,1,65,用判定树表示计算行李费的算法,判定树,2022/11/14,1,66,伪码,2022/11/14,1,67,测试,2022/11/14,1,69,回归测试 (已执行过的测试用例的子集)包括下述三种不同的测试用例。检测软件全部功能的代表性测试用例。专门针对可能受修改影响的软
17、件功能的附加测试。针对被修改过的软件成分的测试。,2022/11/14,1,70,白盒测试技术,逻辑覆盖是设计白盒测试方案的技术。设计测试方案是测试阶段的关键技术问题。,2022/11/14,1,71,语句覆盖为暴露程序的错误,至少每个语句应该执行一次。含义是,选择足够多的测试数据,使被测程序中每个语句至少执行一次。,2022/11/14,1,72,判定覆盖又叫分支覆盖不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次,也就是每个判定的每个分支都至少执行一次。条件覆盖不仅每个语句至少执行一次,而且判定表达式中每个条件都取到各种可能的结果。,2022/11/14,1,7
18、3,判定/条件覆盖判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖,判定/条件覆盖能同时满足这两种覆盖标准。选取足够多的测试数据,使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。条件组合覆盖要求选取足够多的测试数据,使每个判定表达式中条件的各种可能组合都至少出现一次。,2022/11/14,1,74,路径测试Tom McCabe提出的一种白盒测试技术。首先计算过程设计结果的逻辑复杂度,并以该复杂度为指南定义执行路径的基本集合,从该基本集合导出的测试用例可以保证程序中每条语句至少执行一次,而且每个条件在执行时都将分别取true(真)和false(假
19、)值。,2022/11/14,1,75,求平均值过程的流图,使用基本路径测试技术设计测试用例步骤如下。根据过程设计结果画出相应的流图,2022/11/14,1,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_inpu
20、t, total_valid, minimum, maximum, sum IS SCALAR;,2022/11/14,1,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 = maximum7: THEN increment total_valid by 1;sumsum+valuei;8: END IFi
21、ncrement i by 1;9: END DO,2022/11/14,1,78,10: IF total_valid 011: THEN average = sum/total_valid;12: ELSE average = -999;13: END IFEND average,2022/11/14,1,79,计算流图的环形复杂度环形复杂度定量度量程序的逻辑复杂性。三种方法来计算环形复杂度。流图中的区域数等于环形复杂度。流图G的环形复杂度V(G)E-N+2,其中E是流图中边的条数,N是流图中节点数。流图G的环形复杂度V(G)P+1,其中P是流图中判定节点的数目。使用上述任何一种方法,都可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 复习 ppt 课件

链接地址:https://www.31ppt.com/p-1363725.html