软件工程复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
1.软件工程定义:IEEE : 软件工程是(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;(2)(1)中所述方法的研究
2.软件生存周期大体可分为如下几个活动:计算机系统工程、需求分析、设计、编码、测试、运行和维护
3.计算机系统工程的任务:确定待开发软件的总体要求和范围,以及它与其它计算机系统元素之间的关系进行成本估算,做出进度安排进行可行性分析,即从经济、技术、法律等方面分析待开发的软件是否有可行的解决方案,并在若干个可行的解决方案中作出选择。
4.软件需求分析:主要解决待开发软件要“做什么”的问题
确定软件的功能、性能、数据、界面等要求,生成软件需求规约。
5.软件设计:主要解决待开发软件“怎么做”的问题。
软件设计通常可分为系统设计(也称概要设计或总体设计)和详细设计。
6.1970年W.Royce 提出瀑布模型特征
接受上一阶段的结果作为本阶段的输入利用这一输入实施本阶段应完成的活动
对本阶段的工作进行评审,将本阶段的结果作为输出,传递给下一阶段
7.增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一版本的修改和补充,重复增量发布的过程,直至产生最终的完善产品。
8.原型(prototype )是预期系统的一个可执行版本,它反映了系统性质(如功能、计算结果等)的一个选定的子集。
9.螺旋模型:是瀑布模型和演化模型的结合,并增加了风险分析
10.喷泉模型是一种支持面向对象开发的模型。类及对象是面向对象方法中的基本成分。
11.“喷泉”一词体现迭代和无间隙特征
第二章
1.可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,能否在规定的资源和时间的约束下完成。
2.货币的时间价值 设:当前金额为P ,年利率为i ,n 年后的金额为F ,则
3.投资回收期是衡量一个开发工程价值的经济指标.它是使累计的经济效益等于最初的投资所需的时间.
4.纯收入是另一个重要的经济指标,指出了若干年内扣除成本后的实际收入。
纯收入=累计经济效益 – 投资数
第四章
1.软件设计的任务:使用一种设计方法,软件分析模型中通过数据、功能和行为模型所展示的软件需求的信息被传送给设计阶段,产生数据/类设计、体系结构设计、接口设计、部件级设计
2.数据/类设计:将分析-类模型变换成类的实现和软件实现所需要的数据结构
体系结构设计:体系结构设计定义了软件的整体结构
接口设计:接口设计描述了软件内部、软件和协作系统之间以及软件同人之间如何通信 部件级设计:部件级设计将软件体系结构的结构性元素变换为对软件部件的过程性描述
3.信息隐藏:每个模块的实现细节对于其它模块来说应该是隐蔽的
块中所包含的信息(包括数据和过程)不允许其它不需要这些信息的模块使用, 通过信息隐蔽,则可定义和实施对模块的过程细节和局部数据结构的存取限制 ,这意味着这些独立的模块彼此间仅仅交换那些为了完成功能而必需交换的信息,也就是说应该隐藏的不是模块n
i F P )1/(+=n
i P F )1(+=
的一切信息,而是模块的实现细节。
4.模块独立:模块完成独立的功能并且与其他模块的接口简单,符合信息隐蔽和信息局部化原则,模块间关联和依赖程度尽可能小
5.模块的独立性可以由两项指标来衡量:内聚度与耦合度
6.内聚(cohesion)是一个模块内部各个元素彼此结合的紧密程度的度量
耦合(coupling)是模块之间的相对独立性(互相连接的紧密程度)的度量
7.内聚性分为七种类型:(1)巧合内聚(偶然内聚):将几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的模块称为巧合内聚模块。(2)逻辑内聚:指完成一组逻辑相关任务的模块,调用该模块时,由传送给模块的控制型参数来确定该模块应执行哪一种功能。(3)时间内聚:指一个模块中的所有人物必须在同一时间段内执行(4)过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程(procedural)执行。(5)通信内聚:指一个模块内所有处理元素都集中在某个数据结构的一块区域中。(6)顺序内聚:指一个模块完成多个功能,这些功能又必须顺序执行。(7)功能内聚:指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割的
8.耦合方式有七种类型:(1)内容耦合:如果一个模块直接访问另一个模块的内部数据;或者一个模块不通过正常入口转到另一模块内部;或者两个模块有一部分程序代码重迭;或者一个模块有多个入口,则两个模块之间就发生了内容耦合。2) 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。3) 外部耦合:指模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)时,称为外部耦合。4)控制耦合:如果一个模块传送给另一个模块的参数中包含了控制信息,该控制信息用于控制接收模块中的执行逻辑,则称为控制耦合(5)标记耦合:两个模块之间通过参数表传递一个数据结构的一部分(如某一数据结构的子结构),就是标记耦合。6) 数据耦合:两个模块之间仅通过参数表传递简单数据,则称为数据耦合。7) 非直接耦合:如果两个模块之间没有直接关系,即它们中的任何一个都不依赖于另一个而能独立工作,这种耦合称为非直接耦合。
9.在部件级设计阶段,主要完成如下工作:
(1)为每个部件确定采用的算法,选择某种适当的工具表达算法的过程,编写部件的详细过程性描述;(2)确定每一部件内部使用的数据结构;(3)在部件级设计结束时,应该把上述结果写入部件级设计说明书,并且通过复审形成正式文档,作为下一阶段(编码阶段)的工作依据。
10.“如果一个程序的代码块仅仅通过顺序、选择和循环这三种基本控制结构进行连结,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的”。
11.判定表却能清晰地表达复杂的条件组合与应做动作之间的对应关系。
第五章
1.结构化分析与设计是一种面向数据流的传统软件开发方法,以数据流为中心构建软件的分析模型和设计模型
2.数据字典条目包括:数据流、文件、数据项(组成数据流和文件的数据)、加工、源或宿
3.结构图的几个概念:
深度:程序结构图中控制的层数,
宽度:程序结构图中同一层次上模块总数的最大值,
扇出(fan out):该模块直接调用的模块数目。
扇入(fan in):能直接调用该模块的模块数目。
4.启发式设计策略:(1)改造程序结构图,降低耦合度,提高内聚度(2)避免高扇出,并