服务无限,企业乐无优

资深工程师咨询热线

400-8871-651
IT外包图片
新闻中心
技术文章
当前位置:首页 >> 新闻中心 >> 技术文章
软件
www.it33.com 2014-06-04
概述


软件(英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。


名称诠释
  1、软件[software](中国大陆及香港用语,台湾作软体)是一系列按照特定顺序组织的计算机数据和指令的集合。
  2、软件并不只是包括可以在计算机上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。
  3、泛指社会结构中的管理系统、思想意识形态、思想政治觉悟、法律法规等等。
类型划分
  一般来讲软件被划分为系统软件、应用软件,其中系统软件包括操作系统和支撑软件。


软件的真正含义
  程序设计的最终结果是软件。
  软件是用户与硬件之间的接口界面。用户主要是通过软件与计算机进行交流。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具有较高的总体效用,在设计计算机系统时,必须全局考虑软件与硬件的结合,以及用户的要求和软件的要求。
  软件实体
        1.运行时,能够提供所要求功能和性能的指令或计算机程序集合。
  2.程序能够满意地处理信息的数据结构。
  3.描述程序功能需求以及程序如何操作和使用所要求的文档。


系统软件
  系统软件为计算机使用提供最基本的功能,可分为操作系统和支撑软件,其中操作系统是最基本的软件;
  系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。
  1.操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。★操作系统分为BIOS 、BSD 、DOS 、Linux、Mac OS、OS/2 、QNX 、Unix、Windows等。
  2.支撑软件是支撑各种软件的开发与维护的软件,又称为软件开发环境(IDE)。它主要包括环境数据库、各种接口软件和工具组。著名的软件开发环境有IBM公司的Web Sphere,微软公司的Studio.NET等。★包括一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。


应用软件
  但是系统软件并不针对某一特定应用领域。而应用软件则相反,不同的应用软件根据用户和所服务的领域提供不同的功能。
  应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。
  ★较常见的应用软件有:
  行业管理软件 :如电脑行业管理软件开龙IT200 商软ERP等
  文字处理软件 :如Office、 openoffice、 WPS、永中office等 
  信息管理软件 :如Assces数据库,mysql数据库 
  辅助设计软件 :如AutoCAD、Photoshop 
  媒体播放软件:如暴风影音、QQ影音、kmplayer、豪杰超级解霸、Windows Media Player、RealPlayer等
  系统优化软件:如windows优化大师、超级兔子魔法设置
  实时控制软件 :
  教育与娱乐软件 :
  图形图像软件 :coreldraw ,painter,GIMP(linux下),3DS MAX,MAYA,softimage|xsi,lightwave,cineme 4d,Houdini ,ADOBE公司的:Photoshop、Illustrator、Acrobat、Reader、Golive、Indesign、Creative Suite、Pagemaker、After Effects、Premiere、Font Folio、Adobe Framemaker、Flex、InCopy、Audition、SoundBooth、Captivate、Dreamweaver、Flash、Fireworks、LiveCycle Enterprise Suite (ES)
  数学软件:Mathematica,Maple,Matlab,MathCad
  统计软件:SAS,SPSS
  后期合成软件 :after effects,combustion,digital fusion,shake,flame 
  杀毒软件 :如瑞星、金山毒霸、卡巴斯基 、诺顿、麦克菲、nod32、江民等
  通信协作软件:电子邮件软件,传真软件,群件软件,通信软件,远程控制软件
  管理效率软件:个人信息管理软件,财务软件,ocr软件,文档软件,项目管理软件。
  
手机软件


  顾名思义,所谓手机软件就是可以在安装在手机上的软件,完善原始系统的不足与个性化。随着科技的发展,现在手机的功能也越来越多,越来越强大。不是像过去的那么简单死板,目前发展到了可以和掌电脑相媲美.手机软件与电脑一样,下载手机软件时还要考虑你购买这一款手机所安装的系统来决定要下相对应的软件.目前手机主流系统有以下:Symbian、Linux、Research in Motion、Windows Mobile.但是在2007年,苹果推出了运行自己软件的iPhone;Google宣布将在明年推出Android手机操作系统平台。二种新操作系统的进入改变了一些手机运营商的计划,为最终用户造成了一些麻烦,给应用软件开发人员带来了更大的挑战,表明了手机产业的一些基本变化。
  常用手机软件:GPRS Helper、UCWEB、移动QQ、GGLIVE


软件使用许可
  不同的软件一般都有对应的软件授权,软件的用户必须在同意所使用软件的许可证的情况下才能够合法的使用软件。从另一方面来讲,特定软件的许可条款也不能够与法律相抵触。
  依据许可方式的不同,大致可将软件区分为几类:
  专属软件:此类授权通常不允许用户随意的复制、研究、修改或散布该软件。违反此类授权通常会有严重的法律责任。传统的商业软件公司会采用此类授权,例如微软的 Windows 和办公软件。专属软件的源码通常被公司视为私有财产而予以严密的保护。 
  自由软件:此类授权正好与专属软件相反,赋予用户复制、研究、修改和散布该软件的权利,并提供源码供用户自由使用,仅给予些许的其它限制。以 Linux、Firefox 和 OpenOffice 可做为此类软件的代表。 
  共享软件:通常可免费的取得并使用其试用版,但在功能或使用期间上受到限制。开发者会鼓励用户付费以取得功能完整的商业版本。 
  免费软件:可免费的取得和散布,但并不提供源码,也无法修改。 
  公共软件:原作者已放弃权利,著作权过期,或作者已不可考的软件。使用上无任何限制。


软件开发
  软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉,需求分析,设计,实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件:具有一定功能的各种电脑程序,称为软件。
  操作系统软件
  操作系统是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让使用者与系统交互的操作接口。
  BeOS 
  BSD 
  DOS 
  Linux
  Mac OS 
  OS/2 
  QNX 
  Unix
  Windows


主流的软件开发语言介绍
  一:Java
  作为跨平台的语言,可以运行在Windows和Unix/Linux下面,长期成为用户的首选。自JDK6.0以来,整体性能得到了极大的提高,市场使用率超过20%。感觉已经达到了其鼎盛时期了,不知道后面能维持多长时间。
  二:C
  三:C++
  以上2个作为传统的语言,一直在效率第一的领域发挥着极大的影响力。像Java这类的语言,其核心都是用C/C++写的。在高并发和实时处理,工控等领域更是首选。
  四:VB
  微软的看家法宝,实在是太好用了。
  五:php
  同样是跨平台的脚本语言,在网站编程上成为了大家的首选,支持PHP的主机非常便宜,PHP+Linux+MySQL+Apache的组合简单有效。
  六:Perl
  脚本语言的先驱,其优秀的文本处理能力,特别是正则表达式,成为了以后许多基于网站开发语言(比如php,java,C#)的这方面的基础。
  七:PyThon
  是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。
  这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。
  目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。
  八:C#
  是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了 Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角
  九:Javascript
  Javascript是一种由Netscape的 LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能
  十:Ruby
  一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言,由日本人松本行弘(まつもとゆきひろ,英译:Yukihiro Matsumoto,外号matz)开发,遵守GPL协议和Ruby License。Ruby的作者认为Ruby > (Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的编程语言
  数据来源于2008年7月的排行榜。
  软件编程排行榜
  
软件工程师


  
  一般指从事软件开发职业的人。软件工程师10余年来一直占据高薪职业排行榜的前列,作为高科技行业的代表,技术含量很高。职位的争夺也异常激烈。软件开发是一个系统的过程,需要经过市场需求分析、软件代码编写、软件测试、软件维护等程序。软件开发工程师在整个过程中扮演着非常重要的角色,主要从事根据需求开发项目软件工作。
  计算机软件的法律保护
  计算机软件作为一种知识产品,其要获得法律保护,必须具备以下条件: 
  (一)原创性。即软件应该是开发者独立设计、独立编制的编码组合。
  (二)可感知性。受保护的软件须固定在某种有形物体上,通过客观手段表达出来并为人们所知悉。
  (三)可再现性。即把软件转载在有形物体上的可能性。
  计算机软件著作权的归属
  根据《计算机软件保护条例》第10条的规定,计算机软件著作权归属软件开发者。因此,确定计算机著作权归属的一般原则是“谁开发谁享有著作权”。软件开发者指实际组织进行开发工作,提供工作条件完成软件开发,并对软件承担责任的法人或者非法人单位,以及依靠自己具有的条件完成软件开发,并对软件承担责任的公民。 
  我国法律除规定了上述一般原则外,《计算机软件保护条例》自第11条至第14条还规定了软件著作权归属的几种特殊情况:
  (一)合作开发。合作开发者对软件著作权的享有和行使以事前的局面协议为根据,如无书面协议,其著作权由各合作开发者共同享有。合作开发的软件可以分割使用的,开发者对各自开发的部分可以单独享有著作权,但行使著作权时不得扩展到合作开发的软件整体的著作权。
  (二)委托开发。受他人委托开发的软件,其著作权的归属由委托者与受托者签订书面协议约定,如无书面协议或者在协议中未明确约定的,其著作权属于受委托者。 
  (三)指令开发。为完成上级单位或政府部门下达的任务而开发的软件,著作权的归属由项目任务书或者合同规定;如项目任务书或者合同中未作明确规定,软件著作权属于接受任务的单位。
  (四)职务开发。公民在单位任职期间所开发的软件,如是执行本职工作的结果,即针对本职工作中明确指事实上的开发目标所开发的,或者是从事本职工作活动所预见的结果或者自然的结果则该软件的著作权属于该单位。
  (五)非职务开发。公民所开发的软件如不是执行本职工作的结果,并与开发者在单位中从事的工作内容无直接联系,且又未使用单位的物质技术条件,则该软件的著作权属于开发者自己。


软件载体
  软件的载体是 光盘 VCD DVD U盘 软盘。 光盘是通过激光雕刻在VCD或者dvd上的。
  软件开发流程(Software development process)
  软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。 
  1 相关系统分析员和用户初步了解需求,然后用WORD列出要开发的系统的大功能模块,每个大功能模块有哪些小功能模块,对于有些需求比较明确相关的界面时,在这一步里面可以初步定义好少量的界面。 
  2 系统分析员深入了解和分析需求,根据自己的经验和需求用WORD或相关的工具再做出一份文档系统的功能需求文档。这次的文档会清楚例用系统大致的大功能模块,大功能模块有哪些小功能模块,并且还例出相关的界面和界面功能。 
  3 系统分析员和用户再次确认需求。 
  4 系统分析员根据确认的需求文档所例用的界面和功能需求,用迭代的方式对每个界面或功能做系统的概要设计。 
  5 系统分析员把写好的概要设计文档给程序员,程序员根据所例出的功能一个一个的编写。 
  6 测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能,然后验收。


金融危机对全球软件产业带来的冲击
  2008年以来美国金融危机席卷全球,逐步从虚拟经济向实体经济蔓延,对全球软件产业带来明显冲击,主要表现为: 一是市场需求大幅减弱。IDC、iSuppli、Gartner等市场咨询机构调查显示,2008年四季度全球IT支出增幅比原定下降2-3个百分点;美国40%以上的大公司下调了2009年的IT支出,其中金融领域IT支出降幅达30%以上。日本IT外包市场需求下降10%以上,2008年四季度本是我软件外包企业与日本客户续签合同的时间,但企业反映续约定单很少。
  二是大公司业绩普遍下滑。甲骨文第二财季(截至2008年11月30日)软件收入和利润分别下降3%、1%,第三财季业绩将创新历史新低。SAP公司2008年二、三季度利润分别下滑9%、5%,全年下滑5%以上。思科2008年三季度营业收入为三年来最低水平,四季度将下降10%。微软尽管前三季度业绩较好,但分析师预计其将在新一财季发出营收预警。
  三是对部分外向型国家影响明显。印度、爱尔兰等依赖软件外包出口的国家表现尤为突出。以印度为例,由于其软件外包60%来自美国市场,40%来自金融领域,遭受冲击十分明显。据印度软件与信息服务协会预计,2008年印度软件及服务业收入增速将下降30%以上,利润率将下滑5-6个百分点。Infosys公司预计至2009年3月31日的财年收入为47.5亿美元,比预期目标下降了5%;塔塔公司2008年利润增速为5%不到,远远低于近年来30%的平均水平。