未来软件开发模式

1.传统软件开发模式

传统(目前)软件开发模式如图1,分为开发环境,测试环境,和客户运行环境。开发客户端(Deve Client)负责软件编码,并将代码发布到测试环境的开发测试机(Deve Test Env),该机可以被开发者访问更改。开发者可以在该机器进行初步的集成测试。当初步集成测试结束后,开发者向发布者(Release Client)提交集成测试申请,发布者将编译好的程序发布到集成测试机(Integration Test Env)。测试人员则在测试可客户端开始集成测试。当集成测试通过后,再由项目经理向发布者提交产品发布申请,最终又发布者发布为产品。

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 6in; HEIGHT: 260.25pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png"></imagedata></shape>

1

缺点:

1.需要熟记过多的软硬件配置信息。大型软件开发时,各种环境都有很多服务器,例如产品运行环境Web服务器4台,数据库服务器2台,中间件服务器8台,客户端80台;集成测试环境,Web服务器2台,数据库服务器1台,中间件服务器4台,客户端4台;开发测试环境Web服务器2台,数据库服务器1台,中间件服务器2台,客户端2台。如果每台Web服务器有2个服务,每台中间件服务器有2个不同产品,在这种情况下,开发者通常需要熟记5种以上的软硬件配置。而集成测试者需要记更多,发布者则需要使用工具才能完成发布到上百个目标机器的工作。通常,开发者在发布到开发测试机一个补丁时,需要手动拷贝到不同的目录下,或者临时需要编写一些脚本。不管是采用那种方式,都不是一件轻松的工作,并且这种工作会经常出现。在项目进入维护阶段后,因为维护阶段不再配有测试人员,维护者既是开发者也是测试者这种繁杂的工作就更加明显。也给培训新来的人带来了不少工作量;

2.发布者的工作量过重。通常软件发布人数不会太多,开发阶段34人左右,维护阶段一般2人,1人负责产品发布,1人负责集成测试环境发布。但不代表发布工作会少于开发阶段。在维护初期,系统还不稳定,经常会发布各种补丁。因为发布时间必须是其他人员休息时间,发布者的工作是非常辛苦的。发布者除了需要掌握各种发布环境,和工具,他们还必须认真审查开发者提交来的发布申请书,保证发布程序无误。因此发布者的压力也是很大的。

3.其它的重复劳动。除了开发环境,测试环境和产品发布需要做很多重复工作之外,还包括各个服务器软件产品运行状态监视,批处理程序的运行结果审查,密码过期处理,以及日常各种系统维护工作等。目前这些工作需要使用不同的工具来完成,有些需要购买,有些需要自行开发。而这些工具分散在不同的机器,由于产品不同,很难把他们整合在一起。

2.未来软件开发模式

未来软件开发模式,如图2,是结合现有ALMSCMSAMCLMSES技术,提出的一种类似于中枢神经的N:1:M模式,N代表N台客户端;1代表中枢神经,这里指的是基于人工智能应用程序生命周期管理系统( ALM),它还包括软件配置管理(SCM),软件资产管理(SAM),组件库管理系统(CLMS),专家系统(ES);M则代表需要管理的各种环境,例如产品运行环境,测试环境等。

2

未来的软件开发模式构成,如图3

1.客户端已不需要在分门别类,任何一个客户端只要能连接到AI.ALMS并有相应的权限,就可以充当任何角色。是AI.ALMS的构成。用户可以通过各种Web浏览器访问AI. ALMS。当开发者需要访问或更新源代码时,可以通过这些SCM的客户端在AI.ALMS提供的配置信息下操作。AI. AI. ALMS还提供了访问各个环境的远程登录工具,该工具结合TelnetFTP,微软的Remote Desktop Connection的功能。

<shape id="_x0000_i1027" style="WIDTH: 6in; HEIGHT: 228.75pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png"></imagedata></shape>

3

2.CLMS是组件库管理系统,在开发软件过程中,通过与CLMS交互,开发者可以获得CLMS的可再利用组件。而开发者在开发过程的软件资产CLMS会通过SCM自动获取,自动组织加入到CLMS中。

3.ES是软件开发的专家系统,帮助开发者解决技术难题,修改程序现在bug,并将和开发者的交互记录保存到知识库中。

4.SCM是软件配置管理,它负责管理项目的所有源代码和文档。它还负责连接各个环境,代码发布将通过SCM上传到各个环境中。SCM保管各个环境的应用程序副本。当一个程序需要发布,SCM根据本地副本的目录地址上传到目标机的相应位置。ALMS可包含多种SCM系统,例如CVSVSSSVN等。根据项目需要SCM可能需要安装在不同的操作系统。

5.ALM是生命周期管理器,包括分布开发管理,变更管理,需求管理,发布管理,Bug管理。

优点:

1.统一管理。AI.ALMS类似于大脑的神经中枢,统一控制软件开发的所有资源。项目组成员在系统搭建后就不需要熟记各个环境的配置信息。AI.ALMS会管理的很好。

2.软件发布。发布者不需要在本地保留发布副本,或是从其他的开发者获得发布副本,而只直接方法AI.ALMS,在AI.ALMS的应用程序生命周期管理器(ALM)里,已有开发者申请发布记录和产品经理审批记录,发布者所做的只是点击发布按钮,ALM自己将完成剩余操作。开发者在开发测试环境里发布自己的程序时,也可充当发布者的角色,不同的时在开发测试环境发布不需要产品经理的审批。发布的过程也非常简单,ALM访问SCM,根据源文件的版本号,来判断哪些文件需要发布,在需要发布的文件上打上发布的记号,再由ALM的发布程序来完成剩余的操作。当然这一些都是在配置好AI.ALMS的情况下进行。

3.辅助开发。CLMSES帮助开发者实现各种功能和解决各种技术问题。CLMSES里保存的内容是公司的软件资产也是智慧宝库。是急速软件开发必不可少的组成部分。

总结:

虽然题目是未来软件开发模式,其实离我们并不遥远,本文所使用的术语和系统名称都来自于现代技术,或许某个公司的某个项目已经使用了这种模式。诚然AI.ALMS的建立是复杂的,需要做大量的准备工作。但一旦系统搭建起来,其受益是不可估量的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值