(优选)软件工程导论复习.课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《(优选)软件工程导论复习.课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优选 软件工程 导论 复习 课件
- 资源描述:
-
1、软件工程导论复习软件工程导论复习第第1章章 基础知识基础知识 2022-4-2212什么是软件什么是软件 软件的定义软件的定义软件由三部分组成:软件由三部分组成: 程序:在运行时,能提供所希望的功能和性能的指程序:在运行时,能提供所希望的功能和性能的指令集令集 数据:使程序能够正确运行的数据数据:使程序能够正确运行的数据 文档:描述程序研制过程、方法及使用的文档文档:描述程序研制过程、方法及使用的文档 软件处理的是信息和逻辑软件处理的是信息和逻辑 软件的开发,绝不仅仅是编写程序软件的开发,绝不仅仅是编写程序 软件围绕着逻辑进行软件围绕着逻辑进行 软件就是一个信息交换器软件就是一个信息交换器 产
2、生、管理、获取、修改、显示或传送信息产生、管理、获取、修改、显示或传送信息2022-4-223 什么是软件危机什么是软件危机 软件危机是指在计算机软件的开发和维护过程中所遇软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。到的一系列严重问题。 软件工程(软件工程(IEEE) 1993年,提出软件工程年,提出软件工程 1) 将系统化、规范化、可量化的工程原则和方法,将系统化、规范化、可量化的工程原则和方法,应用于软件的开发、运行和维护。应用于软件的开发、运行和维护。 2) 对对1)中方法的理论研究。中方法的理论研究。2022-4-224软件工程基本原理软件工程基本原理 (开发与维
3、护的指导开发与维护的指导)1.用分阶段的生命周期计划严格管理用分阶段的生命周期计划严格管理2.坚持进行阶段评审坚持进行阶段评审3.实行严格的产品控制实行严格的产品控制4.采用现代程序设计技术采用现代程序设计技术5.结果应能清楚地审查结果应能清楚地审查6.开发小组的人员应该少而精开发小组的人员应该少而精7.承认不断改进软件工程实践的必要性承认不断改进软件工程实践的必要性2022-4-225 软件工程方法学软件工程方法学 把在软件生命周期全过程中使用的一整套把在软件生命周期全过程中使用的一整套技术的集合技术的集合称为称为方法学方法学(methodology),也称范型,也称范型(paradigm)
4、。 软件工程方法学三个要素:软件工程方法学三个要素:方法、工具和过程方法、工具和过程。 方法是完成软件开发各项任务的技术,回答方法是完成软件开发各项任务的技术,回答“如何做如何做”; 工具是为方法的运用提供自动或半自动软件支撑环境,回答工具是为方法的运用提供自动或半自动软件支撑环境,回答“用什用什么做么做”; 过程是为获得高质量的软件要完成的一系列任务的框架,规定完成过程是为获得高质量的软件要完成的一系列任务的框架,规定完成各项任务步骤,回答各项任务步骤,回答“如何控制、协调、保证质量如何控制、协调、保证质量”。管理方法管理方法2022-4-226 目前使用得最广泛的软件工程方法学。目前使用得
5、最广泛的软件工程方法学。 传统方法学也称为传统方法学也称为生命周期方法学生命周期方法学或或结构化范型结构化范型。 当软件规模较大,或对软件的需求是当软件规模较大,或对软件的需求是模糊模糊的或随时间的或随时间变化变化的时的时候,使用结构化范型开发软件往往不成功;候,使用结构化范型开发软件往往不成功;此外,使用传统方法学开发出的软件,维护起来通常都很困难。此外,使用传统方法学开发出的软件,维护起来通常都很困难。 结构化静态分析,面向对象动态分析结构化静态分析,面向对象动态分析世界万物是变化的世界万物是变化的传统方法学与面向对象方法学传统方法学与面向对象方法学2022-4-227传统方法的特点传统方
6、法的特点 生命周期模型生命周期模型 软件过程划分为若干个阶软件过程划分为若干个阶段段 每个阶段有各自的任务每个阶段有各自的任务 阶段之间有某种顺序性阶段之间有某种顺序性2022-4-228面向对象方法:面向对象方法:1. 对象作为融合数据及在数据之上的操作行为的统一的软件对象作为融合数据及在数据之上的操作行为的统一的软件构件。构件。2. 把所有对象都划分成把所有对象都划分成类类(Class)。每个类都定义了一组。每个类都定义了一组数据数据和一组和一组操作操作。3. 按照父类按照父类(或称为基类或称为基类)与子类与子类(或称为派生类或称为派生类)的关系,把的关系,把若干个相关类组成一个若干个相关
7、类组成一个层次结构层次结构的系统的系统(也称为类等级也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,称为和操作,称为继承继承。4. 对象彼此间仅能通过发送消息互相联系对象彼此间仅能通过发送消息互相联系封装性封装性。数据:静态数据:静态操作:动态操作:动态Everything is Object.2022-4-22大连理工大软件学院91.3 软件生命周期软件生命周期 软件生命周期由软件生命周期由软件定义、软件开发软件定义、软件开发和和运行维护运行维护三个时期组成,每个时期又可进一步划分成若干三个时期组成,每个时期又可进一
8、步划分成若干个阶段,每个阶段有各自的任务。个阶段,每个阶段有各自的任务。1软件定义软件定义2软件开发软件开发3运行维护运行维护2022-4-221101.问题定义问题定义2.可行性研究可行性研究 3.需求分析需求分析4.概要设计概要设计5.详细设计详细设计6.编码和单元测试编码和单元测试7.综合测试综合测试8.软件维护软件维护2022-4-22111实际的瀑布模型实际的瀑布模型软件过程模型(生命周期模型)软件过程模型(生命周期模型)2022-4-22112快速原型模型快速原型模型2022-4-22113增量模型增量模型 瀑布模型:力求一次性瀑布模型:力求一次性给用户完整的系统。给用户完整的系统
9、。 增量模型:逐步增加系增量模型:逐步增加系统功能。统功能。 需要开放的架构设计。需要开放的架构设计。2022-4-22114完整的螺旋模型完整的螺旋模型2022-4-22115喷泉模型喷泉模型 迭代迭代是是OO开发过程的主要特性。开发过程的主要特性。 喷泉模型是典型的面向对象生命周期模型。喷泉模型是典型的面向对象生命周期模型。 “喷泉喷泉” 体现了面向对象软件开发过程体现了面向对象软件开发过程迭代和无缝迭代和无缝的特性。的特性。 为避免喷泉模型的过分无序,把一个为避免喷泉模型的过分无序,把一个线性过程线性过程作为总目标。作为总目标。迭代迭代 2022-4-22116喷泉模型喷泉模型 迭代:逐
10、步求精迭代:逐步求精 阶段间没有明显的界限阶段间没有明显的界限面向对象的思想保证了面向对象的思想保证了各个阶段开发的一致性。各个阶段开发的一致性。迭代迭代是是OO开发过程开发过程的主要特性。的主要特性。喷泉模型是典型的喷泉模型是典型的面向对象生命周期面向对象生命周期模型。模型。“喷泉喷泉” 体现了面体现了面向对象软件开发过向对象软件开发过程程迭代和无缝迭代和无缝的特的特性。性。2022-4-22117可行性与需求分析可行性与需求分析 可行性研究可行性研究 不是解决问题,而是确定问题是否值得去解决不是解决问题,而是确定问题是否值得去解决 较高层次的系统分析和设计过程较高层次的系统分析和设计过程
11、需求分析需求分析 发现、求精、建模、规格说明和复审的过程发现、求精、建模、规格说明和复审的过程反复求精多次细化,得出对目标系统的完整、准确和反复求精多次细化,得出对目标系统的完整、准确和具体的要求。具体的要求。 建立数据模型、功能模型和行为模型等三种模型。建立数据模型、功能模型和行为模型等三种模型。 还要写出准确的软件需求规格说明。还要写出准确的软件需求规格说明。2022-4-22119系统流程图系统流程图 系统流程图系统流程图 概括描绘物理系统的传统工具概括描绘物理系统的传统工具 用图形符号,以黑盒子形式描述组成系统的每用图形符号,以黑盒子形式描述组成系统的每个部件个部件 程序、文档、数据库
12、、人工过程程序、文档、数据库、人工过程2022-4-22120系统流程图例子系统流程图例子 例子例子 每个符号用黑盒每个符号用黑盒子形式定义了组子形式定义了组成系统的一个部成系统的一个部件。件。 没有部件内部的没有部件内部的具体工作过程具体工作过程 箭头确定通过系箭头确定通过系统的逻辑路径统的逻辑路径(信息流动路径)(信息流动路径)2022-4-22121 数据流图数据流图 数据流图数据流图(DFD) 描绘信息流和数据从输入描绘信息流和数据从输入移动到输出的过程中所经受的变换。移动到输出的过程中所经受的变换。2022-4-22122T*T*T+T+TT2022-4-221232022-4-22
13、124把处理事务的功能进一步分解后的数据流图把处理事务的功能进一步分解后的数据流图2022-4-22125数据字典数据字典 数据字典是关于数据的信息的集合,即对数据字典是关于数据的信息的集合,即对DFD图图中包含的元素的定义的集合。中包含的元素的定义的集合。 数据字典的用途是供人查阅不了解的条目的解释。数据字典的用途是供人查阅不了解的条目的解释。提供分析设计过程中关于数据的描述。提供分析设计过程中关于数据的描述。 数据字典与数据字典与DFD相辅相成。相辅相成。 只有只有DFD和对应的元素的精确定义放在一起,才和对应的元素的精确定义放在一起,才能构成系统的规格说明。能构成系统的规格说明。2022
14、-4-22126定义数据的方法定义数据的方法 意思是等价于意思是等价于(或定义为或定义为); 意思是和意思是和(即,连接两个分量即,连接两个分量); 意思是或意思是或(即,从方括弧内列出的若干个分即,从方括弧内列出的若干个分量中选择一个量中选择一个),用,用“”号分开供选择的分量;号分开供选择的分量; 意思是重复意思是重复(即,重复花括弧内的分量即,重复花括弧内的分量); ( )意思是可选)意思是可选(即,圆括弧里的分量可有可无即,圆括弧里的分量可有可无)。 使用上限和下限进一步注释表示重复的花括弧。使用上限和下限进一步注释表示重复的花括弧。 左边用上角标和下角标分别表明重复的上限和下限;左边
15、用上角标和下角标分别表明重复的上限和下限; 左侧标明重复的下限,在闭括弧的右侧标明上限。左侧标明重复的下限,在闭括弧的右侧标明上限。 例如:例如: A和和1A5 含义相同。含义相同。 152022-4-22127数据字典的实现数据字典的实现 CASE工具工具 人工卡片人工卡片2022-4-22128 实体实体关系图关系图 数据模型包含三种相互关联的信息:数据模型包含三种相互关联的信息:数据数据对象对象、描述数据对象、描述数据对象属性属性及数据对象彼此及数据对象彼此间相互连接的间相互连接的关系关系。2022-4-22129某校教学管理 ER 图2022-4-22130选课mn学号专业年级课名课号
16、学时1n学号专业课名课号学时学号课号n1姓名课程学生姓名课程学分学生年级选课学分(a)(b)2022-4-22131 其他图形工具其他图形工具 Warnier图图2022-4-22132其他图形工具其他图形工具(3) IPO图图2022-4-22133其他图形工具其他图形工具(2) IPO图图 IPO图是输入、处理、输出图的简称图是输入、处理、输出图的简称 左边框中列出有关的输入左边框中列出有关的输入 中间框中列出主要的处理中间框中列出主要的处理 右边框中列出产生的输出右边框中列出产生的输出 处理的顺序暗示了执行的顺序处理的顺序暗示了执行的顺序 箭头指出数据通信的情况箭头指出数据通信的情况20
17、22-4-22134总体设计总体设计总体设计总体设计 概要设计和详细设计概要设计和详细设计。 概要设计主要任务是通过仔细分析软件规格说明,概要设计主要任务是通过仔细分析软件规格说明,适当地对软件进行功能分解,从而把软件适当地对软件进行功能分解,从而把软件划分为划分为模块模块,并且设计出完成预定功能的,并且设计出完成预定功能的模块结构模块结构。 详细设计阶段详细地设计每个模块,确定完成每详细设计阶段详细地设计每个模块,确定完成每个模块功能所需要的个模块功能所需要的算法和数据结构算法和数据结构。2022-4-22136模块化:就是把程序划分成独立命名且可模块化:就是把程序划分成独立命名且可独立访问
18、的模块,每个模块完成一个子功独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。可以完成指定的功能满足用户的需求。 可以由许多程序员分工编写不同的模块可以由许多程序员分工编写不同的模块 可以使软件结构清晰,便于扩展可以使软件结构清晰,便于扩展 使软件容易测试和调试,因而有助于提高软使软件容易测试和调试,因而有助于提高软件的可靠性。件的可靠性。 模块大小要适中,不过分细。模块大小要适中,不过分细。2022-4-22137模块独立模块独立 模块的独立程度可以由两个定性标准来度量,模块的独立程度可以由两个定性标
19、准来度量,分别称为分别称为内聚和耦合内聚和耦合。耦合:衡量不同模块彼此间互相依赖耦合:衡量不同模块彼此间互相依赖( (连接连接) )紧紧密程度;密程度;内聚:衡量一个模块内部各个元素彼此结合的内聚:衡量一个模块内部各个元素彼此结合的紧密程度。紧密程度。2022-4-22138 耦合是对一个软件结构内不同模块之间互耦合是对一个软件结构内不同模块之间互连程度的度量。连程度的度量。 尽可能尽可能松散耦合松散耦合2022-4-22139 数据耦合:数据耦合: 特征耦合:特征耦合: 控制耦合:控制耦合: 外部耦合:外部耦合: 公共耦合:公共耦合: 内容耦合:内容耦合:弱弱强强尽量使用数据耦合,少用控制耦
20、合,尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用限制公共环境耦合的范围,完全不用内容耦合。内容耦合。2022-4-22140 内聚:标志一个模块内各个元素彼此结合内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的紧密程度,它是信息隐蔽和局部化概念的自然扩展。的自然扩展。 简单地说,简单地说,理想内聚的模块只做一件事情理想内聚的模块只做一件事情。 2022-4-22141 功能内聚:功能内聚: 信息内聚:信息内聚: 通信内聚:通信内聚: 过程内聚:过程内聚: 时间内聚:时间内聚: 逻辑内聚:逻辑内聚: 巧合内聚:巧合内聚:强强弱弱设计时应该力求做到设计
21、时应该力求做到高内聚高内聚。2022-4-22142 改进改进软件结构软件结构提高模块独立性提高模块独立性 模块模块规模规模应该适中应该适中 深度、宽度、扇出和扇入深度、宽度、扇出和扇入都应适当都应适当 模块的模块的作用域作用域应该在应该在控制域控制域之内之内 力争降低力争降低模块接口模块接口的复杂程度的复杂程度 设计设计单入口单出口单入口单出口的模块的模块 模块功能模块功能应该可以预测应该可以预测2022-4-22143描绘软件结构的图形工具描绘软件结构的图形工具 层次图和层次图和HIPO图图 结构图结构图2022-4-22144正文加工系统的层次图2022-4-22145正文加工系统的H图
22、2022-4-22146结构图的例子产生最佳解的一般结构2022-4-22147软件结构设计方法软件结构设计方法 面向数据流的设计方法面向数据流的设计方法的目标是给出设计的目标是给出设计软软件结构件结构的一个系统化的途径。的一个系统化的途径。 利用数据流图中的利用数据流图中的“映射映射“,把数据流图变,把数据流图变换成软件结构。换成软件结构。2022-4-22148变换流和事务流2022-4-22149设计步骤设计步骤1. 复查基本系统模型。复查基本系统模型。2. 复查并精化数据流图。复查并精化数据流图。3. 确定数据流图具有变换特性还是事务特性。确定数据流图具有变换特性还是事务特性。4. 确
23、定输入流和输出流的边界,从而孤立出变换确定输入流和输出流的边界,从而孤立出变换中心。中心。5. 完成完成“第一级分解第一级分解”。6. 完成完成“第二级分解第二级分解”。7. 使用设计度量和启发规则对第一次分割得到的使用设计度量和启发规则对第一次分割得到的软件结构进一步精化。软件结构进一步精化。2022-4-22150数字仪表数字仪表板系统的板系统的数据流图数据流图精化数据流图精化数据流图数据流图具有数据流图具有变换特性还是变换特性还是事务特性事务特性2022-4-22151具有边具有边界的数界的数据流图据流图确定输入流和输确定输入流和输出流的边界,从出流的边界,从而孤立出变换中而孤立出变换中
24、心心2022-4-22152第一级分解的方法2022-4-22153数字仪表板系统的第一级分解完成完成“第一级分解第一级分解”2022-4-22154第二级分解的方法2022-4-22155未经精化的输入结构未经精化的输入结构完成完成“第二级分解第二级分解”2022-4-22156精化后的数字仪表板系统的软件结构软件结构进一步精化软件结构进一步精化2022-4-22157事务分析的映射方法事务分析的映射方法2022-4-22158详细设计详细设计 详细设计阶段主要完成界面和程序过程设计详细设计阶段主要完成界面和程序过程设计 过程设计过程设计应该在数据设计、体系结构设计和接应该在数据设计、体系结
25、构设计和接口设计完成之后进行口设计完成之后进行 程序员将根据程序员将根据过程设计过程设计写出实际的程序代码。写出实际的程序代码。2022-4-22160 结构程序设计结构程序设计的经典定义如下所述:的经典定义如下所述: 如果一个程序的代码块仅仅通过顺序、选择和循如果一个程序的代码块仅仅通过顺序、选择和循环这三种控制结构进行连接,并且每个代码块只环这三种控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化有一个入口和一个出口,则称这个程序是结构化的。的。2022-4-22161过程设计的工具过程设计的工具 程序流程图程序流程图 2022-4-22162 盒图盒图(N-S图
展开阅读全文