1、软 应 课 习 题 件工程 原理、方法与 用后 答案 最 完整版绪论1.什么是软件危机?为什么会产生软件危机?答:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。(1).软件维护费用急剧上升,直接威胁计算机应用的夸大。(2).软件生产技术进步缓慢2. 什么是软件生产工程化?工程化生产方法与早期的程序设计方法主要差别在哪里?答:结构化程序设计地出现,使许多产业界认识认识到必须把软件生产从个人化方式改变为工程化。采用工程的概念、原理、技术和方法开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件 地维护 , 是软件工程
2、, 时 是工程化生产方法。3. 别 明 1 软件开发方法与开发工 2 软件技术与软件管理的 系。答: 1 工 和方法,是软件开发技术的 大 , 。当一 方法 出来 证明 , 出 应的工 ,来 现和 方法。方法在期, 人currency1接和采用。“方法合工 中,使人 fi过使用工 来fl 方法, 能进方法的。2 在工业生产中,使 进的技术和设,管理的”业 能得好的 。软件在生产中能 质 时 计,管理 是中的重要原。以一个理的软件工程 ,应 时 技术和管理 个方 。4.从的 , 软件工 在软件开发中的 用。答:用C+开发一个软件,是 一 fi的 。 ,要在 程序 在计算机中 程序。 程序,把 程
3、序 程序。 发现, 重 程序 程序进改。fi过 , 用 接程序 fi过fl 程序 与 的程序 接起来,构 一个能在计算机上 的 软件。 程序, 程序, 接程序以 的计算机 系,软件工 。开 工 ,软件开发 是fl ,变得 和 , 至能 。5.什么是软件工程 ? 重要性的认识。答:方法与工 结合, 加上配套的软、硬件 形 。例 在批处理时代,用户开发的程序是 批送 计算机中心的计算机的, fl, 得 机改。程序员自己写的程序只能继续地跟踪,思路经常被迫中断, 率 高。 时系的使用,使开发人员从此能在自己的终端上跟踪程序的开发,仅此一点, 明显 高fl开发的 率。6. 何谓 向象软件工程?简述 与
4、传软件工程在各型软件开发中的 用。答:以 向象程序设计为基础。7. 软件 规 大小 哪几类?简述软件工程中各型软件开发中的 用。答: 规 为极小、小、中、大、 大、极大。1 中小型软件:软件工程改进软件质量, 高程序员生产率和满足用户的需求, 很大的 用。2 大型软件: 类软件必须从头至尾坚 软件工程的方法,严格遵守 准文档格式和正规的复审度,才能避免或减少,真正开发出大型的软件。8. 什么是形式化软件开发方法?现 类开发的 和出路在哪里?答: 是一 基数学的开发技术,主要采用数学的方法来描述系的性质 例 程序变换和程序验证等 。形式化的方法加上自动化的开发 , 能是 决 一 题的出路。软件开
5、发 型1什么是软件生存周期?把生存周期 为阶段的 的是什么?答:软件生存周期 为计、开发和 3个时期 把整个生存周期 为较小的阶段,给每个阶段赋予确定而 限的任务, 能够化简每一步的工 内容,使为软件规 而增长而大大增加fl软件复杂性变得交易控 和管理。2传的瀑布 型把生存周期 为哪阶段?瀑布 型软件开发 哪特点?答:瀑布 型在 码以前安排fl 析阶段和设计阶段 阶段间 顺序性和依赖性。3 明文档和复审软件质量的控 的 用。答:每一阶段 要 规定的文档,没 文档, 认为没 阶段的任务。软件开发是许多人共 参加的计,整与合格的文档,仅是开发时期软件人员 间 fi信的媒介, 是 时期软件进维护的中
6、要依据。每一阶段 要已 的文档进复审,以便尽早发现问题,消 。 是早期 来的 , 出来的时间 ,排 需 出的代 高。 时复审是 证软件质量, 开发 的重要 。4什么是 原型法? 现在哪里?答: 一个能够 用户主要需求的原型, 用户 一 来系的概 ,以便 断哪能是 合需要的,哪方 需要改进。 原型改进,最终 合用户要求的系。的 现在能够开发周期的和工 ,能在时间内 出 ,currency1“ 中的, 户进fi。5现 原型法的最终系 以 几 方法?fl 明 加以fi较。答:原型系仅“ 来系的主要 能,以 系的重要接 。为fl尽向用户 原型,开发原型系时应尽量使用能开发周期的和工 。最终系的形 以采
7、用原型用,一方法是 改 型得最终系。方法一“系的。 一 方法在 工 中,原型系使用的 存在 率高等原, fl少数简的务系,大多数原型 用,仅把 原型的过程当 定”软件需求的一 段。6fi较增量 型和 型的特点, 什么 和 的地方?答:增量 型是瀑布 型的顺序特与 原型法的 代特 结合的产。 型是一 代 型,每 代一, 前进一周。增量 型每个增量 高内 合,高度的 性。而型 在结合瀑布 型与 原型的基础上 增加fl 析。7为什么 用换 型开发软件 一定 度?什么是 软件工程?答:从理论上 ,一个正确的,满足户需要的形式化规格 明,经过一系列正确的程序变化 ,以确 得到 一个形式化规格 明, 前
8、较高的 度, 时,软件开发很少 用形式化方法需的 识, ,换 型开发软件现在 很费时和 基 思是 求在析和设计阶段 消 ,确 正确, 在 或 的 现软件的 。8哪开发 型 用 向象的软件开发?答:构件 型9fi较 型和构件 型的 。答:构件 型 用 好的软件构件来构 应用软件系, 合fl 型的很多特, 软件开发的 代方法。软件需求 析1需求 析的任务是什么? 理 析阶段的任务是决定 什么 ,而是 么 ?答:需求 析主要 个任务:一是fi过问题 的理 、 析和合 析 型 是在 用户软件系的确 要求的基础上,用 软件需求规格 明 把用户的需求 出来。需求 析的任务 是为fl明确要开发的是一个什么的
9、系,而是 么现 个系。2需求 析要经过哪步 ?答:需求、需求 、需求描述、需求验证。3 哪 主要的 析 型, 什么 系?答: 向象 析 型、结构化 析 型。前是采用 向象的思进软件需求 析的 过程,而 型的 心是DD, 是设计各 数据象的和。 的 型 别起到fl描述数据 型, 能型与为 型的 用。4什么是结构化 析? 的 结构化 现在哪里?答:是使用DFD、DD、结构化、 定 和 定 等工 ,来 一 的、 为结构化 明 的 文档。5什么是 向象 析?主要思是什么?答: OOA 向象的 析是采用 向象的思进软件需求 析 的过程.主要思是采用 向象的思。6. 需求 明 或需求规格 明 哪 ?各 的
10、主要内容是什么?答:、信描述、 能描述、为描述、质量描述、接 描述、 描述。:主要 述在文定”阶段确定的 软件的 与 ,简要介 系、盖帽、软件项 约束和 考资料等。信描述:给出软件含信的详描述,“信的内容、 系、数据流向、控 流向和结构等。能描述:软件 能要求的 明,“系 能 、每个 能的处理 明、限 和控 描述等。为描述:“系 变化 件和动 的描述,据此 以检查件和软件内的控 特。质量描述:阐明在软件交 使用前需要进的共能测和性能测, 规定 程序和文档应遵守的各 准。接 描述:“系的用户界 、硬件接 、软件接 和fi信接 等的 明。 描述:阐述系设计和现上的限 ,系的假设和依赖等 需要 明的
11、内容。7. 为什么DFD要 层?画 层DFD要遵循哪原则?答:大型复杂的软件系,DFD 能含 数百乃至数千个加工,能设一 画齐。正确的法是:从系的基 型 把整个系 一个加工 开始,逐层地系进 。原则:顶向 ,逐步化。8. DFD和CFD 什么区别?答:9. 什么是系的为 型, 何 ?答:类象 型 示的是 向象 析 型中的静 ,而象为 型则用描述系的动为,系 何应件-系的为 型。一个象为 型一般要经历一过程:评估以的用例来理 系中的交 序列 找出驱动交 序列的件 为每个用例创 件轨迹 为象创 换图。10.选一个系 例 工资处理系、飞机订票系、图 馆管理系等 , 别用SA方法和OOA方法 进 析,
12、 给出 析 型。答:软件设计概述1.传软件工程把设计过程 2步:概要设计与详设计。述 2个阶段个字主要 的任务。答:概要设计,“结构设计和接 设计, 写设计文档。详设计,任务是确定各个软件件的数据结构和 ,产生描述个软件件的详设计文档。为什么大型软件设计必须 步走?答:概要设计和详设计是软件设计的 步,概要设计确定 的 , 间的用 系,接等 详设计 、数据结构等 大型系中 步走是必要的,概要设计确定 ,详设计 把各 交给 的人详设计,大型系中 的 工是fi较合理的,能 高 率,到合理 工。2. 释 列名词: 1 2 化 3 化设计。答: 是一个拥 明确定”的 、 出和特性的程序。化是指 决一个
13、复杂问题时自顶向 逐层把软件系 “干 的过程。每个 一个特定的子 能, 的 某 方法 起来, 为一个整, 整个系要求的 能。化设计是把大型软件 照规定的原则 一个个较小的、 currency1又 的 。currency1又的 。3.什么是 性?用什么度量?答: 性指每个 只 系要求的 的子 能, 与 的 系最少 接 简。 的概念是 化、抽象、信 蔽和局化概念的直接结 。 性 以从 个方 来度量: 的内性(Cohesion)和 间的合(Coupling)。4. 明 一个 ,一个 能 的含”, 讨论 类 的优点。答:5.什么是自顶向 设计?为什么 尤 用大型软件的开发?答:设计时 设计的系 一个
14、的理 。 从顶层开始, 续的逐层向 ,直至系的 笑道便掌握为止。自底向上设计 fl软件规 较小的设计思, 着软件规 的增长, 方法的 点逐渐 出来。而自顶向 的设计需要进详的 性论证,易改和扩展,整测较易fi过。6.自顶向 逐步化的方法 用 写教材。使用 方法 明 写一 教材的过程。答:7. 三角形的3条边长 假定 边确能 一个三角形 ,用 来鉴别三角形的性质 等腰、等边、任意或直角 , 出结 。用逐步化的方法设计 一程序, 用结构化 汉或英 写出化过程中每一步的过程描述。答:8.fi较概要设计复审和过程设计复审的评审内容, 明 采的复审方式 何 。答:概要设计复审的重点放在系的结构、 、内结
15、构等方 。例 软件结构是否满足需求?结构形 是否合理?层是否 晰? 的 是是 合优化原则?系的人机界 、内接 、以 出处理是是合理等。过程设计复审的重点放在 的 设计上。例 设计能否满足 能与性能要求?选择算法与数据结构是否合理,是否 合 程的特点?设计描述简、 晰等。概要设计复审常用的复审方式是正式复审。传的设计方法1.简释务、务型结构和变换型结构。答:一动 、时间或 变化 以 为一务。务型结构至少一条接路径、一个务中心与“干条动 路径 。变换型结构至少一条传 路径、变换中心和传出路径 。2.简述从DFD图到SC图的 射规则。答: 1 复审DFD图,必要时 进改或化 2 鉴别DFD图 示的软
16、件系的结构特,确定 代 的软件结构是 变换型 是务型。3 照SD方法规定一规则,把DFD图换为始的SC图 4 照优化设计的指导原则改进始的SC图,得最终SC图。5.某务系 列 能:1 读 用户命令, 检查 性;2 照命令的 号 1-4号 进 类处理3 1号命令计算产共识,能根据用户给出的各 产数量,计算出各工 的需要工时和 额工时 4 2号命令计算材料消耗,根据产的材料定额和用户给出的生产数量,计算各 材料的需求量5 3号命令 材料订货计6 4号命令计算产 用结构化 析和设计方法画出系的DFD图 据此到处系的SC图。动 中的1号和2号命令要详描述和设计,3号命令和4号命令允许从略, 仅用示意图
17、 示。答:7.简述过程 详 设计 明 的主要内容, 进复审?答:(1)为每个 确定采用的算法。选择某 当的工 算法的过程,写出 的详过程描述 (2)确定每一 使用的数据结构 (3)确定 接 的,“系的接 和用户界 ,系内 的接 ,以 数据、 出数据 局数据的。8.简化fi较 章讲 的几 过程设计 工 的优 点。答:流程图和N-S图,伪代码和PDL。流程图 能 意 任何程序逻 的 点, 着结构化程序设计方法的普 ,流程图在描述程序逻 时的 意性与灵活性恰恰变 fl 的 点。N-S图 的程序结构均用方框来 示, 论 列或嵌套,程序的结构 晰 见。容易养 好的程序设计格。 点是当程序内嵌的层数增多时
18、,内层的方 越画越小,仅增加画图的 , 使图形的 晰性到影响。伪代码工 量fi画图小,又容易换为真正的代码,PDL 很强的描述 能,是一 灵活和 用的过程 工 。9.任选一 排序 从小到大 算法, 别用流程图、N-S图和PDL描述详过程。10. 列用PDL伪代码 示的某 的过程性描述改用N-S图 示。Execute process aREPEAT UNTIL condition X8Execute process bIF condition X1THEN BEGINExecute process fIF condition X6THENREPEAT UNTIL condition X7Exec
19、ute process iENDREPELSE BEGINExecute process gExecute process hENDENDIFELSE CASE OF XiWHEN contdition X2 SELECTDO WHILE contition X5execute process CENDDOWHEN condition X3 SELECT process dWHEN condition X4 SELECT process eENDCASEENDIFENDREPExecute process jENDexecute process aexecute process bTX1Fex
20、ecute process fTX3F TX4FTX6F execute process dexecute process eexecute process i execute process gREPEAT UNTIL X7 execute process hexecute process jREPEAT UNTIL condition X812.图5-63显示fl某仓库零件收发管理程序的数据结构,用Jackson图 示。图中Part 示零件,Issue和Recept 别 示零件的出库量和 库量。现要求:1 找出 结构与 出结构 间的应元2 画出用Jackson图 示的程序结构3 列出程序需
21、要的 , 加到 2 步画出的程序结构图上4 用伪代码写出收发管理程序的过程性 示13.某工资管理程序的 / 出数据中“:数据:职工姓名,日工资率,工 天数,加班天数, 假天数, 变, 变等 出数据:职工姓名,基 工资,各项 ,各项 ,发工资等 用Jackson方法设计 一程序。软件测1.软件测的基 任务是什么?测与 什么 ?测的 的是发现程序 测的任务是fi过在计算机上程序, 程序中 在的。的 的是定 和 正 的任务是软件 , 证程序的 。fi常把一程序需要的测数据 为一个测用例,每个测用例产生一个 应的测结 ,与期 结 ,便 明程序中存在,需要用 来改正。2. 理 的 含的意”: 程序测只能
22、证明的存在,currency1能证明存在 、测是为fl证明程序 ,而是证明程序 示fl测 的一个重要性质 底性。 底测 是 被测程序在一 能的 一 ,又 测。在 中是根 法现的。 定fl一 测 是 底的,当 能 证测 的程序存在 的。测的 类Input filepart group*receptMovement record*issue Net movement line*bodyheadingOutput report测方法测用例和测结 测用例=测数据+期 结 测结 =测数据+期 结 + 结 测1 等 测把 数据的 能 为“干个等 类,使每类中的任何一个测用例, 能代 一等 类中的 测用例。
23、采用等 测 意以 点: 等 类仅要考 代 的 等 类, 要考 代 得 等 类 每一 等 类至少要用一个测用例, 能 某一类,currency1允许“干个等 类合用一个测用例,以便进一步减少测的数。例 某工 开 工,规定名在16周至35周(在19672到19863)。 出生在上述 内,接, 显示 合格 等出信。用等 类法设计 一程序 能的测用例。一步: 等 类数据 等 类 等 类出生 (1)6 数字字 (2) currency1数字字 (3)少6个数字字 (4)多6个数字字 应数 (5)在196702-198603 间 (6)198603应数 (8)在1-12 间 (9)等 0”(10)12步:
24、设计 等 类需要的测用例测数据 期 结 测 197011 (1)、(5)、(8)三步:为每一 等 类设计一个测用例测数据 期 结 测 MAY,70 (2)19705 (3)1968011 (4)195512 合格 (6)196006 合格 (7)196200 (9)197222 (10)2 边界测程序员在处理边界 时,很容易“略或考 周发生 码。例 ,数容量、循 数以 数据与 出数据在边界 程序出概率 较大。采用边界 析法 是要 来选择测用例,使得被测程序能在边界 ,从而 地 程序中 在的。例 程序 能设 If(19670235周12196800197413恰小最小恰大最大3 fi测法fi 是
25、fi测被测程序放在哪地方容易出, fl 能的 来设计测用例。一般用等 类法和边界 析法设计测用例, 用fi法 一例子 为 的段。 测1 逻 盖测:用流程图来设计测计用例。主要考 的重点是图中的 定框(选择或循 )。照被测程序 测的 程度,逻 测 到强区 5 盖 准:盖:每条至少一。定盖:每一 定的每个 至少一。条件盖:每一 定中的每个条件, 别 真 、 假 至少各一。定/条件盖: 时满足 定盖和条件盖的要求。条件合盖:求出 定中 条件的各 能合 ,每一 能的条件子和至少一。盖 准 程序结构 例 测用例应满足的条件盖 AB=.T.定盖 AB=.T.,AB=.F.条件盖 A=.T.,A=.F.B=
26、.T.,B=.F.定/条件盖 AB=.T.,AB=.F.A=.T.,A=.F.B=.T.,B=.F. 条件合盖 A=.T. B=.T.A=.T. B=.F.A=.F. B=.T.A=.F. B=.F.路径测法程序图:是一 简化的流程图。程序图中每一条 能的程序路径至少测一。 程序中含 循 (在程序中 现为 ),则每个循 至少一。路径测 特:满足结构测的最 要求。盖加 定盖是 测的最 要求, 时满足 准的盖为 盖 。从路径测的要求 见, 含fl盖和 定盖(在程序图上 别为点盖与边盖)。软件复用1.什么是软件复用?答:在构 的软件系的过程中,已存在的软件人工 的使用技术。2.什么是工程?简述活动内
27、容。答: 工程是指fi过 析找出最优复用,把 设计和构 为 复用构件,进而 大规 的软件构件仓库的过程。答: 复用活动应用的 ,复用 为向复用和”向复用。向复用是指复用 应用中的软件元 数据结构、 类算法等。”向复用是指在一类 较多 共性的应用 间进软 复用。”向复用“以 几个方 的活动:(1) 析:根据应用的特 性, 测软构件的 复用性,发现 描述 复用,进而 的 型和需求规约。(2)开发 复用构件:一确认fl构件的复用 , 进构件的开发, 复用 的软构件进抽象、一般化和参数化,以便 能够 应的类 的应用。(3) 复用构件库:软件构件 文档进 类 ,形 的 类检 机 , 为 继项 使用的 复
28、用资 。3.什么是CBSD? 软件构件技术要 决哪问题?答:基构件的软件开发(Component-Based Software Development,简 CBSD)是在一定构件 型的 ,复用构件库中的一个或多个软件构件,fi过合构件来构 应用软件系的开发过程。要 决的问题:构件应 的特:fi用性、 变性、易 性。在 构件时,必须考略应用的特。构件设计框: 准数据、 准接 、程序 。软件维护1.为什么 软件维护是 避免的?答:满足用户已开发产的性能与 断 高的需要,进而 到长软件的命。2. 和 性维护 哪 ?答: 的 的是定 和 正 的任务是软件 , 证程序的 。性维护是软件测的 底性,任何大
29、型软件交 使用 , 会继续发现 在的,进断和改正。 的在 正在开发期间 能发现的 。5.什么是软件配? 明好维护时期配的意”与方法。答:软件配是一个软件在生存周期内, 的各 形式、各 的文档与程序的 。软件配进 学的管理,是 证软件质量的重要段。配管理整个生存周期,在 和维护时期,任务尤为 重。为fl方便多 产和多 进跟踪和控 ,常常 自动的配管理工 :配管理数据库工 和 控 库工 。8.什么是软件 工程?软件 工程的主要活动 哪?答:软件 工程是技术和工 应用的软件的一 较 底 的性维护。主要活动 6类:软件 工程与软件维护差 ?答:软件维护是局的,以 或 应需求变化为 的 软件 工程是 用
30、向工程、重构等技术,在 理 原 软件的基础上,进 、合、 重构 软件,用以 高软件的 理 性、 维护性或 化性。软件工程管理2.一个4 规 的应用程序, 50 元 以在 上 到。 自己开发,则没人一的 费需4000 元。问是 合算 ? 是自己开发合算 ? :开发 用COCOMO 型计算 答:6. 图是某软件项 的PERT图。图框中的数字代 活动需的周数。要求:(1)找出 路径和 项 的最时间 (2) 出每项活动的最早起止时间与最 起止时间。答:7.在上题中,“活动G的 续时间 别为7周、6周或5周,问, 项 的最时间 何变化。答:8.2题的内容改用Gantt图 示。答:软件质量管理3. 释 列
31、各 名词, 明 的 系和差别:1 验证与确认答:2 软件质量 证与软件质量认证答:软件质量 证着 每一个软件, 证 给用户的产 到规定的质量 。软件质量认证 重软件”业的整资质, 的在 考 ”业的质量系, 断 是否 设计、开发和生产 合质量要求的软件产的能 。4.什么是软件 性? 进定量 示?答:在给定时间内,程序 照规定的条件 地 的概率。R(t)=P在时间0,t内 规定条件 计算方法1:R(t)=e-t,中,t为程序 时间,为 率, 时间内程序 的数。计算方法2: 均 时间MTTF=1/,中, 为 率, 时间内程序 的数。起点H 2 I 3 J 2E 3F 5 G 8 D 3A 3B 6 C 5终点5. 性 型 几大类? 的主要区别是什么?答: 性 型 为 型和 型2大类。是 在程序和控 结构详 析的基础 上的,在开发时期很 前则“略程序方 的,主要从程序中 的角度来 型, 用计方法确定 型中的常数。8.什么是CMM软件过程能 度 型? 哪应用?答: 能 度 型 是软件 在定”、 、度量、控 和改软件过程的 中各个发展阶段的描述。是用来确定一个软件过程的 程度以 指明 何 高过程 度的参考 型。CMM的主要应用在能 评估和过程改2个方 。