对日软件外包(精)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章对日软件外包
1.1 对日软件外包的发展
全球应用软件外包市场近几年平均每年以29%的速度增长,2005年整个市场规模将达到389亿美元。目前全球的软件产值中,三分之一需要通过对外发包来完成。软件外包已经成为世界软件产业发展的一个重要趋势。在这一趋势下,《振兴软件产业行动纲要》提出,从2001年到2005年,中国软件出口要从年出口7亿美元提升到50亿美元。按照预定的目标,2004年国内软件企业将要完成的出口额将达到35亿美元。这对于中国软件企业而言的确是个不小的数字。为了实现这一目标,有关人士指出,中国企业应积极拓展对欧美软件外包业务,把软件外包做强做大。
但现在美国市场主要被印度垄断,欧洲市场被爱尔兰垄断,中国企业的核心竞争力需要较长时间的积累,而对日软件外包,我们则有优势。在对美软件外包市场上,中国软件企业与印度软件企业的差距是明显的,从英文水平到签证难度,从法制制度的不同到对知识产权认识程度的差异,中国软件企业要在对美软件外包市场赶上印度企业还需加以时日。美国IT从业人员中印度和中国人员的比例是3∶1,中国软件企业目前做的外包只占日本软件外包的2%多一点。以英文为主导的软件外包市场正在逐渐萎缩,并且在这个市场上我们和印度相比竞争优势不明显。而对日软件外包市场相对印度来说,中国软件企业有地域优势和有限的语言优势,应当成为国内软件外包企业的发展导向。
1.2 对日软件外包的现状
对日外包市场潜力巨大,据IDC统计数据,2005年日本IT外包市场规模为164亿美元,而同年我国来自日本的软件发包量约为5.6亿美元,仅占日本IT外包市场的3.4%。IDC预测2008年日本IT外包市场将达到23,363亿日元(约226亿美元,2010年我国对日外包将近40亿美元,占比上升为17.7%。由此可见我国对日软件外包未来的市场潜力巨大。
国内现有的对日软件外包企业,主要为面向日本资讯科技行业的客户提供外包软件开发服务,而该等客户其本身又是为日本客户或全球客户提供软件开发服务。也就是一种工程转包性质的开发。以我现在所在公司为例,从事过制造业项目、CAD软件工具、证券金融软件、物流软件等等。
1.3 对日软件外包的软件开发特点
由于外包客户也是多为软件公司或是大公司的软件开发部分,而且由于是外包软件开发,所以开发层次比较低,或者说不是一个完整意思上的软件开发过程。根据个人在对日软件开发公司工作多年的经验,总结以下几点特点:
1. 技术含量低,从事低层次工作。
通常,软件开发过程都要经历商业建模、需求分析、系统分析和设计、实现、测试和部署等核心流程。然而,对日外包的开发流程被严格划分开来的,外包客户从事商业建模、需求分析、系统分析和设计等高层次的工作,然后将设计书发包到国内,而国内公司仅仅只是
严格依据客户的设计书,将其代码实现并通过单体测试就算完工。所以,国内对日外包企业只是担当了实现、测试两个阶段的任务。也有个别项目会担当些简单的设计任务。
2. 工期短工作量大
由于国内劳动力相对日本国内廉价许多,许多日本IT企业将开发和测试环节移到中国国内,根据客户的功能设计书或详细设计书,完成开发及测试。这样即可以降低软件开发成本,又不至于有太大的开发风险,因为设计是日本人自己完成的。但是,时常会发生因为客户的设计不合理或不详细或理解不同等等客观原因,无法按照原来合同中规定的工数完成任务,所以常常要靠加班来争取时间。
3. 品质要求高
谁都想花钱买到好东西,软件外包也是一样,日本公司也想花钱买到更好的客户,具体体现就是提供优质的代码成果物。然而,由于软件企业的流动性比较大,公司出于成本考虑,常会雇佣一些经验不足的实习人员直接投入项目开发中,导致品质较低,而为了弥补品质上问题,又需要用加班的方式来争取大量时间提高质量。
4. 文档要求高
有些日本客户公司,实施了CMM3或更高级别的控制标准,同样也要求中国的外包公司按照其标准实施,当然这样对于国内公司自身管理能力也是一种提高。但是,有些客户公司过于注重文档,而忽视了对于最更本的代码的重视程度。
第2章RUP
RUP是Rational统一过程(Rational Unified Process的简称,它是Rational公司(现归属IBM公司推出的一种软件过程产品。从软件过程模式角度看,RUP又是一种典型的软件过程模式,它以迭代增量式、架构为中心、用例驱动的软件开发方法、采用UML语言描述软件开发过程为主要特征,其中以用例驱动乃是贯穿软件开发始终的方法。
2.1 RUP的特点
1. 迭代式开发。
在软件开发的前期阶段完全并准确的掌握用户全部的需求几乎是不可能的。实际上,经常遇到,需求在整个软件开发工程中会不断改变,从而使得软件项目难于管理而产生较大风险。而迭代的开发方式允许在每次迭代过程中需求有所变化,通过不断细化来加深对问题的理解,最终实现完全满足用户需求的软件。迭代式开发不仅可以降低项目的风险,而且使得软件开发过程具备较强的控制性。
2. 管理需求。
完善用户需求是一个渐进的过程,开发人员在开发系统之初不可能完全详细的说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例
和脚本的使用以被证明是捕获功能性需求的有效方法。
3. 基于组件的体系结构。
组件使重用成为可能,系统可以由组件组成。基于独立的、可替换的、模块化组件的体系结构有助于管理复杂性,提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。
4. 可视化建模。
RUP和UML结合在一起,对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于组件的结构和行为信息。
5. 验证软件质量。
在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。
6. 控制软件变更。
迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之中, RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。
2.2 RUP的核心工作流