软件工程实用教程第三版郭宁主编课后习题及答案.docx

上传人:h**** 文档编号:142783 上传时间:2018-07-10 格式:DOCX 页数:21 大小:210.48KB
下载 相关 举报
软件工程实用教程第三版郭宁主编课后习题及答案.docx_第1页
第1页 / 共21页
软件工程实用教程第三版郭宁主编课后习题及答案.docx_第2页
第2页 / 共21页
软件工程实用教程第三版郭宁主编课后习题及答案.docx_第3页
第3页 / 共21页
软件工程实用教程第三版郭宁主编课后习题及答案.docx_第4页
第4页 / 共21页
软件工程实用教程第三版郭宁主编课后习题及答案.docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

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

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

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

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

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

6、案 B.进一步确定系统的需求 C.解决系统是“做什么的为题”D.解决系统是“如何做的问题” 2. 需求分析的任务不包括( B) A. 问题分析 B.系统设计 C.需求分析 D.需求评审 3. 软件分析的第一步要做的工作是( A) A. 定义系统的目标 B.定义系统的功能模块 C.分析用户需求 D.分析系统开发的可行性 4. 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题的( A) A. 能否可解 B.工程进度 C.开发计划 D.人员配置 5. 需求分析最终结果是产生( B) A. 项目开发计划 B.需求规格说明书 C.设计说明书 D.可行性分析报告 6. 在结构化分析方法中,( C)

7、是表达系统内部数据运动的图形化技术 A. 数据字典 B.实体关系图 C.数据流图 D.状态转换图 7. DFD 中的每个加工至少需要( D) A. 一个输入流 B.一个输出流 C.一个输入或输出流 D.一个输入流和一个数处理 8. 需求分析的主要方法有( C) A. 形式化分析方法 B. PAD 图描述 C.结构化分析方法 D.程序流程图 9. SA 法的主要描述手段有( B) A. 系统流程图和模块图 B.DFD 图、数据字典、加工说明 C.软件结构图、加工说明 D.功能结构图、加工说明 10. 软件需求分析阶段的工作,可以分为以下 4 个方面:对问题的识别、分析与综合、编写需求分析文档以及

8、( C) A. 总结 B.编写阶段性报告 C.进行需求分析评审 D.以上答案都不正确 第四章 结构化软件设计 1. 在面向数据流的软件设计方法中,一般将信息里与分为( D) A 数据流和控制流 B. 变换流和控制流 C. 事务流和控制流 D. 变换流和事务流 2. 耦合度可以分为七级,其中最松散的耦合是( A) A. 非直接耦合 B.数据耦合 C.特征耦合 D.控制耦合 3. 当模块中包含复杂的条件组合,只有( A)能够清晰的表达出各种动作之间的对应关系 A. 判定表和判定树 B.盒图 C.流程图 D.关系图 4. 一个软件的宽度是指其控制的( C) A. 模块数 B.层数 C.跨度 D.厚度

9、 5. 面向数据流的软件设计方法可将( C)映射成软件结构 A. 控制结构 B.模块 C.数据流 D.事务流 第五章 面向对象的需求分析 1. 采用 UML 进行软件建模的过程中,类图是系统的一种静态视图,用( B)可明确表示两类事物之间存在的整体 /部分形式的关联关系。 A. 依赖关系 B.聚合关系 C.泛化关系 D.实现关系 2. 在 UML 语言中,图中的 a、 b、 c 三中图形符号按照顺序分别表示( C) A. 边界对象、实体对象、控制对象 B. 实体对象、边界对象、控制对象 C. 控制对象、实体对象、边界对象 D. 边界对象、控制对象、实体对象 3. 不同的对象收到同一消息可以产生

10、完全不同的结果,这一现象叫做( B) A. 继承 B. 多态 C. 动态绑定 D. 静态绑定 第六章面向对象的软件设计 1. 下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新( D) A.Adapter(适配器) B.Iterator(迭代器 ) C.Prototype(原型) D. Observer(观察者) 2. UML 中有多种类型的图,其中,( B)对系统的使用方式进行了分类;()显示了类及其相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某种情况下对象之间发送的消息;()与通信图类似,但强

11、调的是顺序而不是连接。 A.用例图、顺序图、类图、活动图 B.用例图、类图、活动图、顺序图 C.类图、顺序图、活动图、用例图 D. 活动图、顺序图、用例图、类图 3. UML 类图的类与类之间的关系有 5 种:继承、依赖、关联、组合和聚合,若类 A 需要使用标准数学函数类库中提供的功能,那么类 A 与标准类库中提供的类之间存在( A)关系 A.依赖 B.关联 C.聚合 D. 组合 第七章 软件测试技术 1. 用边界值分析法,假定 1X100,那么 X 在测试中应该取的边界值是( B) A. X=1, X=100 B. X=0, X=1, X=100, X=101 C. X=2, X=99 D.

12、X=0, X=101 2. 下列关于软件验收测试的合格通过准则错误的是( C) A. 软件需求分析说明书中定义的所有功能已全部实现 B. 所有测试项没有 C. 立项审批表、需求分析文档、设计文档和编码实现不一致 D.验收测试工件齐全 3.以下关于集成测试的内容正确的有( D) 集成测试也叫组装测试或者联合测试 测试在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失 测试一个模块的功能是否会对另一个模块的功能产生不利影响 测试各个子功能组合起来,能否达到预期要求的父功能 测试全局数据结构是否有问题 测试单个模块的误差累积起来,是否会放大,从而达到不能接受的程度 A. B. C. D.以上全

13、部正确 Kim , Ke e hy un Kim , Hy un s o oJ un g , Yo o nt a e4. 为了提高测试的效率,应该( D) A 随机的选取测试数据 B. 取一切可能的输入数据作为测试数据 C. 在完成编码以后制定软件的测试计 划 D. 选择发现错误的可能性大的数据作为测试数据 5. 软件调试的目的是( A) A. 找出错误所在并改正之 B.排除存在错误的可能性 C.对错误性质进行分类 D.统计出错的次数 6. 单元测试一般以白盒为主,测试的依据是( A) A. 模块功能规格说明 B. 系统模块结构图 C. 系统需求规格说明 D. 统计出错的次数 7. 下次关于

14、、 测试的描述中正确的是( C) A. 测试不需要用户代表参加 B. 测试不是验收测试的一种 C. 测试可以有用户代表参加 D. 测试是系统测试的一种 8. 软件测试的目的是( B) A. 评价软件的质量 B.发现软件的错误 C.找出软件中所有的错误 D.证明软件是正确的 9. 软件测试用例主要由输入数据和( C)两部分组成 A. 测试计划 B.测试规则 C.预期输出结果 D.以往测试记录分析 10. 在黑盒测试中,着重检查输入条件组合的方法是( D) A. 等价类划分法 B.边界值分析法 C.错误推测法 D.因果图法 第 八 章 软件 维护技术 1. 随着软硬件环境变化而修改软件的过程是(

15、B) A. 校正性维护 B. 适宜性维护 C. 完善性维护 D. 预防性维护 2. 为了提高软件的可维护性,在编码阶段应注意( B) A. 保存测试用例和数据 B. 提高模块的独立性 C. 文档的副作用 D. 养成好的程序设计风格 3.为提高系统性能而进行的修改属于( C) A.纠正性维护 B.适应性维护 C.完善性维护 D.测试性维护 4.软件生命周期中,( D)阶段所站的工作量最大 A.分析阶段 B.设计阶段 C.编码阶段 D.维护阶段 5.系统维护中要解决的为题来源于( D) A.系统分析阶段 B.系统设计阶段 C.系统实施阶段 D.上述 3 个阶段( A、 B、 C)都包括 6 软件维

16、护的副作用,是指( C) A. 开发时的错误 B. 隐含的错误 C. 因修改软件而造成的错误 D. 运行时的误操作 第一章 软件工程引论 1. 软件工程出现的主要原因是软件危机的出现。 2. 文档是软件产品的一部分,没有文档的软件就不能称为软件。 3. 软件危机的主要表现是软件需求量迅速增加,软件价格上升。 4. 一个成功的项目唯一应该提交的就是运行程序法。 5. 与计算机科学的理论研究不同,软件工程是一门原理性学科。 第 二 章 软件生命周期及开发模型 1. 瀑布模型和增量模型都属于整体开发模型。 2. 原型模型可以有效地适应用户需求的动态变化。 3. 螺旋模型在瀑布模型和增量模型的基础上增

17、加了风险分析活动。 4. 软件过程改进也是软件工程的范畴。 5. 在软件开发中采用原型系统策略的主要困难是成本问题。 第三章 结构化需求分析 1. 需求分析的主要目的是制定软件开发的具体方案。 2. 用户对软件需求的描述不精确,往往是产生软件危机的原因之一。 3. 分层的 DFD 图可以用于可行性分析阶段,描述系统的物理结构。 4. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取有价值的需求。 5. 需求规格说明数描述了系统每个功能的实现。 第四章结构化软件设计 1. 在同一用户界面中,所有的菜单选择,命令输入、数据显示和其它功能应采用不同的形

18、式和风格。 2. 最高的耦合度是数据耦合。 3. 编程中应采用统一的标准和约定,降低程序的复杂性。 4. 流程图也称为框图程序,是程序最常用的一种表示法。 5. 理想的人机界面应针对具有典型个性的特定的一类用户设计。 6. 重视程序结构的设计,能是程序具有较好的层次结构。 7. 软件过程不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。 8. 软件开发、设计几乎都是从头开始,成本和进度很难估计。 9. 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件是应追求耦合尽可能紧密的系统。 10. SD 法是一种面向数据结构的设计方法,强调程序结构与问题结构相适应。 第五章面向

19、对象的需求分析 1. 边界对象表示了系统与参与者之间的接口。在每一个用例中,该对象从参与者处收集信息,并将之转换为一种实体对象和控制对象使用的形式。 2. 采用面向对象的方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的过程叫面向对象分析。 3. 继承仅仅允许单重继承,即不允许一个子类有多个父类。 第六章面向对象的软件设计 1. 面向对象程序设计应该在面向对象分析之前,因为只有产生了设计结果才可以对其进行分析。 2. 面向对象设计产生的结果在形式上可以与面向对象分析产生的结果类似,例如都可以使用 UML 表达。 第七章 软件测试技术 1. 软件测试就是为了验证软件功能的实现是否正确

20、,是否完成既定目标的活动,所以软件测试在软件工程而后期才开始具体的工作。 2. 发现错误多的模块,可能残留在模块中的错误也多。 3. 测试人员在测试过程中发现一处问题,如果问题影响不大,而自己有可以修改,应立即将此问题正确修改,以加快、提高开发的进程。 4. 路径测试不属于单元测试的内容。 5. 测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。 6. 软件测试只能发现错误,但不能保证测试后的软件没有错误。 7. 集成测试是有最终用户来实施的。 8. 所有的逻辑覆盖标准中,查错能力最强的语句覆盖。 9. 等价类划分方法能够有效的检测输入条件的各种组合可能引起的错误。 10. 验收检测

21、方法需要考察模块间接口和各模块之间的联系。 第 八 章 软件 维护技术 1. 维护申请报告是一种由用户产生的文档,它用作计划维护任务的基础。 2. 维护阶段是软件生存周期中时期最短的阶段,也是花费精力和费用最少的阶段。 3. 在软件维护中,因修改软件而导致出现错误或其它情况成为维护的副作用。 4. 为了提高软件的可维护性和可靠性而对软件进行的修改称为适应性维护。 5. 维护的副作用有编码副作用、数据副作用、文档副作用 3 种。 第一章 软件工程引论 1. 什么是软件危机?它和软件工程有什么关系? 答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述

22、两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的 已有软件。 2. 简述软件和软件工程的定义以及软件工程的形成过程。 答:软件是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。 软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。 软件工程的发展经历了以下 3 个阶段。 第一阶

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

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

25、盖了需求分析、系统设计、实施以及支持维护等各个阶段。 软件过程有各种分类方法。按性质划分软件过程可概括为基本过程类、支持过程和组织过程类。可见软件支持过程是软件过程中的一种。 6. 在软件工程知识体系中,将软件工程划分为哪些知识域? 答: SWEBOK 将软件工程知识体系划分为 10 个知识域,分为两类过程。一类是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;另一 类是支持过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。 7. B.W.Boehm 提出的软件工程基本原则的作用是什么? 答: 1采用分阶段的生命周期计划,以实现对项目的严格

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

42、作的一组服务组成。 类( Class)是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。 具体来说,类由数据和方法集成,它是关于对象性质的描述,包括外部特性和内部实现两个方面。 类是具有相同属性和行为的一组相似对象的抽象,在现实世界中并不能真正存在。 类好比是一个对象模板, 根据需要 用它可以产生多个对象 (即类的实例 )。 因此 类所代表的是一个抽象的概念或事物, 类是静态概念; 在客观世界中实际存在的是类的实例,即对象 ,对象是动态概念。类是对象的抽象,有了类之后,对象则是类的具体化 ,是类的实例。 2. 试描述继承性与多态性的作用。 答: 继承( Inheritance) 是面向对象方法学中的核心概念,它 是指 从一个类的定义中可以派生出另一个类的定义,被派生出的类(子类) 可以自动拥有父类的全部属性和服务。继承简化了人们对现实世界的认识和描述,在定义子类时不必重复定义那些已在父类中定义过的属性和服务,只要说明它是某个父类的子类,并定义自己特有的属性和服务即可。 继承机制是组织构造和 复 用类的一种工具, 如果将 用面向对象方法开发的 类作为可复用构件,那么在开发新系统时可以直接复用这个类,还可以将其作为父类,通过 继承

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

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。