随着软件开发日趋国际化,对软件的质量要求和管理也随之增高。微软看到了应用程序生命周期管理在业界逐渐被接受认可的趋势,并宣称VSTS2010将会是一个革命性的.Net软件开发以及管理工具的产品,预计在2010年3月正式版发布。它将提供协同一致的应用程序生命周期管理工具,让参与软件开发的各种角色人员,例如:从架构师到开发人员,从项目经理到测试人员,都能够更加容易地在整个ALM过程中进行协作。
在本文中,笔者将介绍Microsoft Visual Studio 2010 Beta2版本中的敏捷特性,以及以往版本优劣势等方面的内容。通过这些内容的阐述,让读者了解VSTS2010的敏捷思想体系,以便于.NET人员在自己的项目中,根据实际情况,尽快熟悉和看清VSTS2010流程为导向的软件工程全貌和整体发展趋势。
一、引言
一个软件产品或系统同任何事物一样,也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期,也称为SDLC(software development life cycle)软件开发生命周期。它是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则。我们也可以将SDLC解释为一组步骤(Step)、阶段(Phase)或者里程标(Milestone),SDLC的一般步骤包括:确定问题、可行性分析与开发计划、收集需求、分析与设计、编码开发、测试、安装、维护。。
在Visual Studio 2010 Ultimate中,应用程序生命周期(ALM)是其重要特性和SDLC实现方式之一。我们将一个软件的生命周期(SDLC)划分为几个阶段;而利用各种工具辅助每个关键环节进行管理,就称为应用程序生命周期管理(ALM,Application Lifecycle Management)。微软Visual Studio 2010将会努力打造一个功能平等、共同分担,易用便捷的平台,以用于组织内的应用程序生命周期管理过程。
Visual Studio 2010的ALM涵盖了系统设计到测试阶段的工具,其中,在架构方面,Visual Studio 2010包括新的架构检视工具(Architecture Explorer),增加对统一建模语言(UML)的支持,例如类图、用例图、活动图和时序图等;以及架构层图(Architecture Layer Diagram),以图形化的方式描述系统架构,从而使得项目中的技术人员或非技术人员都能以模型透过图形化的方式进行协作,以及定义企业与系统功能关系等。另外微软提供虚拟实验室管理(Microsoft Test and Lab Manager)技术,可供开发人员和测试人员收集更多的测试资料,增强ALM的周期管理控制。
clip_image001
图1 Architecture工具模板
二、Scrum开发思想敏捷特性
Visual Studio 2010中项目过程模板变化很大,微软把Scrum作为基本Agile开发模型(Scrum模型为基础参考导向),TFS2010中集成了MSF for Agile Software Development v5.0,可操作性上融合了敏捷等软件开发流程思想模型。
clip_image003
图2 添加MSF for Agile模板
Scrum最初的含义是英式橄榄球争球队,是敏捷软件开发模型中的一种。Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,确保每天、每个阶段都明确的朝向目标推进。
clip_image005
图3 Scrum for Agile模型
Scrum开发流程通常以30天(或者更短的一段时间)为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部分,开发团队必须尽力于30天后交付成果,团队每天用 15 分钟开会检查每个成员的进度与计划,了解所遭遇的困难并设法排除。
三、VSTS2010安装敏捷特性
在以往的版本中,微软TFS2005/2008安装、配置的复杂性等原因,使得很多.Net中小型开发团队还在使用传统的、功能单一的VSS等开发管理工具,TFS被逐渐被边缘化。
在VSTS2010中,TFS2010安装更加简单便捷,完美支持SQL Server 2008,并与Web Access集成,比起之前繁琐的安装和配置步骤更为简单,无需单独安装SharePoint Service,并且可以在不用安装域控和AD(活动目录)的模式下
安装,从而非常适合不同规模的开发团队的使用需要。
clip_image007
图4 Team Foundation Administration Console
四、VSTS2010功能与角色敏捷性
clip_image009
clip_image011
图5 Visual Studio 2010 Ultimate架构
Visual Studio 2010 Ultimate的用户包含了项目管理人员(PM),架构师,开发人员和测试人员,他们覆盖在整个软件开发生命周期中。而VSTS 2010则为软件开发项目流程中不同角色的人员提供相应的工具,并且最重要的是将这些工具以Team Foundation Server为核心整合在一起,增强了软件开发团队中的沟通与协作。我们将能够实现完整的应用程序生命周期管理,使得开发团队能够在开发过程的早期以及在整个开发过程中确保更高的可预见性和更好的质量。
clip_image013
图6 微软MSF软件过程基础模型
1、敏捷的架构设计(Architecture)(项目经理、架构师或开发人员)
VSTS 2010支持统一建模语言UML(Unified Modeling Language)及特定领域语言DSL(Domain Specific Language),.NET项目管理人员、软件架构师或者开发人员可以丢掉Rose建模工具,进行软件架构的构建。
所示微软MSF软件过程基础模型设计设计活动阶段,经过概念设计、逻辑设计和物理设计(参考图6),在软件工程图纸设计过程中,VSTS2010可以敏捷的进行软件工程设计(参考图1 Architecture工具模板),从而辅助的完成软件工程文档。如图7所示,进行软件工程类关系图的设计。
clip_image015
图7 设计UML Class Diagram
鼠标右键,点击“Create Lifeline”菜单项,可以自动生成Lifeline,在这基础上可以进行类的时序图的设计,如图8所示。
clip_image017
图8 设计UML Sequence Diagram
另外,在架构管理方面,VSTS 2010通过新的架构浏览器(Architecture Explorer)和架构层图(Architecture Layer Diagram),以图形化的方式描述系统架构,从而使得项目中的技术人员或非技术人员都能以模型透过图形化的方式进行协作,以及定义企业与系统功能。
在实际的项目开发实践中,大多数情况下我们都是在已有代码的基础上构建新的系统。在这种情况下,.NET架构师或者开发人员遇到的一个典型的问题就是没有好的工具可以帮助他们很好地理解现有代码的架构,从而无法有效地在现有代码的基础上,添加新的功能以满足新的需求。为了解决这个问题,VSTS 2010提供了新的建模工具——架构浏览器(Architecture Explorer)。
架构浏览器图,如图9所示。
clip_image019
图9 架构浏览器
新的架构浏览器可以让架构师或者开发人员为已有代码创建完整的架构图,理解原有系统的各个组件是如何协作在一起的。这将为架构师或者开发人员决定如何使用,复用或者是弃用现有代码提供足够的有价值的参考信息。
对于非.NET架构设计人员来说,也可以借用微软的New Diagram模板(Uml Class Diagram、UML Sequence Diagram、UML Use Case Diagram、UML Activity Diagram、UML Component Diagram等)进行漂亮的软件工程图表设计,并可以直接粘贴到word中进行功能说明(参考图1)。
 
———————————————————————
任何美好的事物只有触动了人们的心灵才变的美好;
孤独的时候看看天空里的雨,其实流泪的不只是你。

———————————————————————