软件:(SoftWare)是一系列按照特定顺序组织的计算机数据和指令的集合。前端
1、软件由三部分构成:程序(计算机程序)、文档、数据程序员
2、软件分类:数据库
一、按应用程序分类:系统软件、应用软件浏览器
系统软件:是负责管理计算机系统中的各类独立的硬件,使得它们之间能够协调工做。安全
1)操做系统:是管理计算机硬件与软件资源的程序,是直接运行在“裸机”上最基本的系统软件。服务器
操做系统发展:早期-->DOS操做系统-->操做系统新时代(Windows、Unxi、Xenix、OS/2)-->今日(Windows、Linux、Unix)微信
2)支撑软件:支撑各类软件的开发和维护的软件,又称为开发环境。网络
注意:计算机首先要装系统软件才能安装应用软件。架构
应用软件:为了某种特定的用途而被开发的软件。市面上大多数软件都是应用软件(QQ、微信、淘宝、各类游戏等)框架
二、按软件架构形式分类: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架构的区别
一、硬件环境不一样:
C/S 通常创建在专用的网络上, 小范围里的网络环境, 局域网之间再经过专门服务器提供链接和数据交换服务.
B/S 创建在广域网之上的, 没必要是专门的网络硬件环境,例与电话上网, 租用设备. 信息本身管理. 有比C/S更强的适应范围, 通常只要有操做系统和浏览器就行
二、对安全要求不一样 :
C/S 通常面向相对固定的用户群, 对信息安全的控制能力很强. 通常高度机密的信息系统采用C/S 结构适宜. 能够经过B/S发布部分可公开信息.
B/S 创建在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群.
三、对程序架构不一样:
C/S 程序能够更加注重流程, 能够对权限多层次校验, 对系统运行速度能够较少考虑.
B/S 对安全以及访问速度的多重的考虑, 创建在须要更加优化的基础之上. 比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange 2000等, 全面支持网络的构件搭建的系统. SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.
四、软件重用不一样:
C/S 程序能够不可避免的总体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.
B/S 对的多重结构,要求构件相对独立的功能. 可以相对较好的重用.就入买来的餐桌能够再利用,而不是作在墙上的石头桌子
五、系统维护不一样 :
系统维护是软件生存周期中,开销大, -------重要
C/S 程序因为总体性, 必须总体考察, 处理出现的问题以及系统升级. 升级难. 多是再作一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上本身下载安装就能够实现升级.
六、处理问题不一样:
C/S 程序能够处理用户面固定, 而且在相同区域, 安全要求高需求, 与操做系统相关. 应该都是相同的系统
B/S 创建在广域网上, 面向不一样的用户群, 分散地域, 这是C/S没法做到的. 与操做系统平台关系最小.
七、用户接口不一样
C/S 可能是创建的Window平台上,表现方法有限,对程序员广泛要求较高
B/S 创建在浏览器上, 有更加丰富和生动的表现方式与用户交流. 而且大部分难度减低,减低开发成本.
3、软件开发的流程:
了解客户需求-->根据客户需求编写SRS(需求规格说明书)-->依据SRS设计和开发软件
4、软件的生命周期:
一、调研阶段:软件开发方调研市场需求,需求方共同讨论,肯定软件的开发目标和可行性。
二、需求分析阶段:在肯定软件开发可行的状况下,对软件需求实现的各个功能进行详细分析。需求分析是个很重要的阶段,这个阶段直接影响到后面的软件开发阶段,作好需求分析能为下阶段的软件开发打下良好的基础。
三、软件设计阶段:依据需求分析的结果,对软件系统进行设计(整体设计与详细设计)。好的软件设计将为软件编码阶段打下良好的基础。
四、编码开发阶段:此阶段是将软件设计的结果转换成计算机可运行的程序代码。
五、软件测试阶段:在软件设计并编码完成后,对软件进行严密的测试,以确保软件符合客户的全部需求。
六、软件上线发布:在软件测试工做完成后,发布软件交与客户使用。
七、软件运行维护阶段:此阶段是软件生命周期中持续时间最长的阶段。软件上线发布供客户使用后,因为多方面缘由,软件不知足用户的需求,要延续软件的使用寿命,就必须对软件进行维护(纠错性维护和改进性维护)
八、软件下线:软件与市场上其余软件相互竞争失去优点时,会逐渐失去用户,逐渐失去市场占有率的时候,就会被市场所淘汰,从而面临下线。
5、实现一个软件的功能的基本步骤
一、准备好硬件(电脑)。
二、准备好干净无毒的、最低配置符合基本要求的操做系统。
三、安装和配置服务器软件,把软件开发包放到服务器指定的地方。
四、安装和配置数据库软件
五、进行基本的浏览器等配置
软件工程师:通常指从事软件开发职业的人。