第一次博客作业

软件工程即软件+工程,软件的本质就是跑在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等开发环境 

posted @ 2020-09-17 16:56  橘猫小八  阅读(156)  评论(0)    收藏  举报