软件工程实用教程第三版郭宁主编课后习题及答案_第1页
软件工程实用教程第三版郭宁主编课后习题及答案_第2页
软件工程实用教程第三版郭宁主编课后习题及答案_第3页
软件工程实用教程第三版郭宁主编课后习题及答案_第4页
软件工程实用教程第三版郭宁主编课后习题及答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章 软件工程引论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. 原理性的理论6. 下列说法正确的是(B)A. 软件工程的概念于 20 世纪 50 年代提出B. 软件工程的概念于 20 世纪 60 年代提出C. 20 世纪 70 年代出现了客户机/服务器技术D. 20 世纪 80 年代软件工程学科达到成熟7. 软件工程方法学中的软件工程管理是其中的一个重要内容,它包括软件管理学和软件工程经济学,它要达到的目标是(D)A 管理开发人员,以开发良好的软件B 采用先进的软件开发工具,开发优秀的软件C 消除软件危机,达到软件生产的规模效益D 以基本的社会效益为基础,工程化生产软件第二章 软件生命周期及开发模型1. 软件生命周期包括可行性分析和项目开发计划、需求分析、总体设计、详细分析、编码、 (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.对象模型 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)型的设计过程。A. 在外向内 B.自顶向下 C.自内向外 D.自底向上11. 对于原型的使用建议,以下说法不正确的是(C)A. 对于开发周期很长的项目,能够使用原型 B.在系统的使用可能变化较大、不能相对稳定是,能够使用原型 C.缺乏开发工具,或对原型的可用工具不了解的时候,能够使用原型 D.开发者对系统的某种设计方案的实现无信心或无十分的把握时,能够使用原型12. 原型模型的主要特点之一是(B)A. 开发完毕才见到产品 B.及早提供工作软件 C.及早提供全部完整软件 D.开发完毕才见到工作软件第三章 结构化需求分析1. 需求工程的主要目的是(C)A. 制定系统开发的具体方案 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)是表达系统内部数据运动的图形化技术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 个方面:对问题的识别、分析与综合、编写需求分析文档以及(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.厚度5. 面向数据流的软件设计方法可将(C)映射成软件结构A. 控制结构 B.模块 C.数据流 D.事务流第五章 面向对象的需求分析1. 采用 UML 进行软件建模的过程中,类图是系统的一种静态视图,用(B)可明确表示两类事物之间存在的整体/部分形式的关联关系。A. 依赖关系 B.聚合关系 C.泛化关系 D.实现关系2. 在 UML 语言中,图中的 a、b、c 三中图形符号按照顺序分别表示(C)Kim, Keehyun Kim, Hyunsoo Jung, YoontaeA. 边界对象、实体对象、控制对象 B. 实体对象、边界对象、控制对象 C. 控制对象、实体对象、边界对象 D. 边界对象、控制对象、实体对象3. 不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(B)A. 继承 B. 多态 C. 动态绑定 D. 静态绑定第六章面向对象的软件设计1. 下面哪种设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新(D)A.Adapter(适配器) B.Iterator(迭代器) C.Prototype(原型) D. Observer(观察者)2. UML 中有多种类型的图,其中, (B)对系统的使用方式进行了分类;()显示了类及其相互关系;()显示了人或对象的活动,其方式类似于流程图;通信图显示了在某种情况下对象之间发送的消息;()与通信图类似,但强调的是顺序而不是连接。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.X=0,X=1012. 下列关于软件验收测试的合格通过准则错误的是(C)A. 软件需求分析说明书中定义的所有功能已全部实现 B. 所有测试项没有 C. 立项审批表、需求分析文档、设计文档和编码实现不一致 D.验收测试工件齐全3.以下关于集成测试的内容正确的有(D) 集成测试也叫组装测试或者联合测试 测试在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失 测试一个模块的功能是否会对另一个模块的功能产生不利影响 测试各个子功能组合起来,能否达到预期要求的父功能 测试全局数据结构是否有问题 测试单个模块的误差累积起来,是否会放大,从而达到不能接受的程度A. B.C. D.以上全部正确4. 为了提高测试的效率,应该(D)A 随机的选取测试数据 B. 取一切可能的输入数据作为测试数据 C. 在完成编码以后制定软件的测试计划 D. 选择发现错误的可能性大的数据作为测试数据5. 软件调试的目的是(A)A. 找出错误所在并改正之 B.排除存在错误的可能性 C.对错误性质进行分类 D.统计出错的次数6. 单元测试一般以白盒为主,测试的依据是(A)A. 模块功能规格说明 B. 系统模块结构图 C. 系统需求规格说明 D. 统计出错的次数7. 下次关于 、 测试的描述中正确的是(C)A. 测试不需要用户代表参加 B. 测试不是验收测试的一种 C. 测试可以有用户代表参加 D. 测试是系统测试的一种8. 软件测试的目的是(B)A. 评价软件的质量 B.发现软件的错误 C.找出软件中所有的错误 D.证明软件是正确的9. 软件测试用例主要由输入数据和(C)两部分组成A. 测试计划 B.测试规则 C.预期输出结果 D.以往测试记录分析10. 在黑盒测试中,着重检查输入条件组合的方法是(D)A. 等价类划分法 B.边界值分析法 C.错误推测法 D.因果图法第八章软件维护技术1. 随着软硬件环境变化而修改软件的过程是(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 软件维护的副作用,是指(C)A. 开发时的错误 B. 隐含的错误 C. 因修改软件而造成的错误 D. 运行时的误操作第一章软件工程引论1. 软件工程出现的主要原因是软件危机的出现。2. 文档是软件产品的一部分,没有文档的软件就不能称为软件。3. 软件危机的主要表现是软件需求量迅速增加,软件价格上升。4. 一个成功的项目唯一应该提交的就是运行程序法。5. 与计算机科学的理论研究不同,软件工程是一门原理性学科。第二章软件生命周期及开发模型1. 瀑布模型和增量模型都属于整体开发模型。2. 原型模型可以有效地适应用户需求的动态变化。3. 螺旋模型在瀑布模型和增量模型的基础上增加了风险分析活动。4. 软件过程改进也是软件工程的范畴。5. 在软件开发中采用原型系统策略的主要困难是成本问题。第三章结构化需求分析1. 需求分析的主要目的是制定软件开发的具体方案。2. 用户对软件需求的描述不精确,往往是产生软件危机的原因之一。3. 分层的 DFD 图可以用于可行性分析阶段,描述系统的物理结构。4. 在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取有价值的需求。5. 需求规格说明数描述了系统每个功能的实现。第四章结构化软件设计1. 在同一用户界面中,所有的菜单选择,命令输入、数据显示和其它功能应采用不同的形式和风格。2. 最高的耦合度是数据耦合。3. 编程中应采用统一的标准和约定,降低程序的复杂性。4. 流程图也称为框图程序,是程序最常用的一种表示法。5. 理想的人机界面应针对具有典型个性的特定的一类用户设计。6. 重视程序结构的设计,能是程序具有较好的层次结构。7. 软件过程不用遵循“自上而下,逐步求精”的原则和单入口单出口的结构化设计思想。8. 软件开发、设计几乎都是从头开始,成本和进度很难估计。9. 耦合度是对软件结构中模块间关联程度的一种度量。在设计软件是应追求耦合尽可能紧密的系统。10. SD 法是一种面向数据结构的设计方法,强调程序结构与问题结构相适应。第五章面向对象的需求分析1. 边界对象表示了系统与参与者之间的接口。在每一个用例中,该对象从参与者处收集信息,并将之转换为一种实体对象和控制对象使用的形式。2. 采用面向对象的方法开发软件的过程中,抽取和整理用户需求并建立问题域精确模型的过程叫面向对象分析。3. 继承仅仅允许单重继承,即不允许一个子类有多个父类。第六章面向对象的软件设计1. 面向对象程序设计应该在面向对象分析之前,因为只有产生了设计结果才可以对其进行分析。2. 面向对象设计产生的结果在形式上可以与面向对象分析产生的结果类似,例如都可以使用 UML 表达。第七章软件测试技术1. 软件测试就是为了验证软件功能的实现是否正确,是否完成既定目标的活动,所以软件测试在软件工程而后期才开始具体的工作。2. 发现错误多的模块,可能残留在模块中的错误也多。3. 测试人员在测试过程中发现一处问题,如果问题影响不大,而自己有可以修改,应立即将此问题正确修改,以加快、提高开发的进程。4. 路径测试不属于单元测试的内容。5. 测试只要做到语句覆盖和分支覆盖,就可以发现程序中的所有错误。6. 软件测试只能发现错误,但不能保证测试后的软件没有错误。7. 集成测试是有最终用户来实施的。8. 所有的逻辑覆盖标准中,查错能力最强的语句覆盖。9. 等价类划分方法能够有效的检测输入条件的各种组合可能引起的错误。10. 验收检测方法需要考察模块间接口和各模块之间的联系。第八章软件维护技术1. 维护申请报告是一种由用户产生的文档,它用作计划维护任务的基础。2. 维护阶段是软件生存周期中时期最短的阶段,也是花费精力和费用最少的阶段。3. 在软件维护中,因修改软件而导致出现错误或其它情况成为维护的副作用。4. 为了提高软件的可维护性和可靠性而对软件进行的修改称为适应性维护。5. 维护的副作用有编码副作用、数据副作用、文档副作用 3 种。第一章软件工程引论1. 什么是软件危机?它和软件工程有什么关系?答:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。2. 简述软件和软件工程的定义以及软件工程的形成过程。答:软件是与计算机系统操作有关的程序、规程、规则及其文档和数据的统称。软件由两部分组成:一是机器可执行的程序和有关的数据;二是与软件开发、运行、维护、使用和培训有关的文档。软件工程是指导计算机软件开发和维护的工程学科。它强调按照软件产品的生产特性,采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前最好的技术结合起来,以便经济地开发出高质量的软件并有效地维护它。软件工程的发展经历了以下 3 个阶段。第 一 阶 段 : 20 世 纪 70 年 代 , 传 统 软 件 工 程 时 代 。第二阶段:20 世纪 80 年代, 过程软件工程时代。第三阶段:进入 20 世纪 90 年代以后, 构 件 软 件 工 程 时 代 。3. 软件工程的目标是什么?如何解决多目标之间的矛盾?答:软件工程的目标:软件开发成本较低。软件功能能够满足用户的需求。软件性能较好。软件可靠性高。软件易于使用、维护和移植。能按时完成开发任务,并及时交付使用。有 些 目 标 之 间 是 相 互 补 充 的 , 如 易 于 维 护 和 高 可 靠 性 之 间 、 功 能 强 与 可 用 性 之 间 ; 有些 目 标 是 彼 此 相 互 冲 突 的 , 如 若 只 考 虑 降 低 开 发 成 本 , 很 可 能 同 时 也 降 低 了 软 件 的 可靠 性 , 如 果 一 味 追 求 提 高 软 件 的 性 能 , 可 能 造 成 开 发 出 的 软 件 对 硬 件 的 依 赖 性 较 强 ,从 而 影 响 到 软 件 的 可 移 植 性 ; 不 同 的 应 用 对 软 件 质 量 的 要 求 不 同 , 如 对 实 时 系 统 来 说 ,其 可 靠 性 和 效 率 比 较 重 要 ; 对 生 命 周 期 较 长 的 软 件 来 说 , 其 可 移 植 性 、 可 维 护 性 比 较重 要 , 所 以 , 应 该 根 据 不 同 的 系 统 需 求 决 定 个 目 标 之 间 的 重 要 性 。4. 在软件开发中软件开发工具有什么作用?答:软件开发工具是指用来辅助软件开发、维护和管理的软件。现代软件工程方法得以实施的重要保证是软件开发工具和环境。软件开发工具使软件在开发效率、工程质量、减少软件开发对人的依赖性等多方面得到改善5. 什么是软件支持过程?它与软件工程方法学有何关系?答:软件过程是指生产满足需求且达到工程目标的软件产品所涉及的一系列相关活动,它覆盖了需求分析、系统设计、实施以及支持维护等各个阶段。软件过程有各种分类方法。按性质划分软件过程可概括为基本过程类、支持过程和组织过程类。可见软件支持过程是软件过程中的一种。6. 在软件工程知识体系中,将软件工程划分为哪些知识域?答:SWEBOK 将软件工程知识体系划分为 10 个知识域,分为两类过程。一类是开发与维护过程,包括软件需求、软件设计、软件构造、软件测试和软件维护;另一类是支持过程,包括软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量。7. B.W.Boehm 提出的软件工程基本原则的作用是什么?答:1采用分阶段的生命周期计划,以实现对项目的严格管理2坚持进行阶段评审,以确保软件产品质量3实行严格的产品控制,以适应软件规格的变更4采用现代程序设计技术5软件成果能清楚地审查6开发小组人员应该少而精7承认不断改进软件工程实践的必要性第二章软件生命周期及开发模型1. 简述什么是软件生命周期。根据国家标准计算机软件开发规范 ,软件生命周期主要包括哪几个阶段?答:作为工程化的一般特征,软件产品和其他工业产品一样,软件产品也包括设计、生产、使用和消亡几个阶段,并称之为软件的生命周期,即指软件产品从功能确定、设计、开发成功、投入使用,并在使用中不断修改、完善,直至被新的软件所替代,而停止该软件使用的全过程。国家标准 GB85661988计算机软件开发规范将软件生命周期划分为几个阶段:可行性研究、项目计划、需求分析、总体设计、详细设计、编码实现(包括单元测试、集成测试、确认测试) 、系统运行和维护。这几个阶段又可以归纳为 3 个阶段,即软件定义阶段,软件开发阶段和软件运行维护阶段。2. 瀑布模型有哪些特点?对于里程碑,你有哪些认识?答:1 970 年 W.Royce 最 早 提 出 瀑 布 模 型 。 答:瀑布模型的特点:(1). 线性化模型结构;(2). 各阶段具有里程碑特征;(3). 基于文档的驱动;(4). 严格的阶段评审机制。其中的里程碑是指瀑布模型中的阶段只能逐级到达、不能跨越;每个阶段都有明确的任务,都需要产生确定的成果。由于瀑布模型是一种线性模型,要求项目严格按规程推进,必须等到所有开发工作全部完成以后才能获得可以交付的软件产品。因此,瀑布模型不太适用于用户需求经常变更的软件项目。瀑布模型是一种基于里程碑的阶段过程模型,它所提供的里程碑式的工作流程,为软件项目按规程管理提供了便利。例如,按阶段制订项目计划,分阶段进行成本核算,进行阶段性的评审等。这为提高软件产品质量提供了有效保证。3. 试说明原型模型的两种实现方案各有什么特点,各适用于哪些情况。答:原型可以分为 3 类。1)抛弃式原型:这种原型在目的达到后即被抛弃,原型不作为最终产品,如上所述。2)进化式原型:这类原型的形成和发展是逐步完成的,它是高度动态迭代和高度动态循环,每次迭代都要对系统重新进行需求规格说明、重新设计、重新实现和重新评价,所以是对付变化最为有效的方式。3)增量式模型:系统是一次一段地增量构造,与演化式原型的最大区别在于增量式开发是在软件总体设计基础上进行的。4. 一般认为,只有大型项目才采用螺旋模型,原因是什么?答:螺旋模型的优越性在于它吸收了“进化”的概念,使得开发人员和用户对每一个演化层出现的风险均有所了解,并对此做出反应。但使用该模型需要丰富的风险评估经验和专门知识,如果项目风险较大又未及时发现,势必造成重大损失。实际上,对软件项目进行风险分析也需要费用,假如项目风险分析费用过高,甚至超过了项目的开发费用,显然就不合适了。一般大型项目才有较高的风险,才有进行详细风险分析的必要。因此,这种模型比较适合大型的软件项目。5. 为什么说构建复用模型是一种有利于软件按工业流程生产的过程模型?答:对象技术将事物实体封装成包含数据和数据处理方法的对象,并抽象为类。经过适当的设计和实现的类也可称为构件。由于构件具有一定的通用性,可以在不同的软件系统中被复用。在基于构件复用的软件开发中,软件由构件装配而成,这就如同用标准零件装配汽车一样。构件复用技术,它能带来更好的复用效果,并且具有工程特性,更能适应软件按工业流程生产的需要。6. 敏捷方法的价值观和原则与传统的方法有哪些联系和区别?答:相对于“非敏捷” ,敏捷不仅是体现在有效地响应变化,它还包括鼓励程序员团队与业务专家之间的紧密协作、面对面地沟通(认为比书面的文档更有效) 、强调可运行软件的快速交付而不是中间产品,敏捷过程提倡可持续开发。建立紧凑而自我组织型的团队,能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。从产品角度看,敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法是否适用。7. 有什么情况下会建议不用敏捷方法来开发软件系统?从产品角度看,敏捷方法适用于需求萌动并且快速改变的情况,如系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合;从组织结构的角度看,组织结构的文化、人员、沟通则决定了敏捷方法是否适用。8. 具有原型化的瀑布模型具有什么特点?他和瀑布模型最大的不同是什么?答:为了克服瀑布模型的问题,可以在需求阶段或设计阶段平行地进行几次快速建立原型的工作。原型开发后,可以获得更为清晰的需求反馈信息,既可以消除风险或减少不确定性,又可以采用平行瀑布模型方式。在瀑布模型的各阶段间转换时,可以适当并行扩展各阶段的开发工作。例如,在需求分析完成 60%时,就可以开始进行这 60%已完成分析部分的设计工作,同时并行进行其余 40%的需求分析。第三章结构化需求分析1. 简述什么是需求分析?需求分析的任务是什么?答:需求分析:开发人员准确地理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的需求规格说明的过程。基本任务: 问题识别:双方确定对问题的综合需求,这些需求包括功能需求,性能需求,环境需求,用户界面需求;分析与综合,导出软件的逻辑模型;编写文档:包括编写“需求规格说明书 “,“初步用户使用手册“,“ 确认测试计划“,“ 修改完善软件开发计划“2. 在进行可行性研究时,向用户推荐的方案中应清楚的表明什么?答:可 行 性 研 究 主 要 集 中 在 以 下 4 个 方 面 。1) 经 济 可 行 性 : 进 行 开 发 成 本 的 估 算 及 可 能 取 得 效 益 的 评 估 , 确 定 目 标 系 统 是 否 值得 投 资 开 发 。2) 技 术 可 行 性 : 对 目 标 系 统 进 行 功 能 、 性 能 和 限 制 条 件 的 分 析 , 确 定 在 现 有 资 源 的条 件 下 , 技 术 风 险 有 多 大 , 系 统 是 否 能 实 现 。 这 里 , 资 源 包 括 已 有 的 或 可 以 提 供 的 硬件 、 软 件 资 源 , 现 有 技 术 人 员 的 技 术 水 平 与 已 有 的 工 作 基 础 。3) 操 作 可 行 性 : 系 统 的 操 作 方 式 能 否 在 用 户 的 组 织 内 行 得 通 , 以 及 对 目 标 系 统 可 能会 涉 及 的 政 策 、 责 任 等 问 题 做 出 决 定 。4) 社 会 可 行 性 : 主 要 分 析 项 目 对 社 会 的 影 响 , 从 方 针 政 策 、 经 济 结 构 、 法 律 和 制 度等 社 会 因 素 方 面 考 虑 项 目 开 发 的 合 理 性 和 意 义 。总 之 , 可 行 性 研 究 最 根 本 的 任 务 是 对 以 后 的 行 动 方 针 提 出 建 议 。 如 果 问 题 没 有 可 行 的解 , 分 析 员 应 该 建 议 停 止 这 项 开 发 工 程 , 以 避 免 时 间 、 资 源 、 人 力 和 金 钱 的 浪 费 ; 如果 问 题 值 得 解 , 分 析 员 应 该 推 荐 一 个 较 好 的 解 决 方 案 , 并 且 为 工 程 制 定 一 个 初 步 的 计划 。3. 需求工程包含哪些内容时,如何写好需求规格说明?答:需求工程指应用工程化方法、技术和规格来开发和管理软件的需求。需求工程的目标是获取高质量的软件需求。需求工程突出了工程化原则,强调以系统化、条理化和重复化的方法进行软件需求的相关活动,从而增强管理性和降低需求开发的成本。需求工程由需求开发活动和需求管理过程组成。一个好的需求规格说明应符合以下要求:1)正确性。每一项需求都必须准确地陈述其要开发的功能。即需求规格说明对系统功能、行为、性能等的描述必须与用户的期望相吻合,这是软件系统真正需要完成可达到的。2)完整性。需求规格说明应该包括软件要完成的全部任务,每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施,不能遗漏任何必要的需求信息。3)必要性。每一项需求都应把客户真正所需要的和最终系统所需遵从的标准记录下来。4)划分优先级。给每项需求、特性或使用实例分配一个实施优先级以指明它在特定产品中所占的分量。5)无二义性。对所有需求说明的读者都只能有一个明确统一的解释,由于自然语言极易导致二义性,所以尽量把每项需求用简洁明了的语言表达出来。6)可验证性。需求规格说明中描述的需求都可以运用一些可行的手段对其进行验证和确认。4. 用户需求调查主要有哪些方法?答:获取需求是需求分析的基础,要在获得详实调查资料的基础之上才能进行需求分析。需求获取包括了一系列的方法和活动,如研究资料法、问卷调查法、用户访谈和实地观察法等。需求分析人员可以使用这些方法、技术进行收集、确认用户的需求。5. 数据字典的作用是什么?它有哪些基本条目?答:数据流图和数据字典一起构成了系统的逻辑模型。没有数据字典,数据流图就不严格;没有数据流图,数据字典也没有作用。数据字典的重要用途是作为分析阶段的工具。在数据字典中建立严密一致的定义有助于改进分析人员和用户之间的通信,避免许多误解的发生。数据字典也有助于改进不同的开发人员或不同的开发小组之间的通信。同样,将数据流图中的每个元素的精确定义放在一起,就构成了系统的、完整的需求规格说明的主体。数据字典还作为连接软件设计、实现和进化阶段的开发机构的信息存储。在软件设计阶段,数据字典是存储文件或数据库设计的基础。在实施阶段,还可参照数据字典描述数据。随着系统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论