思归呓语

衣带渐宽终不悔,为伊消得人憔悴
随笔 - 396, 评论 - 2964, 引用 - 245

导航

工具

关于

标签

每月存档

广告



访客

应用架构指引第二版的最终版发布了

微软模式和实践开发团队发布了《应用架构指引》(第二版)的最终版:

Application Architecture Guide 2.0
http://www.codeplex.com/AppArchGuide/Release/ProjectReleases.aspx?ReleaseId=20586

比原计划早了几乎一个月,看来我得加把劲了。

posted on 2008-11-27 18:04:10 by saucer  评论(0) 阅读(5341)

Oslo

在最近的PDC大会上,微软推出了与Oslo相关的重大技术。Oslo到底是什么?根据Oslo的FAQ

“Oslo是微软的模型驱动开发平台的代号名,Oslo的目标是,通过把模型驱动应用变成主流,提供十倍以上的生产力增益。这个平台的核心是特定领域(domain-specific )的模型,语言和工具:

•       一个名为M的语言,用文字的形式编写领域模型

•       一个名为Quadrant的工具,用图形的方式编写领域模型

•       一个用于管理领域模型的Repository

•       一个带有预制领域模型和语言的库

在一起,这些构件将使得一个团队能更有效地开发、实现和维护应用和服务。”

 

这里是一些相关的资源链接:

  • Oslo 开发者中心
    http://msdn.microsoft.com/en-us/oslo/default.aspx
  • Oslo SDK October 2008 CTP 下载地址
    http://code.msdn.microsoft.com/oslo/Release/ProjectReleases.aspx?ReleaseId=1707
  • PDC上与Oslo相关的讲座录像

    1. A Lap around "Oslo" (对Oslo相关技术的综合介绍)
      http://channel9.msdn.com/pdc2008/TL23/
    2. "Oslo": The Language (对M语言的介绍)
      http://channel9.msdn.com/pdc2008/TL27/
    3. "Oslo": Building Textual DSLs (对如何建造文字形式的DSL的介绍)
      http://channel9.msdn.com/pdc2008/TL31/
    4. "Oslo": Customizing and Extending the Visual Design Experience (对Quadrant工具的介绍)
      http://channel9.msdn.com/pdc2008/TL18/
    5. "Oslo": Repository and Models (对存储中心的介绍)
      http://channel9.msdn.com/pdc2008/TL28/
  • David Chappell的《Workflows, Services, and Models - A First Look at WF 4.0, “Dublin”, and “Oslo”》
    http://msdn.microsoft.com/en-us/library/dd200919.aspx

    对其中的一段的草译,“Oslo的主要目的是使模型成为跨越应用开发周期(创建、部署和管理)的一个基本部分。在Oslo中,模型是某种东西的抽象表现,譬如一个业务过程,一个应用,或一个工作流程(别把这里的“模型”的概念与其他场景(譬如UML)中的同名术语相混淆,两者并不等同)。不是把模型的概念局限于只在设计过程中使用的描述性图表,Oslo允许模型成为应用本身的一部分。例如,一个WF工作流程可以使用Quadrant来创建,并储存于repository之中。这个工作流程是个模型,该模型存在于repository之中,但它同时也是工作流程的实际逻辑。改变模型意味着改变工作流程本身,这意味着模型和这部分的应用逻辑总是同步的。Oslo repository不仅仅可以保存应用的模型,当然,一个应用的其他部分还可以居于repository之外。然而,把模型从只是描述一个应用变成实际应用本身的观念,对于Oslo来说,是至关重要的。”

posted on 2008-11-07 14:40:53 by saucer  评论(0) 阅读(4354)

Pex

在PDC上的一个讲座中,微软研究所展示了一个工具,叫Pex (Program EXploration - 程序探索):

Research: Contract Checking and Automated Test Generation with Pex
http://channel9.msdn.com/pdc2008/TL51/

 

Pex项目地址:
http://msdn.microsoft.com/en-us/devlabs/cc950525.aspx

(上面链接里的下载好像是针对VS 2010的,其他的版本可在这个地址http://research.microsoft.com/Pex/downloads.aspx下载)

 

Pex是个白盒测试生成工具,可以用于帮助理解.NET代码的行为,调试问题,以及,完全自动地,创建涵盖所有边界案例的全套测试。它提供了与VS的集成。

在安装之后,如果在自己的代码中点击右鼠标,然后在上下文菜单中选择运行Pex探索(“Run Pex Explorations”)的话,它会用不同的输入运行你的代码很多次。这些输入不是任意的,也不是所有可能输入的全部组合,而是根据你的代码,分析出其中的边界条件,选出有代表性的输入。简单地说,Pex会分析每一句代码,会琢磨出达到该语句的测试输入。如果代码中有条件性分支,Pex会做案例分析,即Pex会根据代码中条件分支的数目和可能组合生成对应的测试输入。

Pex是在一个反馈循环中运作的: Pex运行代码多次,通过监测控制和数据分流,了解程序的行为。每次运行之后,Pex会挑一个早先没有覆盖的分支,建造一个描述如何达到那个分支的约束系统,然后使用约束解算器(constraint solver,这个版本用了一个叫Z3的约束解算器)决定满足对应约束的新测试输入。然后用新的输入再次运行测试。。。这个过程会重复多次。每次运行,Pex也许会发现新的代码,深入代码实现之中。通过这个方式,Pex可以探索代码的行为。

在VS中,在运行Pex探索之后,在探索结果中选择某个输入,然后选择保存测试案例的话,Pex会为你的代码生成一个测试项目,在其中生成测试类以及相关测试方法。当然你也可以选择所有的输入场景,然后保存所有的测试案例,供你做regression测试之用。

Pex在探索代码、生成测试输入时也会跟踪代码覆盖率。但Pex只有局部的覆盖率知识(Pex称之为动态覆盖率),只有VS代码覆盖率收集器才能给你提供全局的覆盖率信息。

在Pex的新手起步网页上有个简短的代码挖掘教程http://research.microsoft.com/pex/articles/pexcodediggertutorial.pdf 

 

新手起步网页上,还有更深入的教程,原理概述,参考手册和例程等等。

posted on 2008-11-06 14:39:47 by saucer  评论(0) 阅读(3782)

Powered by: Joycode MVC Blogger System