首页 软件工程复习大纲--2012

软件工程复习大纲--2012

举报
开通vip

软件工程复习大纲--2012目录 2第一章 软件工程概述 21. 什么是软件,其特点和分类是什么? 32. 什么是软件危机?软件危机表现在哪些方面? 33. 软件工程是指什么?软件工程的性质是什么? 34. 软件工程面临的问题有哪些? 35. 什么是软件工程过程?它包含哪些过程? 36. 什么是软件生存周期,它包括哪些活动? 47. 什么是软件生存周期模型?它有哪些主要模型,各个的含义及适用场合是什么? 58. 结构化方法总的指导思想是什么? 59. 软件开发的目标是什么? 5第二章 计算机系统工程 ...

软件工程复习大纲--2012
目录 2第一章 软件工程概述 21. 什么是软件,其特点和分类是什么? 32. 什么是软件危机?软件危机表现在哪些方面? 33. 软件工程是指什么?软件工程的性质是什么? 34. 软件工程面临的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 有哪些? 35. 什么是软件工程过程?它包含哪些过程? 36. 什么是软件生存周期,它包括哪些活动? 47. 什么是软件生存周期模型?它有哪些主要模型,各个的含义及适用场合是什么? 58. 结构化方法总的指导思想是什么? 59. 软件开发的目标是什么? 5第二章 计算机系统工程 51. 可行性研究的任务有哪些? 6第三章 面向对象方法学 61. 试述面向对象方法的开发过程是怎样的? 62. 简述对象、类、继承、消息、方法的基本概念。 63. 面向对象的定义是什么? 64. 功能模型的特征有哪些? 65. 继承性和多态性的好处是什么? 76. 简述三种面向对象分析模型的主要功能,以及三者之间的关系。 77. UML的定义是什么?UML视图有哪些,分别有什么作用? 98. UML中类图、关系的符号表示及含义。 99. 用例的定义、用例之间的关系,以及用例图的建模方法。 910. 运用UML进行可视化建模可分为外部视图和内部视图,各自的含义是什么? 1011. 掌握三种面向对象模型建模的方法。 1012. 掌握Rational Rose建模的方法。 11第四章 需求分析 111. 软件需求的三个层次是什么? 112. 需求分析的基本任务是什么?目标是什么? 113. 需求获取的过程是什么? 124. 需求分析的难点主要表现在哪些方面? 125. ER图的含义及绘制方法。 136. 状态转换图的含义及描制方法。 147. 什么是数据流图?其作用是什么?通过什么完成其细化操作?其中的基本符号各表示什么含义? 148. 什么是数据字典?其作用是什么?它有哪些条目?和数据流图之间有什么关系? 159. 建立数据字典的形式是什么? 1510. 什么是结构化分析方法?其描述工具有哪些? 1511. 什么是需求管理,和需求过程的区别是什么? 15第五章 总体设计 151. 什么是软件总体设计?软件总体设计的目标和准备则是什么? 162. 软件设计的阶段有哪些,各阶段的主要任务是什么? 163. 衡量模块独立的两个 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 是什么?它们各表示什么含义? 164. 什么是软件结构?结构图的主要内容有哪些? 175. 结构化设计与结构化分析的关系是什么? 176. 结构化设计方法的实施要点是什么? 177. 软件结构的表示工具有哪些?各有什么特点? 178. 什么是扇入、扇出、深度、宽度?在进行模块设计时有什么启发式规则? 189. 什么是面向数据流的设计方法?它有哪些策略? 1810. 软件设计的基本原理是什么? 1811. 画结构图应该注意的事项是什么? 1812. 什么是耦合性?模块的耦合性有哪些内容?各种耦合性的排列顺序是什么? 1913. 什么是内聚性?模块的内聚性有哪些内容?各种内聚性的排列顺序是什么? 1914. 何谓模块独立性? 2015. 什么是“变换流”? 2016. 什么是“事务流”? 2017. 软件详细设计的基本任务包括那些? 2018. 结构化程序设计的定义,进行结构化程序设计的基本要点有哪些? 2119. 过程设计的工具有哪些?各种工具的实现原理及优缺点是什么? 2320. 熟悉运用程序流程图、N-S盒图、PAD工具进行程序的描述设计。 第一章 软件工程概述 1. 什么是软件,其特点和分类是什么? 计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档组成的完整集合。 特点:(1)软件是一种逻辑实体,而不是具体的物理实体,因而具有抽象性; (2)软件是开发出来的,不是制造出来的;(3)软件可能被废弃,但不会被破坏; (4)软件大多的定制的 ,而不是将配的; (5)软件的开发和运行常受到计算机系统的限制,对计算机系统有着不同程度的依赖性; 软件的分类 v 系统软件:能与计算机硬件紧密配合在一起,使计算机系统各个部件、相关的软件和数据协调、高效地工作的软件。例如,操作系统、数据库管理系统、设备驱动程序以及通信处理程序等。 v 应用软件:是在特定领域内开发,为特定目的服务的一类软件。 v 支撑软件:是协助用户开发软件的工具性软件,其中包括帮助程序人员开发软件产品的工具,也包括帮助管理人员控制开发的进程的工具。 v 可复用软件 2. 什么是软件危机?软件危机表现在哪些方面? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。一是如何开发软件,以满足对软件日益增长的需求;二是如何维护数量不断膨胀的已有软件。 其主要表现如下:(1)软件开发成本和进度难以控制 (2)用户需求不明确、变更过多 (3)软件质量差 (4)软件维护困难 (5)软件成本日益增长 (6)开发进度难以控制 (7)软件产品“供不应求” 3. 软件工程是指什么?软件工程的性质是什么? 软件工程:包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。 软件工程的性质:可用性、正确性和合算性 4. 软件工程面临的问题有哪些? a.软件费用。b.软件可靠性。c.软件维护。d.软件生产率。e.软件重用。 5. 什么是软件工程过程?它包含哪些过程? 软件工程过程是将用户需求转化为软件所需的软件工程活动的总集。 软件工程过程主要包括开发过程、运作过程、维护过程。它们覆盖了需求、设计、实现、确认以及维护等活动。需求活动包括问题分析和需求分析。问题分析获取需求定义,又称软件需求规约。需求分析生成功能规约。设计活动一般包括概要设计和详细设计。概要设计建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。实现活动把设计结果转换为可执行的程序代码。确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包括使用过程中的扩充、修改与完善。伴随以上过程,还有管理过程、支持过程、培训过程等。 6. 什么是软件生存周期,它包括哪些活动? 软件生存周期:一个软件从提出开发要求开始直到该软件报废为止的整个时期。 软件生存周期包括:可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等. 7. 什么是软件生存周期模型?它有哪些主要模型,各个的含义及适用场合是什么? 软件生存周期模型:是描述软件开发过程中各种活动如何执行的模型。(模型:是为了理解事物而对事物做出一种抽象,它忽略不必要的细节,它也是事物的一种抽象形式、一个规划、一个程式。) 软件生存周期主要模型:瀑布模型(瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。对于经常变化的项目而言,瀑布模型毫无价值。仅适用于需求比较明确的场合。)、快速原型模型(首先建立一个能够反映用户主要需求的原型,让用户实际看一看未来系统的概貌,以便判断哪些功能是符合需要的,哪些方面还需要改进。先做试验开发,其目标只是在于探索可行性,弄清软件需求,在此基础上获得最终软件产品。 其功能是最终产品能完成的一个子集。通常不带反馈环的,软件产品的开发基本上是线性顺序进行。克服瀑布模型缺点、减少由于软件需求不明确而给开发工作带来风险方面,确有显著的效果。适合于软件需求不明确, 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 有一定风险的软件项目。)、增量模型(使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。即先完成一个系统子集的开发,再按同样的开发步骤增加功能 (系统子集),如此递增下去直至满足全部系统需求。把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入;构件≠模块:每个构件由多个相互作用的模块构成,并且能够完成特定的功能;软件体系结构必须是开放的;)使用增量是开发方法开发软件时,把软件产品作为一系列的增量构件来设计,实现和确认,为此,要求软件构件的规模适中,并在把新构件集成到已有软件时所形成的新产品必须是可测试的。)、螺旋模型(结合瀑布模型与快速原型的基础上增加了风险分析。沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。如果软件开发人员对项目的需求已有较好的理解,则无需开发原型,第一圈就可以直接采用瀑布模型,这在瀑布模型中认为是单圈螺线。反之,若对项目的需求没有把握,就需要经过多圈螺线,并通过开发一个或多个原型来弄清软件的需求。对于高风险的大型软件,螺旋模型是一个理想的开发方法。风险分析是螺旋模型的一项重要活动。)、喷泉模型(喷泉模型对软件复用和生存周期中多项开发活动的集成提供了支持,主要支持面向对象的开发方法。体现了迭代和无间隙的特性。系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。喷泉模型是对象驱动的过程。) 8. 结构化方法总的指导思想是什么? 在系统建立之前信息就能被充分理解。它要求严格划分开发阶段,用 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 的方法与图表工具有步骤地来。完成各阶段的工作,每个阶段都以规范的文档资料作为其成果,最终得到满足用户需要的系统。 9. 软件开发的目标是什么? 第二章 计算机系统工程 1. 可行性研究的任务有哪些? 可行性研究的任务是用最小的代价、在尽可能短的时间内确定问题是否能够解决。在澄清了问题定义之后,分析员首先应该导出系统的逻辑模型,然后从系统逻辑模型出发,探索出若干种可供选择的主要解法(即系统实现 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 )。最后仔细研究每种解法的可行性。 1、 可行性研究包括哪些步骤? a确定项目规模和目标 b研究正在运行的系统 c建立新系统的高层逻辑模型 d导出和评价供选择的方案 e推荐方案和行动方针 f编写可行性研究报告 2、 可行性研究报告包括哪些主要内容? a引言 b可行性研究前提 c对现有系统的分析 d所建议系统的经济可行性分析 e所建议系统的经济可行性分析 f社会因素可行性分析 g其他可供选择的方案 结论意见 第三章 面向对象方法学 1. 试述面向对象方法的开发过程是怎样的? 面向对象技术给软件设计领域带来极大的变化,它利用软件对象来进行程序开发,所谓对象是包含数据和对数据操作的代码实体,或者说是在传统的数据结构中加入一些被称为成员函数的过程,因而赋予对象以动作。 2. 简述对象、类、继承、消息、方法的基本概念。 对象是用来描述客观事物的实体,是构成系统的基本单位;是封装了数据结构及可以施加在这些数据结构上的操作的封装体。类是一组具有相同结构、相同服务、共同关系和共同语义的对象集合。继承是使用已有的类定义做为基础建立新类定义的技术。消息是一个对象向另一个对象传递的信息 3. 面向对象的定义是什么? 如果一个软件系统是使用对象+类+继承+通信这样 4 个概念设计和实现的,则我们认为这个软件系统是面向对象的 4. 功能模型的特征有哪些? 功能建模的思想就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。 5. 继承性和多态性的好处是什么? 继承性。通过对已有对象进行增加或部分修改的方法建立新的对象,对已有对象可以增加数据和过程,也可以对其中某些过程进行从新定义。最初的类被称为基类,从基类扩展出来的类称为派生类。从已有类派生出新类是为了获得更强的针对性。 多态性。正象生态系统一样,继承构成了类族。通常这些类族中的类具有同名的成员函数,例如OD分布类族,具有一个通用基类,两个派生类:增长系数OD分布类和重力模型OD分布类,这几个类都有同名的Exec成员函数。多态性意味着存在多种形式,能使人们在程序中激活任何属于OD分布类族的类的Exec成员函数,甚至在编译可以不必具体知道对象是属于增长系数OD类还是重力模型OD分布类。 6. 简述三种面向对象分析模型的主要功能,以及三者之间的关系。 1、功能模型(描述系统中对象和他们之间的关系) 2、对象模型:对用例模型进行分析,把系统分解成互相协作的分析类,通过类图/对象图描述对象/对象的属性/对象间的关系,是系统的静态模型 3、动态模型:描述系统的动态行为,通过时序图/协作图描述对象的交互,以揭示对象间如何协作来完成每个具体的用例,单个对象的状态变化/动态行为可以通过状态图来表达 三个模型从三个不同却又密切相关的角度模拟目标系统,它们从各自不同的侧面反映了系统的实质性内容,综合起来则全面反映了对目标系统的需求。 关系: (1) 针对每个类建立的动态模型(状态转换图),描述了类实例的生命周期或运行周期。 (2) 状态转换图中,事件引发行为,行为可改变状态并产生事件,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。行为者与系统的交互常为事件。 (3) 功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。复杂的处理(或用例)对应于复杂对象提供的服务,简单的处理(或用例)对应于更基本的对象提供的服务。一个处理(或用例)可对应多个服务,一个服务可对应多个处理(或用例)。 (4) 数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。 (5) 数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。 (6) 用例图中的行为者,可能是对象模型中的对象。 (7) 功能模型中的处理(或用例)可能产生动态模型中的事件。 (8) 对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。 7. UML的定义是什么?UML视图有哪些,分别有什么作用? 统一建模语言:是一种面向对象的建模语言,它是运用统一的、标准化的标记和定义实现对软件系统进行面向对象的描述和建模。 作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。   (1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。 (2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。 标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:   第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。   第二类是静态图 (Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。   对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。   包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。   第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。行为图包括:状态图、活动图、顺序图和协作图。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。 而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。活动图是一种特殊的状态图,它对于系统的功能建模特别重要,强调对象间的控制流程。 顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。用顺序图说明系统的动态视图。 协作图展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的结构组织,按组织结构对控制流建模。 顺序图和协作图都是交互图,顺序图和协作图可以相互转换。   第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。   第五类是实现图 ( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。 8. UML中类图、关系的符号表示及含义。 9. 用例的定义、用例之间的关系,以及用例图的建模方法。 用例 :表示系统提供的服务,主要刻画系统如何被参与者使用。 1、 泛化关系 Generalization 、代表一般与特殊的关系。 (类似于继承) 在用例泛化中,子用例表示父用例的特殊形式,子用例继承了父用例的行为和属性,也 可以增加新的行为和属性或覆盖父用例中的行为。 例子:一个租赁或销售系统用例的部分内容,在此,父用例是“预定” ,其两个子用例 分别是“网上预定”和“电话预定” ,这两个用例都继承了父用例的行为,并可以添加自己 的行为。 2、 包含关系 Include 、一个用例(基用例,基本用例)可以包含其他用例(包含用例)具有的行为,并把它所 包含的用例行为作为自身用例的一部分,这被称为包含关系。 在 UML 中,包含关系表示为虚线箭头加版型《include》 ,箭头从基本用例指向包含用 例。 例子:一个租赁或销售系统中, “填写电子表格”的功能在“网上预定”的过程中使用, 不管如何处理“网上预定”用例,总是要运行“填写电子表格”用例,因此具有包含关系。 3、 扩展关系 Extend 、一个用例也可以定义为基本用例的增量扩展, 这称作扩展关系, 即扩展关系是把新的行 为插入到已有的用例中的方法。 10. 运用UML进行可视化建模可分为外部视图和内部视图,各自的含义是什么? UML语义文档构成了单一的、公用的、最终的、正式的、全面的和准确的UML规范 (称为内部视图)。 UML语义文档: · 主要由工具制造商使用; 不过,由于它是UML的最终定义,所以从业人员也可能会使用它。 · 说明UML的分层体系结构、组织 (通过包) 和所定义的建模元素。 · 对于一个给定的UML包,包括下列内部视图信息:   — 概述: 一般性介绍   — 抽象语法: 用UML的图形表示法和英语语言表达概念定义、关系和约束   — 良构规则: 用英语和OCL表达规则和约束   — 语义: 用英语表达意义   — 标准元素: 可应用的标准扩展机制   — 注释: 其他注解 · 还包括有关标准元素和UML术语的附录。 · 支持复杂系统的开发、UML的一致用法和工具互换。 UML表示法指南构成了可表示的或可视化的UML表示形式,并提供了示例 (称为外部视图). UML表示法指南: · 主要由应用UML的从业人员使用 · 说明UML的图和这些图的建模元素 · 对每一个建模元素,包括下列外部视图信息:   — 语义: 总结UML语义。   — 表示法 (具体语法): 解释符号表示法 (到表示法的正向映射)。   — 表示选项: 说明在表示建模信息时的选项。   — 风格指导方针: 对风格标记和选项提出建议。   — 示例: 提供表示法的例子。   — 映射: 解释从表示法到语义文档的映射(从表示法开始的逆向映射)。 · 使用户能够使用UML。 11. 掌握三种面向对象模型建模的方法。 12. 掌握Rational Rose建模的方法。 第四章 需求分析 1. 软件需求的三个层次是什么? 业务需求、用户需求和功能需求 2. 需求分析的基本任务是什么?目标是什么? 基本任务不是确定系统怎样完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。目的是确定目标系统必须具备哪些功能。 具体如下: (1)确定对系统的综合要求 功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束、 逆向需求、将来可能提出的要求,共8项 (2)分析系统的数据要求 (3)导出系统的逻辑模型 (4)修正系统开发计划 3. 需求获取的过程是什么? 通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求; 需求包括业务需求,用户需求和功能需求以及非功能需求,在需求开发之前,我们需要先定义好需求开发的过程,形成文档,内容包括:需求开发的步骤,每一个步骤如何实现,如何处理意外情况,如何规划开发资源等   需求获取包括以下方法和技能:   项目范围确定:开需求开发前期,我们应该获取用户的业务需求,定义好项目的范围,使得所有的涉众对项目有一个共同的理解。   用户确定:确定用户群和分类,对用户组进行详细描述,包括使用产品频率,所使用的功能,优先级别,熟练程度等等。对每一个用户组确定用户的代言人。对于大型项目,我们需要先确定中心客户组,中心客户组的需求具有高级别的优先级,需要先实现的核心功能。   用例确定:与用户代表沟通,了解他们需要完成的任务,得到用例模型。同时根据用例导出功能需求。用例描述应该采用标准模板。   系统事件和响应:业务事件可能触发用例,系统事件包括系统内部的事件以及从外部接受到信息,数据等等,或者一个突发的任务。   获取方法:召开需求讨论会议,观察用户的工作过程,采用问答式对话,采用诱发式需求诱导等等。检查完善:问题报告和补充需求建议 4. 需求分析的难点主要表现在哪些方面? 需求获取和分析有一定的难度,因为: 1)项目相关人员通常并不真正知道希望计算机做什么,让他们清晰的表达出需要系统做什么是件困难的事,他们或许提出不切实际的要求。 2) 项目相关人员用自己的语言表达需求,这些语言包含很多工作中的专业术语和专业知识。系统分析员没有这些知识和经验,而他们又必须了解这些需求。 3)不同的项目相关人员有不同的需求,可能以不同的方式表达,分析人员必须发现所有潜在的需求资源,而且能发现这些需求的相容或冲突之处。 )经济和业务环境决定了分析是动态的,需求在分析过程中会发生变更。个别需求的重要程度会改变,新的需求会从新的项目相关人员那里得到。 5. ER图的含义及绘制方法。 ER图 ---- 是用来建立数据模型的工具。ER图中包含了实体(即数据对象)、关系和属性等3种基本成分。通常用矩形框代表实体;用连接相关实体的菱形框表示关系;用椭圆形或圆角矩形表示实体(或关系)的属性;并用直线把实体(或关系)与其属性连接起来。 6. 状态转换图的含义及描制方法。 状态转换图(简称为状态图):通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作(例如,处理数据)。 初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示。 中间状态用圆角矩形表示,可以用两条水平横线把它分成上、中、下3个部分。上面部分为状态的名称,这部分是必须有的;中间部分为状态变量的名字和值,这部分是可选的;下面部分是活动表,这部分也是可选的。 活动表的语法格式:事件名(参数表)/动作表达式 其中,“事件名”可以是任何事件的名称。在活动表中经常使用下述3种标准事件:entry,exit和do。entry事件指定进入该状态的动作,exit事件指定退出该状态的动作,而do事件则指定在该状态下的动作。需要时可以为事件指定参数表。活动表中的动作表达式描述应做的具体动作。 状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。 状态变迁通常是由事件触发的,在这种情况下应在表示状态转换的箭头线上标出触发转换的事件表达式;如果在箭头线上未标明事件,则表示在源状态的内部活动执行完之后自动触发转换。 事件表达式的语法: 事件说明[守卫条件]/动作表达式 事件说明的语法为:事件名(参数表)。 守卫条件是一个布尔表达式。如果同时使用事件说明和守卫条件,则当且仅当事件发生且布尔表达式为真时,状态转换才发生。如果只有守卫条件没有事件说明,则只要守卫条件为真状态转换就发生。 动作表达式是一个过程表达式,当状态转换开始时执行该表达式。 7. 什么是数据流图?其作用是什么?通过什么完成其细化操作?其中的基本符号各表示什么含义? 数据流图(DFD):是用来描绘软件系统逻辑模型的图形工具,用于描绘信息在系统中流动和处理情况。作用:描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。 方框:外部实体(数据源点或数据终点) 数据流(实线箭头):(1)表示数据的路径和流向 (2)可用名字或代号进行说明 (3)同一数据流图上不能有两个数据流同名 (4)与处理的关系既可多对一,又可一对多 处理(圆角方框或圆框):(1)代表从输入到输出数据流中的一个变换 (2)框中可以有标识,功能描述,执行部门或程序名 数据存储(文件):(1)起暂时保存数据的作用,可以是数据库,或任何形式的数据组织 (2)指向文件的数据流 (3)从文件引出的数据流 数据流与数据加工之间的关系 8. 什么是数据字典?其作用是什么?它有哪些条目?和数据流图之间有什么关系? 数据字典:是对数据流图中所有自定义的数据元素,数据结构,数据文件,数据流等的名字进行定义。作用:描述了所有的在目标系统中使用和生成的数据对象。内容:数据流;数据流分量;数据存储;处理 数据字典与数据流图共同构成系统的逻辑模型,二者相辅相成、互相配合,并遵守以下约定: v 有关数据的流向在数据流图中描述; v 有关数据的组成在数据字典中描述; v 有关数据的加工细节在数据字典中描述; v 编写数据字典时不能有遗漏和重复,即遵循不重不漏的原则; v 数据字典小的条目的排列要有一定规律,要能通过名字方便地查阅条目的内容,如按英文字母表顺序或按汉字笔划顺序排列或按功能分类等; v 数据字典的编写要易于更新修改。 9. 建立数据字典的形式是什么? 10. 什么是结构化分析方法?其描述工具有哪些? 结构化分析方法是一种面向数据流、自顶向下、逐步求精进行需求分析的方法。适用于分析大型的数据处理系统,特别适用于企事业管理系统。通常与设计阶段的结构化设计方法(Structured Designed,简称SD方法)衔接起来使用。描述工具有数据流图,数据字典,结构化语言和E-R图 11. 什么是需求管理,和需求过程的区别是什么? 需求管理就是: 一种获取、组织 并记录系统需求的系统化方案, 并记录系统需求的系统化方案,以及一个使客户与 项目团队对不断变更的系统需求达成并保持一致的 过程。 需求工程包括获 分析、规定、验证和管理软件需求, 取、分析、规定、验证和管理软件需求,而“软件 需求管理”则是对所有相关活动的规划和控制。 第五章 总体设计 1. 什么是软件总体设计?软件总体设计的目标和准备则是什么? 总体设计又称概要设计或初步设计,目的是回答“概括地说,系统应该如何实现?”这个问题。 基本任务: (1)系统方案设计 首先以数据流图为基础寻找实现目标系统的各种不同的方案,为每个合理的方案准备一份系统流程图,列出组成系统的所有物理元素(程序、文件、数据库、人工过程和文档等等,每个物理元素仍然处于黑盒子级),进行成本/效益分析,制定实现这个方案的进度计划。 (2)综合分析比较这些合理的方案,从中选出一个最佳方案。 (3)体系结构设计 设计软件的结构,确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。 2. 软件设计的阶段有哪些,各阶段的主要任务是什么? 1、制定规范 2.软件系统结构的总体设计 3、数据结构设计 4.可靠性设计 5.处理方式设计 6.编写概要设计阶段的文档 7、概要设计评审 (1)体系结构设计:定义软件的主要结构元素及其之间的关系; (2)类设计:对分析阶段所建立的分析类模型进行细化,转化为设计类的实现及软件实现所要求的数据结构; (3)数据设计:根据ER图确定软件涉及的文件系统的结构及数据库的表结构;面向对象方法根据类设计导出数据设计; (4)接口设计:包括用户界面、与硬件设备或其他软件系统交互的接口、系统内部各种构件之间交互的接口; (5)构件级设计:将软件体系结构元素变换为对软件构件的过程性描述; (6)过程设计:确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法; 3. 衡量模块独立的两个标准是什么?它们各表示什么含义? 模块独立程度的度量标准:内聚和耦合。 耦合:模块间互相依赖(连接)的紧密程度。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。 内聚:模块内部各个元素彼此结合的紧密程度,是信息隐藏和局部化概念的自然扩展。 4. 什么是软件结构?结构图的主要内容有哪些? 软件结构(Software Structure)是指一种层次表况,由软件组成成分构造软件的过程、方法和表示。 结构图和层次图类似,也是描绘软件结构的图形工具。不仅能够表示软件结构,而且还能够表示出模块接口间信息的传递关系,是一种较好的开发与维护人员通信的工具 结构图基本符号: 方框——模块,框内注明模块的名字或或主要功能 方框间连线——模块调用关系(上方的模块调用下方的模块) 带注释的箭头——模块间传递的信息 箭头尾部空心圆——数据信息 箭头尾部实心圆——控制信息 还有一些附加的符号,可以表示模块的选择调用或循环调用。 5. 结构化设计与结构化分析的关系是什么? 结构化分析是结构化设计的基础 6. 结构化设计方法的实施要点是什么? 研究、分析和审查数据流图。 (1) 研究、分析和审查数据流图。 根据数据流图决定问题的类型: (2) 根据数据流图决定问题的类型:变换型和事务 针对两种不同的类型分别进行分析处理。 型。针对两种不同的类型分别进行分析处理。 由数据流图推导出系统的初始结构图。 (3) 由数据流图推导出系统的初始结构图。 利用一些启发式原则来改进系统的初始结构图, (4) 利用一些启发式原则来改进系统的初始结构图, 直到得到符合要求的结构图为止。 直到得到符合要求的结构图为止。 (5) 根据分析模型中的实体关系图和数据字典进行 数据设计,包括数据库设计或数据文件的设计。 数据设计,包括数据库设计或数据文件的设计。 在上面设计的基础上, (6) 在上面设计的基础上,并依据分析模型中的加 工规格说明、状态转换图进行过程设计。 工规格说明、状态转换图进行过程设计。 制定测试计划。 (7) 制定测试计划。 7. 软件结构的表示工具有哪些?各有什么特点? 8. 什么是扇入、扇出、深度、宽度?在进行模块设计时有什么启发式规则? 深度表示控制的层数,宽度表示同一层上控制的最大模块数目。扇出是被某一模块直接控制的模块数目的度量,扇入则是对某一给定模块被多少个模块直接控制的度量。一个系统的大小和系统的复杂程度在一定程度上可以用深度和宽度表示。高层模块应有较高的扇出,低层模块特别是底层模块应有较高的扇入。 扇入越大,表示该模块被更多的上级模块共享。多个扇入入口相同,这就避免了程序的重 复,因此希望扇入高一点。但过多又可能是把许多不相关的功能硬凑在一 起,形成通用模块。这样的模块必然是低聚合的。 9. 什么是面向数据流的设计方法?它有哪些策略? 面向数据流的设计就是根据问题域的数据流定义一组不同的映射,把问题域的数据流转换为问题的解的程序结构.这种方法通常又叫结构化设计,是目前使用最广泛的软件设计方法之一.我们又叫yourdon方法. 数据流包括变换流和事务流. 它使用启发式策略:改造软件结构,降低耦合度,提高内聚度。减少扇出,追求高扇入。使任一某块的作用域在其控制域内。奖励模块接口复杂度和冗余度,提高协调性。模块功能可预测,便面对模块施加过多限制。追求单入口、单出口的模块。为满足设计和可移植性要求,把某些软件用包封装起来。 10. 软件设计的基本原理是什么? 模块化、抽象、逐步求精、信息隐蔽和局部化、模块独立。 11. 画结构图应该注意的事项是什么? 画结构图应注意的事项如下: ① 同一名字的模块在结构图中仅出现一次. ② 调用关系只能从上到下. ③ 不严格表示模块的调用次序,习惯上从左到右.有时为了减少连线的交叉,适当地调整同一层模块左右位置, 以保持结构图的清晰性. 12. 什么是耦合性?模块的耦合性有哪些内容?各种耦合性的排列顺序是什么? 耦合:模块间互相依赖(连接)的紧密程度; 影响耦合强度的因素: 1) 一个模块对另一个模块的引用; 2) 一个模块向另一个模块传递的数据量; 3) 一个模块施加到另一个模块的控制的数量; 4) 模块之间接口的复杂程度。 在软件设计中应该追求尽可能松散耦合。 对模块的测试或维护时,不需要对系统的其他模块有很多了解。 此外,由于模块间联系简单,发生在一处的错误传播到整个系统的可能性就很小。 因此,模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。 内容耦合、公共耦合、控制耦合、标记耦合、数据耦合,由强到弱 13. 什么是内聚性?模块的内聚性有哪些内容?各种内聚性的排列顺序是什么? 内聚:模块内部各个元素彼此结合的紧密程度。 偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚,由弱到强 软件结构中应多使用功能内聚类型的模块。 1) 一个模块一个功能,是软件设计人员模块化设计的一条准则。 2) 中内聚模块可以使用 3) 低内聚模块因为组成部分松散,可维护性和可重用性都比较差,应避免使用。 低内聚:偶然内聚,逻辑内聚,时间内聚 中内聚:过程内聚,通信内聚 高内聚:顺序内聚,功能内聚; 内聚度高,耦合弱,标志着模块的独立性强;反之,内聚度低,耦合就强,标志着模块的独立性差。 内聚和耦合是密切相关的,模块的高内聚往往意味着模块间的松耦合。内聚和耦合都是进行模块化设计的有力参考指标。 实践证明,内聚比耦合更重要,应该把更多注意力集中到提高模块的内聚度上来。 14. 何谓模块独立性? 模块独立:具有独立功能而且和其他模块之间没有过多的相互作用的模块。 模块独立的重要性: 第一,具有独立模块的软件比较容易开发。 第二,独立模块比较容易测试和维护。 15. 什么是“变换流”? 信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流叫做变换流。 16. 什么是“事务流”? 事务流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这种数据流叫做事物流。 17. 软件详细设计的基本任务包括那些? 详细设计的目标:得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。 详细设计的任务: 是对总体设计阶段划分出的每个模块进行明确的算法描述。 模块的内部过程描述就是模块内部的算法设计。 18. 结构化程序设计的定义,进行结构化程序设计的基本要点有哪些? 结构化程序设计:如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 经典的结构程序设计:只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构; 扩展的结构程序设计:除了3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构; 结构程序设计是尽可能少用GO TO语句,仅在检测出错误时才使用GO TO语句,而且总是使用前向GO TO语句。 19. 过程设计的工具有哪些?各种工具的实现原理及优缺点是什么? 描述程序处理的过程的工具称为过程设计的工具,它们可以分为图形、表格和语言三类。 程序流程图、盒图、pad图、判定表、判定树、过程设计语言。 程序流程图:通过一些常用的控制结构和基本符号实现 优点:对控制流程的描绘很直观,便于初学者掌握。 缺点: (1) 不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 (2) 用箭头代表控制流,程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。 (3) 不易表示数据结构。 使用对策:只用结构程序设计允许的五种图示结构 N-S图的特点: 一种不允许违背结构程序设计精神的图形工具。又称为N-S图。 (1)一个特定控制结构的功能域(作用域)明确。 (2)盒图没有箭头,不可能任意转移控制。 (3) 很容易确定局部和全程数据的作用域。 (4) 很容易表现嵌套关系,也可以表示模块的层次结构。 灵活性较差。 Pad图: PAD是问题分析图(problem analysis diagram) 。它用二维树形结构的图来表示程序的控制流。PAD图的主要优点如下: (1) 使用PAD符号设计的程序必然是结构化程序。(2) PAD图所描绘的程序结构十分清晰。 最左面的竖线是程序的主线,即第一层结构。每增加一个层次, PAD图形向右扩展一条竖线。图中竖线的总条数就是程序的层次数。 (3) PAD图表现的程序逻辑,易读、易懂、易记。 程序从图中最左竖线上端的结点开始执行,自上而下,从左向右顺序执行,遍历所有结点。 (4) 容易将PAD图转换成高级语言源程序,这种转换可用软件工具自动完成。 判定表: 适于表示复杂的条件组合与应做的动作之间的对应关系。 一张判定表由以下四部分组成: (1)左上部列出所有条件。 (2)左下部是所有可能的动作。 (3)右上部是表示各种条件组合的一个矩阵。 (4)右下部是和每种条件组合相对应的动作。 判定表右半部的每一列实际上就是一个规则,规定了与特定的条件组合相对应的动作。 判定表能够简洁而又无歧义地描述处理规则。但是判定表并不适于作为一种通用的设计工具,没有一种简单的方法使它能同时清晰地表示顺序和重复等处理特性。 判定树:判定树是判定表的变种,也能清晰地表示复杂的条件组合与应做的动作之间的对应关系。 判定树的优点: 形式简单到不需任何说明,一眼就可以看出其含义,易于掌握和使用。 简洁性差,可能有重复。 过程设计语言:过程设计语言(PDL)也称为伪码,它是用正文形式表示数据和处理过程的设计工具。 语言的正文用基本控制结构进行分割,处理过程中的操作用自然语言短语来表示。 因此,PDL是一种“混杂”语言,它使用一种自然语言的词汇表示处理,使用结构化的程序设计语言表示语法。 PDL的优点: (1) 可以作为注释直接插在源程序中间。促使维护人员在修改程序代码的同时也相应地修改PDL注释,因此有助于保持文档和程序的一致性,提高了文档的质量。 (2) 可以使用普通的正文编辑程序或字处理系统,完成PDL的书写和编辑工作。 (3) 可利用自动处理程序,由PDL生成程序代码。 PDL的缺点: 不如图形工具形象直观,描述复杂的条件组合与动作间的对应关系时,不如判定表清晰简单。 20. 熟悉运用程序流程图、N-S盒图、PAD工具进行程序的描述设计。
本文档为【软件工程复习大纲--2012】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_303150
暂无简介~
格式:doc
大小:143KB
软件:Word
页数:23
分类:互联网
上传时间:2012-05-02
浏览量:47