1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。东北农业大学网络教育学院软件工程作业题( 一) 一、 填空题( 共20分 每题2分) 1.软件危机具有下列表现( ) I、 对软件开发成本估计不准确II、 软件产品的质量往往不可靠III、 软件常常不可维护IV、 软件成本逐年上升AI、 II和III BI、 III和IV CII、 III和IV D以上都正确2. 系统定义明确之后, 应对系统的可行性进行研究。可行性研究应包括( ) 。A软件环境可行性、 技术可行性、 经济可行性、 社会可行性B经济可行性、 技术可行性、 操作可行性C经济可行性、 社会可行性、 系统可行性D经济可行性
2、、 实用性、 社会可行性 3. 在进行软件测试时, 首先应当进行( ) , 然后再进行集成测试, 最后再进行有效性测试。A.单元测试 B.集成测试 C. 确认测试 D. 组合测试4. 结构化程序设计思想的核心是要求程序只由顺序、 循环和 ( ) 三种结构组成。 A. 选择 B. 单入口 C. 单出口 D. 有规则 GOTO 5. 划分模块时, 一个模块的 ( ) 。 A. 作用范围应在其控制范围之外 B. 作用范围应在其控制范围之内 C. 作用范围与其控制范围互不包容 D. 作用范围与其控制范围不受限制 6. ( ) 分批地逐步向用户提交产品, 每次提交一个满足用户需求子集的可运行的产品。A.
3、增量模型 B喷泉模型 C原型模型 D.螺旋模型7. 在对数据流的分析中, 主要是找到中心变换, 这是从( ) 导出结构图的关键。A数据结构 B实体关系 C E-R图 D 数据流图 8. 测试的关键问题是( )A. 如何组织对软件的评审 B. 如何验证程序的正确性 C. 如何采用综合策略 D. 如何选择测试用例9. 模块( ) , 则说明模块的独立性越强。A 耦合越强 B 扇入数越高 C 耦合越弱 D 扇入数越低 10. 使用白盒测试方法时, 确定测试数据应根据( ) 和指定的覆盖标准A程序的内部逻辑 B程序的复杂程度C使用说明书 D程序的功能二、 判断下列叙述的正确性, 将结果( 正确, 错误
4、) 填入( ) 中, 并改正错误的说法。( 本大题共5小题, 每小题3分, 共15分) 1. ( ) 在软件的开发过程中, 工作量最大的一个阶段就是编写程序。2. ( ) 当验收测试经过, 软件开发就完成了。3. ( ) 好的测试用例应能证明软件是正确的。4. ( ) 在程序调试时, 找出错误的位置和性质比改正该错误更难。5. ( ) 模块独立要求高耦合低内聚。三、 简答题( 每题8分, 共40分) 1. 结构化程序设计的思想是什么? 2. 一个程序能够既正确又不可靠吗? 请加以解释。3. 软件测试包括哪些类型的测试? 这些测试之间的区别是什么? 4. 可行性研究的目的是什么? 5. 根据瀑布
5、模型为下列任务排序。验收测试、 项目计划、 单元测试、 需求复审、 成本估计、 总体设计、 设计复审、 市场调研、 详细设计、 系统测试、 实现、 编制需求规格说明书。四、 应用题( 共25分) 1、 已知有一段程序的含义如下, 首先输入任意三个数A, B, C; 如果( A1) AND ( B=0) 则C=C/A, 否则 ( A=2) OR ( C1) 则C=C+1; 1) 请画出流程图并转化为程序图( 5分) 2) 设计判定条件覆盖和路径覆盖的测试用例。( 10分) 2、 .某厂对部分职工重新分配工作的政策是: 年龄在20岁以下者, 初中文化程度脱产学习, 高中文化程度当电工; 年龄在20
6、岁至40岁之间者, 中学文化程度男性当钳工, 女性当车工, 大学文化程度都当技术员; 年龄在40岁以上者, 中学文化程度当材料员, 大学文化程度当技术员。请用判定表或判定树描述上述问题。( 10分)软件工程作业题( 二) 一、 填空题( 共20分 每空2分) 1. 产生软件危机的原因可能有( ) I、 用户需求描述不精确、 不准确II、 对大型软件项目的开发缺乏有力的组织与管理III、 缺乏有力的方法学和工具的支持IV、 软件产品的特殊性和人类智力的局限性AI和II BI、 II和IV CII、 III和IV D以上都正确2. 软件测试的目的是( ) A评价软件的质量 B发现软件的错误 C找出
7、软件中的所有错误 D证明软件是正确的3. 研究开发所需要的成本和资源是属于可行性研究中的 ( ) 研究的一方面。 A. 技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性4. 模块( ) 定义为受该模块内一个判断影响的所有模块集合。A控制域 B作用域 C宽度 D接口5.数据字典是软件需求分析阶段的最重要工具之一, 其最基本的功能是( )A数据库设计 B数据通信 C数据定义 D数据维护6. 确认测试是对软件进行 ( ) 测试。 A. 可靠性 B. 有效性 C. 可维护性 D. 可用性7. 通信内聚、 逻辑内聚、 顺序内聚和时间内聚的内聚性从高到低顺序是( ) A. 通信、 逻辑、
8、顺序、 时间 B. 通信、 时间、 顺序、 逻辑 C. 顺序、 通信、 时间、 逻辑 D. 顺序、 通信、 逻辑、 时间8. 程序的三种基本控制结构的共同特点是( ) 。 A 只能用来描述简单程序 B 不能嵌套使用C 单入口, 单出口 D 仅用于自动控制系统9. 设年利率为 i , 若不计复利, n 年后可得钱数为 F , 则这些钱现在的价值是( ) A. F* ( 1+i*n ) B. ( 1+n*i ) /F C. F/ ( 1+n*i ) D. F/ ( 1+n/ i ) 10. 当一个模块直接使用另一个模块的内部数据, 这种模块之间的耦合为( ) A 数据耦合 B 公共耦合 C 标记耦
9、合 D 内容耦合二、 判断下列叙述的正确性, 将结果( 正确, 错误) 填入( ) 中, 并改正错误的说法。( 本大题共5小题, 每小题3分, 共15分) 1. ( ) 用黑盒法测试时, 测试用例是根据程序内部逻辑设计的。2. ( ) 完成测试作业后, 为了缩短源程序的长度应删除程序中的注解。3. ( ) 软件维护就是改正软件中的错误。4. ( ) 实体 - 关系图中的数据对象之间的关系也可能有属性。5. ( ) 测试是为了验证软件已正确地实现了用户的要求。三、 简答题( 每题8分, 共40分) 1. DFD和DD的主要作用是什么? 两者的关系? 2. 自顶向下和由底向上设计的含义以及主要区别
10、是什么? 3. 模块间的耦合性有哪几种? 4. 当沿着螺旋模型的过程流路径向外移时, 你认为正在开发或维护的软件发生了什么变化? 5. 说明控制域和作用域规则及相互关系, 举例说明。四、 应用题( 共25分) 1、 根据下列条件使用边界值分析法设计测试用例。( 15分) 某一8位微机, 其八进制常数定义为: 以零开头的数是八进制整数, 其值的范围177177。如05, 0127, 0652、 移动通信公司为促进业务的发展发行优惠卡, 具体规则如下: ( 10分) 从未发生过话费拖欠, 每月通话费300元以上可获金卡, 每月通话费150元以上可获银卡, 每月通话费低于150元以上可获普通卡; 发
11、生过话费拖欠的, 能在规定时间内补清欠款, 每月通话费300元以上可获银卡, 每月通话费150元以上可获普通卡; 发生过拖欠话费, 并未能在规定时间内补清欠款, 不能获得优惠卡。请用判定表描述上述问题的加工逻辑。软件工程作业题( 三) 一、 填空题( 共20分 每题2分) 1. 为了克服软件危机, 人们提出了用 ( ) 的原理来设计软件, 这就是软件工程诞生的基础。 A. 数学 B. 软件学 C. 运筹学 D. 工程学2具有风险分析的软件生存周期模型是( ) A.瀑布模型B.喷泉模型C.螺旋模型D.增量模型3随着软硬件环境变化而修改软件的过程是( ) A.校正性维护B.适应性维护C.完善性维护
12、D.预防性维护4数据耦合、 公共耦合、 特征耦合、 控制耦合的耦合性从低到高的顺序是( ) A.数据、 公共、 特征、 控制B.数据、 特征、 控制、 公共C.控制、 数据、 特征、 公共D.控制、 数据、 公共、 特征5软件需求分析的主要任务是准确地定义出要开发的软件系统是( ) A.如何做B.怎么做C.做什么D.对谁做6. 瀑布模型的关键不足在于( ) .过于简单 .不能适应需求的动态变更.过于灵活 .各个阶段需要进行评审7检查软件产品是否符合需求定义的过程称为( ) 。 A.确认测试B.集成测试C.验收测试D.验证测试8软件复审时, 其主要的复审对象是( )。A文档 B程序 C数据 D软
13、件配置项9软件生存周期中时间最长的阶段是( ) A需求分析阶段B概要设计阶段C详细设计阶段D维护阶段10在考察系统的一些涉及时序和改变的状态时, 要用动态模型来表示。动态模型着重于系统的控制逻辑, 它包括两个图: 一个是事件追踪图, 另一个是( ) 。A状态图 B数据流图 C系统结构图 D时序图二、 判断下列叙述的正确性, 将结果( 正确, 错误) 填入( ) 中, 并改正错误的说法。( 本大题共5小题, 每小题2分, 共10分) ( 1) ( ) 一般况来, 模块的内聚程度越高, 它们之间的耦合程度也就越高。( 2) ( ) 程序测试不但能证明错误的存在, 也能证明错误的不存在。( 3) (
14、 ) 维护是生存周期中花钱最多, 延续时间最长的活动。( 4) ( ) 在软件开发的过程中, 若能推迟暴露其中的错误, 则为修复和改正错误所花费的代价就会降低。( 5) ( ) 螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。三、 简答题( 每题8分, 共40分) 1、 请说明软件文档的作用? 软件开发项目生存期各阶段都包含哪些文档。2、 快速原型模型有几种? 各有何特点? 3、 解释深度、 宽度、 扇出、 扇入对软件的影响。4、 简述渐增式测试方法与非渐增式测试方法的优劣。5、 软件的可维护性与哪些因素有关? 在软件开发过程中应采取哪些措施才能提高软件产品的可维护性? 四、 应用题
15、( 共30分) 1、 具体问题( 如: 输入A, B, C三个数要求输出其中最小者) , 画出程序流程图, 并计算其复杂度。(15分)2. 某公司为本科以上学历的人重新分配工作, 分配原则如下: 1) 如果年龄不满 18 岁, 学历是本科, 男性要求报考研究生, 女性则担任行政工作; 2) 如果年龄满 18 岁不满 50 岁, 学历本科, 不分男女, 任中层领导职务, 学历是硕士不分男女, 任课题组组长; 3) 如果年龄满 50 岁, 学历本科, 男性任科研人员, 女性则担任资料员, 学历是硕士不分男女, 任课题组组长。 要求: 画出判定表或判定树。 ( 15分) 软件工程作业题( 四) 一、
16、 填空题( 共20分 每题2分) 1软件危机是指( ) 。A.软件遭到破坏 B.软件开发和维护过程中遇到的问题C.软件维护出现困难 D.软件不能正常运行系列问题2. 软件的复杂性是( ) , 它引起人员通信困难、 开发费用超支、 开发时间超时等问题。A.固有的 B.人为的 C.可消除的 D.不可降低的3. ( ) 是将系统化的、 规范的、 可定量的方法应用于软件的开发、 运行和维护的过程, 它包括方法、 工具和过程三个要素。 A. 软件过程 B. 软件测试 C .软件生存周期 D .软件工程 4.在瀑布模型中, 将软件划分为若干个时期, 软件项目的可行性研究一般归属于( ) 。 A.维护时期
17、B.计划时期 C.运行时期 D.开发时期5. 面向对象分析是对系统进行( ) 的一种方法。 A.需求建模 B.程序设计 C.设计评审 D.测试验收6. 软件详细设计阶段的任务是( ) 。A.算法设计 B.功能设计 C.调用关系设计 D.输入/输出设计7. 在下述哪一种测试中, 测试人员必须接触到源程序( ) 。功能测试结构测试 A.均不需 B.只有 C.只有 D.和8. 结构化方法是一种( ) 的软件开发方法。 A. 面向用户 B. 面向数据结构 C. 面向对象 D. 面向数据流9. ( ) 是把对象的属性和操作结合在一起, 构成一个独立的对象, 其内部信息对外界是隐蔽的, 外界只能经过有限的
18、接口与对象发生联系。 A.多态性 B.继承 C.封装 D.消息10. 在各种不同的软件需求中, 功能需求描述了用户使用产品必须要完成的任务, 能够在用例模型或方案脚本中予以说明, ( ) 是从各个角度对系统的约束和限制, 反映了应用对软件系统质量和特性的额外要求。 A.业务需求 B.功能要求 C.非功能需求 D.用户需求二、 判断下列叙述的正确性, 将结果( 正确, 错误) 填入( ) 中, 并改正错误的说法。( 本大题共5小题, 每小题3分, 共15分) 1. ( ) 在需求分析中, 分析员要从用户那里解决的最重要的问题是明确软件做什么。2. ( ) 数据字典是对数据流图中的数据流, 加工、
19、 数据存储、 数据的源和终点进行详细定义。3. ( ) 软件技术复审是由用户和测试人员实施的一种质量保证活动。4. ( ) 模型是对现实的简化, 建模是为了更好地理解所开发的系统。5. ( ) 模块化, 信息隐藏, 抽象和逐步求精的软件设计原则有助于得到高内聚, 低耦合度的软件产品。三、 简答题( 每题8分, 共40分) 1软件工程的基本目标是什么? 2原型化方法主要用于解决什么问题? 试说明这种方法的主要优缺点。3什么是桩模块? 什么是驱动模块? 二种渐增式集成测试如何组装模块? 4试说明软件生存周期的概念。5采用黑盒技术设计测试用例有哪几种方法? 这些方法各有什么特点? 四、 应用题( 共
20、25分) 1下面是一段插入排序的程序, 将Rk+1插入到R1k的适当位置。R0 = Rk+1; j = k;while (Rj R0) Rj+1 = Rj;j-; Rj+1 = R0;( 1) 画出程序流程图, 转换为流图, 求环路复杂度( 8分) ( 2) 用路径覆盖方法为它设计足够的测试用例( while循环次数为0、 1、 2次) 。(7分)2某校的课酬计算机方案为: 1) 基本课酬为每节课10元。2) 班级人数超过60人, 增加基本课酬的10%。3) 班级人数超过80人, 增加基本课酬的20%。4) 如果教师为副教授, 增加基本课酬的10%。5) 如果教师为教授, 增加基本课酬的20%
21、。6) 如果教师为助教, 不增加课酬。7) 如果教师为见习助教, 减少基本课酬的10%。用判定表, 表示上述计算方案。( 10分) 软件工程作业题( 五) 一 填空题( 共20分 每空2分) 1、 TURBO PASCAL是( ) 软件。A、 系统软件B、 人工智能C、 事务软件D、 应用软件2、 选择结构的复杂性比顺序结构的复杂性要( ) 。A、 小B、 大C、 相等D、 无法比较3、 在数据流图中, ( 椭圆) 代表( ) 。A、 源点B、 终点C、 加工D、 模块4、 模块内聚度越高, 说明模块内各成分彼此结合的程度越( ) 。A、 松散B、 紧密C、 无法判断D、 相等5、 软件维护是
22、软件生命周期中的固有阶段, 一般认为, 各种不同的软件维护中以( ) 维护所占的维护量最小。A、 纠错性维护B、 完善性维护C、 预防性维护D、 文档维护6、 软件需求分析是保证软件质量的重要步骤, 它的实施应该是在( ) 。A、 编码阶段B、 软件开发全过程C、 软件定义阶段D、 软件设计阶段7、 软件测试方法中, 黑盒、 白盒测试法是常见的方法, 其中白盒测试主要用于测试( ) 。 A、 结构合理性B、 软件外部功能C、 程序正确性D、 程序内部逻辑8、 进行需求分析可使用多种工具, 但( ) 是不适用的。A、 数据流图 B、 PAD图 C、 判定表 D、 数据词典9、 若有一个计算类型的
23、程序, 它的输入量只有一个X, 其范围是-1.0, 1.0, 现从输入的角度考虑一组测试用例: -1.001, -1.0, 1.0, 1.001。设计这组测试用例的方法是( ) A、 条件覆盖法 B、 等价分类法 C、 边界值分析法 D、 错误推测法10、 软件文档是软件工程实施中的重要成分它不但是软件开发各阶段的重要依据, 而且与影响软件的( ) 。 A、 可理解性B、 可维护性C、 可扩展性D、 可移植性二、 判断下列叙述的正确性, 将结果( 正确, 错误) 填入( ) 中, 并改正错误的说法。( 本大题共5小题, 每小题3分, 判断1分, 改正2分, 共15分) 1. ( ) 软件需求规
24、格说明书在软件开发中具有重要的作用, 是软件可行性分析的依据。2. ( )尽可能推迟程序的逻辑实现是按照瀑布模型开发软件的一条重要的指导思想。3. ( )模块化程序设计中, 模块越小, 模块化的优点越明显。一般来说, 模块的大小都在10行以下。4. ( )为了加快软件维护作业的进度, 应尽可能增加维护人员的数目。5. ( )一般情况下, 发现错误多的程序模块, 残留在模块中的错误也多。三、 简答题( 每题8分, 共40分) 1、 软件复用的范围不但仅涉及源程序代码, 请至少列出5种可能复用的软件元素。2、 白盒测试法有哪些覆盖标准? 试对她们的检错能力进行比较。3、 调试的目的是什么? 调试有
25、哪些技术手段? 4、 软件设计的基本原理包括哪些内容? 5、 某学校需要开发一个学生成绩管理系统, 教务人员能够经过该系统维护学生信息、 课程信息和成绩信息, 学生能够随时查询自己的成绩单, 该系统的实体关系图如下所示: 请问图中是否应该增加教务人员? 试说明理由。四、 应用题( 共25分) 1. ( 10分) 某”调整工资”处理模块接受一个”职称”的变量, 根据职称的不同( 助教, 讲师, 副教授, 教授) 作不同的处理, 其中若是助教还必须输入工龄, 只有工龄超过两年才能调整工资。请用等价类划分法设计测试用例。2. 求一组数组中的最大数, 数组表示为A( n) , n1, 2n的自然数。(
26、15分)1) 请画出程序流程图( 5分) 2) 请画出该算法的N-S图( 5分) 3) 请用PAD图来表示该算法( 5分) 东北农业大学网络教育学院软件工程作业题参考答案作业题一参考答案一、 1、 D2、 B3、 A4、 A5、 B6、 A7、 D8、 D9、 C10、 A二、 1、 工作量最大为维护阶段2、 当验收测试经过, 软件开发并没有完成还应该有维护。3、 好的测试用例不能证明软件是正确的。4、 5、 模块独立要求高内聚低耦合。三、 1、 自上而下( 自顶向下) , 逐步求精2、 软件的功能正确并不代表软件是可靠的。可靠性是指在一定的环境下, 在给定的时间内系统不发生故障的概率。由于无
27、法对软件进行彻底的测试, 因此即使软件的某个功能是正确的, 软件中潜在的错误也可能导致其不可靠, 如 年问题就是如此。3、 软件测试包括单元测试、 集成测试、 确认测试和系统测试等。单元测试集中于单个模块的功能和结构的检验; 集成测试集中于模块组合的功能和软件结构检验; 确认测试主要检查软件是否符合合同要求, 包括需求规格说明、 设计规格说明和用户手册等; 系统测试集中检验系统所有元素之间协作是否合适, 整个系统的性能和功能是否达到。4、 软件可行性研究的目的是用最小的代价在尽可能短的时间内确定该软件项目是否值得去开发。可行性研究的目的不是去开发一个软件项目, 而是研究这个项目是否值得开发,
28、其中的问题如何解决, 主要包括时间、 资金、 技术等方面的内容。5、 市场调研 项目计划、 成本故机、 编制需求规格说明书( 可同时进行) 需求复审 总体设计 详细设计 设计复审 实现 单元测试 验收测试 系统测试四、 1、 程序图: 12374586判定覆盖a点 A1, A=1, B=0, B0b点 A=2, A2, X1, X1, A=1, B=0, B0b点 A=2, A2, X1, X=300=150=300=150发卡类型金卡银卡普通卡银卡普通卡无作业三答案: 一 选择题D C B B CB A A D A二 判断题(1).( ) 改正: 内聚越高, 耦合越低 (2).( ) 改正:
29、 仅能证明错误存在(3).( ) (4).( ) 代价越高(5).( ) 三 简答题1、 DFD是软件系统逻辑模型的一种图形表示(Graphic representation)。主要作用是指明系统中数据是如何流动和变换的, 以及描述数据流进行变换的功能, 在DFD中出现的每个功能的描述则写在加工说明(PSPEC)中, 她们一起构成软件的功能模型 数据字典是关于数据的信息的集合, 也就是对数据流图中包含的所有元素的定义的集合。数据流图和数据字典共同构成系统的逻辑模型, 没有数据字典数据流图就不严格, 然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,
30、才能共同构成系统的规格说明。2、 根据原型的不同作用, 有三类原型模型: 探索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段, 目的是要弄清用户的需求, 确定所期望的特性, 并探索各种方案的可行性。它主要针对开发目标模糊, 用户与开发着对项目都缺乏经验的情况, 经过对原型的开发来明确用户的需求。实验型原型。这种原型主要用于设计阶段, 考核实现方案是否合适, 能否实现, 对于一个大型系统, 若对设计方案心中没有把握时, 可经过这种原型来证实设计方案的正确性。演化型原型。这种原型主要用于及早向用户提交一个原型系统, 该原型系统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,
31、将原型系统不断扩充演变为最终的软件系统, 它将原型的思路扩展到软件开发的全过程。3、 深度表示软件结构中控制的层数, 它往往能粗略地标志一个系统的大小和复杂程度。 宽度是软件结构内同一个层次上的模块总数的最大值。一般说来, 宽度越大系统越复杂。对宽度影响最大的因素是模块的扇出。扇出是一个模块直接控制(调用)的模块数目, 扇出过大意味着模块过分复杂, 需要控制和协调过多的下级模块; 扇出过小(例如总是1)也不好。经验表明, 一个设计得好的典型系统的平均扇出一般是3或4(扇出的上限一般是59)。 扇出太大一般是因为缺乏中间层次, 应该适当增加中间层次的控制模块。扇出太小时能够把下级模块进一步分解成
32、若干个子功能模块, 或者合并到它的上级模块中去。一个模块的扇入表明有多少个上级模块直接调用它, 扇入越大则共享该模块的上级模块数目越多, 这是有好处的, 可是, 不能违背模块独立原理单纯追求高扇入。观察大量软件系统后发现, 设计得很好的软件结构一般顶层扇出比较高, 中层扇出较少, 底层扇入到公共的实用模块中去(底层模块有高扇入)。4、 非渐增式测试一下子把所有模块放在一起, 并把庞大的程序作为一个整体来测试, 测试者面正确情况十分复杂。测试时会遇到许许多多的错误, 改正错误更是极端困难, 因为在庞大的程序中想要诊断定位一个错误是非常困难的。而且一旦改正一个错误之后, 马上又会遇到新的错误, 这
33、个过程将继续下去, 看起来仿佛永远也没有尽头。渐增式测试与”一步到位”的非渐增式测试相反, 它把程序划分成小段来构造和测试, 在这个过程中比较容易定位和改正错误; 对接口能够进行更彻底的测试; 能够使用系统化的测试方法。因此, 当前在进行集成测试时普遍采用渐增式测试方法。5、 维护就是在软件交付使用后进行的修改, 修改之前必须理解待修改的对象, 修改之后应该进行必要的测试, 以保证所做的修改是正确的。如果是改正性维护, 还必须预先进行调试以确定错误的具体位置。因此, 决定软件可维护性的因素主要有下述5个: 1. 可理解性2. 可测试性3. 可修改性4. 可移植性5. 可重用性四 应用题1、 开
34、始输入abcab?ac?bc?输出a输出c输出b结束ynnyy复杂度为42、 年龄XX18XX1850X18X50X50X50学历本科本科本科硕士本科本科硕士性别男女男女报考研究生行政工作中层领导课题组组长科研人员资料员作业四答案一、 1、 B2、 A3、 D4、 B5、 A6、 A7、 C8、 D9、 C10、 C二、 1、 2、 加工。3、 软件技术复审是由用户和测试人员实施的一种质量保证活动。4、 5、 三、 1. 软件工程旨在开发满足用户需要、 及时交付、 不超过预算和无故障的软件, 其主要目标如下: ( 1) 合理预算开发成本, 付出较低的开发费用; ( 2) 实现预期的软件功能,
35、达到较好的软件性能, 满足用户的需求; ( 3) 提高所开发软件的可维护性, 降低维护费用; ( 4) 提高软件开发生产率, 及时交付使用。2. 建立原型的主要原因是为了解决在产品开发的早期阶段需求不确定的问题, 用户、 经理和其它非技术项目风险承担者发现在确定和开发产品时, 原型能够使她们的想象更具体化。原型在软件开发过程中能够起到以下主要作用: ( 1) 明确并完善需求 原型作为一种需求工具, 它初步实现所理解的系统的一部分。用户对原型的评价能够指出需求中的许多问题, 在你开发真正产品之前, 能够最低的费用来解决这些问题。( 2) 探索设计选择方案 原型作为一种设计工具, 用它能够探索不同
36、的用户界面技术, 使系统达到最佳的可用性, 而且能够评价可能的技术方案。( 3) 发展为最终的产品 原型作为一种构造工具, 是产品最初子集的完整功能实现, 经过一系列小规模的开发循环, 你能够完成整个产品的开发。3在单元测试时, 需要为被测程序编制若干测试软件, 给它的上级模块或下级模块做替身。代替上级模块的称为测试驱动模块(Test Driver), 代替下级模块的称为测试桩模块(Test Stub)。( 1) 自顶向下组合。该方法只需编写桩模块, 其步骤是从顶层模块开始, 沿被测程序的软件结构图的控制路径逐步向下测试, 从而把各个模块都结合起来, ( 2) 自底向上结合。该方法仅需编写驱动
37、模块。其步骤为: 把底层模块组合成实现一个个特定子功能的簇。为每一个簇编写一个驱动模块, 以协调测试用例的输入和测试结果的输出。对模块簇进行测试。按软件结构图依次向上扩展, 用实际模块替换驱动模块, 形成一个个更大的簇。重复至步, 直至软件系统全部测试完毕。4软件生存周期是指软件产品从考虑其概念开始到该软件产品交付使用, 直至最终退役为止的整个过程, 一般包括计划、 分析、 设计、 实现、 测试、 集成、 交付、 维护等阶段。 ( 1) 计划阶段: 确定待开发系统的总体目标和范围, 研究系统的可行性和可能的解决方案, 对资源、 成本及进度进行合理的估算。软件计划的主要内容包括所采用的软件生命周期模型、 开发人员的组织、 系统解决方案、 管理的目标与级别、 所用的技术与工具, 以及开发的进度、 预算和资源分配。 ( 2) 分析阶段: 分析、 整理和提炼所收集到的用户需求, 建立完整的分析模型, 将其编写成软件需求规格说明和初步的用户手册。经过评审需