软件工程计划实用教学教材第三版郭宁主编课后习题及其答案.doc

上传人:一*** 文档编号:828245 上传时间:2019-07-24 格式:DOC 页数:21 大小:215.75KB
返回 下载 相关 举报
软件工程计划实用教学教材第三版郭宁主编课后习题及其答案.doc_第1页
第1页 / 共21页
软件工程计划实用教学教材第三版郭宁主编课后习题及其答案.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《软件工程计划实用教学教材第三版郭宁主编课后习题及其答案.doc》由会员分享,可在线阅读,更多相关《软件工程计划实用教学教材第三版郭宁主编课后习题及其答案.doc(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第一章第一章 软件工程引论软件工程引论 1.在下列选项中, (D D)不是软件的特征。 A 系统性与复制性 B. 可靠性与一致性 C. 抽象性与智能型 D.有形性与可控性 2.软件是一种(B B)产品。 A 有形 B. 逻辑 C. 物质 D. 消耗 3.软件工程是一种(A A)分阶段实现的软件程序开发方法。 A. 自顶向下 B. 自底向上 C. 逐步求精 D. 面向数据流 4.与计算机科学的理论研究不同,软件工程是一门(B B)学科。 A 理论性 B. 工程性 C. 原理性 D. 心理性 5.软件工程与计算机科学性质不同,软件工程着重于(C C) 。 A 原理探讨 B. 理论研究 C. 建造软

2、件系统 D. 原理性的理论 6.下列说法正确的是(B B) A. 软件工程的概念于 20 世纪 50 年代提出 B. 软件工程的概念于 20 世纪 60 年代提出 C. 20 世纪 70 年代出现了客户机/服务器技术 D. 20 世纪 80 年代软件工程学科达到成熟 7.软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件 工程经济学,它要达到的目标是(D D) A 管理开发人员,以开发良好的软件 B 采用先进的软件开发工具,开发优秀的软件 C 消除软件危机,达到软件生产的规模效益 D 以基本的社会效益为基础,工程化生产软件第二章第二章 软件生命周期及开发模型软件生命周期

3、及开发模型 1.软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编 码、 (B B) 、维护等活动。 A 应用 B. 测试 C. 检测 D. 以上答案都不正确 2.软件生命周期模型有多中,下列项目中, (C C)不是软件生命周期模型。 A 螺旋模型 B. 增量模型 C. 功能模型 D. 瀑布模型 3.软件生命周期中时间最长的阶段时(D D) A 需求分析阶段 B. 总体设计阶段 C. 测试阶段 D. 维护阶段 4.瀑布模型是一种(D D) A. 软件开发方法 B. 软件生存周期 C. 程序设计方法学 D. 软件生存周期模型 5.软件开发中常采用的结构化生命周期方法,由于

4、其特征而一般称其为(A A) A. 瀑布模型 B. 对象模型 C. 螺旋模型 D. 层次模型 6.在结构化的瀑布模型中, (D D)阶段定义的标准将成为软件测试中系统测试阶段的目标 A. 详细设计阶段 B. 总体设计阶段 C. 可行性研究阶段 D. 需求分析 7.增量模型是一种(B B)的模型 A. 整体开发 B. 非整体开发 C. 灵活性差 D. 较晚产生工作软件 8.(C C)是指模拟某种产品的原始模型 A. 模型 B. 最初模型 C. 原型 D. 进化模型 9.建立原型的目的不同,实现原型的途径也有所不同,下列不正确的类型是(B B) A. 用于验证软件需求的原型 B. 垂直原型 C.

5、用于验证设计方案的原型 D.用于演化 出目标系统的原型10. 原型化方法是一种(A A)型的设计过程。 A. 在外向内 B. 自顶向下 C. 自内向外 D. 自底向上 11. 对于原型的使用建议,以下说法不正确的是(C C) A. 对于开发周期很长的项目,能够使用原型 B. 在系统的使用可能变化较大、不能 相对稳定是,能够使用原型 C. 缺乏开发工具,或对原型的可用工具不了解的时 候,能够使用原型 D. 开发者对系统的某种设计方案的实现无信心或无十分的把 握时,能够使用原型 12. 原型模型的主要特点之一是(B B) A. 开发完毕才见到产品 B. 及早提供工作软件 C. 及早提供全部完整软件

6、 D. 开发 完毕才见到工作软件 第三章第三章 结构化需求分析结构化需求分析 1.需求工程的主要目的是(C C) A. 制定系统开发的具体方案 B. 进一步确定系统的需求 C. 解决系统是“做什么的 为题” D. 解决系统是“如何做的问题” 2.需求分析的任务不包括(B B) A. 问题分析 B. 系统设计 C. 需求分析 D.需求评审 3.软件分析的第一步要做的工作是(A A) A. 定义系统的目标 B. 定义系统的功能模块 C. 分析用户需求 D. 分析系统开发的 可行性 4.可行性研究的目的是用最小的代价在尽可能短的时间内确定问题的(A A) A. 能否可解 B. 工程进度 C. 开发计

7、划 D. 人员配置 5.需求分析最终结果是产生(B B) A. 项目开发计划 B. 需求规格说明书 C. 设计说明书 D. 可行性分析报告 6.在结构化分析方法中, (C C)是表达系统内部数据运动的图形化技术 A. 数据字典 B. 实体关系图 C. 数据流图 D. 状态转换图 7.DFD 中的每个加工至少需要(D D) A. 一个输入流 B. 一个输出流 C. 一个输入或输出流 D. 一个输入流和一个数处理 8.需求分析的主要方法有(C C) A. 形式化分析方法 B. PAD 图描述 C. 结构化分析方法 D. 程序流程图 9.SA 法的主要描述手段有(B B) A. 系统流程图和模块图

8、B. DFD 图、数据字典、加工说明 C. 软件结构图、加工说明 D. 功能结构图、加工说明 10. 软件需求分析阶段的工作,可以分为以下 4 个方面:对问题的识别、分析与综合、编 写需求分析文档以及(C C) A. 总结 B. 编写阶段性报告 C. 进行需求分析评审 D. 以上答案都不正确 第四章第四章 结构化软件设计结构化软件设计 1.在面向数据流的软件设计方法中,一般将信息里与分为(D D) A 数据流和控制流 B. 变换流和控制流 C. 事务流和控制流 D. 变换流和事务流 2.耦合度可以分为七级,其中最松散的耦合是(A A) A. 非直接耦合 B. 数据耦合 C. 特征耦合 D. 控

9、制耦合 3.当模块中包含复杂的条件组合,只有(A A)能够清晰的表达出各种动作之间的对应关系 A. 判定表和判定树 B. 盒图 C. 流程图 D. 关系图 4.一个软件的宽度是指其控制的(C C) A. 模块数 B. 层数 C. 跨度 D. 厚度5.面向数据流的软件设计方法可将(C C)映射成软件结构 A. 控制结构 B. 模块 C. 数据流 D. 事务流 第五章第五章 面向对象的需求分析面向对象的需求分析 1.采用 UML 进行软件建模的过程中,类图是系统的一种静态视图,用(B B)可明确表示两 类事物之间存在的整体/部分形式的关联关系。 A. 依赖关系 B. 聚合关系 C. 泛化关系 D.

10、 实现关系 2.在 UML 语言中,图中的 a、b、c 三中图形符号按照顺序分别表示(C C)Kim, KeehyunKim, HyunsooJung, YoontaeA. 边界对象、实体对象、控制对象 B. 实体对象、边界对象、控制对象 C. 控制对 象、实体对象、边界对象 D. 边界对象、控制对象、实体对象 3.不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(B B) A. 继承 B. 多态 C. 动态绑定 D. 静态绑定 第六章第六章 面向对象的软件设计面向对象的软件设计 1.下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发 生改变时,所有依赖于它的

11、对象都得到通知并自动刷新(D D) A. Adapter(适配器) B. Iterator(迭代器) C. Prototype(原型) D. Observer(观察者) 2.UML 中有多种类型的图,其中, (B B)对系统的使用方式进行了分类;()显示了类及 其相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某 种情况下对象之间发送的消息;()与通信图类似,但强调的是顺序而不是连接。A. 用例图、顺序图、类图、活动图 B. 用例图、类图、活动图、顺序图 C. 类图、顺 序图、活动图、用例图 D. 活动图、顺序图、用例图、类图 3.UML 类图的类与类之间的关系有 5 种

12、:继承、依赖、关联、组合和聚合,若类 A 需要 使用标准数学函数类库中提供的功能,那么类 A 与标准类库中提供的类之间存在(A A) 关系 A. 依赖 B. 关联 C. 聚合 D. 组合 第七章第七章 软件测试技术软件测试技术 1. 用边界值分析法,假定 1X100,那么 X 在测试中应该取的边界值是(B B) A. X=1,X=100 B. X=0,X=1,X=100,X=101 C. X=2,X=99 D. X=0,X=101 2. 下列关于软件验收测试的合格通过准则错误的是(C C) A. 软件需求分析说明书中定义的所有功能已全部实现 B. 所有测试项没有 C. 立项审 批表、需求分析文

13、档、设计文档和编码实现不一致 D.验收测试工件齐全 3. 以下关于集成测试的内容正确的有(D D) 集成测试也叫组装测试或者联合测试 测试在把各个模块连接起来的时候,穿越 模块接口的数据是否会丢失 测试一个模块的功能是否会对另一个模块的功能产生 不利影响 测试各个子功能组合起来,能否达到预期要求的父功能 测试全局数 据结构是否有问题 测试单个模块的误差累积起来,是否会放大,从而达到不能接 受的程度 A. B. C. D. 以上全部正确4.为了提高测试的效率,应该(D D) A 随机的选取测试数据 B. 取一切可能的输入数据作为测试数据 C. 在完成编码以 后制定软件的测试计划 D. 选择发现错

14、误的可能性大的数据作为测试数据 5.软件调试的目的是(A A) A. 找出错误所在并改正之 B. 排除存在错误的可能性 C. 对错误性质进行分类 D. 统计出错的次数 6.单元测试一般以白盒为主,测试的依据是(A A) A. 模块功能规格说明 B. 系统模块结构图 C. 系统需求规格说明 D. 统计出错的次 数 7.下次关于 、 测试的描述中正确的是(C C) A. 测试不需要用户代表参加 B. 测试不是验收测试的一种 C. 测试可以有用 户代表参加 D. 测试是系统测试的一种 8.软件测试的目的是(B B) A. 评价软件的质量 B. 发现软件的错误 C. 找出软件中所有的错误 D. 证明软

15、件是 正确的 9.软件测试用例主要由输入数据和(C C)两部分组成 A. 测试计划 B. 测试规则 C. 预期输出结果 D. 以往测试记录分析 10. 在黑盒测试中,着重检查输入条件组合的方法是(D D) A. 等价类划分法 B. 边界值分析法 C. 错误推测法 D. 因果图法 第八章第八章 软件维护技术软件维护技术 1. 随着软硬件环境变化而修改软件的过程是(B B) A. 校正性维护 B. 适宜性维护 C. 完善性维护 D. 预防性维护 2. 为了提高软件的可维护性,在编码阶段应注意(B B)A. 保存测试用例和数据 B. 提高模块的独立性 C. 文档的副作用 D. 养成好的程序设 计风格

16、 3. 为提高系统性能而进行的修改属于(C C)A. 纠正性维护 B. 适应性维护 C. 完善性维护 D. 测试性维护 4. 软件生命周期中, (D D)阶段所站的工作量最大A. 分析阶段 B. 设计阶段 C. 编码阶段 D. 维护阶段 5. 系统维护中要解决的为题来源于(D D)A. 系统分析阶段 B. 系统设计阶段 C. 系统实施阶段 D. 上述 3 个阶段(A、B、C) 都包括 6 软件维护的副作用,是指(C C)A. 开发时的错误 B. 隐含的错误 C. 因修改软件而造成的错误 D. 运行时的误操作第一章第一章 软件工程引论软件工程引论 1.软件工程出现的主要原因是软件危机的出现。 2

17、.文档是软件产品的一部分,没有文档的软件就不能称为软件。 3.软件危机的主要表现是软件需求量迅速增加,软件价格上升。 4.一个成功的项目唯一应该提交的就是运行程序法。 5.与计算机科学的理论研究不同,软件工程是一门原理性学科。 第二章第二章 软件生命周期及开发模型软件生命周期及开发模型 1.瀑布模型和增量模型都属于整体开发模型。 2.原型模型可以有效地适应用户需求的动态变化。3.螺旋模型在瀑布模型和增量模型的基础上增加了风险分析活动。 4.软件过程改进也是软件工程的范畴。 5.在软件开发中采用原型系统策略的主要困难是成本问题。 第三章第三章 结构化需求分析结构化需求分析 1.需求分析的主要目的

18、是制定软件开发的具体方案。 2.用户对软件需求的描述不精确,往往是产生软件危机的原因之一。 3.分层的 DFD 图可以用于可行性分析阶段,描述系统的物理结构。 4.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取 第一手资料,并从中提取有价值的需求。 5.需求规格说明数描述了系统每个功能的实现。 第四章第四章 结构化软件设计结构化软件设计 1.在同一用户界面中,所有的菜单选择,命令输入、数据显示和其它功能应采用不同的 形式和风格。 2.最高的耦合度是数据耦合。 3.编程中应采用统一的标准和约定,降低程序的复杂性。 4.流程图也称为框图程序,是程序最常用的一种表示法。

19、5.理想的人机界面应针对具有典型个性的特定的一类用户设计。 6.重视程序结构的设计,能是程序具有较好的层次结构。 7.软件过程不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。 8.软件开发、设计几乎都是从头开始,成本和进度很难估计。 9.耦合度是对软件结构中模块间关联程度的一种度量。在设计软件是应追求耦合尽可能 紧密的系统。 10. SD 法是一种面向数据结构的设计方法,强调程序结构与问题结构相适应。 第五章第五章 面向对象的需求分析面向对象的需求分析 1.边界对象表示了系统与参与者之间的接口。在每一个用例中,该对象从参与者处收集 信息,并将之转换为一种实体对象和控制对象使

20、用的形式。 2.采用面向对象的方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型 的过程叫面向对象分析。 3.继承仅仅允许单重继承,即不允许一个子类有多个父类。 第六章第六章 面向对象的软件设计面向对象的软件设计 1.面向对象程序设计应该在面向对象分析之前,因为只有产生了设计结果才可以对其进 行分析。 2.面向对象设计产生的结果在形式上可以与面向对象分析产生的结果类似,例如都可以 使用 UML 表达。 第七章第七章 软件测试技术软件测试技术 1.软件测试就是为了验证软件功能的实现是否正确,是否完成既定目标的活动,所以软 件测试在软件工程而后期才开始具体的工作。 2.发现错误多的模块,

21、可能残留在模块中的错误也多。 3.测试人员在测试过程中发现一处问题,如果问题影响不大,而自己有可以修改,应立 即将此问题正确修改,以加快、提高开发的进程。 4.路径测试不属于单元测试的内容。 5.测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。 6.软件测试只能发现错误,但不能保证测试后的软件没有错误。7.集成测试是有最终用户来实施的。 8.所有的逻辑覆盖标准中,查错能力最强的语句覆盖。 9.等价类划分方法能够有效的检测输入条件的各种组合可能引起的错误。 10. 验收检测方法需要考察模块间接口和各模块之间的联系。 第八章第八章 软件维护技术软件维护技术 1.维护申请报告是一种由用户

22、产生的文档,它用作计划维护任务的基础。 2.维护阶段是软件生存周期中时期最短的阶段,也是花费精力和费用最少的阶段。 3.在软件维护中,因修改软件而导致出现错误或其它情况成为维护的副作用。 4.为了提高软件的可维护性和可靠性而对软件进行的修改称为适应性维护。 5.维护的副作用有编码副作用、数据副作用、文档副作用 3 种。第一章第一章 软件工程引论软件工程引论 1.什么是软件危机?它和软件工程有什么关系? 答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括 地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需 求;如何维护数量不断膨胀的已有软件。 2.

23、简述软件和软件工程的定义以及软件工程的形成过程。 答:软件是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件 由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、 使用和培训有关的文档。 软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性, 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确 的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维 护它。 软件工程的发展经历了以下 3 个阶段。 第一阶段:20 世纪 70 年代,传统软件工程时代。 第二阶段:20 世纪 80 年代,过程软

24、件工程时代。 第三阶段:进入 20 世纪 90 年代以后,构件软件工程时代。 3.软件工程的目标是什么?如何解决多目标之间的矛盾? 答:软件工程的目标:软件开发成本较低。软件功能能够满足用户的需求。软件性能 较好。软件可靠性高。软件易于使用、维护和移植。能按时完成开发任务,并及时交 付使用。 有些目标之间是相互补充的,如易于维护和高可靠性之间、功能强与可用性之间;有 些目标是彼此相互冲突的,如若只考虑降低开发成本,很可能同时也降低了软件的可 靠性,如果一味追求提高软件的性能,可能造成开发出的软件对硬件的依赖性较强, 从而影响到软件的可移植性;不同的应用对软件质量的要求不同,如对实时系统来说,

25、其可靠性和效率比较重要;对生命周期较长的软件来说,其可移植性、可维护性比较 重要,所以,应该根据不同的系统需求决定个目标之间的重要性。 4.在软件开发中软件开发工具有什么作用? 答:软件开发工具是指用来辅助软件开发、维护和管理的软件。现代软件工程方法得 以实施的重要保证是软件开发工具和环境。软件开发工具使软件在开发效率、工程质 量、减少软件开发对人的依赖性等多方面得到改善5.什么是软件支持过程?它与软件工程方法学有何关系? 答:软件过程是指生产满足需求且达到工程目标的软件产品所涉及的一系列相关活动, 它覆盖了需求分析、系统设计、实施以及支持维护等各个阶段。 软件过程有各种分类方法。按性质划分软

26、件过程可概括为基本过程类、支持过程和组 织过程类。可见软件支持过程是软件过程中的一种。 6.在软件工程知识体系中,将软件工程划分为哪些知识域? 答:SWEBOK 将软件工程知识体系划分为 10 个知识域,分为两类过程。一类是开发 与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;另一类是 支持过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、 软件质量。 7.B.W.Boehm 提出的软件工程基本原则的作用是什么? 答:1采用分阶段的生命周期计划,以实现对项目的严格管理 2坚持进行阶段评审,以确保软件产品质量 3实行严格的产品控制,以适应软件规格的变更 4

27、采用现代程序设计技术 5软件成果能清楚地审查 6开发小组人员应该少而精 7承认不断改进软件工程实践的必要性第二章第二章 软件生命周期及开发模型软件生命周期及开发模型 1.简述什么是软件生命周期。根据国家标准计算机软件开发规范 ,软件生命周期主要 包括哪几个阶段? 答:作为工程化的一般特征,软件产品和其他工业产品一样,软件产品也包括设计、 生产、使用和消亡几个阶段,并称之为软件的生命周期,即指软件产品从功能确定、 设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代, 而停止该软件使用的全过程。国家标准 GB85661988计算机软件开发规范将软 件生命周期划分为几个阶段:可

28、行性研究、项目计划、需求分析、总体设计、详细设 计、编码实现(包括单元测试、集成测试、确认测试) 、系统运行和维护。这几个阶段 又可以归纳为 3 个阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。 2.瀑布模型有哪些特点?对于里程碑,你有哪些认识? 答:1970 年 W.Royce 最早提出瀑布模型。答:瀑布模型的特点:(1). 线性化模型 结构;(2). 各阶段具有里程碑特征;(3). 基于文档的驱动;(4). 严格的阶段 评审机制。其中的里程碑是指瀑布模型中的阶段只能逐级到达、不能跨越;每个阶段 都有明确的任务,都需要产生确定的成果。 由于瀑布模型是一种线性模型,要求项 目严格按规程

29、推进,必须等到所有开发工作全部完成以后才能获得可以交付的软件产 品。因此,瀑布模型不太适用于用户需求经常变更的软件项目。 瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软 件项目按规程管理提供了便利。例如,按阶段制订项目计划,分阶段进行成本核算, 进行阶段性的评审等。这为提高软件产品质量提供了有效保证。 3.试说明原型模型的两种实现方案各有什么特点,各适用于哪些情况。 答:原型可以分为 3 类。 1)抛弃式原型:这种原型在目的达到后即被抛弃,原型不作为最终产品,如上所述。 2)进化式原型:这类原型的形成和发展是逐步完成的,它是高度动态迭代和高度动态 循环,每次迭代都要

30、对系统重新进行需求规格说明、重新设计、重新实现和重新评价,所以是对付变化最为有效的方式。 3)增量式模型:系统是一次一段地增量构造,与演化式原型的最大区别在于增量式开 发是在软件总体设计基础上进行的。 4.一般认为,只有大型项目才采用螺旋模型,原因是什么? 答:螺旋模型的优越性在于它吸收了“进化”的概念,使得开发人员和用户对每一个 演化层出现的风险均有所了解,并对此做出反应。但使用该模型需要丰富的风险评估 经验和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。实际上,对 软件项目进行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的 开发费用,显然就不合适了。一般大型项目

31、才有较高的风险,才有进行详细风险分析 的必要。因此,这种模型比较适合大型的软件项目。 5.为什么说构建复用模型是一种有利于软件按工业流程生产的过程模型? 答:对象技术将事物实体封装成包含数据和数据处理方法的对象,并抽象为类。经过 适当的设计和实现的类也可称为构件。由于构件具有一定的通用性,可以在不同的软 件系统中被复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用 标准零件装配汽车一样。构件复用技术,它能带来更好的复用效果,并且具有工程特 性,更能适应软件按工业流程生产的需要。 6.敏捷方法的价值观和原则与传统的方法有哪些联系和区别? 答:相对于“非敏捷” ,敏捷不仅是体现在有效

32、地响应变化,它还包括鼓励程序员团队 与业务专家之间的紧密协作、面对面地沟通(认为比书面的文档更有效) 、强调可运行 软件的快速交付而不是中间产品,敏捷过程提倡可持续开发。建立紧凑而自我组织型 的团队,能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中 人的作用。每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。从产品角度看,敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关 键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织 结构的文化、人员、沟通则决定了敏捷方法是否适用。 7.有什么情况下会建议不用敏捷方法来开发软件系统? 从

33、产品角度看,敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关 键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织 结构的文化、人员、沟通则决定了敏捷方法是否适用。 8.具有原型化的瀑布模型具有什么特点?他和瀑布模型最大的不同是什么? 答:为了克服瀑布模型的问题,可以在需求阶段或设计阶段平行地进行几次快速建立 原型的工作。原型开发后,可以获得更为清晰的需求反馈信息,既可以消除风险或减 少不确定性,又可以采用平行瀑布模型方式。在瀑布模型的各阶段间转换时,可以适 当并行扩展各阶段的开发工作。例如,在需求分析完成 60%时,就可以开始进行这 60%已 完成分析部分的

34、设计工作,同时并行进行其余 40%的需求分析。 第三章第三章 结构化需求分析结构化需求分析 1. 简述什么是需求分析?需求分析的任务是什么? 答:需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形 式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过 程。 基本任务: 问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需 求,环境需求,用户界面需求;分析与综合,导出软件的逻辑模型;编写文档:包括 编写“需求规格说明书“,“初步用户使用手册“,“确认测试计划“,“修改完善软件开发计划“2. 在进行可行性研究时,向用户推荐的方案中应清楚的表明什

35、么? 答:可行性研究主要集中在以下 4 个方面。 1)经济可行性:进行开发成本的估算及可能取得效益的评估,确定目标系统是否值 得投资开发。 2)技术可行性:对目标系统进行功能、性能和限制条件的分析,确定在现有资源的 条件下,技术风险有多大,系统是否能实现。这里,资源包括已有的或可以提供的硬 件、软件资源,现有技术人员的技术水平与已有的工作基础。 3)操作可行性:系统的操作方式能否在用户的组织内行得通,以及对目标系统可能 会涉及的政策、责任等问题做出决定。 4)社会可行性:主要分析项目对社会的影响,从方针政策、经济结构、法律和制度 等社会因素方面考虑项目开发的合理性和意义。 总之,可行性研究最根

36、本的任务是对以后的行动方针提出建议。如果问题没有可行的 解,分析员应该建议停止这项开发工程,以避免时间、资源、人力和金钱的浪费;如 果问题值得解,分析员应该推荐一个较好的解决方案,并且为工程制定一个初步的计 划。3. 需求工程包含哪些内容时,如何写好需求规格说明? 答:需求工程指应用工程化方法、技术和规格来开发和管理软件的需求。需求工程的 目标是获取高质量的软件需求。需求工程突出了工程化原则,强调以系统化、条理化 和重复化的方法进行软件需求的相关活动,从而增强管理性和降低需求开发的成本。 需求工程由需求开发活动和需求管理过程组成。一个好的需求规格说明应符合以下要 求:1)正确性。每一项需求都必

37、须准确地陈述其要开发的功能。即需求规格说明对系 统功能、行为、性能等的描述必须与用户的期望相吻合,这是软件系统真正需要完成 可达到的。2)完整性。需求规格说明应该包括软件要完成的全部任务,每一项需求都 必须是在已知系统和环境的权能和限制范围内可以实施,不能遗漏任何必要的需求信 息。3)必要性。每一项需求都应把客户真正所需要的和最终系统所需遵从的标准记录 下来。4)划分优先级。给每项需求、特性或使用实例分配一个实施优先级以指明它在 特定产品中所占的分量。5)无二义性。对所有需求说明的读者都只能有一个明确统一 的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的语言表达 出来。6)可

38、验证性。需求规格说明中描述的需求都可以运用一些可行的手段对其进行 验证和确认。 4. 用户需求调查主要有哪些方法? 答:获取需求是需求分析的基础,要在获得详实调查资料的基础之上才能进行需求分 析。需求获取包括了一系列的方法和活动,如研究资料法、问卷调查法、用户访谈和 实地观察法等。需求分析人员可以使用这些方法、技术进行收集、确认用户的需求。 5. 数据字典的作用是什么?它有哪些基本条目? 答:数据流图和数据字典一起构成了系统的逻辑模型。没有数据字典,数据流图就不 严格;没有数据流图,数据字典也没有作用。数据字典的重要用途是作为分析阶段的 工具。在数据字典中建立严密一致的定义有助于改进分析人员和

39、用户之间的通信,避 免许多误解的发生。数据字典也有助于改进不同的开发人员或不同的开发小组之间的 通信。同样,将数据流图中的每个元素的精确定义放在一起,就构成了系统的、完整 的需求规格说明的主体。 数据字典还作为连接软件设计、实现和进化阶段的开发机构的信息存储。在软件设计 阶段,数据字典是存储文件或数据库设计的基础。在实施阶段,还可参照数据字典描述数据。随着系统的改进,字典中的信息也会发生变化,新的信息会随时加入进来。 数据字典对下列 4 类元素进行定义:数据项;数据流;数据存储(文件) ;加工。 6. 需求规格说明书的主要内容是什么?它的作用是什么? 答:软件需求规格说明(Software R

40、equirement Specification,SRS)是需求工程最终产 生的结果,必须用一种统一的方式将它们编写成可视文档,包含了软件的功能需求和 非功能需求。需求规格说明是项目相关人员对要开发的软件系统达成的共识,是进行 系统设计、实现、测试和验收的基本依据,也是整个软件开发过程中最重要的文件。 软件需求规格说明的主要内容有:1. 引言4系统特性4.1 说明和优先级 4.2 激励/响应序列 4.3 功能需求5其他非功能需求1.1 目的 1.2 文档约定 1.3 预期的读者和阅读建议 1.4 产品范围 1.5 参考文献2综合描述5.1 性能需求 5.2 安全设施需求 5.3 安全性需求 5

41、.4 软件质量属性 5.5 业务规则 5.6 用户文档2.1 产品前景 2.2 产品功能 2.3 用户类和特征 2.4 运行环境 2.5 设计和实现上的限制 2.6 假设和依赖6其他需求3外部接口需求附录3.1 用户界面 3.2 硬件接口 3.3 软件接口 3.4 通信接口A:词汇表 B:分析模型 C:待确定问题的列表7. 结构化分析方法?结构化分析方法的结果是什么? 答:结构化分析(Structured Analysis,SA)是由美国 Yourdon 公司提出的适用于分析 典型的数据处理系统的,以结构化的方式进行系统定义的分析方法。这个方法通常与 L.Constantine 提出的结构化设

42、计(Structured Design,SD)方法衔接起来使用,即所谓 的 SASD 方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。 Yourdon 方法首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计 (SD)方法进行总体设计,最后是结构化编程(Structured Programming,SP) 。 第五章第五章 面向对象的需求分析面向对象的需求分析 1.简述对象与类之间的联系与区别。 答:对象(Object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本 单位,由一组属性和对这组属性进行操作的一组服务组成。类(Class)是具有相同属 性和服务的

43、一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内 部包括属性和服务两个主要部分。具体来说,类由数据和方法集成,它是关于对象性 质的描述,包括外部特性和内部实现两个方面。类是具有相同属性和行为的一组相似 对象的抽象,在现实世界中并不能真正存在。类好比是一个对象模板,根据需要用它 可以产生多个对象(即类的实例)。因此类所代表的是一个抽象的概念或事物,类是静态 概念;在客观世界中实际存在的是类的实例,即对象,对象是动态概念。类是对象的 抽象,有了类之后,对象则是类的具体化,是类的实例。 2.试描述继承性与多态性的作用。 答:继承(Inheritance)是面向对象方法学中的核心概念,

44、它是指从一个类的定义中可以派生出另一个类的定义,被派生出的类(子类)可以自动拥有父类的全部属性和服 务。继承简化了人们对现实世界的认识和描述,在定义子类时不必重复定义那些已在 父类中定义过的属性和服务,只要说明它是某个父类的子类,并定义自己特有的属性 和服务即可。继承机制是组织构造和复用类的一种工具,如果将用面向对象方法开发 的类作为可复用构件,那么在开发新系统时可以直接复用这个类,还可以将其作为父 类,通过继承而实现复用。复用减少了程序的代码量和复杂度,提高了软件的质量和 可靠性,软件的维护修改也变得更加容易。 多态性(Polymorphism)是指同名的方法或操作在不同类型的对象中有各自相

45、应的实 现。 在存在继承关系的一个类层次结构中,不同层次的类可以共享一个操作,但却有各自 不同的实现。当一个对象接收到一个消息请求时,它根据其所属的类,动态地选用在 该类中定义的操作。多态性机制不但为软件的结构设计提供了灵活性,减少了信息冗 余,明显提高了软件的可复用性和可扩充性。 3.通过看图回答下面的问题。 在图所示的用例图中: X1、X2 和 X3 表示用例中的什么? 已知 UC3 是抽象用例,那么 X1 可通过图中哪些用例与系统进行交互? 图中哪个用例时 UC4 的可选部分,哪个用例是 UC4 的必须部分?答:X1、X2 和 X3 表示用例中的角色(或参与者) 。已知 UC3 是抽象用

46、例,那么 X1 可通过图中的 UC4、UC1 用例与系统进行交互。UC2 是 UC4 的可选部分,UC5 是UC4 的必须部分。 第六章第六章 面向对象的软件设计面向对象的软件设计 1.说明面向对象的集成测试包含哪些内容。 答:面向对象系统是由对象到子系统、再到系统的集成。通常是松耦合的,系统中没 有一个明显的顶层,即面向对象系统没有严格的层次控制结构,相互调用的功能也分 散在不同的类中,类通过消息的相互作用申请和提供服务。此外,面向对象程序具有 动态性,程序的控制流往往无法确定。因此,增量式集成测试不再适用,只能采用基 于操作的集成测试。面向对象的集成测试关注系统的结构和内部的相互作用,可以

47、分 成两步进行:先进行静态测试,再进行动态测试。 面向对象基于操作的集成测试策略有两种:基于线程的测试和基于使用的测试。 基于线程的测试把相应系统的一个输入或一个事件所需要的那些类集成起来。分别集 成并测试每个线程,同时应用回归测试以保证不产生副作用。 基于使用的测试首先测试几乎不使用服务器类的那些类(称为独立类) ,把独立类都测 试完之后,再测试使用独立类的下一个层次的类(称为依赖类) 。对依赖类的测试一个 层次一个层次地持续进行下去,直至把软件系统构造完为止 2.举例说明各种程序设计语言的特点及适用范围。 答:以常见的一些编程语言为例: FORTRAN 语言,它不仅面向科学计算,数据处理能

48、力也极强。适用于科学工程计算 Pascal 语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结 构严谨。它是第一个体现结构化编程思想的语言。用于描述结构化算法和科学计算,操 作系统的编写 C 语言:功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运 算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。可用于 许多领域,特别是在操作系统等方面有较大优势。 Coble 语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与 算法描述分开。结构严谨层次分明,广泛用于商业数据处理。 SQL:结构化查询语言,用于对数据库进行存取管理。

49、汇编语言和 Ada 语言,主要用于实时处理和编写系统软件。 Prolog、Lisp 语言。Lisp 是一种函数型语言,特别适用于组合问题中符号运算和表处理, 用于定理证明、树的搜索和其他问题的求解。Prolog 是一种逻辑型语言,它提供了支 持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近 与自然语言。这两种语言主要用于人工智能系统开发。 C+、Java 语言,是面向对象的设计语言,用于面向对象的方开发软件。 3.选择面向对象程序设计时应考虑哪些因素? 答:纯面向对象程序设计语言着重支持面向对象方法研究和快速原型的实现,而混合 型面向对象程序设计语言的目标则是提高运行速度和使传统程序员容易接受面向对象 的思想。成熟的面向对象程序设计语言一般都是提供丰富的类库和强有力的开发环境。 除此之外,开发人员在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com