目录
软件工程导论 -- 复习资料
/  

软件工程导论 -- 复习资料

软件工程导论 -- 复习资料

填空题

  1. 在软件开发的各个阶段中,对软件开发成败影响最大的是 需求分析 阶段
  2. 由于主观因素的影响,在软件测试时,最好不要让 程序员 检查程序
  3. 在UML图里,省略对象的名字,而用冒号加类名的形式表示对象,这被成为 匿名对象
  4. 一个UML模型只描述一个系统 要做什么 ,它并没告诉我们系统是 怎么做
  5. 接口是可以在整个模型中反复使用的一组行为,是一个没有 属性 而只有方法的类
  6. 在泛化(继承)关系中,子类 可以替代 父类 。也就是说,后者出现的地方,前者都可以出现。但是反过来却不成立。
  7. 软件包括3个组成部分,其中最容易被忽略的是 文档。其中这三部分分别是 数据、文档、程序
  8. 基于构件的开发模型的主要目的是 软件复用
  9. 需求分析中,context diagram指的是 环境图
  10. 在界面设计里,打印机打印结果属于 硬拷贝
  11. 结构化分析方法的分析策略是 自顶向下,逐步求精
  12. 内聚 是度量一个模块内的各个元素彼此结合的紧密程度,它是信息隐藏概念的自然扩展
  13. 面向对象系统里,每个对象最少需包含一个 属性
  14. 一个体系结构框架,最基本的组成单元是
  15. 为保证构件不能有任何外部的可见状态,构件不能与自己的 拷贝 有所区别。
  16. 面向对象分析的目的是对客观世界的系统进行 建模
  17. 软件生存周期是指一个软件从 开发 开始直到该软件最终退役为止整个时期。
  18. 从结构化设计到 面向对象程序设计 ,是程序设计方法的又一大飞跃。
  19. 曾被誉为 ”程序设计方法的革命“ 的 结构化 程序设计,使程序设计从主要依赖于程序员个人的自由活动变为有章可循的一门科学。
  20. 代码的视觉组织中,利用空格的主要目的是为突出 运算 的优先性。
  21. 由于软件的特性中的 形态特性 ,导致不能用观察物理、化学性质的方法对软件进行评价。
  22. 计算机软件是指与计算机系统操作有关的 程序设计 以及任何与之有关的文档资料。
  23. 在软件生存周期中,软件定义过程的基本任务是确定软件系统的 工程需求
  24. 喷泉模型的两个主要特征是 迭代无间隙特征
  25. 结构化需求分析中,3种分析模型的 ”粘合剂“ 指的是 数据字典
  26. 结构化设计中,为引入灵活性,需要消除代码中的 常数
  27. 面向对象软件开发方法中,jacobson方法也称为 oose 面向对象软件工程方法 Object-oriented software engineering
  28. UML的依赖关系中,call指的是 调用
  29. PCBMER框架中,B指的是 Bean presentation controller bean mediator resource
  30. 在软件维护过程中,共有4种维护类型,从工作量大小的角度来说,仅次于完善性维护的是 适应性维护 校正性维护、适应性维护、完善性维护、预防性维护
  31. 过程文化的特征里,遵循过程已列入组织方针和规程,指的是 制度化
  32. 软件开发风险评估的第一步是 风险识别
  33. 在软件测试的步骤中,单元 测试是校验每个模块是否单独工作。
  34. 调试是在测试发现错误之后 纠错 的过程。
  35. 数据流图和数据字典共同构成了系统的 逻辑模型 ,是需求规格说明书的主要组成部分。
  36. 划分模块时尽量做到 高内聚、低耦合,保持模块的独立性,尽量使用公共模块。
  37. 结构化设计以 数据流图 为基础,按一定的步骤映射成软件结构。
  38. 软件危机是指在计算机软件开发和维护过程中 所遇到一系列严重问题
  39. 瀑布模型 是将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型。

选择题

  1. 在软件生存周期中,可行性分析和项目开发计划 阶段必须要回答的问题是 ”要解决的问题是什么?“
  2. 详细设计 阶段是为了每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。
  3. 软件是一种逻辑产品,它的主要开发是 研制
  4. 以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是 喷泉模型
  5. 软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是 可移植性
  6. 属于概要设计阶段的任务是 组装测试计划
  7. 下列选项中,属于软件配置管理的任务的是 对程序、数据、文档的各种版本进行管理
  8. 属于产品的内部属性的是 模块的耦合性
  9. 基于代码行的面向规模的度量方法适合于 过程式程序设计语言和事后度量
    • 软件项目工作量分布曲线不是线性的
    • 到开发后期临时增加人力,是不会加快进度的
    • 适当推迟交货时间可大幅度降低开发工作量
    • 在软件生存周期的不同阶段各类人员的参与情况是不同的
  10. 下列选项中,不能进行并行工作的是 需求复审
    • 过程设计、单元测试、编码是可以并行的。
  11. 在软件工作中,软件销售 不属于软件开发部分的任务
  12. 需求分析最终结果是产生 需求规格说明书
  13. 数据字典中,一般不出现的条目是 源点和终点
  14. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的 输入有输出
  15. 面向对象技术中,对象是类的实例,对象有三种成分:标识、属性和方法(或操作)
  16. 程序的三种基本控制结构的共同特点是 只有一个入口和一个出口
  17. 软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫 面向对象分析
  18. 原型化方法是用户和设计者之间执行的一种交互构成,适用于 需求不确定性高的 系统
  19. 在数据流图中,圆或椭圆代表 加工
  20. 模块的内聚度越高,说明模块内各成分彼此结合的程度越 紧密
  21. 软件需求分析是保证软件质量的重要步骤,它的实施应该是在 软件定义阶段
  22. 在七种耦合中,最低耦合是 非直接耦合
  23. 进行需求分析可使用多种工具,但 PAD图 是不适用的 PAD图是问题分析图
  24. 数据字典的任务是对于数据流图中出现的所有被命名的数据元素,在数据字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的 描述
  25. 在结构化分析方法中,用以表达系统内数据的运动情况的工具有 数据流图
  26. 结构化分析方法是一种面向 数据流 的需求分析方法
  27. 软件需求规格说明书的内容不应该包括对 算法的详细过程 的描述
  28. 通过 功能分解 可以完成数据流图的细化
  29. 如果用户对系统的目标不是很清楚,需求难以定义,这时最好使用 原型 进行系统开发
  30. 软件的用户界面作为人机接口起着越来越重要的作用,用户界面的 易操作性 是用户界面设计中最重要的叶是最基本的目标
  31. 软件测试的目的是 发现错误、降低错误带来的风险
  32. 软件生命周期中所花费的最多的阶段是 软件维护
  33. 在E-R模型中,包含以下基本成分 实体、联系、属性
  34. 软件测试过程是软件开发过程的逆过程,其最基础性的测试应是 单元测试
  35. 在软件测试过程的4个步骤中,测试依据是需求规格说明的是 确认测试 单元测试、集成测试、系统测试、确认测试(验收测试)
  36. 黑盒测试法属于 动态测试
  37. 软件测试按照功能划分可以分为 白盒测试和黑盒测试
  38. 对建立良好的程序设计风格,程序应简单、清晰、可读性好
  39. 软件工程学是应用科学理论和工程上的技术指导软件开发的学科,其目的是 用较少的投资获得高质量的软件
  40. 按照软件工程的原则,模块的作用域和模块的控制域之间的关系是 模块的作用域应在模块的控制域之内
  41. 软件构件 是可复用的,提供明确接口完成特定功能的程序代码块
  42. 顺序图由类角色,生命线,激活期和 消息 组成
  43. 关于协作图的描述:
    • 协作图是一个交互图,强调的是参加交互的对象的组织
    • 协作图并不是顺序图的一种特例
    • 协作图中有小溪流的顺序号
    • 在Rose工具中,协作图可在顺序图的基础上按 ”F5“ 键自动生成。

简答题

  1. 用户需求和系统需求各有什么特点?

    用户需求是从用户角度来描述系统功能和非功能需求,以便让不具备专业技术方面知识的用户能看懂。
    用户需求是描述系统的外部行为,用自然语言、图表和直观的图形来叙述。

    系统需求是比用户需求更详细的需求描述,是系统实现的基本依据,因此,是一个完全的、一致的系统描述,是软件工程人员系统设计的起点。
    系统需求描述可能包括许多不同的模型,如对象模型和数据流模型。

  2. 软件测试的目的是什么?为什么把软件测试的目的定义为只是发现错误?

    软件测试的目的有:

    • 软件测试是为了发现错误而执行程序的过程

    • 一个好的测试用例能够发现至今尚未发现的错误

    • 一个成功的测试是发现了至今尚未发现的错误

    软件测试的目标定义为只是发现错误,原因是软件测试可以有两个目标,一个是预防错误,另一个是发现错误。由于软件开发是人的创造性劳动,人的活动不能完美无缺,错误可能发生在任何一个阶段,因此预防错误这一目标几乎是不可实现,所以软件测试的目标定义为只是发现错误。

  3. 在UML的活动图中,泳道、菱形、同步棒代表什么含义(起到什么作用)?

    泳道:代表活动发生的地点,一般是一些起相似作用的类的集合。
    菱形:代表判定,判断某个条件的取值,并转到不同的后续分支中去。
    同步棒:同步棒括起来的活动必须都成功完成,才能进入到后续的活动中去。

  4. 软件生存期如何划分?

    软件生存周期:一个软件的从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期一般可分为以下阶段:

    • 问题定义
    • 需求分析与可行性研究
    • 设计
    • 编码
    • 测试
    • 运行与维护

    软件生存期也可以分为三个大的阶段:计划阶段、开发阶段和维护阶段。

  5. 什么是软件结构?简述软件结构设计优化准则。

    软件结构:软件结构的模块层次结构,反映了整个系统的功能实现,即将来程序的控制体系。

    软件结构设计优化准则:

    • 划分模块时,尽量做到高内聚、低耦合,保持模块的相对独立性,以此为原则优化初始的软件结构。
    • 一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近。
    • 软件的深度、宽度、扇入、扇出应适当
    • 模块的大小要适中。
    • 模块的控制范围模块的接口要简单、清晰、含义明确、便于理解、易于实现、测试与维护。
  6. 可行性研究包括哪几个方面的内容?

    技术可行性:现有技术能否实现本系统,现有技术人员能否胜任,开发系统的资源能否满足;
    经济可行性:经济效益是否超出开发成本;
    操作可行性:系统操作在用户内部是否行得通;
    法律可行性:新系统开发是否会侵犯他人、集体或国家利益,是否违反国家法律;

  7. 分析软件危机产生的主要原因有哪些?

    除了软件本身的特点,其原因主要有以下几个方面:

    • 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。
    • 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。
    • 软件开发过程不规范。如,没有真正了解用户的需求就开始编写程序。
    • 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。
    • 缺少有效的软件评测手段,提交给用户的软件质量不能完全保证。
  8. 软件测试包括哪些步骤?同时说明这些步骤的测试目的是什么?

    单元测试:目的是代码达到模块说明书的要求
    集成测试:目的是将经过单元测试的模块逐步组装成具有良好一致性完整的程序
    确认测试:目的是确认程序系统是否满足软件需求规格说明书的要求
    系统测试:目的是检查能否与系统的其余部分协调运行,并且完成SRS对它的要求

  9. 什么是软件复用?简述软件复用和软件共享、软件移植的区别?

    软件复用:是指在构造新的软件系统的过程中,对已存在的软件人工制品的使用技术。
    软件共享:在一个系统中使用多次使用一个相同软件的成分。
    软件移植:对一个软件进行修改,使它能运行于新的软、硬件平台。

  10. 顺序图和通信图中,消息有哪三种?各自的意义和表示什么?

    消息可以是 简单的、同步的和异步的。
    简单的消息是从一个对象到另一个对象的消息应答,收到应答后才能继续自己的操作。
    发送异步的消息的对象不需要等待对方的应答便可以继续自己的操作。
    在顺序图中,简单消息是一个简单箭头,同步消息是实心箭头。
    异步消息是一个半边箭头

  11. 认为 ”软件开发就是编程序。“ 这种观点是否正确?为什么?

    认为 “软件开发就是编程序。” 这种观点是错误的。
    首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合,程序只是软件的组成部分之一,其次在软件开发中编程只是软件开发过程中的一个阶段。

  12. 什么是软件工程?

    软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过的时间考验而证明正确的管理技术和当前能够得到最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

  13. 顶层数据流图或环境图的作用是什么?

    顶层数据流图(或称环境图)仅包括一个数据处理过程,也就是要开发的目标系统。其作用如下:

    • 确定系统在其环境中的位置,与系统有联系的外部实体(包括硬件、软件、组织机构及人)有哪些。
    • 通过确定系统的输入和输出与外部实体的关系确定系统的边界,也就是要确定哪些功能或处理属于系统范围之内,哪些属于系统范围之外,需要由其他系统处理或人工处理。
  14. UML中有哪些关系?解释类图中聚合和关联的相同点和不同点。

    在UML中,常见的关系由泛化、聚合、关联、依赖和实现。
    在类图中,关联是一种结构关系,它描述了两个或多个类的实例之间的连接关系。
    聚合描述了整体和部分之间的结构关系。按照关联关系的定义,聚合属于一种特殊的关系,只不过这种关联关系具有明确的整体 - 部分含义而已。从耦合度的角度来看,聚合关系要强于关联关系。

  15. 面向对象分析需要建立三个模型是什么?

    面向对象分析需要建立3个模型是:

    • 由用例和场景表示的功能模型(用例模型);
    • 用类和对象表示的静态模型(对象模型);
    • 由状态和顺序图表示的动态模型(交互模型)

标题:软件工程导论 -- 复习资料
作者:gitsilence
地址:https://blog.lacknb.cn/articles/2020/01/04/1578107192948.html