软件工程学 复习_第1页
软件工程学 复习_第2页
软件工程学 复习_第3页
软件工程学 复习_第4页
软件工程学 复习_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1软件工程软件工程课程要点一览表(面向过程部分)2软件工程课程要点一览表(面向过程部分)(续)3软件工程基本概念软件:是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合软件工程:开发、运行、维护和修复软件的系统方法软件工程方法学:通常把在软件生命周期全过程中使用的一整套技术的集合,称为软件工程方法学软件开发模型:是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略4软件工程基本概念系统流程图:描绘物理系统的一种传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每一个部件(程序、文件、数据库、表格、

2、人工过程等)数据流图(Data Flow Diagram,DFD):描绘系统的一种逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况数据字典(Data Dictionary, DD):对于数据流图中所出现的所有被命名的图形元素作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释5软件工程基本概念模型:对对象系统的形式化的特征抽象,概括性或近似地表示结构化分析方法(Structured Analysis, SA):70年代中期提出的一种面向数据流、自顶向下、逐步求精进行需求分析的方法模块(module):数据说明和可执行语句等程序对象的集合,每个模块单独命名并

3、且可以通过名字对模块进行访问模块化设计(modular design):把大型软件按照规定的原则划分为一个个较小的、相对独立但又相关的模块的设计方法6软件工程基本概念深度:软件中指模块的最大层数扇出:软件中指一个模块直接调用的模块数扇入:软件中指调用一个给定模块的模块数宽度:软件中指同一层最大模块数7软件工程基本概念信息隐藏:模块内部的数据与过程,应该对不需要了解这些数据与过程隐藏起来内聚:用于衡量一个模块内部各个元素间彼此结合的紧密程度耦合:用于衡量不同模块彼此间相互依赖(连接)的紧密程度8软件工程基本概念层次图:也称H图,是在总体设计阶段最常使用的图形工具之一,它常用于描绘软件的层次结构。

4、层次图中的每个方框代表一个模块,方框间的连线表示模块间的调用关系结构化设计:一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口、单出口的控制结构编码:就是把软件设计的结果翻译成计算机可以“理解”的形式用某种程序设计语言书写的程序9软件工程基本概念测试:为了发现程序中的错误而执行程序的过程白盒测试:也称结构测试开盒测试玻璃盒测试,是一种基于覆盖的测试方法;根据被测程序的逻辑结构设计测试用例,检验产品内部动作是否按照规格说明书的规定正常进行黑盒测试:从用户观点,按规格说明书要求的输入数据与输出数据的对应关系设计测试用例,是根据程序外部特征进行测试穷尽测试:包含所有可能情况的测试10软件工

5、程基本概念模块测试:又称单元测试,发现编码和详细设计错误验收测试:由用户参与、使用实际数据来发现需求说明书中的错误的测试平行运行:同时运行新开发出来的系统和将被取代的旧系统,以便比较新旧两个系统的处理结果Alpha测试:用户在开发者的场所进行,并在开发者的指导下进行Beta测试:在一个或多个用户场所进行,开发者不在现场11软件工程基本概念软件维护:为了改正错误或满足新的需要而修改软件的过程纠错性维护:针对原有错误而进行的维护过程适应性维护:针对硬件发展而进行的维护过程完善性维护:针对功能扩展而进行的维护过程预防性维护:针对未来发展而进行的维护过程等价类:每类中的一个典型值在测试中的作用与这一类

6、中所有其他值的作用相同对象:具有相同状态的一组操作的集合12软件工程基本概念对象:对问题域中某个东西的抽象,这种抽象反映了系统保存有这个东西的信息或与它交互的能力。对象是对属性值和操作的封装类:对具有相同属性和行为的一个或多个对象的描述实例:由某个特定的类所描述的一个具体的对象消息:要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明方法:对象所能够执行的操作。也就是类中所定义的服务属性:类中所定义的数据,它是对客观实践实体所具有的性质的抽象13软件工程基本概念方法:对象所能够执行的操作。也就是类中所定义的服务属性:类中所定义的数据,它是对客观实践实体所具有的性质的抽象封装:在面向对象

7、的程序中,把数据和实现操作的代码集中起来放在对象的内部,称之为封装继承:指能够直接获得已有的性质和特征,而不必重复定义它们多态性:子类对象可以象父类对象那样使用,同样的消息既可以发给父类对象也可以发给子类对象14软件工程常用工具与模型(1)瀑布模型定义:将软件生存周期的各项活动规定为依照固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品实例15软件工程常用工具与模型(2)系统流程图定义:系统流程图是描绘物理系统的传统工具,它的基本思想是用图形符号以黑盒子形式描绘系统里面的每一个部件(程序、文件、数据库、表格、人工过程等)实例16软件工程常用工具与模型(3)数据流图定义:英文(Data

8、Flow Diagram),简称DFD。DFD是一种描述逻辑模型的图形工具,表示数据在系统内的变化。图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。DFD从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。它由数据流、加工、文件和数据流的源点和终点构成。17软件工程常用工具与模型实例18软件工程常用工具与模型(4)数据字典定义:英文(Data Dictionary, 简称DD)。是一种描述逻辑模型的工具。它对于数据流图中所出现的所有被命名的图形元素作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的解释。DD的内容包括:图形元素的名字、别名或编号

9、、分类、描述、定义、位置等。19软件工程常用工具与模型实例:客房管理系统字典建模20软件工程常用工具与模型(5) 实体联系图定义:实体联系图(ERA, Entity-Relationship Approach)或实体联系图(ERD, Entity-Relationship Diagram)。ERD描绘了系统的数据关系。分析实体联系图有助于对业务或系统数据组成的理解和交互,并暗示产品将有必要包含一个数据库。ER模型三要素有:数据对象、属性和联系21软件工程常用工具与模型实例:教学管理实体联系ER图22软件工程常用工具与模型(6)状态转换图定义:状态转换图简称状态图。通过描绘系统的状态及引起系统状

10、态转换的事件,来表示系统的行为。它由1个初态初始状态、0-N个终态最终状态和若干个中间状态组成实例23软件工程常用工具与模型(7)层次方框图定义:用属性结构的一系列多层次的矩形框描述数据的层级结构实例:24软件工程常用工具与模型(8)IPO图定义:输入、处理、输出图的简称。是IBM公司发展完善的一种图形工具实例25软件工程常用工具与模型(9)层次图定义:层次图(也称H图)是在总体设计阶段最常使用的图形工具之一,它常用于描绘软件的层次结构。矩形代表一个模块,连线表示调用关系,适于在自顶向下设计软件的过程中使用;与层次方框图类似实例26软件工程常用工具与模型(10)HIPO图定义:HIPO:是IB

11、M公司发明的“层次图加输入处理输出图”的缩写;为了能使HIPO图具有可跟踪性,在H图例除了最顶层的方框之外,每个方框都加了编号:和H图中的每个方框相对应,有一张IPO图描述这个方框代表的模块的处理过程。IPO图能够方便地描述数据输入、数据处理和数据输出之间的关系。27软件工程常用工具与模型实例28软件工程常用工具与模型(12)结构图定义:Yourdon提出的一种软件结构设计工具。一个方框矩形代表一个模块,箭头连线直线表示调用关系,带有注释的箭头表示模块调用过程中来回传递的信息实例29软件工程常用工具与模型(13)程序流程图定义:也称为程序框图;箭头代表控制流而不是数据流;20世纪70年代的主要

12、工具;趋势是越来越多的人不再使用。它的主要缺点包括:不是逐步求精的好工具;用箭头代表控制流,可以随意转移控制;不宜表示数据结构实例30软件工程常用工具与模型(14)盒图(N-S图)定义:由Nassi和Shneiderman提出的一种程序设计方法;其主要特点包括:1功能域明确;2不可以随意转移;3容易确定局部和全局数据的作用域;4容易表达嵌套关系。实例31软件工程常用工具与模型(15)PAD图定义:PAD图是一种问题分析图(Problem Analysis Diagram),1973年由日本日立公司提出。其主要特点包括:必须是结构化程序程序结构清晰易读、易懂、易记支持自顶向下,逐步求精的方法既可

13、以表示程序逻辑,也可以表示数据结构32软件工程常用工具与模型实例33软件工程常用工具与模型(16)判定表定义:判定表再某些数据处理中,某数据流图的加工需要依赖于多个逻辑条件的取值,就是说完成这一加工的一组动作是由于某一组条件取值的组合而引发的。这时使用判定表来描述比较合适。判定表通常由四部分组成,即:条件桩、操作桩、条件条目和操作条目。34软件工程常用工具与模型实例:发货判定表举例35软件工程常用工具与模型(17)判定树定义:判定树是判定表的变种,它也能清晰地表达复杂的条件组合与所对应的操作之间的关系。判定树的优点在于它无需任何说明,一眼就能看出其含义,易于理解和使用实例:发货判定树36软件工

14、程常用工具与模型(18)过程设计语言(PDL)定义:也称“伪代码”,用正文形式表示数据和处理的过程的工具。其具有如下特点:具有关键字固定语法自然语言表述数据说明提供接口模式37软件工程常用工具与模型(19)用例图定义:用例图是被称为参与者的外部用户所能观察到的系统功能概念的模型图;用例是系统中的一个功能单元,可以描述为参与者与系统之间的一次交互作用;用例图的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行38软件工程常用工具与模型用例图实例39软件工程常用工具与模型(20)活动图定义:活动图描述了活动发生的顺序。其图形表示规则如下:圆角矩形表示方框中的活动;矩形表示工作流影

15、响的对象;实心圆表示工作流开始的开始状态;双层圆表示工作流结束的结束状态;菱形表示决策点;垂直甬道表示工作流中的不同参与者及相关活动40软件工程常用工具与模型活动 图实例41软件工程常用工具与模型(21)顺序图顺序图表示对象之间传递消息的时间顺序图形表示法:垂直线,即生命线,表示再这个交互过程中一个对象的生命周期生命线之间的箭头连线表示消息箭头连线上的文字表示相关的事件42软件工程常用工具与模型顺序图实例43软件工程常用工具与模型(22)协作图协作图对在一次交互中有意义的对象和对象间的链建模图形表示法:直线表示对象之间直接通信关系附在直线上箭头表示消息传送方向箭头旁文字表示消息及消息编号44软

16、件工程常用工具与模型协作图实例45软件工程常用工具与模型(23)类图以类为中心组织起来的图形,用以表示软件系统中各类之间的相互关系图形表示法矩形框表示类图中的类连线表示类之间的关系类之间的关系有关联、聚集、泛化和依赖46软件工程常用工具与模型类图实例47软件工程常用工具与模型(24)状态图状态图是一个类对象所经历的所有历程的模型图。状态图有对象的各个状态和连接这些状态的变迁组成图形表示法:圆角矩形表示状态带箭头的直线表示对象从一种状态变迁到另一种状态的过程附在直线上的信息表示触发对象状态变迁的条件48软件工程常用工具与模型状态图实例49软件工程常用工具与模型(25)组件图组件图表示了系统中的各

17、种组件组件可以是源代码、二进制文件或可执行文件逻辑视图与组件视图之间存在着映射关系组件可以与公开的任何接口一起显示50软件工程常用工具与模型组件图实例51软件工程常用工具与模型(26)部署图用来描述位于节点实例上的运行组件的安排,描述系统的实际物理结构图形表示法:立方体表示节点,节点可以是一组运行的资源,如计算机、设备或存取器等直线表示节点之间连接方式52软件工程常用工具与模型部署图实例53软件工程原理技术方法1. 软件工程的本质特性软件工程关注于大型程序的构造;软件工程的中心课题是控制复杂性;软件经常变化;开发软件的效率非常重要;和谐地合作是开发软件的关键;软件必须有效地支持它的用户;在软件

18、工程领域中是由一种文化背景的人替具有另一种文化背景的人创造产品。54软件工程原理技术方法2. 软件工程的七条基本原理用分阶段的生命周期计划严格管理;坚持进行阶段评审;实行严格的产品控制;采用现代程序设计技术;结果应能够清楚地审查;开发小组的人员应少而精;承认不断改进软件工程实践的必要性。55软件工程原理技术方法3. 软件生存期的阶段划分可行性研究与计划需求分析总体设计详细设计实现(编码)集成测试确认测试使用和维护56软件工程原理技术方法4. 传统方法学传统方法学也称概念生命周期方法学或结构化范型;采用结构化技术(分析设计实现),来完成软件开发各项任务;把软件生命周期的全过程依次划分为若干阶段。

19、本质是面向过程的开发;每个阶段独立完成,各阶段有严格的开始和结束标准。前一阶段结束,才能开始下一个阶段;在相当长的一段时间内仍有生命力。57软件工程原理技术方法5. 面向对象的方法学面向对象方法以数据为主线,把数据和对数据的操作紧密地结合起来的方法把对象作为融合数据及在数据上的操作行为的统一的软件构建把所有对象划分成类按照父类与子类的关系,把若干个相关类组成一个层次结构的系统对象彼此间仅能通过发送消息相互联系58软件工程原理技术方法6. 可行性研究的主要内容一般来说,至少要从以下三个方面开展研究:技术可行性:使用现有技术能实现这个系统吗?经济可行性:这个系统的经济效益能超过它的开发成本吗?操作

20、可行性:系统的操作方式在这个用户组织内行得通吗?此外,还应从法律、社会效益等更广泛的方面研究每种解法的可行性。59软件工程原理技术方法7. 可行性研究过程复查系统规模和目标;研究目前正在使用的系统;导出新系统的高层逻辑模型;进一步定义问题;导出和评价供选择的解法;推荐行动方针;草拟开发计划;书写文档提交审查;60软件工程原理技术方法8. 成本效益分析内容(1)成本估计行代码技术任务分解技术自动估计成本技术(2)成本效益分析的方法货币的时间价值投资回收期纯收入投资回收率61软件工程原理技术方法9. 各种需求分析方法所应遵循的准则必须理解并描述问题的信息域,建立数据模型;必须定义软件应完成的功能,

21、建立功能模型;必须描述作为外部事件结果的软件行为,建立行为模型;必须对描述信息、功能和行为的模型进行分解,用层次的方式展开细节。62软件工程原理技术方法10. 需求分析的具体任务确定软件系统的综合需求;分析系统的数据需求:数据模型信息模型E-R层次方框图;导出软件系统的逻辑模型数据流图E-R图状态转换图数据字典算法;修正系统开发计划;验证软件需求分析的正确性;编写软件需求规格说明书。63软件工程原理技术方法11. 系统的综合要求需求功能需求:系统必须提供的服务性能需求;系统必须满足的定时约束或容量约束等可靠性和可用性需求出错处理需求:系统对环境错误应该怎样响应接口需求:系统与它的环境通信格式要

22、求约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件:精度工具语言设计标准平台64软件工程原理技术方法12. 需求获取的常用方法访谈面向数据流自顶向下求精简易的应用规格说明技术快速建立软件原型65软件工程原理技术方法13. 总体设计过程设想供选择的方案选取合理的方案推荐最佳方案功能分解设计软件结构设计数据库制定测试计划书写文档审查和复审66软件工程原理技术方法14. 软件设计中常用启发规则改进软件结构提高模块独立性;模块规模应该适中;深度、宽度、扇出、扇入都应适当;模块的作用域应该在控制域之内;力争降低模块接口的复杂程度;设计单入口单出口的模块;模块功能应该可以预测。67软件工

23、程原理技术方法15. 耦合设计原则尽量使用数据耦合少用控制耦合限制公共环境耦合范围完全不用内容耦合16. 内聚设计原则力求高内聚中等内聚也可以采用低内聚不要用68软件工程原理技术方法17. 面向数据流的设计方法(1)系统结构特征可归纳为两种经典形式变化型结构事务型结构(2)数据流图可分为两种类型变换型数据流事务型数据流69软件工程原理技术方法 系统结构基本模型 特征70软件工程原理技术方法 数据流图基本类型71软件工程原理技术方法(3)面向数据流设计方法的设计步骤精化DFD确定DFD类型把DFD映射到系统模块结构,设计出模块结构的上层基于DFD,逐步分解高层模块,设计出下层模块根据模块独立性原

24、理,精化模块结构模块接口描述72软件工程原理技术方法73软件工程原理技术方法事务分析的映射方法74软件工程原理技术方法18. 人机界面设计中经常遇到的4各设计问题系统响应时间用户帮助设施出错信息处理命令交互19. 人机见面设计一般交互指南保持一致性提供有意义的反馈在执行有较大破坏性的动作之前,要求用户确认75软件工程原理技术方法允许取消绝大多数操作减少在两次操作之间必须记忆的信息量提高对话、移动和思考的效率允许犯错误按功能对动作分类,并据此设计屏幕布局提供对用户工作内容敏感的帮助设施用简单动词或动词短语作为命令名76软件工程原理技术方法20. 人机界面设计信息显示指南只显示与当前工作内容有关的

25、信息不要用数据淹没用户使用一致的标记、标准的缩写和可预知的颜色允许用户保持可视化的语境产生有意义的出错信息使用大小写、缩进和文本分组以帮助理解使用窗口分隔不同类型的信息使用模拟显示方式显示信息高效率地使用显示屏77软件工程原理技术方法21. 数据输入指南尽量减少用户的输入动作保持信息显示和数据输入之间的一致性允许用户自定义输入交互应该是灵活的使在当前语境中不适用的命令不起作用让用户控制交互流对所有输入动作都提供帮助消除冗余的输入78软件工程原理技术方法22. 选择一种语言的标准是什么?系统用户的要求:用户知识和用户环境要求;可以使用的编译程序:软件平台要求;可以得到的软件工具:软件条件要求;工

26、程规模:实践要求;程序员的知识:方便性要求;软件可移植性要求:造价要求;软件的应用领域:对象特点要求。79软件工程原理技术方法23. 编码风格应该遵循的规则程序内部的文档化:指编码时适当选择标识符的名字适当安排注释注重程序的整个组织形式数据说明语句构造输入输出80软件工程原理技术方法24. 软件测试准则所有测试都应该能追溯到用户需求;应该远在测试开始之前就制定出测试计划;把Pareto原理应用到软件测试中Pareto原理:测试发现的错误中80%很可能是由程序中20%的模块造成的应该从“小规模”测试开始,并逐步进行“大规模”测试;穷举测试是不可能的;应该由第三方从事测试工作。81软件工程原理技术

27、方法2.5 划分等价类的原理每类中的一个典型值在测试中的作用与这一类中所有其他值的作用相同划分等价类的标准:覆盖不相交代表性82软件工程原理技术方法26. 划分等价类的几条启发式规则:如果规定了输入值的范围则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值或大于最大值);如果规定了输入数据的个数,则类似地也可以划分出一个有效的等价类和两个无效的等价类;如果规定了输入数据的一组值,而且程序对不同输入值做不同处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(任一个不允许的输入值);83软件工程原理技术方法如果规定了输入数据必须遵循的规则,则可以划分出一个有效的等价类(符合规则)和若干个无效的等价类(从各种不同角度违反规则);如果规定了输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论