第一章绪论

第一节软件工程概念的提出与发展

1. 软件危机

1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词。用来描述因为软件生产率,软件质量无法满足社会发展的需求,以至于导致社会,经济发展受到制约的现象,这个现象也称之为软件危机现象(另外同年的NATO会议上也提出了软件工程的概念)。

重点(软件危机现象出现的原因)

  1. 软件开发的速度迟缓
  2. 软件的质量底下
  3. 软件开发成本上升

3. 软件工程

软件工程的定义:软件工程是应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的学科。

4. 软件工程的发展

1. 20世纪60年代末到80年代初

软件系统的规模,复杂性以及在关键领域的广泛应用,促进了软件的工程化开发和管理。主要成果体现为:提出了瀑布模型,试图为开发人员提供有关活动组织方面的指导:开发了诸多过程式语言(例如,Pascal语言C语言Ada语言等)和开发方法(例如,jackson方法结构化方法等),试图为开发人员提供好的需求分析和设计手段,并开发了一些支持工具,如调试工具,测试工具等。在这一时期,开始出现各种管理方法(例如,费用估算文档复审),开发了一些相应支持工具(例如,计划工具配置管理工具)等。因此,这一时期的主要特征可概括为:前期主要研究系统实现技术,后期则开始关注软件质量和软件工程管理。

2. 20世纪80年代以来

基于已开展的大量软件工程实践,围绕对软件工程过程的支持,开展了一系列有关软件生产技术,特别是软件复用技术和软件生产管理的研究和实践。这一时期的主要成果是提出了《软件生存周期过程》等一系列软件工程标准;大力开展了计算机辅助软件工程(CASE)的研究与实践(例如,我国在“七五”,“八五”,“九五”期间,均把这一研究作为国家重点科技攻关项目),各类CASE产品相继问世。与此同时,出现了最引人注目的面向对象语言,例如Smalltalk。C++,Eiffel等;提出了面向对象软件开发方法;在工程管理方面,开展了一系列过程改进项目,其目标是在软件产业的实践中,建立一种量化的评估程序,判定软件组织和过程的成熟度,提高组织的过程能力。
近几年来,围绕网络,特别是Internet的广泛应用,以软件复用技术为基础,在软件构件技术,软件平台技术(包括应用框架),需求工程技术,领域分析技术以及应用集成技术等方面,均取得了非常有影响的成果,有力地促进了软件工程学科和软件产业的发展。

第二节软件开发技术的本质

1. 软件的概念

计算机软件一般是指计算机系统中的程序及其文档。(软件=程序+文档)

2. 软件开发的目标

软件开发的目标是将问题域中的概念映射为运营平台层面上的概念。

3. 软件开发的本质

软件开发的本质概括为:不同抽象层术语之间的“映射”,以及不同抽象层处理逻辑之间的“映射”
软件开发既然是实现多个不同抽象层之间的映射,而且是由开发人员来做这样的映射,因此自然就要涉及两个方面的问题:一,是如何实现这样的映射:二,是如何管理这样的映射,以保障映射的有效性和正确性。
首先谈一下如何实现这样的映射,这里又涉及了两个方面的内容,一是过程方向,即求解软件的开发逻辑。二是过程途径,即求解软件的开发手段。
而关于如何管理这样的映射,是管理层面上的问题,而不是技术层面上的问题,其主要功能包括软件项目的规划,组织,人员安排,控制和领导等。

4. 模型的概念

模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,对系统内各模型元素以及他们之间关系的语义描述。

5. 模型的类别

在软件开发领域,系统模型分为两大类,一类称为概念模型,描述了软件是什么;另一个类型称为软件模型,描述了实现概念模型的软件解决方案。软件模型又可进一步分为设计模型,实现模型和部署模型。

5. 本章小结

  1. 软件危机的出现,导致了软件工程的引入。
  2. 软件开发的本质,实现问题空间的概念和处理逻辑到解空间的概念和处理逻辑之间的映射
  3. 系统建模是指运用所掌握的知识,通过抽象,给出系统的一个结构。
  4. 模型是一个抽象
  5. 在软件开发领域中,模型有两大类:概念模型和软件模型

软件工程第一章绪论————(2019.12.27学习笔记)相关推荐

  1. CCNA第一章网际互联考试要点学习笔记

    序 笔者一直想获取思科的网络工程师认证,因为没有能下定决心以及苦于未能掌握好计算机的基础知识,所以迟迟未能达成目标.现在笔者决定通过博客园写随笔和读书笔记摘抄的方式,记录下我学习备考CCNA以及CCN ...

  2. 小程序实现导航栏效果————(2019.12.23学习笔记)

    首先新建一个自定义组件,组件名随意,这里我设置的组件名为My-tab,新建完组件之后,第一件事就是声明好导航栏可能需要用到的样式(代码如下) /* Accessories/My_tab/My_tab. ...

  3. jBPM3.12用户指南中文翻译----第一章 绪论

    这是Jboss 的jBPM3.12框架的用户指南的中文翻译.其中第一章的译文,是我在网上找到的.其他几章都是我自己做的翻译.我的翻译是中英文对照,只翻译部分我认为重要的,不翻译简单的英文,以免浪费你我 ...

  4. 机器学习-周志华-学习记录-第一章绪论

    文章目录 绪论 一.什么是机器学习 二.基本术语 三.假设空间 四.归纳偏好 总结 参考链接 绪论 为了更早地适应研究生的生活,我决定重新学习周志华老师的机器学习这本书.同时也为了能够养成博客记录的习 ...

  5. 冈萨雷斯《数字图像处理》学习总结及感悟:第一章 绪论 百闻不如一见

    ☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░ 一.引言 好几月前开始自学OpenCV-Python,但老猿以前没接触过图像基础知识, ...

  6. 小吴的《机器学习 周志华》学习笔记 第一章 绪论

    小吴的<机器学习 周志华>学习笔记 第一章 绪论 近一年时间接触到不少机器学习的知识,虽然断断续续学了一些,总感觉还没有入门(只学会了疯狂调包).因此,最近开始系统学习Machine Le ...

  7. 人工智能原理——第一章 绪论

    人工智能原理--第一章 绪论 文章目录 人工智能原理--第一章 绪论 1.1 人工智能的发展 人工智能的发展 – 孕育期 人工智能的发展 – 摇篮期 人工智能的发展 – 发展期(1970-1979) ...

  8. 模拟电子技术基础 第一章 绪论

    第一章 绪论 1.1电子器件与电子电路发展史概要 1.1.1电子管的发明 1904年,电子管又名真空管,其工作原理是在抽成真空的玻璃管内放置一个灯丝和若干个金属电极,当灯丝通电加热后,是金属内电子获得 ...

  9. 辩证唯物主义 历史唯物主义 第一章绪论 一 唯物主义和唯心主义

    第一章绪论 马克思主义是革命的工人阶级的思想武器.在马克思主义的完整的学说中,包括三个组成部分:哲学.政治经济学.科学社会主义.辩证唯物主义和历史唯物主义是马克思主义哲学,是马克思主义的全部学说的哲学 ...

最新文章

  1. scala 自带json_scala中复杂对象转JSON和解析的方法
  2. C语言 · 求矩阵各个元素的和
  3. centos mysql 设置_CentOS下MySql优化及安全设置centos
  4. python学习(二十三) String(下) 分片和索引
  5. 在天气预报中应用机器学习
  6. 【AGC013D】Pilling Up dp
  7. 鼠标右击 左击 等总结
  8. iOS中的armv6、armv7、armv7s
  9. 数据挖掘的相关知识例子
  10. 循环队列及C语言实现二
  11. Visual C++ 2008入门经典 第四章数组 字符串
  12. 小熊派IoT开发板系列教程正式发布——免费学习
  13. ECharts插件的使用
  14. java版我的世界光追,老瓶装新酒 光追版《我的世界》将至你心动了吗
  15. Python实现查询12306火车票信息
  16. [leetcode]5. 最长回文子串
  17. 网络安全03_推荐书籍_网络安全工具_搜集到的网络安全学习的建议_Web安全/渗透测试技能要求_国内外安全企业网站
  18. OpenCV批量读取路径下所有图片
  19. 软件测试知识点和面试题--手工测试篇(功能测试)
  20. 字符串和数组的长度 java c++

热门文章

  1. 如何防止工具(八门神器)进行内存修改(转)
  2. canvas制作简单表格
  3. 罗切斯特大学排名计算机排名,罗切斯特大学计算机工程硕士排名第35(2020年TFE Times排名)...
  4. html td 的横向与纵向合并
  5. 澳大利亚莫纳什大学推出公开漏洞奖励计划
  6. C++STL库:String介绍
  7. 6-1 判断顺序表是否有序(Java语言描述 ) (15 分)
  8. 推荐一款word转pdf超好用的包:aspose-words(解决中文乱码)
  9. 高德地图实现昼夜、卫星图切换
  10. macbook键盘背光打不开怎么办?如何解决苹果笔记本键盘背光不亮的问题?