跟世界上的任何事物一样,软件研发也有其生命周期。通常,我们将一个软件的生命周期划分为分析、设计、开发、测试、部署、维护直至***废止等这样几个阶段;而利用各种工具辅助每个关键环节进行管理,就称为应用程序生命周期管理(ALM: Application Lifecycle Management)。
在应用程序的整个生命周期中,每—个关键环节都有其任务,同时产生—定的规格或是程序再交付给下—个环节。如果缺少管理,或者是流程中的某个环节建立在一个过程所产生的错误结果之上,整个软件工程极有可能面临失败的命运。应用程序生命周期管理的关注点就在于将软件研发的全部过程看做一个连续的、可重复的过程:定义、设计、开发、测试、部署和管理。过程中的每个部分都需要认真对待,进行监控,以确保整个流程能够顺利完成。
通过实施应用程序生命周期管理,我们可以获得如下的好处:
◆提高生产率,整个团队共享开发和部署的***实践(Best Practices)过程,而开发人员则只需要关注具体的业务需求(Business Requirement)
◆提高质量,使得最终交付的应用程序满足用户的期望(Expectation)
◆打破合作过程中的壁垒,尤其是技术人员和非技术人员之间的沟通障碍,使得项目中的各种信息流通畅
◆通过简化的集成方案加速开发
◆使设计与应用程序保持同步从而降低维护时间
◆使发生在技能(Skill)、流程(Process)、技术(Technology)方面的投资***化
◆通过降低修改与构建程序所需时间提高应用程序应对业务变更的灵活性
随着软件开发实践的不断深入,应用程序生命周期管理越来越被业界接受为一种经过实践检验的,可以创造高品质的应用程序的,可靠的软件开发模式。但是,要实施整个应用程序生命周期管理是非常复杂的,我们必须借助一些工具来帮助我们完成整个生命周期的管理。最初的时候,项目中的技术人员使用一些单独的开发工具进行软件开发,例如架构师使用Rose进行架构设计,而开发人员则使用Visual Studio进行编码。同时,项目中的非技术人员则使用一些通用的项目管理工具进行项目管理,例如项目经理使用Project,Excel等制定项目计划,进行任务划分和分配等。
那个时代,这些软件被简单松散地集合在一起,各个软件之间无法进行信息流的沟通,软件开发流程和项目管理流程两者是完全分裂开的。导致信息在项目内部的阻塞。同时,由于软件开发的复杂度(Complexity)和混合度(Sophistication)的增长,最初以版本控制软件为核心的工具集合已经向外扩展到更多方面,从而对应用程序生命周期管理软件提出了更多的要求。
Visual Studio Team System 2010
微软看到了应用程序生命周期管理在业界逐渐被接受认可的趋势,所以在微软的第三代Visual Studio Team System——Visual Studio Team System 2010中,将提供协同一致的应用程序生命周期管理工具,让参与软件开发的各种人员,从架构师到开发人员,从项目经理到测试人员,都能够更加容易地在整个ALM过程中进行协作。
图2 Visual Studio Team System的架构
我们可以看到,VSTS 2010的用户包含了项目管理人员,架构师,开发人员和测试人员,他们覆盖在整个软件开发生命周期中。而VSTS 2010则为软件开发项目流程中不同角色的人员提供相应的工具,并且最重要的是将这些工具以Team Foundation Server为核心整合在一起,增强了软件开发团队中的沟通与协作。利用Visual Studio Team System,我们将能够实现完整的应用程序生命周期管理,使得开发团队能够在开发过程的早期以及在整个开发过程中确保更高的可预见性和更好的质量。
架构
其中,在架构方面,VSTS 2010将通过新的架构浏览器(Architecture Explorer)和架构层图(Architecture Layer Diagram),以图形化的方式描述系统架构,从而使得项目中的技术人员或非技术人员都能以模型透过图形化的方式进行协作,以及定义企业与系统功能。另外,VSTS 2010也同时支援统一建模语言(UML: Unified Modeling Language)及特定领域语言(DSL: Domain Specific Language)。
图3 架构层图
在实际的项目开发实践中,大多数情况下我们都是在已有代码的基础上构建新的系统。在这种情况下,架构师或者开发人员遇到的一个典型的问题是:没有好的工具可以帮助他们很好地理解现有代码的架构,从而无法有效地在现有代码的基础上,添加新的功能以满足新的需求。为了解决这个问题,VSTS 2010提供了新的建模工具——架构浏览器(Architecture Explorer)。新的架构浏览器可以让架构师或者开发人员为已有代码创建完整的架构图,理解原有系统的各个组件是如何协作在一起的。这将为架构师或者开发人员决定如何使用,复用或者是弃用现有代码提供足够的有价值的参考信息。
图4 架构浏览器
#p#
开发与测试
在测试方面,VSTS 2010强化了测试功能,同时简化了在整个应用程序生命周期中整合测试的工具。新功能包括移除不可重现(No-Repro)的错误、快速进行有关测试的设计与开发、测试用例管理,与Team Foundation Server集成的测试计划,以及确保所有更新的程序代码都被测试等。
图5 丰富的测试工具
在VSTS 2010中,重点强调了测试人员与开发人员的协作。它提供了两个视图:测试影响视图(Test Impact View)和代码变更视图(Code Changes View)。通过这两个视图,开发人员可以更加了解开发对测试的影响。当开发人员变更代码的时候,测试影响视图会分析哪些测试需要运行以验证代码变更。这将帮助开发人员只运行必要的测试以对代码变更进行验证,从而对签入的代码充满信心。新的测试影响视图显示了代码变更后必须运行的测试的列表,同时显示了每个测试所影响到的代码变更。而代码变更视图则显示了所有代码变更的列表,同时显示了为了验证这个代码变更所必须运行的测试。这样就避免了运行全部测试来验证某一个小的代码变更所造成的浪费,使得测试更加高效。
协作
VSTS 2010在协作功能上则通过强化Team Foundation Server(TFS)加以改善,包括提供流程模板,允许团队可以配置及采用任何喜欢的敏捷式(Agile)软件开发模式。团队可根据丰富的工作项目连结进行追踪,并建立有层次的工作项目关联。在应用程序生命周期管理中,我们最关心的是项目的管理人员如何参与到整个生命周期中来。通过TFS与Peoject和Excel之间的紧密协作,项目的管理人员可以使用自己熟悉的项目管理工具,直接从TFS获取项目的相关信息,通过丰富的项目报表,了解项目的运行情况,准确地对项目中的各项任务进行计划和管理。
图7 Project与VSTS的协作,产生项目计划
图8 项目剩余工时报表
另外,在程序代码管理系统上,TFS则提供视觉化的工具以追踪从分支到产品版本的所有修改;以及提供各种工作流程程序版本以提前发现错误。
【编辑推荐】