《软件设计师教程》的总结20210623

昨天我看大致过完一遍《软件设计师教程》这本书(大概花两周的时间)。

这让我对计算机基本的知识体系有了一个比较完整的认识。

下面我来说说计算机知识体系大概是什么样子。

首先计算机是硬件+软件组成的,硬件指的是那些我们能够触摸到的实物,软件则是调用硬件工作的一系列指令。

硬件主要分为CPU(控制器和运算器),存储设备,输入输出设备,总线(连接起前面这些设备的中介)。

那么怎么让这些设备运行呢?这里就需要指令(机器码),这些指令都是0和1的序列,并且不同设备序列相同代表的含义会有所不同。于是产生了汇编语言(低级语言),就是将0和1的序列转换成我们比较容易看懂的内容,但是这种语言更接近机器语言,不符合我们人类的表达习惯,于是诞生了高级编程语言,这种语言更符合我们人类的表达习惯。

有了指令,需要执行指令,最简单的两个数的加减乘除怎么计算,为了解决将减法转为加法,引入了补码的概念,使得计算最后的运算都是加法。

计算完成需要进行不同硬件的传输,为了保证传输的正确性引入校验码,以确保传输的数据正确,甚至在发现传输的数据错误能够进行部分纠正。

传输完成之后,对数据进行存储或输出。

说完硬件,再来说说软件,在发明出高级编程语言后,需要对高级语言编程的代码转为最基本的机器语言,这个过程叫做编译,这个过程产生了两个分支,一个是一次编译多次执行,一个是每次执行每次编译。

由于机器特性,数据的存储带来一些特性,引入数据结构,不同的数据结构又会影响不同算法的使用。

为了更好将硬件效果发挥到最大,就在基础上使用高级编程语言,建立起一个硬件资源管理系统(操作系统),操作系统主要进行进程的管理、文件的管理、存储的管理、设备的管理和作业管理。

有了操作系统,使得操作计算机的难度下降,让计算机进入大众视野,计算机也开始蓬勃发展。

依附在操作系统的软件如雨后春笋一般的产生,但是带来一个问题就是软件质量不高,软件成本不可估计,于是借鉴工程经验,建立软件工程方法论,使得软件开发变成一件可估计,质量有保证的产品。

软件开始有大量数据需要存储有关系的数据,引入数据库进行存储。

软件工程中随着外界变化越来越快,提出更快响应变化的需求,引入一些设计模式和一些软件开发过程的方法论。

到此基本就是我对《软件设计师教程》的理解。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容