软件工程习题(部分)

软件工程题目汇总。

  1. 软件工程研究的主要内容

    归结起来软件工程研究的主要内容有以下四个方面:方法与技术、工具与环境、管理技术、标准与规范。

    • 软件与开发技术,主要讨论软件开发的各种方法极其工作模型,他包括多方面的任务,如软件系统需求分析、总体设计,以及如何构建良好的软件结构、数据结构及算法设计等,同事讨论具体实现的技术。
    • 软件工具与环境为软件工程方法提供支持,研究计算机辅助软件工程,建立软件工程环境。
    • 软件工程管理技术,是指对软件工程全过程的控制和管理,包括计划安排、成本预估、项目管理、软件质量管理。
    • 软件工程标准与规范,使得各项工作有章可循,以保证软件生产效率和软件质量的提高。软件工程标准可分为4个层次:国际标准、行业标准、企业规范和项目规范。
  2. 软件产品的生命周期6个阶段(P9)

    1. 可行性研究:可行性研究阶段为后续的软件开发做必要的准备工作,在该阶段要完成的工作有:确定待开发的软件产品所要解决的问题,使软件开发人员和用户对待开发软件产品的目标达成一致;确定总体的开发策略与开发方式,并对开发所需要的资金、时间和各种资源做出合理的估计;对开发软件产品进行可行性分析,并制定初步的开发计划。最后,还要完成可行性分析报告。
    2. 需求分析:需求分析要确定目标系统需要做什么的问题,它是一个很复杂的过程。其成功与否直接关系到后续的软件开发的成败。在需求分析阶段,开发人员与用户之间的交流与沟通是非常重要的。需求分析的结果最终要反映到软件需求规格说明书中。
    3. 软件设计:简单地说,软件设计就是把需求文档中描述的功能可操作化,它可以分为概要设计和详细设计两个阶段。概要设计旨在建立系统的总体结构,而详细设计关注每个模块的内部实现细节,为后续的编码工作提供最直接的依据。
    4. 编码:编码就是编写程序代码,即把详细设计文档中对每个模块实现过程的算法描述转换为能用某种程序设计语言来实现的程序。在规范的软件开发过程中,编码必须遵守一定的标准入这样有助于团队开发,同时能够提高代码的质量。
    5. 软件测试:软件测试旨在发现软件产品中存在的软件缺陷,进而保证软件产品的质量。按照测试点的不同,软件测试可以分为单元测试、集成测试、系统测试和验收测试。
    6. 软件维护:在软件产品被交付后,其生存周期还在继续。随着用户需求的增长或改变,以及市场环境的变化,软件产品的功能需要不断更新,版本需要不断升级。所以,为了保证软件产品的正常运行,软件维护是必须的。一般来讲, 软件产品的质量越高,进行维护的工作量就会越小。

    综上所述,传统软件生命周期的阶段为:
    可行性分析→需求分析→软件设计→编码→软件测试→软件维护

  3. 常见软件开发模型,如喷泉模型的特性。(P11)

    1. 瀑布模型
      1. 在软件开发的过程中,需求不发生或发生很少变化,并且开发人员可以一次性获得全部需求。否则,由于瀑布模型较差的可回溯性,在后续阶段中需求经常性的变更需要付出高昂的代价。
      2. 软件开发人员具有丰富的经验,对软件应用领域很熟悉。
      3. 软件项目的风险较低。瀑布模型不具有完善的风险控制机制。
    2. 快速原型模型
    3. 增量模型
      1. 软件产品可以分批次地进行交付。
      2. 待开发的软件系统能够被模块化。
      3. 软件开发人员对应用领域不熟悉,难以一次性地进行系统开发。
      4. 项目管理人员把握全局的水平较高。
    4. 螺旋模型
    5. 喷泉模型:“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。
  4. 统一过程包括哪四个阶段?包含了哪些核心工作流程和哪些核心支持工作流程?(P14)

    四个阶段:先启细化构建产品
    包含九个工作流:业务建模需求分析和设计实现测试部署配置与变更管理项目管理环境

    核心工作流程有:业务建模需求分析和设计实现测试部署
    核心支持工作流程有:配置与变更管理环境

  5. 敏捷过程的核心价值观有哪些?它对传统方法的“反叛”体现在哪些方面?(P15-P16)

    核心价值观有:

    1. “个体和交互”胜过“过程和工具”
    2. “可以使用的软件”胜过“面面俱到的文档”
    3. “客户合作”胜过“合同谈判”
    4. “响应变化”胜过“遵循计划”

    反叛体现在:以人为中心,不再依靠文档来控制过程,认为传统过程过于僵化、文档繁烦,主张 对传统过程瘦身,在上述价值观的支配下,做到能够为准

  6. 常用的软件工具的作用。(P20-P22)

    分析设计工具:Microsoft VisioRational RoseTogetherPowerDisignerCASE Studio
    程序开发工具:Microsoft Visual StudioEclipseNetBeansDelphiDev c++
    测试工具:LoadRunnerWinRunnerSegue
    配置管理工具:Microsoft Visual SourcesafeClearCase
    项目管理工具:Microsoft ProjectCA-SuperProjectTime Line

  7. 需求分析的四个步骤。(P29)

    四个步骤:需求获取分析建模需求描述需求验证

  8. 需求管理过程的目标和内容是什么。(P30)

    目标:

    • 获取、组织和记录系统需求。
    • 使客户和项目团队在系统变更需求上达成一致

    内容:

    • 识别、分类、组织需求,并为需求建立文档
    • 需求变化(即带有建立对需求不可避免的变化是如何提出、如何协商、如何验证以及如何形成文档的过程)。
    • 需求的可跟踪性(即带有维护需求之间以及与系统的其他制品之间依赖关系的过程)。
  9. 如何进行结构化需求分析,其建模方法有哪些?(P31)

    结构化需求分析具体步骤:

    1. 建立当前系统的“具体模型”:系统的“具体模型”就是现实环境的忠实写照,这样的表达与当前系统完全对应,因此用户容易理解。
    2. 抽象出当前系统的逻辑模型:分析系统的“具体模型”,抽象出其本质的因素,排除次要因素,获得当前系统的“逻辑模型”。
    3. 建立目标系统的逻辑模型:分析目标系统与当前系统逻辑上的差异,从而进一步明确目标系统“做什么”,建立目标系统的“逻辑模型”。
    4. 为了对目标系统进行完整的描述,还需要考虑人机界面和其他一些问题。

    建模方法有:数据流图(DFD)实体关系图(ER)控制流图(CFD)状态转换图(STD)

  10. 结构化分析方法的基本思想。(P31)

    基于“分解”和“抽象”的基本思想,逐步建立目标目标系统的逻辑模型,进而描绘出满足用户要求的软件系统。

  11. 什么是抽象?当考虑问题的模块化解法时,你对抽象层次怎么理解?(P68)

    把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。

  12. 为什么说“高内聚、低耦合”的设计有利于提高系统的独立性?(P70)

    有效的模块化的软件比较容易被开发出来,这是由于能够分割功能而且接口可以简化。

  13. 人机界面设计的三条“黄金原则”。以及应该考虑的四个问题是什么。(P91)

    黄金原则:

    1. 置用户于控制之下
    2. 减少用户的记忆负担
    3. 保持界面一致

    四个问题:

    1. 系统响应时间
    2. 用户求助机制
    3. 出错信息
    4. 命令方式
  14. 为什么软件开发人员不能同时完成测试工作(P130)

    由于思维的局限性,开发人员很难发现自己的错误。

  15. 常用的软件测试模型。软件测试的目的是什么?(P131)

    模型:V模型W模型H模型

    测试目的:可以简化测试的工作量,加速软件开发的进程。

  16. 软件测试应该划分为几个阶段?软件测试各个阶段应重点测试的内容是什么?(P153)

    1. 单元测试:着重测试每个单独的模块,以确保它作为一个单元来说功能是正确的,这种测试称为单元测试。

    2. 集成测试:必须把模块装配(即集成)在一起形成完整的软件包,在装配的同时进行测试,因此成为集成测试。

    3. 确认测试:在软件集成测试之后,还需要进行一系列高级测试。必须测试在需求分析阶段确定下来的确认标准,这种测试成为确认测试。

    4. 系统测试:高级测试的最后一个步骤是系统测试,已经超出了软件工程的范畴,而成为计算机系统工程的一部分。软件一旦经过确认之后,就必须和其他系统元素(如硬件、人员、数据库)结合在一起测试。系统测试的任务是:验证所有的系统元素都能正常配合,从而可以完成整个系统的功能,并达到预期的性能

  17. 与传统软件工程方法相比,面向对象的软件工程方法有哪些优点?(P196)

    1. 符合人类的思维习惯

    2. 稳定性好

    3. 可复用性好

    4. 可维护性好

  18. 简述UML的作用? UML有哪几部分组成? UML图可以分为五个类别。(P204-206)

    作用:主要用于软件的分析与设计,用定义完善的符号来图形化地展现一个软件系统

    组成:视图、图、模型元素、通用机制

    类别:用例图、静态图、行为图、交互图、实现图

  19. 复杂问题的对象模型的5个层次。(P241)

    1. 主题层

    2. 类与对象层

    3. 结构层

    4. 属性层

    5. 服务层

  20. 面向对象方法学的四大特征,面向对象设计的准则。(P261)

    四大特征:

    设计准则:模块化抽象信息隐藏弱耦合强内聚可重用

  21. 简述面向对象语言的技术特点? (P267)

    • 支持类与对象的概念的机制
    • 实现整体/部分结构的机制
    • 实现一般/特殊结构的机制
    • 实现属性和服务的机制
    • 类型检查
    • 建立类库
    • 效率
    • 持久保存对象
    • 将类参数化
    • 开发环境
  22. 什么是软件工程管理?软件工程管理的内容包括哪些方面的管理? (P285)

    软件工程管理是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,已达到既定目标的过程

    软件工程管理包括对软件开发成本控制开发人员组织机构用户软件开发文档软件质量等方面的管理。

  23. 软件项目管理的五大过程。(P309)

    1. 启动过程:确定一个项目或某个阶段可以开始,并要求着手实行。
    2. 计划过程:进行(或改进)计划,并且保持(或选择)一份有效的、可控的计划安排,确保实现项目的既定目标。
    3. 执行过程:协调人力和其他资源,并执行计划。
    4. 控制过程:通过监督和检测过程确保项目目标的实现,必要时采取一些纠正措施。
    5. 收尾过程:取得项目或阶段的正式认可,并且有序地结束该项目或阶段。
  24. 假设一家医院需要开发一套医疗辅助诊断系统,请两出数据流图。(第二章PPT-60)

  25. 假设一家工厂的采购部每天需要一张定货报表,请画出订货系统的数据流图。(P36-37)

  26. 自动售货机软件的测试用例设计。(P141)

  27. 请画出电梯运行的状态图。(P212)

  28. 请画出ATM取款流程场景法分析图,设计每个场景的测试用例。(P142)

  29. 设计面向对象程序对类、对象、集成、多态、封装概念的理解。(P193-P195)

感谢您的支持
-------------本文结束感谢您的阅读-------------