文章目录

  • 一:软件的概念、特点与发展
    • (1)软件发展的三个阶段
    • (2)软件的概念
    • (3)软件的特点
  • 二:软件危机
    • (1)软件危机的概念
    • (2)软件危机的表现
    • (3)软件危机产生的原因
      • A:主观原因
      • B:客观原因
    • (4)解决方法

一:软件的概念、特点与发展

(1)软件发展的三个阶段

  • 程序设计阶段(50~60年代)
  • 程序系统阶段(60~70年代)
  • 软件工程阶段(70年代以后)

(2)软件的概念

软件:是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合

  • 数据:是使程序能够适当处理信息的数据结构
  • 程序:是能够完成预定功能和性能的可执行指令序列
  • 文档:是开发、使用和维护过程中程序所需要的图文资料

(3)软件的特点

  1. 软件本身具有复杂性
  2. 软件成本高昂
  3. 软件未摆脱手工开发方式
  4. 软件维护与硬件维护有本质区别,维护难度高
  5. 软件开发不是传统的硬件制造过程
  6. 软件是一种逻辑实体,无磨损性

二:软件危机

(1)软件危机的概念

软件危机:在计算机软件开发和维护过程中所遇到的一系列严重问题。主要包含两个方面

  • 如何开发软件,以满足日益增长的软件需求
  • 如何维护数量不断膨胀的已有软件

(2)软件危机的表现

①对软件开发成本和进度估算不准确

  • 实际成本比估计成本有可能高出一个数量级,实际进度比预期进度拖延几个月甚至几年的现象并不罕见。这种现象降低了软件开发组织的信誉。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满用户对已完成软件不满意

②软件质量不可靠

  • 软件可靠性和质量保证的确切的定量概念刚刚出现不久,软件质量保证技术(审查、复审、程序正确性证明和测试)还没有坚持不懈地应用到软件开发的全过程中,这些都导致软件产品发生质量问题。

③软件不可维护

  • 很多程序中的错误是非常难改正的,实际上不可能使这些程序适应新的硬件环境,也不能根据用户的需要在原有程序中增加一些新的功能。“可重用的软件”还是一个没有完全做到的、正在努力追求的目标,人们仍然在重复开发类似的或基本类似的软件

④没有适当的文档资料

⑤软件成本在计算机系统中所占比例逐年上升

  • 由于微电子学技术的进步和生产自动化程度的不断提高,硬件成本逐年下降,然而软件开发需要大量人力,软件成本随着通货膨胀以及软件规模和数量的不断扩大而持续上升

⑥软件开发生产率低

  • 软件产品“供不应求”的现象使人类不能充分利用现代计算机硬件提供的巨大潜力。

(3)软件危机产生的原因

A:主观原因

  • 忽视需求分析
  • 轻视软件维护
  • 没有认识到程序只是软件的一部分(很多人的共性问题)
  • 没有认识到软件开发只是软件漫长生命周期中一个比较次要的阶段
  • 越到后期如果引入变动则代价越高

B:客观原因

  • 软件是逻辑实体,具有不可见性,所以管理和控制较为困难
  • 软件不会磨损,维护意味着需要修改原来的设计,维护困难
  • 软件规模庞大,程序复杂性随规模增加而增加

(4)解决方法

①对计算机软件应该有正确的认识

  • 应该彻底消除在计算机系统早期发展阶段形成的“软件就是程序”的错误观念。软件是程序、数据及相关文档的完整集合。其中,程序是能够完成预定功能和性能的可执行的指令序列;数据是使程序能够适当地处理信息的数据结构;文档是开发、使用和维护程序所需要的图文资料

②要吸取和借鉴人类长期从事各种工程项目积累的原理、概念、技术和方法

③积极开发和使用计算机辅助开发软件

④探索更好更有效的管理措施和手段对开发过程进行控制和管理

(软件工程复习核心重点)第一章软件工程概论-第一节:软件和软件危机相关推荐

  1. (软件工程复习核心重点)第一章软件工程概论习题

    这一章题目主要以简答和名词解释为主 文章目录 一:选择题 二:填空题 三:名词解释 (1)必考 (2)了解 四:简答题 (1)必考 1.关于软件危机 2.关于软件工程 3. 关于软件生命周期 4.关于 ...

  2. (软件工程复习核心重点)第一章软件工程概论-第二节:软件工程

    文章目录 一:软件工程 (1)软件工程的定义 (2)软件工程的本质特征 (3)软件工程基本原理 二:软件工程方法学 (1)概念 (2)分类 一:软件工程 (1)软件工程的定义 软件工程:采用工程的概念 ...

  3. (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算

    文章目录 一:软件项目管理综述 (1)管理 (2)软件项目管理 二:估算软件规模 (1)代码行技术 A:定义 B:方法 C:优缺点 (2)功能点技术 A:定义 B:信息域特性 C:估算功能点的步骤 ① ...

  4. (软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型

    文章目录 一:软件过程概念 (1)定义 (2)构成 二:主要模型 (1)瀑布模型 A:定义 B:特点 C:优缺点 D::适用范围 E:实际的瀑布模型 (2)快速原型模型 A:定义 B:原理 C:优缺点 ...

  5. (软件工程复习核心重点)第一章软件工程概论-第三节:软件生命周期

    文章目录 一:软件定义 (1)问题定义 (2)可行性研究 (3)需求分析 二:软件开发 (1)总体设计 (2)详细设计 (3)编码和单元测试 (4)综合测试 三:软件维护 一:软件定义 (1)问题定义 ...

  6. (软件工程复习核心重点)第七章软件维护-第一节:软件维护的概念和特点

    文章目录 一:软件维护的概念 (1)定义 (2)分类 二:软件维护的特点 (1)结构化维护和非结构化维护差别巨大 (2)维护的代价高昂(了解) (3)维护存在很多问题(了解) 一:软件维护的概念 (1 ...

  7. (软件工程复习核心重点)第六章实现和测试-第一节:编码

    文章目录 一:定义 二 :程序设计语言的选择 (1)重要性(了解) (2)适宜的程序语言的优点 (3)程序设计语言的选择标准 A:理想标准 B:实际标准 三:编码风格 (1)程序内部的文档 A:定义 ...

  8. (软件工程复习核心重点)第四章总体设计-第一节:总体设计基本概念和设计过程

    文章目录 一:总体设计的概念 (1)定义 (2)主要任务 (3)步骤 (4)必要性(了解) 二:设计过程 (1)系统设计阶段 1:设想供选择的方案 2:选取合理的方案 3:推荐最佳方案 (2)结构设计 ...

  9. (软件工程复习核心重点)第三章需求分析-第一节:需求分析相关概念

    文章目录 一:需求分析相关概念 (1)定义 (2)必要性(了解) (3)准则 二:需求分析的任务 (1)确定对系统的综合要求 (2)分析系统的数据要求 A:意义(了解) B:工具 (3)导出系统的逻辑 ...

最新文章

  1. 【C 语言】文件操作 ( 写文本文件 | Qt 创建 C 语言命令行项目 )
  2. JAVA中的多线程(一)
  3. python哪个方向工资高_Python薪资最高的是一线城市,竟然平均月薪高达20k!
  4. .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
  5. 非递归分治法排序 MergeSort without recursion
  6. Hlg 1030 排序
  7. cc=arm-linux,针对基于嵌入式ARM的Linux系统的交叉编译
  8. Transact-SQL语言
  9. 华为改变策略,出击超低端手机市场
  10. 使用dubbo遇到了Unsatisfied dependency expressed through field ‘userService‘
  11. Getshell总结
  12. 校招(含实习生春招)指南
  13. android百度地图API 骑行,步行导航的DEMO以及途径点问题
  14. git 代码记录单条合并的方法
  15. 数据库重组函数reorg
  16. ThinkPad E420升级改造过程
  17. APP个人开发者月入仅千元,应用开发创业为何这么难?
  18. python语言在哪些控制结构中使用else_一文看懂Python的控制结构:For、While、If…都有了...
  19. OpenSSL3.0.5安装
  20. 触摸屏显示无法连接到服务器,wincc flexible软件打开时提示“无法连接到SQL服务器-工业支持中心-西门子中国...

热门文章

  1. 是什么让程序员对工作失去了激情?
  2. 充电枪cp信号控制板_筋膜枪究竟是不是智商税?体验评测后,我的回答更肯定了...
  3. 使用ComplexHeatmap绘制3D热图
  4. R统计和作图文章汇总
  5. Acoustica 7 Premium Edition for Mac(音频处理软件) v7.3.28
  6. 省选+NOI 第四部分 图论
  7. php 解压rar文件怎么打开方式,php 解压rar文件
  8. 二叉树层次遍历python_根据二叉树层序遍历顺序(数组),将其转换为二叉树(Python)...
  9. python pca降维_机器学习之sklearn中的降维算法
  10. Linux笔记-centos7编译安装svn 1.14.1