书籍详情
《软件工程专业导论》[56M]百度网盘|亲测有效|pdf下载
  • 软件工程专业导论

  • 出版时间:2020-06
  • 热度:6836
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介

  专业导论课的目的是将学生引入软件工程专业,并对软件工程专业产生浓厚的学习兴趣,激励学生成为本专业的高级人才。本课程是对四年本科学习内容的引导,而不是对某一门课的引导。对此,需要从计算机、编程语言、软件项目开发、数字通信网络、数据与信息处理、音视频与计算机图形学、机器与智能等历史发展的角度进行论述和引导,让学生从100多年前的计算技术历史快速地进入当今社会,并具备面向未来的人工智能和智能制造的眼光,引导学生能够从软件产业和人才发展的角度思考自己今后的学习与工作。
  《软件工程专业导论》分为9章正文和4个附录。

作者简介

王安生,北京邮电大学教授。曾任(解放军)北京系统工程研究所软件工程研究室主任,多项军用标准的主编和起草者,或部委科技二等奖一项,立三等功一次。主讲软件工程、软件过程改进等课程。2005~2006年度在英国做访问学者。2013年被选举为软件学院教授委员会主席。著有《软件工程化》2014年清华大学出版,93万字)等书籍。

内页插图

目录

目录

第1章从手工计算到自动计算
1.1数的表达
1.1.1十进制数
1.1.2二八十六进制数
1.2手写计算
1.3手工计算工具
1.4巴贝奇机械自动计算机器
1.5减法与补码
1.5.1用减数的补码做运算
1.5.2用被减数的补码做运算
1.6逻辑计算
1.6.1逻辑计算
1.6.2用电路构造逻辑运算单元
1.6.3逻辑向量计算
1.7二进制加减法计算机器
1.7.1用逻辑电路实现二进制的加法器
1.7.2二进制的反码与补码器
1.7.3二进制加法器/减法器
1.7.4二进制数正负数范围
1.8思考题
第2章从自动计算到可编程计算机器
2.1可编程的计算机器
2.1.1用巴贝奇机器做更复杂的计算
2.1.2图灵计算机器
2.1.3图灵机的形式化
2.2冯·诺依曼的计算机器
2.2.1冯·诺依曼机的结构
2.2.2指令格式和执行流程
2.2.3指令集
2.2.4数据格式与存储器编址
2.3集成电路与计算产业化
2.3.1半导体的集成电路
2.3.2集成电路产业与摩尔定律
2.3.3摩尔定律的终结
2.3.4新材料
2.4量子计算机
2.4.1量子运动原理
2.4.2量子用于计算的原理
2.4.3量子计算机产业动态
2.5系统软件
2.5.1操作系统
2.5.2系统软件与应用软件
2.5.3软件商业竞争方式的创新
2.6思考题
第3章编程语言与数据表达
3.1汇编语言
3.1.1用机器指令编程的困扰
3.1.2汇编语言和编程
3.2高级语言
3.2.1高级编程语言简史
3.2.2高级语言的执行
3.2.3高级语言分类
3.3高级语言的特征
3.3.1词法和语法
3.3.2语法和语义
3.3.3语句
3.4基本数据类型与变量运算
3.4.1数值型
3.4.2逻辑型
3.4.3枚举型
3.4.4字符与字符串
3.4.5指针运算
3.4.6不同类型变量之间的运算
3.5浮点数
3.5.1浮点数的表达理论
3.5.2运算中出现的问题
3.5.3IEEE754浮点数的范围
3.6扩展的数据类型与结构
3.6.1数组
3.6.2结构体
3.6.3链表
3.6.4栈与队列
3.6.5树
3.6.6图
3.6.7对象与OO语言
3.7编程语言的可靠与安全
3.7.1语言缺陷的例子
3.7.2弱类型与强类型语言
3.7.3创立和设计更可靠安全的语言
3.8思考题
第4章软件开发环境与过程
4.1集成开发环境
4.1.1代码编辑器
4.1.2编译器
4.1.3链接器
4.1.4程序加载
4.1.5代码调试和安全问题
4.2操作系统与运行环境
4.2.1调用操作系统的功能
4.2.2库
4.2.3远程调用
4.3嵌入式与移动终端软件的开发
4.3.1嵌入式计算机
4.3.2移动终端设备
4.3.3交叉开发环境
4.4个体程序员能力
4.4.1程序员个体能力差异
4.4.2提高个体能力
4.5项目小组的组织
4.5.1小组的组织协调问题
4.5.2首席程序员的组织方式
4.5.3矩阵式的组织方式
4.5.4结对编程
4.6大项目的开发过程
4.6.1从程序开发到软件开发
4.6.2瀑布式开发模型
4.6.3中间产品(文档)的价值
4.6.4文档与图示化表达
4.7迭代与敏捷
4.7.1增量式迭代开发
4.7.2渐进式迭代开发
4.7.3敏捷方法
4.8思考题
第5章数据通信与网络
5.1数字化通信与编码
5.1.1电报、电传与ASCII码
5.1.2汉字编码与Unicode
5.2通信交换网络
5.2.1邮政业务网络
5.2.2电话交换网络
5.3数据包交换网络
5.3.1基于数据包的网络原理
5.3.2数据包的设计
5.3.3数据分片与重新组装
5.3.4路由选择
5.4互联网设计
5.4.1网络互联的需求
5.4.2网络互联的设计模型
5.4.3DoD网络互联协议族设计
5.5互联网发展与应用
5.5.1美国互联网的全面发展
5.5.2中国发展互联网的历程
5.5.3IETF(互联网工程任务组)
5.5.4互联网的管理
5.6软件定义的网络
5.6.1传统路由器与网络管理问题
5.6.2OpenFlow论坛
5.6.3SDN的提出
5.6.4SDN的产学研究
5.7思考题
第6章从数据管理到Web和信息通信
6.1数据结构化管理
6.1.1数据存储的结构化
6.1.2消除数据冗余
6.1.3建立实体关联
6.2关系代数
6.2.1关系代数定义
6.2.2“选择”运算
6.2.3“投影”运算
6.2.4两个表的“笛卡儿积”运算
6.2.5“并”运算
6.2.6“差”运算
6.2.7“交”运算
6.2.8两个表的“连接”运算
6.3关系数据库
6.3.1关系数据库管理系统
6.3.2SQL:结构化查询语言
6.4万维网
6.4.1WWW的初衷
6.4.2Web基本原理
6.4.3WWW函数库
6.4.4早期美国网站的迅速发展
6.4.5Web服务器产品
6.4.6Web浏览器产品
6.4.7早期中国WWW的发展
6.5Web搜索
6.5.1爬虫
6.5.2内容整理
6.5.3搜索策略
6.6Web变迁与NoSQL数据库
6.6.1Web应用方式的变迁
6.6.2Web对信息管理系统的改变
6.6.3NoSQL对数据处理系统的影响
6.6.4大数据时代
6.7信息量
6.7.1单变量的熵定义
6.7.2关联信息的熵定义
6.7.3数据、信息与知识时代
6.8思考题
第7章数字音视频与图形学
7.1数字音频
7.1.1机械式留声机
7.1.2磁带录音机
7.1.3数字音频系统
7.2数字图像
7.2.1图像传感
7.2.2图像位图表示
7.2.3图像压缩
7.2.4数字图像的应用
7.3数字视频
7.3.1视频数据与压缩
7.3.2数字电视广播系统
7.3.3视频识别的应用
7.3.4立体电影与电视
7.4计算机图形学
7.4.1图像的矢量表示
7.4.2图形的运算
7.4.3二维图形
7.4.4三维图形
7.4.5图形学的应用
7.4.6虚拟现实技术
7.5专用处理器
7.5.1GPU
7.5.2TPU
7.6图形与符号编码
7.6.1一维码
7.6.2二维码
7.6.3三维码
7.7思考题
第8章机器与智能
8.1可控制的自动机器
8.1.1替代体力的自动可控机器
8.1.2自动反馈控制器
8.1.3自适应与AI控制器
8.2基于计算机的控制器
8.2.1将计算机嵌入到控制系统中
8.2.2控制器的设计
8.2.3传感器
8.2.4可编程逻辑控制器
8.2.5社会系统的控制
8.3人工智能
8.3.1图灵无组织的机器
8.3.2人工神经网络的发展历程
8.3.3模拟神经元
8.3.4模拟多层神经网
8.3.5机器学习
8.3.6其他算法
8.4智能的评价
8.4.1图灵测试
8.4.2图灵测试的消极面
8.4.3智能分级
8.5智能制造
8.5.1先进(制造)工程环境
8.5.2物联网
8.5.3工业互联网
8.6智能制造作为国家战略
8.6.1德国工业4.0
8.6.2美国智能制造
8.6.3中国制造2025
8.7思考题
第9章软件产业与人才
9.1软件与产业
9.1.1软件与程序
9.1.2软件作为商品:版权与许可证
9.1.3云计算:一切作为服务
9.2软件企业过程能力的改进
9.2.1软件工厂模式
9.2.2软件过程与改进
9.2.3SEI和汉弗莱的贡献
9.2.4CMM/CMMI模型
9.3产业生态、联盟、开放与开源
9.3.1软件产业生态
9.3.2产业联盟
9.3.3企业间的并购
9.3.4开放策略
9.3.5开源策略
9.4软件危机:永恒的话题
9.4.1国防工业软件的指数级增长
9.4.2制造业软件成本的急速增长
9.4.3超大规模软件系统
9.4.4软件生产率严重不足
9.5中国软件危机
9.5.1软件导致通信与网络系统的危机
9.5.2软件导致信息化社会的安全危机
9.5.3软件导致制造业的危机
9.6软件产业人才
9.6.1软件工厂型人才
9.6.2软件工程型人才
9.6.3复合型人才
9.6.4创新创业思维
9.6.5国际化视野
9.6.6软件商业奇才
9.7软件工程与新工科
9.7.1软件工程的就业
9.7.2美国欧洲中国软件产业对比
9.7.3软件与其他产业500强的对比
9.7.4新工科战略
9.7.5软件工程与新工科的融合
9.8思考题
附录A历史责任
A.1工业革命推动力
A.1.1前三次工业革命
A.1.2第四次工业革命的基础
A.2中国工业革命历程
A.2.1中国近代危机与民族解放
A.2.2两弹一星与国际地位
A.2.3改革开放
A.3软件产业教育的历史责任
A.3.1软件人才危机
A.3.2示范性软件学院的历史责任
附录B北京邮电大学国家示范性软件学院本科培养方案
B.1教育部的指导意见
B.2“三六一一”实践教学体系
B.2.1形成过程
B.2.2“三六一一”的内涵与外延
B.32017版本科培养方案
B.3.1培养线
B.3.2培养线与课程地图
B.3.3实践课与“三六一一”映射
B.3.4“三六一一”与SWEBOK的映射关系
附录C《专业导论课》的目的
C.1教育理念
C.1.1形而上学与形而下学
C.1.2通识教育与专业教育
C.1.3领域知识与软件工程专业知识
C.2本书与北邮软件学院2017版培养方案关联
C.2.1对北邮软件学院2017版课程的引导
C.2.2通过课程配套实验引发学习兴趣
附录D国内部分示范性软件学院课程体系
D.1哈尔滨工业大学软件学院
D.2清华大学软件学院
D.3重庆大学大数据与软件学院
D.4复旦大学软件学院
D.5华中科技大学软件学院

前言/序言

  编写本书的目的是让大学新生快速地了解计算机、通信、信息和软件工程产业的相关知识,引发其对编程和组织小组进行软件开发的兴趣,为后续理论课、实验课以及创新创业等工程活动拓宽知识面,从而培养学生主动学习和创新实践的能力。
  第1章以数的进制开始,讲述了人类从手写计算到机械和电子计算装置的发展过程,引发学生对自动计算装置的思考。讨论了如何用数字电路实现逻辑运算和算术运算。
  第2章从编程的要素出发讨论了冯·诺依曼机器的结构,说明了集成电路计算机器的基本原理,进一步探索了量子计算机器的原理,引出了系统软件和应用软件的分类。
  第3章,从机器语言和汇编语言人手,讨论了高级编程语言的基本特征和发展历史,论述了多种基本数据类型和浮点数的表达,进一步讲述了数组、结构体、对象等复杂数据的表达,引发学生创立更高效、更安全的编程语言。
  第4章,讲述了软件开发的集成环境,论述了操作系统和库函数的作用,简述了移动终端和嵌入式开发的过程,讨论了个体程序员能力的局限性,引导出小组开发、大型程序开发的瀑布式和迭代式过程。
  第5章的基本观点是“通信也是计算”。本章从电报通信与字符编码出发,以直观的邮政通信和传统的电话交换为例,引导出数据包交换的基本原理,讨论了基于包交换的互联网的构成、产业化和管理问题,进一步引出“软件定义的网络”的发展。
  第6章主要呈现的是“数据管理和信息交流也是软件”的主题。本章从学生信息的表格化(即结构化)管理出发,引出关系代数和数据库管理系统。本章还介绍了信息蜘蛛网(Web)的概念,给出了万维网的发展和产业历程。通过对结构化和非结构化信息的对比,引出了信息通信中信息量的测量问题。
  第7章的主题是“音频与视觉空间也是软件”。本章从声音和图像数字化人手,讨论了图像和视频的压缩,引出了计算机图形学和虚拟现实技术。进一步讨论了专用处理器的作用。以当前常用的一维码、二维码、多维码的发明和应用为例,引导学生围绕视觉空间的表达进行发明创造。
  第8章的主题是“机器与智能”,目的是引导学生用计算机硬件和软件制造出人工的智能。本章从蒸汽机替代人的体力劳动开始,引出如何用计算机程序替代人类的脑力劳动,从而建立智能系统或产品。讨论了图灵给出的智能评价标准和不足。从图灵无组织机人手,引出了基于人工神经网络的学习问题。介绍了当前第四次工业革命中美国、德国和中国智能制造的发展现状。