这边文章和大家介绍一下软件及其类型

软件:(SoftWare)是一系列按照特定顺序组织的计算机数据和指令的集合。

 

一、软件由三部分构成程序(计算机程序)、文档数据

二、软件分类

1、按应用程序分类:系统软件应用软

系统软件:是负责管理计算机系统中的各种独立的硬件,使得它们之间可以协调工作。

1)操作系统:是管理计算机硬件与软件资源的程序,是直接运行在“裸机”上最基本的系统软件。

  操作系统发展:早期–>DOS操作系统–>操作系统新时代(Windows、Unxi、Xenix、OS/2)–>今日(Windows、Linux、Unix)

2)支撑软件:支撑各种软件的开发和维护的软件,又称为开发环境。

注意:计算机首先要装系统软件才能安装应用软件。

应用软件:为了某种特定的用途而被开发的软件。市面上大多数软件都是应用软件(QQ、微信、淘宝、各种游戏等)

2、按软件架构形式分类:C/S架构B/S架构移动端APP  

C/S结构:即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。电脑上的QQ软件就属于C/S架构。

B/S结构:即Browser/Sever(浏览器/服务器)结构,是随着Intrenet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器的实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成3-tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。淘宝、京东等官网就属于B/S架构。

手机上的淘宝APP(移动端)APP结合了C/S和B/S的优点,通常有HTML5和软件框架构成。

B/S架构与C/S架构的区别

 1、硬件环境不同:

C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务. 

B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行

 2、对安全要求不同 :

C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S发布部分可公开信息. 

B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.  

3、对程序架构不同:

C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑. 

B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟. 

4、软件重用不同:

C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好. 

B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子

5、系统维护不同 :

系统维护是软件生存周期中,开销大, ——-重要 

C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统 

B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.

6、处理问题不同:

C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统 

B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.  

7、用户接口不同 

C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高  

B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.

 

三、软件开发的流程

了解客户需求–>根据客户需求编写SRS(需求规格说明书)–>依据SRS设计和开发软件

四、软件的生命周期

1、调研阶段:软件开发方调研市场需求,需求方共同讨论,确定软件的开发目标和可行性。

2、需求分析阶段:在确定软件开发可行的情况下,对软件需求实现的各个功能进行详细分析。需求分析是个很重要的阶段,这个阶段直接影响到后面的软件开发阶段,做好需求分析能为下阶段的软件开发打下良好的基础。

3、软件设计阶段:依据需求分析的结果,对软件系统进行设计(总体设计与详细设计)。好的软件设计将为软件编码阶段打下良好的基础。

4、编码开发阶段:此阶段是将软件设计的结果转换成计算机可运行的程序代码。

5、软件测试阶段:在软件设计并编码完成后,对软件进行严密的测试,以确保软件符合客户的所有需求。

6、软件上线发布:在软件测试工作完成后,发布软件交与客户使用。

7、软件运行维护阶段:此阶段是软件生命周期中持续时间最长的阶段。软件上线发布供客户使用后,由于多方面原因,软件不满足用户的需求,要延续软件的使用寿命,就必须对软件进行维护(纠错性维护和改进性维护)

8、软件下线:软件与市场上其他软件相互竞争失去优势时,会逐渐失去用户,逐渐失去市场占有率的时候,就会被市场所淘汰,从而面临下线。

五、实现一个软件的功能的基本步骤

1、准备好硬件(电脑)。

2、准备好干净无毒的、最低配置符合基本要求的操作系统。

3、安装和配置服务器软件,把软件开发包放到服务器指定的地方。

4、安装和配置数据库软件

5、进行基本的浏览器等配置

软件工程师:一般指从事软件开发职业的人。