ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:24.09KB ,
资源ID:7890981      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7890981.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(对日软件外包精.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

对日软件外包精.docx

1、对日软件外包精第1章对日软件外包1.1对日软件外包的发展全球应用软件外包市场近几年平均每年以 29%的速度增长,2005年整个市场规模将达到389亿美元。目前全球的软件产值中,三分之一需要通过对外发包来完成。软件外包已经成为世界软件产业发展的一个重要趋势。在这一趋势下 ,振兴软件产业行动纲要提出,从2001年到2005年,中国软件出口要从年出口 7亿美元提升到50亿美元。按照预定的目标,2004年国内软件企业将要完成的出口额将达到35亿美元。这对于中国软件企业而言的确是个不小的数字。为了实现这一目标 ,有关人士指出,中国企业应积极拓展对欧美软件外包业务,把软件外包做强做大。但现在美国市场主要被

2、印度垄断,欧洲市场被爱尔兰垄断,中国企业的核心竞争 力需要较长时间的积累,而对日软件外包,我们则有优势。在对美软件外包市场上,中 国软件企业与印度软件企业的差距是明显的,从英文水平到签证难度,从法制制度的不同到对知识产权认识程度的差异,中国软件企业要在对美软件外包市场赶上印度 企业还需加以时日。美国IT从业人员中印度和中国人员的比例是 3: 1,中国软件企业目前做的外包只占日本软件外包的 2%多一点。以英文为主导的软件外包市场正在逐渐萎缩,并且在这个市场上我们和印度相比竞争优势不明显。而对日软件外包 市场相对印度来说,中国软件企业有地域优势和有限的语言优势,应当成为国内软件 外包企业的发展导向

3、。1.2对日软件外包的现状对日外包市场潜力巨大,据IDC统计数据,2005年日本IT外包市场规模为164亿美元,而同年我国来自日本的软件发包量约为 5.6亿美元,仅占日本IT外包市场的 3.4%。IDC预测2008年日本IT外包市场将达到23,363亿日元(约226亿美元,2010年我国对日外包将近40亿美元,占比上升为17.7%。由此可见我国对日软件外包未 来的市场潜力巨大。国内现有的对日软件外包企业,主要为面向日本资讯科技行业的客户提供外包 软件开发服务,而该等客户其本身又是为日本客户或全球客户提供软件开发服务。也就是一种工程转包性质的开发。以我现在所在公司为例 ,从事过制造业项目、CAD

4、软件工具、证券金融软件、物流软件等等。1.3对日软件外包的软件开发特点由于外包客户也是多为软件公司或是大公司的软件开发部分,而且由于是外包 软件开发,所以开发层次比较低,或者说不是一个完整意思上的软件开发过程。根据 个人在对日软件开发公司工作多年的经验,总结以下几点特点:1.技术含量低,从事低层次工作。通常,软件开发过程都要经历商业建模、需求分析、系统分析和设计、实现、 测试和部署等核心流程。然而,对日外包的开发流程被严格划分开来的,外包客户从事商业建模、需求分析、系统分析和设计等高层次的工作 ,然后将设计书发包到国内,而国内公司仅仅只是严格依据客户的设计书,将其代码实现并通过单体测试就算完工

5、。所以,国内对 日外包企业只是担当了实现、测试两个阶段的任务。也有个别项目会担当些简单的 设计任务。2.工期短工作量大由于国内劳动力相对日本国内廉价许多,许多日本IT企业将开发和测试环节移 到中国国内,根据客户的功能设计书或详细设计书,完成开发及测试。这样即可以降 低软件开发成本,又不至于有太大的开发风险,因为设计是日本人自己完成的。但是,时常会发生因为客户的设计不合理或不详细或理解不同等等客观原因 ,无法按照原来合同中规定的工数完成任务,所以常常要靠加班来争取时间。3.品质要求咼谁都想花钱买到好东西,软件外包也是一样,日本公司也想花钱买到更好的客户, 具体体现就是提供优质的代码成果物。然而,

6、由于软件企业的流动性比较大,公司出于成本考虑,常会雇佣一些经验不足的实习人员直接投入项目开发中 ,导致品质较低,而为了弥补品质上问题,又需要用加班的方式来争取大量时间提高质量。4.文档要求高有些日本客户公司,实施了 CMM3或更高级别的控制标准,同样也要求中国的外包公司按照其标准实施,当然这样对于国内公司自身管理能力也是一种提高。但是 有些客户公司过于注重文档,而忽视了对于最更本的代码的重视程度。第2章RUPRUP 是 Rational 统一过程(Rational Unified Process的简称,它是 Rational 公司(现归属IBM公司推出的一种软件过程产品。从软件过程模式角度看

7、,RUP又是一种典型的软件过程模式,它以迭代增量式、架构为中心、用例驱动的软件开发方法、采 用UML语言描述软件开发过程为主要特征,其中以用例驱动乃是贯穿软件开发始终 的方法。2.1RUP的特点1.迭代式开发。在软件开发的前期阶段完全并准确的掌握用户全部的需求几乎是不可能的。实 际上,经常遇到,需求在整个软件开发工程中会不断改变,从而使得软件项目难于管理而产生较大风险。而迭代的开发方式允许在每次迭代过程中需求有所变化 ,通过不断细化来加深对问题的理解,最终实现完全满足用户需求的软件。迭代式开发不仅 可以降低项目的风险,而且使得软件开发过程具备较强的控制性。2.管理需求。完善用户需求是一个渐进的

8、过程,开发人员在开发系统之初不可能完全详细的 说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并 将其文档化,用例和脚本的使用以被证明是捕获功能性需求的有效方法。3.基于组件的体系结构。组件使重用成为可能,系统可以由组件组成。基于独立的、可替换的、模块化 组件的体系结构有助于管理复杂性,提高重用率。RUP描述了如何设计一个有弹性 的、能适应变化的、易于理解的、有助于重用的软件体系结构。4.可视化建模。RUP和UML结合在一起,对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于 组件的结构和行为信息。5.验

9、证软件质量。在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建 于过程中的所有活动,这样可以及早发现软件中的缺陷。6.控制软件变更。迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之中,RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。 RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安 全的工作空间。2.2RUP的核心工作流RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows和 3个核心支持工作流(Core Supporting Workflows。尽管6个核心过程工

10、作流可能使 人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些 工作流在整个生命周期中一次又一次被访问。9个核心工作流在项目中轮流被使用, 在每一次迭代中以不同的重点和强度重复。1.商业建模(Business Modeling描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和 商业对象模型中定义组织的过程,角色和责任。2.需求(Requireme nts描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化 ;最重要的是理解系统所解决问题的定义和范围。3.分析和设计(Analysis & D

11、esign将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与 实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析 模型。设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图 是整个设计的抽象和简化。4.实现(Im pleme ntatio n包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进 制文件、可执行文件实现类和对象;将开发出的组件作为单元进行测试以及集成由 单个开发者(或小组所产生的结果,使其成为可执行的系统。5.测试(Test验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被 正确的实现,

12、识别并确认缺陷在软件部署之前被提出并处理。 RUP提出了迭代的方 法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺 陷的成本。6.部署(De pl oyme nt成功的生成版本并将软件分发给最终用户。描述了那些与确保软件产品对最终 用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软 件、为用户提供帮助。7.配置和变更管理(Configuration & Change Management描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流 提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。描述了如 何管理并行开发、

13、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原 因、时间、人员保持审计记录。8.项目管理(Project Management平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意 的产品。其目标包括:为项目的管理提供框架,为计划、人员配备、执行和监控项目 提供实用的准则,为管理风险提供框架等。9.环境(En viro nment环境工作流的目的是向软件开发组织提供软件开发环境 ,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提 供了逐步的指导手册并介绍了如何在组织中实现过程。2.3RUP裁剪步骤RUP是一个通用的过程模板,

14、包含了很多开发指南、制品、开发过程所涉及到的角色说明,由于它非常庞大所以对具体的开发机构和项目,用RUP时还要做裁剪,也 就是要对RUP进行配置。RUP就像一个元过程,通过对RUP进行裁剪可以得到很 多不同的开发过程,这些软件开发过程可以看作 RUP的具体实例。RUP裁剪可以分为以下几步:1确定本项目需要哪些工作流。RUP的9个核心工作流并不总是需要的,可以取舍。2确定每个工作流需要哪些制品。3确定4个阶段之间如何演进。确定阶段间演进要以风险控制为原则 ,决定每个阶段要那些工作流,每个工作流执行到什么程度,制品有那些,每个制品完成到什么程 度。4确定每个阶段内的迭代计划。规划 RUP的4个阶段

15、中每次迭代开发的内5规划工作流内部结构。工作流涉及角色、活动及制品 ,他的复杂程度与项目规 模即角色多少有关。最后规划工作流的内部结构,通常用活动图的形式给出。第3章改进方案虽然,对日软件外包工程往往不是一个完整的软件开发过程,只是其中一部分或 几部分而已,但是并不妨碍RUP在对日外包项目中发挥强大的作用。上一章节中,分 析了如何根绝具体项目特性 对RUP过程进行裁剪,以适应不同的软件项目。本章节 将依据裁剪步骤,结合现在公司的项目特点,细化制定适当的RUP开发过程。.1确定工作流对日软件外包,通常是根据客户的功能需求书或详细设计书,完成代码实现和测 试。所以只需要实现和测试两个工作流。结合我

16、公司现在从事项目的特点 ,简单阐述一下各工作流。1.实现由于对日外包的特殊性,面对客户基本都是日本的IT企业,现阶段都处于较低层 次,也就是只负责代码实现和测试,可能也会从事部分简单设计。所以,根据客户的设 计书完成符合要求的代码就是对日外包的主要工作任务。所以实现工作流也是最重 要的工作流。而且,由于是根据日方的设计从事开发实现,所以除了实现本身的任务 外,还有承前的工作要完成,比如:理解设计书的要求,开发环境搭建,判断设计中可能 存在的不合理性等。而这些问题都可能直接影响到最后是否能顺利完成实现的工作 任务。2.测试判断开发的代码是否能交付,也就是依靠测试用例了,我方只担任单体测试部分 的

17、任务,并将全部通过测试的代码和测试用例书作为成果物交付给日方。如果 ,由于单体测试内容不全面,而在结合测试中发现的问题,将作为Bug报告,再由担当者修正 后提交。以上讲的两个工作流,是现在多数对日外包公司承担的主要任务,当然也有部分公司可能承接的项目是个完整的软件过程,涉及到9个工作流中的绝大多数,在此不 作重点依次展开。其实各个项目,由自身特点可以制定出自己的 RUP软件过程。只要实用就是最好。3.2各工作流的职责和制品 由于是委托开发,客户为了有效控制开发 过程和质量,往往是通过各种文档来对项目进 行管理和控制。对日外包开发中, 文档的分类比较繁多,规格要求也根据不同公司有不同的 要求。以

18、下列举几种文 档,在整个开发过程中起俄作用:1.功能设计书 用户提出委托开发要求,中方根 据功能设计书,了解所开发项目的所有需求,并估计工 数和项目报价,如果对方客户对报价没有异议,就正常进入开发实施阶段。开发小组成员开 始一起研究功能设计,解决理解和实现技术上的所有问题,尽可能避免因设计书理解不足, 导致项目失败。2.详细设计书 结合实现技术的特点, 通常,客户是不提供详细设 计书,而是开发团队根据功能设计书, 完成详细设计书,作为实现工作流的前期成果物,交付日方Review确认,只有通过Review后才能进入到正式的开发实现 阶段。3.代码规约 为加强代码具有良好的可读性, 需要通过在开发

19、前期就作好代码规范的教育工作,规范的代码才能有效提交代码的品质。 4.开发环境构建步骤说明书外包开发通常客户是将完整的项目拆分成多个相对独立的模块, 分别发包给一个或多个外包开发公司开发,所以需要提供详细完善的开发环境构建说明 书,便于开发团队尽快熟悉 环境完成开发任务。5.代码代码程序当然是所有制品 中最重要的,其质量直接影响到项目的成功与否。 由于是委托 开发,全部都是根据客户提供的功能设计书来完成代码开发的, 所以往往可能因为设计书理 解不足,或设计书内容存在错误等外部因素影响代码的质量。而一旦存在疑问时,就应 该及时通过QA方式向日方确认。最后在完成全部代码实现后,需要和日方一起Rev

20、iew全部代码。总之,项目成败就取决于代码的质量如何了。 6.代码目录结构说明书此文档只是一个说明性的文档, 用说明各个代码文件的目录结构, 编译环境的设置等相 关具体内容。方便客户拿到代码文件后能尽快确认代码的正确性。 67.测试用例书测试用例书也是整个开发过程中又一个关键, 也是保证代码质量的一种有效手段。通常分为正常系和异常系两大类测试用例,判断程序的正常 执行结果是否符合需求, 是否具有一定的判错能力等。与代码一样,测试用例书 也是需要提交日方客户Review确认后,再能进 入测试阶段的。8.测试数据测试 过程用到的所有数据,可能因为测试数据的局限性导致有些 Bug没有被发现,那就可以

21、依据现有的测试数据内容判断测试是否全面而且有效了。 9.测试结果书依据测试用例书,对最终的代码程序进行测试,并全部确认无误后,填写测试结果书 提交给日方客户。10.辅助工具报告 为了保证代码的质量,通常还会使用一些自 动化测试工具,对性能,漏洞,规范等方面 进行测试,根据测试的结果报告,尽 可能修正后,将最终的报告书也需要提交给日方客户。 3.3 4个阶段的划分RUP将整个开发过程划分成初始、细化、构造、交付四个阶段。每个阶段中都包含着 多个工作流,只是工作的重点不同,同时还包含着复数个迭代过程。迭代次数和划分 时间也许无法事先预计,但是可以大致规划,再根据具体情况,灵活变动修改 的。以下将以

22、四个阶 段为单位分别展开阐释。1.初始初始阶段主要完成的任务是:掌握功能设计书,熟悉开发环境,估算项目工数和规模。 似乎初始阶段的任务并不难,但是其估算结果的正确与否会影响到最后的实现情况。 所以需要全面而准确的了解功能需求,才能避免过大的偏差。初始阶段相对任务比较轻,一般一 次迭代就能完成。在此迭代过程中也可以尝试实现部分代码,了解具体的项目难 度,以便准确 的估算。2.细化细化阶段主要任务是:作成详细设计书和测试用例书,并完成部分代码的实现。详细设 计书和具体实现方法是有密切联系的, 所以应该在写详细设计书的同时编写并测试通过部分 代码,以验证设计的可行性。而现在多数项目中存在的问题是,大

23、家并不能意识到迭代开发 比如,详细设计时,也会尝试调查,的重要性,还不能掌握迭代开发的手段规避和控制风险。 但是调 查时候写的代码可能并不是最后要交付的代码,可以认为那是一定程度上的资源浪费。所以应该加强开发团队在细化阶段是,注重迭代开发,使得项目不断完3.善。试。大。构造构造阶段主要任务是:依据详细设计书完成全部代码实现,并通过测这个阶段应该 相对比较轻松,因为详细设计书已经基本确认,应该偏差不但是也可能会出现一些未知 因素导致代码实现过程不顺利。所以,构造阶段一般都被分为两个或以上次迭代。我认为加 强团队对于迭代的重要性意识很重要,有必要让团队成员们都意识到迭代要进行到什么程 度,要完成哪

24、些任务等等。4.交付交付阶段顾名思义就是要完成整个项目的全部制品, 提交给客户方。这个阶段往往会发 生很多返工的情况,因为开发团队可能应该经验不足等原因, 首先无法通过项目管理者的审 核关,而不得不修改甚至是返工。首先,项目管理 者对项目的审核是必要的,也是有利无弊 的,但是应该考虑将审核分批前移,而 不是全部只在交付阶段进行。比如在四个阶段中分别 设立审核阶段,这样就可以 有效避免在交付阶段面临的返工风险。 实施、第4章实施、总结 根据以上的分1.对开析,对现有的软件过程进行了改进和实施,具体从以下几个方面进行的。发团队进行RUP相关知识的教育。通过学习 RUP,让大家认识到现有软件过程的 不足导致交付延时等风险。2.让大家意识到迭代过程对于整个软件开发过程的重要性。并尝试在实际项目中运用 迭代方式,层层递进,逐步化解可能存在的风险 问题。3.引入checklist,让团队成员可以自我检查,提高项目质量。 4.引入自动有测试单元测试方式,加强开发与测试并行的理念。每个迭代都有代码实现并都结果,这样步步为营的开发方式,极大程度上保证了开发的质量。 通过以上改进,现在项目开发更具可控性,也大大降低了开发中可能的风险。可见一个 合适的软件过程是多么的重要。8

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1