第一次博客作业
软件工程即软件+工程,软件的本质就是跑在CPU上的代码,即从本质来讲软件就是程序。
但软件又和我们平时写的程序不太相同,举个例子吧
#include <iostream> using namespace std; int Add(int a,int b); int main(){ cout<<Add(3,2)<<endl; return 0; } int Add(int a,int b){ return a+b; }
上面一段代码功能是计算两个数之和,那这只能说它是程序,并不能称之为 软件
再比如,写了一个小游戏贪吃蛇,这个就可以称之为一个软件。
只有具有一定的复杂性,并不是单纯调用几个函数,且具有实用的功能的,这种程序我们才能称之为软件。
那软件工程是什么呢,有人这么解释,软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。
看了,是不是感觉和没看一样?这是理所当然,因为我们还没有通读软件工程这本书,这句话就是对这本书的概括,你要是读懂了就真是神奇了。
但要知道软件工程包括的领域:
- 软件需求分析
- 软件设计
- 软件构建
- 软件测试
- 软件维护
这些名词应该很好理解,所以软件和软件工程根本不是一个概念,软件是具有联系的代码集合,而软件工程是一个过程,软件开发维护的过程。
好,现在说清楚了什么是软件和程序的关系,下面谈谈硬件
可能有的同学会说,硬件就是硬件,软件就是软件,它们之间貌似没有什么联系,真是这样吗?
我们学过操作系统,假设我们知道操作系统也是一个程序,它是一个系统程序,它是一个中间层(硬件和运行在计算机上的其他软件之间)操作系统最大的问题之一就解决进程之间的资源分配问题,这些资源由软件资源和硬件资源,硬件资源比如:CPU,I/O设备(我们的键盘,鼠标,屏幕),存储器等,那就如没有关联的话,操作系统怎么去控制呢?或者 我们下载系统镜像的时候一个系统常有X86, X86_64等版本,而这值得就是CPU架构,不同架构的CPU支持的指令集不同,所以针对其编写的操作系统就不一样。
其实知道这一点很重要,就像java它火也是有原因的,号称一次编译全平台运行(指的不同操作系统),以及它垃圾自动回收机制等可以说这些特性提高了我们的编程效率,节约了很多成本,扯的有点远,说这些我是想引出软件其实很大,很复杂,所以在编写一个程序的时候最好先做一个分析,分析一下面向的用户都是有什么需求,在什么平台运行,再考虑用哪个语言去实现效率最高,成本低等(这就叫需求分析。
综上所述,是我个人对软件工程,以及硬件其他的理解。
我目前初步掌握C,C++,和java语法 还有一些简单的数据结构算法分析及的基础能力,常用Qt,Clion等开发环境

浙公网安备 33010602011771号