zoukankan      html  css  js  c++  java
  • 【ZT】Visual Studio Team System縱覽

      【IT168 专稿】Visual Studio Team System(以下简称VSTS)是一套高生产力的、集成的、可扩展的生命周期开发工具,它扩展了Visual Studio产品线,增强了软件开发团队中的沟通与协作。在本文中,我们将首先对VSTS做一些简要的介绍,后面针对不同的团队协作中的不同角色:面向架构师、面向开发者、面向测试者三种角色分别加以说明。

      利用VSTS,开发团队能够在开发过程的早期以及在整个开发过程中确保更高的可预见性和更好的质量。VSTS还包含了微软解决方案框架(Microsoft Solution Framework),MSF提供了一套经过长期考验的软件开发过程,能够帮助开发团体交付企业级解决方案。”VSTS的用户覆盖在整个软件开发生命周期中,为软件开发项目流程中不同角色的人员提供相应的工具,并且最重要的是将这些工具很好地整合在一起。

      1.什么是MSF?

      VSTS包含了微软解决方案框架(Microsoft Solution Framework,以下简称MSF),MSF是一种成熟的、系统的技术项目方法,它基于一套制定好的原理、模型、准则、概念、指南,以及来自微软的、经过检验的做法。MSF的定义并不是一套项目管理的步骤, MSF所提供的是一套指导性的原理、模型、准则、概念等,比如
      MSF核心有八个基础原理,它们是:
      ·推动开放式沟通;
      ·为共同的前景工作;
      ·赋予小组成员权利;
      ·建立清晰的责任和共同的职责;
      ·关注交付业务价值;
      ·保存灵巧,预测变化;
      ·质量投资;
      ·学习所有的经验;

      这些基本原理是MSF的核心,它们贯穿于项目开发过程中的各个方面。

      MS的准则包括项目管理准则、风险管理准则和就绪管理准则。这些准则对于MSF 小组和过程模型的良好运作十分重要。它们起源不在MSF之内;它们在行业内部得到了很好的检验,并有全面的知识体系来支持。MSF具有与基础原理和模型相配套的特定准则,并在需要的时候用它们对框架的其他元素进行补充。总之,MSF 并没有尝试去完全重建这些准则,而是去突出在被应用到 MSF 环境里的时候它们是如何去适应的。

      MSF 的远景目标是为软件专业人员提供由软件专业人员开发的高效、集成和可扩展的流程指导。

      ·高效:MSF 的一个关键远景目标是提高人们的工作效率。MSF 的流线型和自定义的流程指导表示,提供对高效性的支持。利用清单和指导(而不是详细的内容),用户可以迅速确定完成一项任务或活动的需求。

      ·集成:通过整套工具的无缝集成、以及帮助和 MSF 内容的集成,在工具内即可提供解决方案和指导。所有这些元素均可轻松地在 MSDN 及整个工具集的所有方面进行更新。可以对内容本身进行组织,以实现轻松维护。

      ·可扩展:流程指导和帮助在 MSF 内是完全自定义的。用户可以选择一个灵活或正式的方法,整合基于方案的开发,并通过内容确定他们自己的路径。

      MSF 指导关注的是对“人与流程”的管理。因为软件开发小组的需要和做法在不断发展,所以收集到 MSF 中的材料也同步进行不断地更改和扩展。另外,MSF 与 Microsoft Operations Framework (MOF) 相互配合,从而为操作环境提供平稳过渡,这是长期项目成功的要求。

      VSTS中为用户提供了两套过程模板,他们分别是:
      ·MSF for Agile Software Development
      ·MSF for CMMI Process Improvement

      这两个模板包括了工作项类型的定义以及状态转换流程、源码控制的策略、安全设置、项目站点的内容、预定义的报告等等,也许你现在并不理解他们的含义,后面我们会有一章专门介绍所有这些内容。你只要知道这两个模板定义了很多项目开发中要用到的元素,并且你可以完全自己定制这些元素,使得它们适合用户自己的项目。其中Agile模板适于小型团队的开发,比较轻巧,简单。CMMI模板则是一套比较完全而复杂的模板,其中提供了满足SEI CMMI三级的基本要求的敏捷开发模式。

      2.VSTS功能和组成


    图1

      如图1所示,VSTS是以角色为基础的,包含项目开发中的各类角色成员:
      项目经理(Project Manager)
      软件架构师(Software Architect)
      开发工程师(Software Developer)
      测试工程师(Software Tester)
      解决方案构架师(Team Foundation Server)

      各类角色成员通过使用VSTS而在项目开发过程中紧密地结合起来,及时有效的完成角色的任务。
      VS2005 Team Edition for Software Architects
      VS2005 Team Edition for Software Developers
      VS2005 Team Edition for Software Testers
      VS2005 Team Foundation Server
      VS2005 Team Test Load Agent
      VS2005 Team Suite

      Team Suite是VSTS的组成部分,它为核心软件开发团队中的每个角色成员提供了相应的工具,比如软件设计,开发和测试,以及团队沟通和管理方面,是成员之间形成自由,无缝的连接。通过和Visual Studio Team Foundation Server的整合使用, Team Suite帮助项目管理者更好的控制产品在软件生命周期中的每个环节,如图2所示:


    图2

      3.在VSTS中实现生命周期方法自动化

      VSTS使用团队项目这个逻辑概念来表示在 Team Foundation Server(或 TFS)中所配置的软件开发项目。(VSTS 使用 TFS 组件来集中存储所有与项目相关的数据以及支持项目团队成员内部的协作。作为 VSTS 的服务器端产品,TFS 集成了多个关键概念。)要获得 VSTS 所提供的好处,您必须为所启动的每个软件开发项目创建一个团队项目。要将特殊的方法应用于软件开发项目,您必须按照该方法配置其团队项目并使用初始数据填充该团队项目。可使用过程模板来指定其中的初始配置和数据。

      正如先前所提到的,过程模板是一组包含有预定义架构和结构的 XML 文件。用于创建团队项目的项目创建向导了解这些 XML 文件及其结构。创建团队项目时,PCW 从过程模板中读取 XML 文件,然后相应地配置和填充该团队项目。在团队项目创建完毕后,VSTS 中随附的工具(如 Work-Item Tracking、Source-Code Control 等等)会根据此配置和数据自动负责运行该项目。因此,要在 VSTS 中实现自定义生命周期方法,您必须做的唯一一件事情就是为该方法定义一个过程模板并利用该模板创建一个团队项目。配置、执行、监控和报告均由 VSTS 工具自动处理,因为这些工具了解过程模板架构。

      面向架构师

      Visual Studio Team Edition for Architects 本身也定位了三个完全不同的子组:应用程序设计器、逻辑数据中心设计器,以及系统设计器和部署设计器。应用程序设计器可以访问"白板"模式,以便创建应用程序设计。代码能够在设计器表面生成,并且能够很好地实现模型与代码之间的同步。该产品还能够根据逻辑结构进行验证,并且能够可视化表示分布式系统之间的各种关系。这很重要,是因为通常情况下,应用程序设计器几乎不能预见应用程序最终将驻留的整个系统。逻辑数据中心设计器可以访问设置和约束编辑器,以及系统定义模型(System Definition Model,SDM)生成器和编译器。

      针对架构师的 Team Edition 具有系统设计器和部署设计器,该组件将许多组织中通常各自为政的操作和部署联为一体。Team Edition 使用户能够将应用程序设计绑定到数据中心设计,然后创建可组装的系统。此外,架构师、开发人员和操作人员之间的断层对大多数公司而言仍然是一个具有挑战性的、代价很高的问题。这种对于体系结构对软件实现的影响的了解能够支持在生命周期较早阶段开始协作,从而削减了维护和部署的成本。多种项目生成以及持续的同步可使信息处于托管状态并保持是最新的。

      简化该功能的关键计划是动态系统管理计划(Dynamic Systems Initiative,DSI)。DSI 支持对系统和服务进行可视化,并且支持对每个系统和服务进行元数据跟踪,以便向其他系统和服务进行描述。为什么这很重要?这意味着,解决方案架构师随后可以针对基础结构架构师的数据中心设计来验证他们的应用程序设计。微软在具有系统定义模型 (SDM) 的 VSTS 中首次实现了 DSI,这样做可以对各层的部署环境和应用程序进行分类,从而帮助简化应用程序的设计、开发和实现。

      面向开发者

      Visual Studio Team Edition for Developers 延伸了代码创建、动态和静态分析、分析和代码覆盖功能。静态分析支持托管代码和本机代码;代码分析能够实现序列视图、对象分配和函数视图,以及应用程序验证器的可视化。这意味着,开发人员将更清楚地了解以前工作的结果,并且会看到产生的代码与规范之间的整体一致性。集成的单元测试以及与测试框架的紧密集成便于在生命周期中更早、更快地生成质量更好的代码(降低了成本,提高了工作效率)。此外还包括代码分析器,它揭示了操作系统内部的核心规范。例如,如果应用程序运行时出现内存泄漏,代码分析器将捕获内存泄漏并通知开发人员。

      面向测试者

      Visual Studio Team Edition for Testers 在 Visual Studio 产品家族中引入了测试,首次提供了来自微软的集成测试工具集。使用该产品,微软集成了一个测试创作和执行环境(Test View 和 Test Explorer)、负载测试,以及单元测试。负载测试针对 Web 服务和 Web 页上下文中的性能(通过基于协议的脚本),负载模式以及性能计数器,以收集和提供阈值监视。

      单元测试和代码覆盖都是在针对测试人员和开发人员的 Team Edition 中可用的延伸功能。这很重要,因为它能够让开发人员和测试人员更早地、经常地、反复地进行单元测试。代码覆盖能够让开发人员和测试人员了解应用程序中已测试的部分和未测试的部分。这还便于排定代码和测试资源的优先级。由于某些代码内容存在很大的失败风险或对业务的重要性更高,因此应该指定资源首先对其进行测试。

      4.VSTS带来了什么

      通过VSTS,微软正在解决日益增加的应用程序复杂性及其设计、开发和部署所必需的生命周期问题。这一点是通过提供必需的工具和指导从而能够预见、重复结果(无需付出生产效率和创新的代价)实现的。

      信息交流:通过降低报告的运转开销和寻觅团队成员间新的交流渠道,VSTS着重于能够更好地进行交流。例如: 通过自动从团队成员使用的工具那里收集信息,可以简化报告过程。从VSTS采集到的数据保存在数据仓库中,这使项目状态报告和可见性能够面向软件开发团队的所有成员,甚至是项目组之外的干系人。 项目经理能够将客户需求转化为开发团队中的工作项,然后跟踪工作项的状态以实现项目状态的监控。 分布式系统设计器 (Distributed System Designer) 将应用程序开发和部署需求转化为能够让开发人员和操作进行交流的公共语言 (SDM)。

      集成的工具:Visual Studio 的成功已被证实,即开发人员偏爱一个具备对他们需要的工具提供接口的集成开发环境。通过将开发人员在开发环境中需要的测试和性能工具(例如,单元测试、代码分析和性能分析)合并在一起,VSTS也期待着这种成功。这使开发人员能够在生命周期的较早阶段就改善其代码的质量,而无需中断他们的工作。通过尽早地为开发人员提供他们需要用于识别和解决质量问题的工具,更多的产品缺陷就能够在它们还未构成危害之前即被发现并解决。

      简化的、集成的工作流和过程:有了VSTS,那么过程就不仅仅是文档了。它还能将自己体现为实际的工具行为更改。当您在项目初期选择过程时,还需要选择工作流和工作产品,它们会驱动系统的行为方式。对 SDLC 过程的支持是内置的,这使得对工作流的支持是无缝的。通过将过程集成到团队成员日常使用的基本工具中,VSTS大大消除了过程采纳的障碍,并使自动收集跨职能的项目标准成为可能,而无需实施人工报告的相关开销。

      增加的投资回报:利用信息交流和生产效率的改进,企业将明显地看到针对其在 SDLC 工具和过程方面的投资而增加的 ROI。VSTS提供一个具有成本效益的解决方案,从而通过使用跨所有 SDLC 工具的广泛集成,实现对软件开发生命周期的管理。通过提供集成的工具集并基于现有知识进行构建,VSTS提供一个友好的环境来帮助开发团队提高效率,而无需掌握不必要的、复杂的概念和僵化的工具。

      5.总结

      本文我们简单的对VSTS做了一些概要的介绍,VSTS带来的主要好处是,通过在熟悉的微软工具范例内进行相应的软件开发,能够更好地适应企业,并且更好地与 IT 进行协作。利用综合信息来提高工作效率和沟通、自动进行跨生命周期工具集的数据捕获、公共的项目门户、跨工具查询和报告,以及公共链接和通知服务,VSTS使用户能够节约成本。时间流转,VSTS期待超越自身的发展 - 不仅限于目前涉及的规划与项目组合管理工具的集成,还要扩大项目估计和管理支持,以及对操作支持的系统管理链接。
     

  • 相关阅读:
    简单工厂、工厂方法和抽象工厂的学习笔记
    单一职责原则,开-闭原则,依赖倒置原则
    我对面向对象设计的理解——Java接口和Java抽象类
    高可用与负载均衡的区别
    应用交付、负载均衡(Load balancing)、高可用、F5
    四种常见的 POST 提交数据方式
    Git fetch和git pull的区别
    苹果Mac OS X显示隐藏文件的方法
    Appium教程---Client/Server Architecture
    UNIX网络编程——使用线程的TCP回射服务器程序
  • 原文地址:https://www.cnblogs.com/godwar/p/1522526.html
Copyright © 2011-2022 走看看