未来软件开发模式

来源:互联网 发布:矩阵的最小多项式 编辑:程序博客网 时间:2024/04/29 19:25

 

1.传统软件开发模式

 

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

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的功能。

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的建立是复杂的,需要做大量的准备工作。但一旦系统搭建起来,其受益是不可估量的。

 
原创粉丝点击