软件介绍
这边文章和大家介绍一下软件及其类型
软件:(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、进行基本的浏览器等配置
软件工程师:一般指从事软件开发职业的人。