《软件技术》培养目标及发展前景1946年2月14日,世界上第一台电脑在美国宾夕法尼亚大学诞生。第二次世界大战期间,美国军方要求宾州大学莫奇来(Mauchly)博士和他的学生爱克特(Eckert)设计以真空管取代继电器的大型电脑,目的是用来计算炮弹弹道。这部机器使用了18800个真空管,长50英尺,宽30英尺,占地1500平方英尺,重达30吨(大约是一间半的教室大,六只大象重)。它的计算速度快,每秒可从事5000次的加法运算,运作了九年之久。吃电很凶,据传ENIAC每次一开机,整个费城西区的电灯都为之黯然失色。第一台计算机诞生至今已过去60多年了,在这期间,计算机以惊人的速度发展着,首先是晶体管取代了电子管,继而是微电子技术的发展,使得计算机处理器和存贮器上的元件越做越小,数量越来计算机的运算速度和存贮容量迅速增加。1994年12月,美国Intel公司宣布研制成功世界上最快的超级计算机,它每秒可进行3280亿次加法运算(是第一台电子计算机的6600万倍)。如果让人完成它一秒钟进行的运算量的话,需要一个人昼夜不停地计算一万多年。它的诞生为人类开辟了一个崭新的信息时代,使得人类社会发生了巨大的变化。科学技术的日新月异给我们的生活带来了巨大的改变。计算机从诞生到发展仅用了60多年的时间,有了计算机20年后便出现了网络,而今天在计算机和网络基础上迅速发展起来的各项技术可以说是种类繁多、层出不穷,我们身边的微型电脑、无线设备、光电存储、网络通信、数字娱乐等等,这些技术都在诠释着科技的发展与创新。准确的把握IT技术的未来趋势,将在很大的程度上影响到我们明天的技术体验和技术效率。Internet网发展简史随着1946年世界上第一台电子计算机问世后的十多年时间内,由于价格很昂贵,电脑数量极少。早期所谓的计算机网络主要是为了解决这一矛盾而产生的,其形式是将一台计算机经过通信线路与若干台终端直接连接,我们也可以把这种方式看做为最简单的局域网雏形。最早的Internet,是由美国国防部高级研究计划局(ARPA)建立的。现代计算机网络的许多概念和方法,如分组交换技术都来自ARPAnet。ARPAnet不仅进行了租用线互联的分组交换技术研究,而且做了无线、卫星网的分组交换技术研究-其结果导致了TCP/IP问世。中国的InternetInternet在中国的发展历程可以大略地划分为三个阶段:第一阶段为1987—1993年,也是研究试验阶段。这个阶段的网络应用仅限于小范围内的电子邮件服务。第二阶段为1994年至1996年,同样是起步阶段到1996年底,中国Internet用户数已达20万,利用Internet开展的业务与应用逐步增多。第三阶段从1997年至今,是Internet在我国快速最为快速的阶段。增长到今天,上网用户已超过3亿。随着网络基础的改善、用户接入方面新技术的采用、接八方式的多样化和运营商服务能力的提高,接入网速率慢形成的瓶颈问题将会得到进一步改善,上网速度将会更快,从而促进更多的应用在网上实现。国外媒体CRN网站在去年年末的时候评出了2009年IT市场十大热门技术:虚拟化、软件开发和软件服务和网络技术均榜上有名。其实它们已经悄然的走进了我们的生活……软件开发和软件服务什么是软件?软件是:产品+服务.从形态上讲,程序是软件,文档资料也是软件,沟通是软件,服务也是软件。实质上需求是软件,软件是人的生意。软件的特质是70%技术+30%的艺术,软件成熟的过程就是艺术转变成技术的过程。全世界有三种软件生意,1、EAS、(大型企业应用系统)是美国及欧洲掌控。2、行业应用软件。是中国的最大机会,但大部分被美国及跨国公司控制。3、软件外包。技术封闭,绝大部分在国外开发。(做的是软件,卖的是劳动)。什么是软件外包?所谓软件外包就是一些发达国家的软件公司将他们的一些非核心的软件项目通过外包的形式交给人力资源成本相对较低的国家的公司开发,以达到降低软件开发成本的目的。众所周知,软件开发的成本中70%是人力资源成本,所以,降低人力资源成本将有效地降低软件开发的成本。软件外包已经成为发达国家的软件公司降低成本的一种重要的手段。目前,全球软件的销售额为6,000亿美元,而其中软件外包的销售额即达到500~600亿美元。预期到2010年软件外包的销售额将达到2,000亿美元。软件外包的大幅度增长为人力资源成本相对较低的印度和中国带来了新的发展机会。中国目前已经有不少的公司开始介入软件外包这一领域。目前软件外包产业较为发达的地区有上海、北京、大连以及深圳等城市。以北京为例,有40%的软件企业参与外包项目,软件行业60%~70%的营业额来自外包。在上海和北京,一个软件外包工程师的月薪达到7,000~10,000元人民币,而同样能力的软件工程师在武汉只需要三~四千元人民币。资本的特征是向成本更低的地方流动,所以,近一段时间以来已经有大量的东部软件公司准备迁移到中部地区,目前首选的地区主要是武汉和西安。软件外包将为中国软件业带来什么呢?不仅仅是经济发展的机会,还有先进的软件开发管理流程,以及严格的软件质量控制体系。通过发展软件外包产业,我国的软件产业将逐渐地告别手工作坊式的开发时代,进入工程化、规模化的开发领域。为抓住这一历史性的机遇,我国政府正全力为这些软件外包公司营造更好的投资环境,政府已经在多个重点城市建立开发区,设立多个全新的软件开发园区,并对于入园的软件企业给予相当优惠的政策条件。但是,仅有政策条件和环境条件是不够的,对软件企业影响最大的是人力资源成本,能否提供多数量多的、成本较低并在质量方面满足需要的软件外包工程师是我国能否抓住这一历史机遇的重要条件。中国软件外包市场现状全球软件外包市场规模已达2000亿美元。发包市场主要集中在北美、西欧和日本,接包市场主要是印度、爱尔兰等国家。其中,美国市场被印度垄断,欧洲市场则被爱尔兰垄断。现在,菲律宾、巴西、俄罗斯、澳大利亚等国也加入了世界软件外包的竞争行列。IT外包服务是社会分工不断细化和IT技术发展相结合的产物。与硬件外包相比,软件外包起步较晚,但发展很快。目前印度是软件外包最大市场。除此之外,爱尔兰,以色列和中国也是软件外包的主要市场。IDG统计数据表明,全球软件外包市场规模已达到2000亿美元。全球软件外包的发包市场主要集中在北美、西欧和日本等国家,其中美国占40%,日本占10%。外包接包市场主要是印度、爱尔兰等国家。其中,美国市场被印度垄断,印度软件业80%的收入依赖软件外包业务,印度已经成为软件外包的第一大国。而欧洲市场则被爱尔兰垄断。现在,菲律宾、巴西、俄罗斯、澳大利亚等国家也加入了世界软件外包的竞争行列。虽然中国IT外包服务市场一直高速增长,但截至目前,IT外包服务的用户群还相当狭小。就IT外包服务的内容和服务方式而言,还主要局限于基础架构层面的网络基础设施和桌面设备的支持与维护。2003年IT外包服务的市场规模只有人民币42.6亿元。其中IT运营管理外包服务的规模为21.6亿,应用管理外包服务为1.5亿,软件外包19.5亿。趋势与预测BPO成为未来外包发展的趋势。合作关系及无缝集成模式将成为外包的主要方式什么是软件技术?软件技术主要是指:软件研究、软件设计、软件开发、软件测试、软件销售及服务、软件维护及技术支持等等。软件技术从理论上讲应该分为两种:软件开发技术(利用计算机特有的语言进行软件开发与编制);软件应用技术(利用已经编号的软件为工作或生活服务)。从领域来划分,包括电子政务、企业信息化、电子商务等。资源规划(ERP)、客户关系管理(CRM)、供应链管理(SCM)等。软件开发的过程就是人们使用各种计算机语言,将人们关心的现实世界映射到计算机世界的过程。就是把人们的设想及目标通过计算机来实现。软件开发的范围很广,应用在多个领域。软件的开发工具有几十种,如:JAWA、.NET、WEB、C++等。你能熟练使用几种就已经了不起了,不可能涉及到所有类别。软件开发的特点是:大规模群体知识劳动。软件开发过程软件工程是将计算机科学技术、数学、管理学的原理运用到软件开发的整个过程中。运用数学中的理论和方法来构造软件模型和算法,运用管理科学的思想和方法指导软件的项目、资源、质量、成本等工作。软件工程学科包括软件工程原理、软件工程过程、软件工程方法、软件工程技术、软件工程模型、软件工程管理、软件工程度量、软件工程环境、软件工程应用等内容。软件工程学的目的是有效地组织软件开发过程,提高软件开发效率,尽量降低软件开发的成本。软件工程学将工程化的观点融会贯通于软件生存周期中。软件生存周期是一个软件从诞生到灭亡所历经的整个过程。具体来说就是:从提出软件开发(即软件策划)开始,历经分析、设计、实现、演化,一直到被其他软件所替换的全过程。软件策划是一个软件产品“生命“的起始点,也叫立项,从客户提出需求开始,对需求进行初步调查、分析。并在此基础上形成用户和开发人员认同的问题定义报告。再针对此报告进行可行性分析,从经济、技术和社会等方面对项目的必要性、可行性、合理性和重大风险性进行分析和评价,得出项目是否可行的结论。如果可行,则制定具体的软件开发计划。《软件开发计划书》是软件开发工作的指导纲领。软件开发计划书的内容包括:软件项目总述:包括软件项目名称,项目提出的背景、软件目标、软件性质、范围、基本需求、基本环境、基础条件和时限要求等软件开发的总体问题:包括软件开发的总时间要求、软件开发方式和软件开发方法等。工作任务软件开发阶段:软件策划(初始)、细化、构建和移交;软件策划阶段:问题定义、可行性分析、软件规划、制定软件开发计划书;软件细化阶段和构建阶段:领域分析、需求分析、系统设计、编程和调试;软件移交阶段:用户培训、数据转移、试运行和验收与评价;资源需求:包括人力资源和环境资源进度计划:制定软件开发的进度经过上面的准备工作后,接下来就要进入软件项目的具体分析阶段了。软件分析是软件设计的基础。软件分析包括领域分析和需求分析两项工作。领域分析是对软件所服务的应用领域进行的分析工作。也就是说,如果想开发某个专业领域的软件,设计者首先要对该领域的业务流程、业务特点充分掌握。现在软件的服务领域具有广阔性和多样性,不同软件的应用领域差异很大。多采取的做法是开发人员深入到企业内部,进行实地调查,了解企业的业务及流程。这是非常关键的一步,关系到软件产品的正确性和实用性。在充分了解用户的领域特点后,就可以进行针对特定用户的需求分析了软件需求可以分为功能需求、性能需求和其他需求三种类型。需求分析工作包括需求获取、需求分析、需求描述和需求验证四项工作。需求获取可以采用面谈、走访、问卷调查和召开座谈会等方法,并可以辅助采取启发法、观摩法和原形法。需求分析需要从总体需求、系统功能和技术性能等方面进行。需求分析完成后需要编写《软件需求说明书》,并对需求进行验证。《软件需求说明书》也是非常关键性的文档,是指导开发人员进行软件设计的重要依据。在做好了软件的分析后,就开始设计阶段软件设计是对软件分析的深化和细化,目的是为实现软件需求分析所规定的功能和性能要求,提出能够指导软件实现的设计方案。主要包括平台设计、软件体系结构设计、详细设计和界面设计等。软件设计要经过概括设计和详细设计两个阶段。前者是将软件的模块、整体架构设计出来;后者是针对每个模块进行的具体设计,是更细化的设计。根据详细设计写出《软件详细设计说明书》。它是指导下一步软件编码的纲领。前面的策划、分析、设计都是为后面的编码工作做准备。一个好的开发人员写出的程序不但能完成系统的功能,而且代码简单、执行效率高。这对提高整个系统的运行效率具有重要意义。现在流行的软件编程工具很多,要根据实际的软件项目特点选择最合适的、最经济、最高效的编程工具。编码完成后,一个成形的软件产品就诞生了。但这个软件产品还不能交给用户使用,因为它还不完善,还存在许多问题。如何能准确地找出这些问题并正确地修改恰恰就是软件测试阶段的主要任务。软件测试,测试就是为了让产品在交付给最终用户以后,在产品生存周期(或提供有效服务的期限