第一章 习题一

习题一

一、判断题

  1. 软件就是程序,编写软件就是编写程序         (F)
    软件 = 程序 + 数据 + 文档
  2. 软件危机的主要表现是软件需求增加, 软件价格上升.     (F)
  3. 软件工程学科的出现的主要原因是软件危机的出现.     (T)
  4. 与计算机科学的理论研究不同, 软件工程是一门原理性学科  (F)
    软件工程是工程性学科

二、选择题

  1. 在下列选项中,( D ) 不是软件的特征.
    A. 系统性与复制性     B. 可靠性与一致性
    C. 抽象性与智能型     D. 有形性与可控性
  2. 软件危机的主要原因是(D).
    A. 软件工具落后                B. 软件生产能力不足
    C. 对软件的认识不够         D. 软件本身的特点及开发方法
  3. 下列说法正确的是(B)
    A. 20世纪50年代提出软件工程概念    B. 20世纪60年代提出了软件工程概念
    C. 20世纪70年出现了客户机/服务器技术  D. 20世纪80年代软件工程学科达到成熟
  4. (C)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素
    A. 软件生命周期  B. 软件测试  C. 软件工程  D. 软件过程
  5. 在下列选项中,(A)不属于软件工程学科所要学研究的基本内容。
    A. 软件工程材料  B. 软件工程目标  C. 软件工程原理  D. 软件工程过程
  6. 软件工程的三要素是(C)
    A. 技术、方法和工具  B. 方法、对象和类  C. 方法、工具和过程  D. 过程、模型和方法
  7. 用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件称为软件开发工具,通常也称为(D)工具。
    A. CAD   B. CAI   C. CAM   D. CASE

三、简答题

  1. 与计算机硬件相比,计算机软件有那些特点?
    • 无法直接观察计算机软件的物理形态,只能通过观察它的实际运行情况来了解它的功能、特性和质量等。
    • 人们在分析、设计、开发、测试软件产品,以及在软件开发项目的管理过程中,渗透了大量的脑力劳动。
    • 不存在像硬件一样的磨损和老化现象,但存在着缺陷维护和技术更新的问题。
    • 软件的开发和运行必须依赖于特定的计算机系统环境。
    • 具有可复用性。
  2. 软件就是程序吗?如何定义软件?
     人们经过长期的时间已经逐步认识到,软件≠程序,程序只是软件的关键要素。普遍能被接受的观点是:软件 = 程序 + 数据 + 文档。
  3. 什么是软件危机?什么原因导致了软件危机?
    • 软件危机的现象如下:
    1. 经费超过预算,项目一再拖延。
    2. 不重视需求,开发的软件不能满足用户的要求,项目成功率低。
    3. 没有规范的软件工程方法,软件可维护性差、软件质量差、可靠性差。
    4. 开发工具落后,手工方式,开发效率低。
    • 所有导致软件危机的原因,都与软件本身的产品特点相关。
    1. 软件是一个复杂的逻辑产品。如果没有解决复杂问题的有效方法,以及软件产品的结构、质量、可维护性得不到保障,开发与维护费用就会升高。
    2. 软件产品不能实现大规模复用,这导致了软硬件生产效率的不同。
    3. 软件生产时脑力活动,它看不见、摸不着, 开发成本、开发周期等都无法做到准确估算,生产过程不易控制。
    4. 软件成本主要是由研发成本构成;而硬件的生产成本主要是材料和制造成本,分摊的研发成本很少,即软件研发过程与硬件制造过程相比要复杂得多。
  4. 为什么说软件工程的发展可以在一定程度上解决软件危机的各种弊端?
     软件工程的提出是为了解决软件危机所带来的各种弊端。具体地讲,软件工程的目标主要包括以下几点。
    1. 使软件开发的成本能够控制在预计的合理的范围内。
    2. 使软件产品的各项功能和性能能够满足用户需求。
    3. 提高软件产品的质量。
    4. 提高软件产品的可靠性。
    5. 使生产出来的软件产品易于移植、维护、升级和使用。
    6. 使软件产品的开发周期能够控制在预计的合理时间范围内。
  5. 请简述软件工程研究的内容。
     软件工程研究的内容包括软件开发方法、软件开发模型、软件支持过程和软件管理过程。
    1. 软件开发方法的内容涵盖市场调研、正式立项、需求分析、项目策划、概要设计、详细设计、编程、测试、试运行、产品发布、用户培训、产品复制、销售、实施、系统维护、版本升级等。
    2. 常用的软件开发模型有瀑布模型、迭代模型、增量模型和原型模型等。
    3. 软件支持过程由所支持的CASE工具组成,常用的CASE工具有Power Designer和Rational Rose等。
  6. 请简述软件工程的三要素。
    软件工程的是三要素是从计算机科学的观点来看软件工程,即从软件开发的激素层次来看有过程、方法和工具这三要素。
    1. “过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。
    2. “方法”为软件开发提供“如何做”的技术。它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法,如经常说的面向结构,面向对象、面向组件等开发方法,以及项目管理中的估算、度量、计划等管理方法。软件工程以介绍方法为主。
    3. “工具”可为过程和方法提供自动的或半自动的支持。这些工具既包括硬件,也包括软件。软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件工具集成起来搭建一个能够支持团队开发的平台,称为计算机辅助软件工程,即CASE。CASE集成了软件、硬件和一个存放开放过程信息的软件工程数据库,形成了一个软件工程环境。
  7. 请简述软件工程的目标、过程和原则。
    目标、过程和原则是一切工程的三维框架,这里是以工程的观点来看待软件开发。
    1. 软件工程的目标:降低成本、及时交付高质量的软件产品(高质量、高效率、高效益)。
    2. 实现目标的过程即完成产品加工的过程,包括:基本过程、支持过程和组织过程。
    3. 进行过程应遵守的原则:原则就是过程中的轨道约束,包括:选取适宜的开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程的管理。
  8. 请简述软件工程的基本原则。
    软件工程的基本原则如下:
    1. 将软件的生命周期划分为多个阶段,对各个阶段实行严格的项目管理。
    2. 坚持阶段评审制度,以确保软件产品的质量。
    3. 实施严格的产品控制,以适应软件规格的变更。在软件开发的过程中,用户需求很可能不断地发生变化。
    4. 采用现代的程序设计技术。
    5. 开发出来的软将产品应该能够清楚的被审查。
    6. 合理地安排软件开发小组的人员,并且开发小组的人员哟啊少而精。
    7. 不断地改进软件工程实践。
  9. 请简述现代软件工程与传统工程显著的区别和改进。
    传统的软件工程是基于结构化的软件开发方法,而现代软件工程师一面向对象技术为标志。
    1. 不仅在编程技术上有很大的该井,而且在分析、设计等整个开发过程中,采用面向对象的四位方式,更加完整、自然地反映客观世界。
    2. 采用架构技术,开发效率、产品质量得到了极大的提高。
    3. 采用架构技术,开发效率、产品质量得到了极大提高。
    4. 更注重团队开发和管理,融入更多、更新的管理理念和手段,如RUP模型、XP模型、过程改进、能力成熟度模型、配置管理等。
posted @ 2020-04-17 05:32  Kmirror  阅读(1816)  评论(0)    收藏  举报