【软件工程】第1章 软件工程概述

本文探讨了软件工程在实际工程中的重要性,指出软件开发不仅仅是编码,而是涵盖需求分析、设计、实现等多个环节。软件的特点包括复杂性、不可见性、服从性和易变性。软件危机表现为开发困难和维护成本高,解决方案包括需求明确、良好设计和测试。软件工程的要素包括方法、过程和工具,分别对应技术手段、任务框架和支撑环境。此外,文章还讨论了软件开发的本质是问题域到运行平台的映射,并强调了软件开发的工程化方法。

【软件工程】第1章 软件工程概述

思考题

  1. 结合你之前的工程经验以及任正非致员工信,谈谈你对软件工程的看法。
  2. 软件开发就是编码么?谈谈你对软件开发的本质的认识。
  3. 举例说明软件的特点有哪些?
  4. 什么是软件危机?软件危机出现的原因及解决手段有哪些?
  5. 软件工程的要素有哪些?各有什么作用?

拙见

1. 结合你之前的工程经验以及任正非致员工信,谈谈你对软件工程的看法。

  • 根据工程经验以及任正非致员工信,可以十分深刻地感受到软件工程的重要性。
  • 首先,通过软件工程,对一个复杂软件进行整体上的评估、做出正确的判断,来使得软件运行时间更长久,虽然放眼短期来看,这项工作会十分耗时,但是却赢得了更加长远的胜利。所以软件工程的重要性显而易见。
  • 其次,在我们之前做的数据库大作业中,对软件工程没有一个十分系统的认识,所以在进行的过程中花费了一些本可以避免的无用功时间,再次充分证明了预先安排好各项任务、以及充分理解需求等事情的重要性。
  • 另外,华为任正非致员工的信中也一直在强调提升软件工程能力的重要性,没有规矩不成方圆,只有把地基打好,才能让万丈高楼平地起,首先要稳,在此基础上,才能求快。

2. 软件开发就是编码么?谈谈你对软件开发的本质的认识。

  • 软件开发并 不是 简单的编码,而是涵盖了需求分析、设计实现部署等一系列过程的完整的一个体系,编码只是这个体系中的一部分。
  • 软件开发的本质 是实现问题域中的概念和处理逻辑到运行平台的概念和处理逻辑的映射。正是这种“映射”使得软件开发人员之间形成一种合力,将软件维护好。

3. 举例说明软件的特点有哪些?

  • 复杂性,大型的软件源代码十分长,且各个模块之间有着许多依赖关系。
  • 不可见性,软件执行时,无法看到源代码的执行,出错不容易复现。
  • 服从性,软件服从于硬件、服从于用户需求、行业要求。
  • 易变性,软件会因为有新的功能或硬件而进行升级。

4. 什么是软件危机?软件危机出现的原因及解决手段有哪些?

  • 软件危机泛指 在计算机软件的开发和维护过程中所遇到的一系列严重问题。
  • 出现软件危机的 原因 主要有以下几个方面:用户需求不明确、缺乏正确的理论指导、软件开发规模越来越大、软件开发复杂度越来越高。
  • 解决途径 有以下几个方面:
    • 重视需求分析,与客户的沟通,确切表达需求
    • 重视设计和实现过程的资料
    • 充分的测试工作
    • 维护和管理工作
    • 统一的、公认的方法论和规范指导。

5. 软件工程的要素有哪些?各有什么作用?

  • 软件工程的要素
    • 方法
    • 过程
    • 工具
  • 作用
    • 方法是技术手段
    • 过程是任务框架和步骤
    • 工具是支撑环境

慕课

软件的定义及特点

  1. 单选(2分)软件产品与物质产品有很大的区别,软件产品是一种()产品。
    A.有形
    B.消耗
    C.逻辑
    D.文档
  2. 多选(2分)下列关于软件的说法正确的是()
    A.软件是通过定制进而生产制造出来的
    B.软件没有磨损老化问题。
    C.软件开发的成本很高
    D.软件开发和运行必须依赖计算机环境
  3. 多选(2分)下列软件属于系统软件的是()
    A.操作系统
    B.编译器
    C.中间件
    D.浏览器
  4. 多选(2分)下述软件属于支撑软件的是()
    A.财务管理软件
    B.编译器
    C.中间件
    D.数据库
  5. 多选(2分)下述软件属于应用软件的是()
    A.财务管理软件
    B.数据库
    C.编译器
    D.浏览器
参考答案
  1. C
  2. BCD
  3. AB
  4. CD
  5. AD

软件工程的起源和概念

  1. 填空(2分)软件工程概念的提出是为了解决()。
  2. 单选(2分)在()年的NATO会议上,软件工程的术语被首次提出。
    A.1966
    B.1968
    C.1970
    D.1972
  3. 判断(2分)软件工程的目的是倡导以工程的原理、原则和方法进行软件开发。
    A.√
    B.×
  4. 多选(2分)软件工程是一门交叉性学科,下列哪些学科是软件工程涉及的?
    A.数学
    B.计算机科学
    C.管理科学
    D.工程科学
参考答案
  1. 软件危机
  2. B
  3. A
  4. ABCD

软件开发的本质和基本手段

  1. 单选(2分)软件开发中实现映射的基本手段是()
    A.抽象
    B.分层
    C.隔离
    D.建模
  2. 填空(2分)软件开发是实现()的概念和处理逻辑到()的概念和处理逻辑的映射。(答案用空格隔开)
  3. 判断(2分)模型一定是在某种特定意图下、从某种特定的角度对物理环境的抽象。
    A.√
    B.×
  4. 多选(2分)下列属于软件模型的是()
    A.概念模型
    B.设计模型
    C.实现模型
    D.部署模型
  5. 判断(2分)软件开发中分层的基本动机是控制开发的复杂性。
    A.√
    B.×
参考答案
  1. D
  2. 问题域 运行平台 或 问题域中 运行平台 或 问题空间 解空间
  3. A
  4. BCD
  5. A

软件工程框架

  1. 单选(2分)下列哪项不属于软件工程框架的三元组。()
    A.目标
    B.范围
    C.原则
    D.活动
  2. 判断(2分)软件开发要从客户的需求出发,在满足用户要求的前提下,功能开发的越多越好。
    A.√
    B.×
  3. 多选(2分)软件需求阶段所要完成的任务包括()
    A.需求获取
    B.需求完善
    C.需求定义
    D.需求规约
  4. 填空(2分)软件设计阶段包括()和()两个阶段。(答案用空格隔开)
  5. 判断(2分)为了保证开发进度,软件只需要在最终完成后再进行确认即可。
    A.√
    B.×
  6. 单选(2分)下列哪个不是软件维护的类型。()
    A.完善性维护
    B.纠错性维护
    C.适应性维护
    D.更新性维护
  7. 单选(2分)只有高水平的(),才能生产出高质量的软件产品。
    A.软件开发技术
    B.软件开发工具
    C.软件工程管理
参考答案
  1. B
  2. B
  3. ACD
  4. 总体设计 详细设计 或 详细设计 总体设计 或 概要设计 详细设计 或 详细设计 概要设计
  5. B
  6. D
  7. C
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值