版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程作业 第一章1什么是软件危机,它有哪些典型表现?答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系 列严重问题。 概括地说,软件危机包含下述两方面的问题:如何开发 软件,以满足对软件日益增长的需求; 如何维护数量不断膨胀的已有 软件。软件危机典型表现: 对软件开发成本和进度的估计常常很不准确。 用 户对“已完成的” 软件系统不满意的现象经常发生。 软件产品的质量 往往靠不住。软件常常是不可维护的。 软件通常没有适当的文档资料。 软件成本在计算机系统总成本中所占的比例逐年上升。 软件开发生产 率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因: 一方面与
2、软件本身的特点有关, 另一方面也和 软件开发与维护的方法不正确有关。 软件不同于硬件, 它是计算机系 统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困 难。软件是规模庞大, 而且程序复杂性将随着程序规模的增加而呈指 数上升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂 观念,在实践过程中或多或少地采用了错误的方法和技术, 这是使软 件问题发展成软件危机的主要原因。 2简述产生软件危机的原因和解决的思路。 答:软件危机产生的原因一方面与软件本身的特点有关,另一方面, 是与已有软件开发、维护的方法不正确有密切关系。解决软件危机, 既要有技术措施 (方法和工具 ),又要有必要的组织
3、管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机 的一个主要出路。3什么是软件工程?它有哪些本质特性?答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工 程的概念、原理、 技术和方法来开发与维护软件,把经过时间考验而 证明正确的管理技术和当前能够得到的最好的技术方法结合起来, 以 经济地开发出高质量的软件并有效地维护它。软件工程本质特性: 1、软件工程关注于大型程序的构造; 2、软件工 程的中心课题是控制复杂性; 3、软件经常变化; 4、开发软件的效率 非常重要; 5、和谐地合作是开发软件的关键; 6、软件必须有效地支 持它的用户; 7、在软件工程领域中是由具有一种文化
4、背景的人替具 有另一种文化背景的人创造产品。4软件工程是如何用来消除软件危机的? 软件工程是从技术和管理两个方面来研究如何更好地开发和维护计 算机软件,从源头上消除软件危机。5.假设你是某软件开发企业的 CEO,当你把教材P.4的图1.1给手 下的软件工程师们看, 同时告诉他们应及早发现并改正错误的重要性 时,有人不以为然, 认为要求在错误进入软件前就发现并清除它们是 不现实的,并举例说: “如果一个故障是编码错误造成的,那么又如 何能够在设计阶段就发现并清除呢?”那你应该如何说服? 首先要对错误造成工作的延误或一些问题表示歉意。 错误是难免, 关 键是要虚心接受, 在以后工作中要更加认真,
5、避免错误机率降到最低。 在编码过程中要,首先要在头脑清醒,要保持工作前有足够的睡眠。 这样错误机会也会降小。在编程结束后,首先要验证,是否能正常运 行或工作。再以后的工作更要虚心,认真,保证这种机会降到最低 6简述软件的定义。软件=程序+数据+文档7软件工程的目的是什么? 为高质量的软件开发提供一个科学的体系框架。 8什么是软件工程方法学?软件工程是一种什么样的技术?包括哪 三大要素?分为哪三个分支? 软件工程方法学就是指在软件生命周期全过程中使用的一整套管理 和开发技术方法的集合。 目前,使用最广泛的软件工程方法学分别是 传统方法学和面向对象方法学。软件工程作为一种层次化的技术, 有方法、工
6、具和过程三大要素, 并由于其涉及学科内容的极为广泛, 而分为三个分支: 软件开发技术、 软件项目管理技术、软件质量管理技术。 9简述软件工程的基本原理。软件工程有 7 条基本原理: 1严格按照软件生命周期计划进行管理 2坚持进行阶段评审3实行严格的产品控制 4采用先进的程序设计技术5结果应能清楚的审查6开发小组成员应少而精 7承认不断改进软件工程实践的必要性 10软件工程的基本开发原则有哪些? 软件工程的基本开发原则有:1模块化2抽象和信息隐蔽3模块的高内聚和低耦合4确定性5一致性6完备性11构成软件工程的基本元素有哪些? 除了前面给出的软件工程三大要素, 还应该包括控制和质量保证。 这 里的
7、控制,即规模控制、成本控制、复杂性控制等。 12什么是软件过程?它与软件工程方法学有何关系? 软件过程是指为了获得高质量软件产品, 在软件工具支持下, 由软件 人员完成的一系列软件工程活动。软件过程规定了开发软件所需完成的各项任务步骤。过程步骤的 设定与软件生命周期、生命周期模型、 软件开发工具,以及参与开发 的人员等诸方面因素有关。13什么是软件生命周期?什么是软件生命周期模型?答 : 软件如同自然界任何事物一样, 都有其孕育、 诞生、成长、 成熟、 衰亡的生存过程。软件的这一过程,称为软件生命周期软件生命周期模型也称软件开发过程模型,是为了解决产业环境 中的实际问题,而提出的开发策略。 是
8、反映整个软件生命期中,系统 开发、运行、维护等实施活动的一种结构框架。 14简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。 软件生命周期方法学是软件工程的传统途径, 划分阶段步骤的目的和 实质是:控制开发工作的复杂性,通过有限步骤,把抽象逻辑概念, 转化为具体物力实现。15试比较瀑布模型、 快速原型模型、 增量模型和螺旋模型的优缺点, 说明它们各自的适用范围。1瀑布模型。瀑布模型广为人知和历史悠久, 其优势是规范及文档驱动的方法。 但问题是,往往不能够真正满足用户的需求。适用于传统软件工程领域的结构化开发。2原型模型。是为了克服瀑布模型的缺点而提出来的。通过快速构建一个在机 器上
9、可运行的原型系统,让用户试用原型,并收集反馈意见的办法, 来获取用户真实的需求。3螺旋模型。 螺旋模型适用于大型软件项目,比起之前的其它模型而言,有其 一定的优越性, 但这些优越性并不是绝对的。 主要体现在对开发人员 的风险评估经验和专门知识的要求较高。 如果项目风险较大, 而开发人员的水平较低, 不能准确的识别和分析风险, 则势必造成重大损失。4增量模型。具有在软件开发早期阶段使投资获得明显回报和交易维护的优点,但是要求软件具有开放的结构。第二章1在软件开发的早期阶段,为什么要进行可行性研究?其目的和任 务各是什么?可行性研究的目的是用最小的代价, 在尽可能短的时间内确定问题是 否可解决,以
10、及是否值得解决。可行性研究的任务不是解决问题,而是确定是否可解 / 值得解。 2应该从哪些方面研究目标系统的可行性? 主要从以下几个方面进行可行性研究:1. 技术可行性。以现有技术,能否在预定时间内完成该系统开发。2. 经济可行性。通过成本 -效益分析,估算系统的整体经济效益是否 满足要求。3. 操作可行性。分析系统的运行方式、操作规程是否适应用户应用 需要。4. 社会可行性。分析系统在法律、社会、市场等方面的认可度。 3可行性研究有哪些工作步骤?(1) 复查定义,确定系统规模和目标。 (2) 研究老系统 (3) 导出高层逻 辑模型 (conceptual design)(4) 重新定义 (5
11、) 导出多种解法 (6) 推荐行动方针 (7) 开发计划 (粗 略 )(8) 审查、存档4简述系统流程图在可行性研究中的作用。 系统流程图是概括的描述物理系统的传统工具。 系统流程图反映的是 信息在系统各部分间流动的情况 系统流程图可以帮助了解和分析系统, 以概括的方式表达对系统的认 识,并可以描述未来物理系统的概貌。 5简述数据流图在可行性研究中的作用和用途。 数据流图在可行性分析中可以帮助分析和描绘数据在软件中流动和 被处理的逻辑过程, 用图形的方式描述系统的逻辑功能, 是系统分析 员和用户之间理想的通信工具。6简单描述数据字典但内容和定义数据的方法。 数据字典主要由下列 4 种元素定义组
12、成: 1数据流 2数据流分量 3数据存储 4处理 除了数据定义外,数据字典还应包含一些关于数据的其它信息。 定义数据的方法通常采用自顶向下分解的方式。并由顺序、选择、 重 复三种基本数据元素类型组成数据。7说明软件计划的内容和目标。软件计划的内容=项目任务范围+环境资源+工作量+进度软件计划的目标是为了提供一个框架, 以便于管理者对资源、 成本和 进度等进行合理的估算。8什么是软件范围?定义软件范围需要哪些信息? 软件范围就是在技术和管理层面上都是无二义性和可理解的项目范 围,是软件开发各阶段的工作依据。定义软件范围需要以下信息:a. 与用户、总体目标及利益相关的问题。 b. 有利于系统分析员
13、理解 的问题。 c. 集中于交流效果的问题。9简述软件开发环境资源的三个层次软件开发环境资源由三个层次构成: 开发环境、 软件构件以及最重要 的资源人。10软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义? 每一类资源都有四个特征: 资源描述、可用性说明和资源提供的时间、 资源使用的延续时间。可以为制定软件计划估算软件开发所需的资源。11软件计划中, 安排软件开发进度主要可以用哪些工具?都有哪些 优缺点?编制进度计划的常用工具主要有甘特图和网络计划法。 甘特图的优点是简单, 能动态地反映开发进展; 缺点是难以反映多个 任务间的逻辑关系。网络计划法则恰好弥补了甘特图的缺点, 最适合反映多
14、个工作之间的 逻辑关系。12主要的成本估计技术有哪些?其依据的主要是什么? 主要有,代码行技术。是一种基于规模的分解估算:D二?f(vi) 以及基于问题的分解估算:EV = (Sopt+4Sm+Spess)/6 还有功能点技术。这种技术以功能点(FP)为单位,度量软件的规模。 由于项目本身的复杂性,因此,成本估计技术主要采用“分而治之” 的分解技术对软件项目进行估算。13为什么说成本估计是不可能精准的? 那是由于太多的变化因素人员、 技术、环境、策略、复杂性等等,使得成本估算永远不可能精确14进行成本 / 效益分析的方法主要有哪些?常用成本 / 效益分析的方法主要有:(1) 货币的时间价值 (
15、2) 投资回收期 (3) 纯收入 (4) 投资回收率 15软件计划的主要内容有哪些?16如何对制定完成的软件计划进行复审?为什么要复审? 软件计划的复审通常涉及有关软件工作范围和软硬件资源问题等。 复 审应该邀请用户参加, 用户可提出建议, 并与开发人员最终商定内容。 复审内容分为技术和管理两个方面:技术方面需要考虑的问题有:1.系统的任务是否合理; 2.系统的给你复杂性是否与开发成本、进度 以及风险一致;3.系统规格说明书是否足够充分; 4.系统性能要求是否恰当 管理方面需要考虑的问题有:1.计划中描述的工作范围是否符合用户需求 2.计划中对资源的描述是 否有效、合理?3.计划中系统的开发成
16、本与进度要求是否合理? 4.计划中人员的安排 是否合理?5. 系统开发存在哪些风险?复审可以尽早发现错误,复审是软件质量 保证的重要措施。第三章1为什么要进行需求分析?通常对软件系统有哪些需求? 需求问题是软件工程项目失败的主要原因。 一个高质量的软件, 很大 程度上取决于对要解决的问题的认识, 以及如何准确的表达用户的需 求。需求分析就是要解决这个问题。 通常,对一个软件系统的需求可 以有功能需求、性能需求、可靠性和可用性需求、出错处理需求、接 口需求等多个方面。2怎样与用户有效地沟通,以获得用户的真实需求?访谈、 情景分析, 以及面向数据流的自顶向下求精等方法,编制简易 的系统规格说明文档
17、,创建原型等,是获取真实需求的有效方法。 3需求分析的任务是什么? 确定对待开发系统的综合要求。4通常系统的需求可以分为哪几个层次? 一般可以分成 5 个层次:(1) 功能需求:系统必须做什么?(2) 业务需求:反映客户组织机构对系统高层次的目标要求。(3) 运行需求:运行环境、软硬件配置等。(4) 属性需求:包括用户关心的属性,如效率、灵活性、完整性、可 靠性等;开发者关心的属性,如可维护性、可复用性、可移植性等。(5) 未来可能的扩充需求:如 HDIS 各组的合并, 3 维虚拟现实的效5进行需求分析的步骤有哪些? 1确定系统的综合要求 2分析系统的数据要求 3导出逻辑模型 4修 正系统开发
18、计划6简述建立原型模型对软件需求分析的作用。 可以快速构建旨在演示目标系统主要功能的可运行程序, 帮助用户确 定及提供更为精准的需求,以利用户和开发者能够在目标系统应该 “做什么”这一问题上尽快达成一致。7解释实体 -联系图及其用途。 实体-联系图是按照用户的观点对数据建立的模型。描述从用户角度 看到的数据, 反映用户的现实环境, 并且与在软件系统中的实现方法 无关。8说明为什么需要进行需求验证及验证的步骤有哪些? 进行需求验证是为了确保软件开发的质量, 降低开发成本。 通常对需 求进行验证的步骤有:验证需求的一致性、验证需求的现实性、验证 需求的完整性和有效性。9银行计算机储蓄系统的工作过程
19、大致如下:储户填写的存款单或 取款单由业务人员键入系统, 如果是存款则系统记录存款人姓名、 住 址 (或电话号码 )、身份证号码、存款类型、存款日期、到期日期、利 率及密码 (可选)等信息,并印出存单给储户;如果是取款而且存款时 留有密码,则系统首先核对储户密码, 若密码正确或存款时未留密码, 则系统计算利息并印出利息清单给储户。请用数据流图描绘本系统的功能, 并用实体联系图描绘系统中的数据对象第四章1为每种类型的模块耦合举一个具体的例子。 耦合分别是:内容耦合,共用耦合(公共环境耦合) ,控制耦合,印 记耦合(特征耦合),数据耦合 2为每种类型的模块内聚举一个具体的例子。内聚分别是: 偶然内
20、聚, 逻辑内聚,时间内聚,过程内聚,通信内聚, 顺序内聚,功能内聚,信息内聚 3简单说明系统总体设计的步骤步骤。典型的总体设计包括以下 9 个步骤:1、确定最佳方案 2、选取合理方案 3、推荐最佳方案 4、功能分解 5、 软件结构设计6、设计数据库 7、制定测试计划 8、书写文档 9、审查和复审 4举例说明模块化原理的经验 1 和经验 2。5为什么要尽量使用数据耦合,少用控制耦合,限制公共耦合的范 围,完全不用内容耦合? 减少模块之间的关联度,提高模块的独立性。因为内容耦合会导致一个模块修改另一个模块的内容, 使得程序逻辑 发生严重问题。而公共耦合是若干模块通过一个公共数据环境相互作用, 公共
21、部分的 改动将影响所有调用它的模块, 公共部分的数据存取无法控制, 并且 复杂程度也会随耦合模块的个数增加而增加。控制耦合是一个模块通过传递开关、 标志、名字等控制信息,明显地 控制选择另一个模块的功能。 由于接口单一, 因此仍然会影响被控模 块的内部逻辑。而数据耦合只是模块间通过数据参数来交换 I/O 信息,因此不会对 其它模块产生任何等影响。6为什么模块的规模要适中? 过大不易理解;太小则接口开销过大。7请说明为什么模块控制的宽度和深度要适度。 深度过大表示分工过细, 而宽度过大则表示系统复杂度大, 所以模块 控制的宽度和深度要适度。8简述面向数据流设计方法的基本思想。 将由数据流图描绘的
22、信息在系统中加工和流动的情况映射成软件结构。 9常用数据流类型有哪些?变换流和事务流。10面向数据流的设计方法主要有哪几个步骤? 主要有下面 7 个步骤:1复查基本系统模型 2复查并精化数据流图 3确定数据流图具有 变换特性还是事务特性4确定输入流和输出流动边界,从而孤立出变换中心5完成“第一级分解”6完成“第二级分解” 7使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化11用面向数据流的方法设计第二章习题17系统的软件结构第五章1详细设计的任务是什么?包括模块的算法设计、模块内的数据结构设计、模块接口设计、其它 根据软件特点需要完成的设计、模块测试用例设计、设计文档编写、 设计评
23、审。2在对系统做详细设计时,应遵循哪些原则? 模块的逻辑描述应清晰易读、正确可靠; 设计的处理过程应该简明易懂; 选择恰当的描述工具来描述模块算法。3简述结构化设计的特点。 自顶向下、逐步求精; 具有单入、单出的控制结构(取消GOTO 语句)4结构化程序设计中有哪几种基本控制结构?分别描绘在程序流程 图、盒图和 PDA 图中这些基本控制的图例。PDA 图中这些基本控制的图例。(1) 顺序结构 (2) 选择结构 (3) 先判定型循环结构 (4) 后判定型循环结构(5) 多情况选择5假设只有 SEQUENCE 和 DO_WHILE 两种控制结构, 请问应该如 何完成 IF_THEN_ELSE 操作
24、?6假设只有 SEQUENCE 和 IF_THEN_ELSE 两种控制结构,请问应 该如何完成 DO_WHILE 操作?7试说明 ISO 为什么要建议停止使用程序流程图,而推荐使用 PDA图?由于程序流程图中的 GOTO 语句回严重地损害程序结构,而无法实 行结构化设计。 PDA 图则既吸取了程序流程图好学、好用、好懂, 方便、灵活的优点,又保留了 N-S图结构化设计的特点,很好地满足 了软结构构设计图形工具的要求,以及 PDA 图所具有的 结构清 晰,层次分明,易读; 支持逐步求精的设计思想; 容易将PAD 自动转换为高级语言源程序等特点, 因此,ISO要推荐使用PDA图。 8请画出下列伪码
25、程序的程序流程图、盒图和PDA 图。STARTIF p THENWHILE q DOfEND DOELSEBLOCK g nEND BLOCKEND IFSTOP9. 试说明Jackson方法是一种怎么样的程序设计方法。 它有哪些工作 步骤?Jackson方法是以数据结构(data structure为基础设计每个模块的处理过程,将数据结构转化成程序结构。具体工作步骤有:第 1 步:用Jackson图描述10的数据结构 第2步:在两个图中指出有直接因果 关系、可以同时处理的单元 ;第 3 步:将数据结构映射到程序结构 ;第 4 步:列出所有操作条件,并分配到上幅程序结构图中;第 5 步:用Ps
26、eudocode表示程序10. 请将教材P.124图6.13统计空格程序的Jackson图改画成为等价 的盒图和 PDA 图。11. 人机对话由操作员信息和系统信息交替组成。 假设一段对话总是 由操作员信息开始,以系统信息结束,请用 Jackso n图描绘这样的一 段人机对话过程。第六章1说明什么是程序编码?为什么程序设计语言的特点和编码风格会影响到程序的可靠性、可读性、可测试性和可维护性? 所谓“编码”,就是将在低级抽象层次得到的详细设计结果,翻译成 用某种程序设计语言书写的程序。是软件设计的自然结果。 而程序设计语言是否有理想的结构化、 模块化机制, 是否有可读性好 的控制结构和数据结构等
27、特性, 以及程序设计语言提供的编译、 软件 工具等,再加上程序的设计风格会很深刻的影响软件的质量和可维护 性、可测试性、可靠性等。2用户界面设计的最一般原则,即所谓 “黄金规则 ”是什么?1.置用户于控制之下; 2.减少用户的记忆负担; 3.保持界面一致。 3软件界面设计包含了哪几个方面的基本内容? 界面设计包括三个方面: 1.软件构件间接口; 2.软件与其它系统的接 口;3.软件与操作者之间的接口,即用户界面。4用户界面提供系统服务的方式通常有哪两种? 命令驱动和屏幕菜单驱动5. WIMF界面是屏幕菜单驱动用户界面的一种形式,其设计准则有哪 些?(1) 明确的动作:在屏幕上指点并操纵对象 (
28、2) 即时反馈:操作结构即 见(3) 增量效应:图标应被拖曳连续移动, 而非跳跃(4) 可视交互:交互 操作与用户概念模型匹配(5) 剥皮式学习: 学习系统功能复杂性逐层加深 (6) 可逆动作:也即应 有退回操作(7) 事先验证:只允许合法操作产生效果 6为什么说软件界面设计的质量会直接影响到用户对软件产品的评价? 用户界面(User-i nteface又称人机界面(ma n-computer in terface)是用户 和计算机联系的中间媒介, 是系统中最重要、最关键的部分之一。用 户界面设计的好坏,直接影响到系统设计的成败。这是因为, 如果一个界面设计的不好, 也即通常所说的用户界面不友
29、 好,可以使用户在使用时感到不便, 甚至制造麻烦,系统就难以发挥 应有的效益,甚至可能被用户弃用。7什么是系统响应时间?系统响应时间有哪些重要属性? 系统响应时间指从用户完成某个控制动作, 到系统给出预期响应的时 间。系统响应时间有 2 个重要的属性:长度和易变性。 8在设计软件系统的用户帮助设施时,需要注意解决哪些问题? 1在用户与系统交互期间,是否任何时候都能获得关于系统任何功 能的帮助信息?2用户怎样请求帮助?3怎样显示帮助信息? 4用户怎样返回到正常的交互方式中? 5怎样组织帮助信息? 9软件出错处理设计,即软件安全性设计。一个交互式出错处理程 序应该具备哪些功能和属性?1信息应该使用
30、用户可以理解的术语描述。 2信息应该提供有助于 从错误中恢复的建设性意见。3信息应该指出错误可能导致的后果。 4信息应该伴随感官提示。 5信息不能带有指责色彩。10测试的最基本目标是什么?以尽可能小的代价,发现尽可能多的错误。11软件测试的原则有哪些? 应当把“尽早和不断的测试” 作为座右铭 测试应由独立的专业 测试机构来完成 测试工作要全面,但不可能实现“穷举”只能尽可能查错,不能证明程序中没有错软件测试符合2-8(Pareto原理应妥善保存测试文档 制定严格、 合理的测试计划 错误经过修改后, 相关的测试必不可少12软件测试的方法有哪几种?黑盒测试和白盒测试。13简单说明什么是白盒测试,什
31、么是黑盒测试。黑盒测试是把程序看成一个黑盒子, 完全不考虑程序的内部结构和处 理过程的测试方法。黑盒测试又称功能测试。14简述软件测试的步骤。(1) 单元测试 程序设计 & 代码 bugs(2) 子系统测试 模 块连接(3) 系统测试 需求确认 & 系统设计 (4) 验收测试 用户 加入 (5) 平行运行 新旧系统比较运行结果 15举例说明通常情况下穷尽测试是不可能的。16为什么单元测试必须由编程者自己完成? 单元测试是对程序逻辑结构的测试。 而对程序结构最为熟悉的, 莫过 于编程者。再者, 高质量的程序模块是构造系统的基础, 因此编程者 必须向下一道工序提交符合质量要求的产品。17单元测试的
32、主要手段有哪些? 代码审查、计算机测试等。18单元测试主要从哪 5 个方面进行? 主要测试以下五个方面: 1. 模块接口 2. 局部数据结构 3. 重要的执行 通路 4. 出错处理通路 5. 边界条件 19为什么人工代码审查十分重要? 一次审查可发现多个错误,不必改一个测一个。20集成测试主要有渐增式测试、非渐增式测试两种,试述两种方式 的异同点。渐增式测试: 可以较早发现模块间的接口错误、 出现的错误往往跟最 新加入的模块有关、 在不断集成的过程中使模块不断在新的条件下受 到新的检测,测试更彻底,但较非渐增式测试费时。非渐增式测试由于最后才组装, 因此错误发现得晚、 发现错误后难以 诊断定位
33、,但可以同时并行测试所有模块,能充分利用人力。21描述集成测试的两种策略,并比较它们的优缺点。 自顶向下测试和自底向上测试两种。 自顶向下测试的优点是不需要测试驱动程序, 能够在测试阶段的早期 实现并验证系统的主要功能, 在早期发现上层模块的接口错误。 主要 缺点是需要存根程序, 可能遇到与此相联系的测试困难, 底层模块的 错误发现较晚,而且对人力的使用也不利。 而自底向上测试的优缺点与自顶向下测试的优缺点正好相反。 22什么是回归测试?回归测试的测试用例集如何确定? 回归测试是指重新执行已经做过的测试的某个子集, 以保证系统在发 生调试、功能变化等事项后,没有带来非预期的副作用。回归测试的
34、测试用例集按以下方法确定: 1检测软件全部功能的代表性测试用例。 2专门针对可能受修改影 响的软件功能的附加测试。3针对被修改过的软件成分的测试。 23什么是确认测试?确认测试的任务是什么?如何确认其范围? 验收软件的有效性 (功能和性能达标 )。确认测试的工作范围主要有: 1按合同规定审查软件配置; 2设计测试计划,使通过测试保证软 件能满足所有功能、性能要求; 3文档与程序一致,具有维护阶段所必须的细节; 4 严格按用户手 册操作,以检查手册的完整性和正确性。24设计测试方案的任务有哪些? 预定要测试的功能设计输入的测试数据列出预期结果25什么是逻辑覆盖测试法?它主要用于什么测试? 逻辑覆
35、盖测试是一种对程序逻辑通路进行覆盖的测试, 通常适用于白 盒测试。26什么是等价划分法?它主要用于什么测试? 是一种很常用的测试方法。 其对测试数据的选择是基于对程序功能的 分析,按照程序输入要求和输出要求, 选择若干数据进行测试功能的 过程。等价划分法主要用于黑盒测试。27什么是边值分析法?它主要用于什么测试?根据经验, 在程序处理的边界最容易发生错误的地方进行测试, 主要 用于黑盒测试。28什么是错误推测法?它主要用于什么测试? 利用有经验的测试者对程序可能发生错误的位置的推测进行测试的 方法,主要用于黑盒测试。29一个软件的测试策略应该是怎样的? 在任何情况下都应首先使用边界值分析的方法
36、; 必要时用等价 划分法补充; 必要时再用错误推测法补充; 对照程序逻辑,检查测试方案。30什么是调试?调试和测试有什么不同?测试 发现错误 ;调试 改正错误 调试与测试的区别在于, 调试作为测试的后续工作, 主要是解决和排 除测试中出现的错误。31简单说明调试的方法和策略。 调试过程的关键不是调试技术,而是用来推断错误原因的基本策略。 主要有: 试探法:凭经验猜测。 回溯法:由症状(symptom最先出现的地方,沿control flow向回检 查。适用于小型程序。 对分法:在关键点插入变量的正确值。归纳法:从错误症状中找出规律,推断根源。 演绎法:普通 ? 特殊 32什么是软件的可靠性、可
37、用性和正确性? 软件可靠性是指程序在给定的时间间隔内, 按照说明书的规定, 成功 地运行的概率。软件可用性是指程序在给定的时间点, 按照说明书的规定, 成功地运 行的概率。软件正确性是指程序的功能正确第七章1什么是软件维护?在软件已经交付使用之后, 为了改正错误或满足新的需要而修改软件 的过程。2软件维护有哪几种类型? 改正性维护:诊断和改正错误; 适应性维护:为了和变化了的环境 (如软 硬件升级、新数据库等) 适当地配合而修改软件; 完善性维护:为了增加新功能,修改已有功能,改造界面,增加HELP 等,而修改软件; 预防性维护: 为了改进未来的可维护性或可靠性, 或为了给未来的 改进奠定更好
38、的基础而修改软件。3为什么说软件文档维护和代码维护同样重要? 这是因为,软件文档是影响软件可维护性的决定因素。 4为什么说维护的代价很高?应该怎样做才能降低维护的代价? 一般维护的工作量占生存周期 70%以上,维护成本约为开发成本的 4 倍(满足 8-2 规则)。维护代价分为: 1有形代价:费用已上升至总预算的80%; 2无形代价: a 占用资源以致延误开发;a修改不及时引起用户不满;维护引入新错误,降低了软件质量;等等。3维护工作量的经验模型: M = P + K*ec-d 降低维护代价的通常认识是: 提高程序的可维护性, 这也是软件工程学的主要目的5导致维护成本高企的原因主要有哪些?软件开
39、发途径不好, 导致软件可维护性差, 原来的开发人员没有参与 维护,维护成本日益高涨等,从维护工作量的经验模型可以看到,维 护工作量和成本将呈指数增加。6什么是软件的可维护性?软件可维护性可定性地定义为: 维护人员理解、改正、改动和改进这 个软件的难易程度。7如何提高软件的可维护性? 可以从提高决定软件可维护性的因素着手,这些因素是:可理解性、 可测试性、可修改性、可移植性、可重用性、可靠性、可使用性、效 率等。9为什么说文档是影响软件可维护性的决定因素? 由于长期使用的软件系统在使用过程中会有多次修改的经历, 而文档 应该记载了这些重要的修改,所以文档比之代码更为重要。10什么是软件的系统文档
40、?系统文档是指软件系统从问题定义、 需求说明、设计、实现到验收测 试计划等一系列和系统实现密切相关的技术文档。11什么是软件的用户文档? 提供用户了解、使用、操作和安装系统的文档资料。12什么是可重用性?如何通过提高软件的可重用性来提高软件的可维护性? 可重用性是指同一事物不加修改或稍加修改, 就可以在不同环境多次 重复使用。大量使用可重用软件构件,可大幅提高软件的可维护性。 主要体现在两个方面: 1可重用构件通常都是组装成功的部件,加上每次重用又都会进一 步完善部件, 因此可以大幅提高软件的可靠性, 而改正性维护要求会 降低。2很容易修改可重用的软件构件,使之适应新的应用环境,因此软 件中使
41、用可重用构件越多,软件的适应性维护和完善性维护也越容 易。13为什么要进行软件可维护性复审? 目的是提高软件的可维护性。 可维护性复审在软件开放的不同阶段有不同的重点。 例如,在分析阶 段的复审重点是: 可靠性、可移植性、可用性。而编码阶段则主要是: 可理解性、可修改性、可移植性和效率。14什么是软件的逆向工程和再工程? 软件逆向工程是指当维护对象缺乏必要的文档资料时,分析已有程 序,寻求比源代码更高级的抽象表现形式, 恢复软件原有设计的过程。 换言之,是一个恢复设计的过程。软件再工程则是以软件工程学为指导, 对目标软件进行重新设计、 重 新编码和测试的过程。15逆向工程与再工程与软件的预防性
42、维护有什么样的关系?预防性维护是为了改进软件未来的可维护性或可靠性, 或为了给软件 未来的改进奠定更好的基础而修改软件的过程。 预防性维护就是对软 件将来可能需要的改动,使用逆向工程与再工程方法对软件进行维 护。16假设你的任务是对一个已有软件进行重大修改, 而且只允许你从以下文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自 然语言描述加上某种设计工具表示);(b)源程序清单(其中有适当数量 的注解 )。你将选取哪两份文档?为什么这样选取?你打算如何完成 这个任务?应该选择(a)程序的规格说明和(b)程序的详细设计结果。因为是重大修改, 所以需要从修改程序规格说明和详细设计开
43、始, 对 开发文档进行重大修改,而源码也会需要重新编制。第八章1为什么要引入面向对象方法学?1、瀑布模型的缺点:僵化2、SA - SD - SP 技术的缺点:本质上是基于过程的设计不易被理解; 且功能变化往往引起结构变化较大, 稳定性不好。 系统有明确的边界 定义,且系统结构依赖于系统边界的定义, 这样的系统不易扩充和修 改。数据与操作分开处理,可能造成软构件对具体应用环境的依赖, 可重用性(reusability较差。2面向对象方法学有哪 4 个基本要素? 对象、类、继承、消息3面向对象方法学的优点主要有哪些?1以object为核心,强调对现实概念的模拟而不是算法。2以 object 模拟实
44、体,需求变化不会引起结构的整体变化,因为实 体相对稳定,故系统也相应稳定。3. 个class所有的instances都可重用它的代码;由inheritanee派 生出的新的 class 可重用其父类的代码,并且可以修改、扩充而不影 响其父类的使用。4. 从稳定性、 Class 的独立性强、继承和多态性、容易理解、容易测 试、调试等几方面改善了可维护性。4.什么是“对象”?它与传统数据有何不同? 对象是封装了数据结构及可以施加在这些数据结构上的操作的封装 体,可以表示为:对象 Object: = 身份 ID + 方法 Method + 属性Attribute* 消息 Message与传统数据相比
45、,对象有以下特点: 以数据为中心,不设与数据无关的操作; Object 主动处理而不 被动地等待被处理,外部只能通过 message 请求操作; 具有黑盒性:外部操作时,无须知道该object内部的数据结构及算法; 具有并行性:不同 object 各自独立地处理自身数据,彼此间仅通 过传递messaged成通信; 模块独立性好:内聚强 ( ) 、耦合松 ( ) 5什么是“类”?具有相同数据和相同操作的一组对象。 6什么是“继承”?子类自动共享父类的 attributes 和 methods , 而不必重复定义。子类自动共享父类的 attributes 和 methods ,而不必重复定义。 7
46、什么是模型?软件开发为什么要建立模型? 模型就是为了理解事物而对事物作出的一种抽象, 是对事物的一种无 歧义的书面描述。 软件开发建立模型是为了帮助我们思考问题、 定义 术语、作出适当的假设,并帮助我们保持定义和假设的一致性。 对于较为复杂而不能直接理解的系统, 特别需要建立模型, 其目的是 可以减少复杂性。8什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么? 描述系统数据结构。对象模型具体是描述系统的静态结构。9什么是动态模型?建立动态模型时主要使用哪些图形符号?这些 符号的含义 是什么? 描述系统控制结构。动态模型具体是表示系统瞬时的控制性质。 10什么是功能模型?
47、建立功能模型时主要使用哪些图形符号? 描述系统功能。功能模型具体描述的是表明系统应该做什么。第九章1进行面向对象分析的基本过程是怎么样的?需求陈述 T 快速原型 T 模型 其中模型 有三个:对象模型、 动态模型、功能模型。2建立对象模型有哪几个步骤?1、确定类与对象:第 1 步:列出所有候选对象 第 2 步:去粗取精2、确定关联 T 结构层第 1 步:收集第 2 步:筛选删除第 3 步:完善3、划分主题 4、确立属性 5、识别继承关系及其它修改 3复杂问题的对象模型有哪 5 个层次? 主题层、类 & 对象层、结构层、属性层、服务层。 4建立动态模型的步骤有哪些?1、编写脚本,描述事件序列:事件
48、 = 触发器 + 接收器 + 参数2、设想用户界面 T 修改原型 .3、画事件跟踪图 4、画状态图 5如何建立功能模型?1画出基本系统模型图 2画出功能级数据流图 3描述处理框功能 6用面向对象方法分析第二章习题 17 中描述的储蓄系统,试建立它 的对象模型、动态模型和功能模型。第十章1面向对象设计应该遵循哪些准则?简述每条准则的内容,并说明 遵循该条准则的必要性。1模块化2抽象。抽出事物的本质特性 , 暂不考虑其细节,使设计从具体实 现方法中超脱。包括程序抽象、数据抽象、参数抽象。 3信息隐蔽。对象封装。 4弱耦合。包括交互耦合、继承耦合。 5强内聚。包括服务内聚、类内聚、一般 -特殊内聚。
49、 6可重用。是提高软件开发生产率和目标系统质量的重要途径。 2简述有助于提高面向对象设计质量的每条主要启发式规则的内容 和必要性。1、设计结果清晰易懂,应做到: 用词一致 按习惯用法命名。不同类中相似的方法最好取同 一名字。 使用已有的协议。 尽量减少消息模式的数目。 避免模糊定义。2、一般 -特殊结构的深度应适当(约 100个类,则设计 72 层)3、设计简单的类(定义不超过一页纸或两屏) 。应注意: 避免过多属性; 能用简单的语句描述一个类的任务; 对象之间合作关系要简单; 避免过多方法(个7。4、使用简单的协议,减少消息中传递的参数5、使用简单的方法 (CASE 可考虑用 继承替代 )。
50、 6、把设计变动减至 最小。3为什么说类构件是目前较为理想的可重用软构件?它有哪些重用 方式?具备可重用的软构件应有的特点: 独立、可塑、接口清晰(文档详尽) 重用方式有:实例重用、继承重用和多态重用。4什么是继承耦合?继承是一般化类和特殊类之间耦合的一种形式。 从本质上看, 通过继 承关系结合起来的基类和派生类, 构成了系统中粒度更大的模块。 因 此,与交互耦合相反,继承的耦合程度会更高。5如何计算软件重用带来的净成本节省?6试用面向对象的方法设计第二章习题 17 中描述的储蓄系统。第十一章1. 面向对象实现应该选用哪种程序设计语言?为什么? 应该选择能够更完整、 更正确地表达问题域语义的面向对象语言。 这 是由于面向对象语言相对非面向对象的语言, 其突出的优点: 一致的 表示方法、可重用性、可维护性。2. 面向对象程序设计语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林师范大学《市场营销》2021-2022学年第一学期期末试卷
- 吉林师范大学《力学》2021-2022学年第一学期期末试卷
- 吉林师范大学《国际化课程学习技能与学业生存》2021-2022学年第一学期期末试卷
- 10KV线路施工人员培训方案
- 智能仓库运营方案
- 城市公交充电站管理与运营规范
- 吉林大学《现代液态金属成形方法》2021-2022学年第一学期期末试卷
- 尿素合成工艺流程优化方案
- 涵闸施工设备选型方案
- 油田火灾应急预案与安全管理措施
- 时代乐章第一课城市名片 课件 2024-2025学年人教版(2024)初中美术七年级上册
- 期中测试题-2024-2025学年道德与法治六年级上册统编版
- 4.1 10的再认识-一年级上册数学课件
- 中国急性缺血性卒中诊治指南(2023)解读
- 重力坝埋石混凝土施工工法分析
- (完整版)建筑工程设计文件编制深度规定(2016)
- 全新版大学英语综合教程1Unit3课件.ppt
- 抓斗式挖泥船疏浚施工方案(共7页)
- 国家标准-》印制电路板设计规范
- 哈尔滨医科大学附属第一医院ppt课件
- 理论力学试题题目含参考答案
评论
0/150
提交评论