本文来自百科,由于是非Python开发者,所以仅为了拓宽知识面

1软件介绍

Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有团队的开发过程。[1]

2开发语言

Trac是采用Python语言开发的,因此Trac的在运行的时候,需要有Python环境的支持,在本手册中Python采用2.5,Trac采用0.11Beta版本、Apache 2.2。
整个Trac是建立在WIKI和TICKET基础上的,WIKI在工具中充当书写文档、TICKET等的语法,它包 含了一些类似HTML但简化了的语法格式,在Guide文档中有语法的详细介绍。WIKI的具体含义将在“Trac中的WIKI”一节中进行详细介绍。 TICKET是Trac中的另一个重要的组成部分,Trac使用Ticket(小纸条)传递信息。一个Ticket是具体需要做的事情的载体,也包含很多 描述性信息。[1]

3模型

Trac 是以面向进度模型为项目管理模型的,很明显的特点就是它以里程碑(Milestone)方式进行项目管理的。每个里程碑中的具体要做哪些事情,就使用 Ticket来进行定义、跟踪等。里程碑是什么呢?为什么我不用时间点呢?原因在于使用时间点往往让人误以为,里程碑是按照时间来设计的,而不是按照事件 来设立的。
另外,Trac做一个SCM配置管理平台,意味着它有良好的扩充性。通过WebAdmin界面中的Plugin功能,可以很方便的安装下载的插件,也可以通过此功能查看已经安装的插件,并可对其中的插件进行启用或停用操作。[1]

4体系架构

Trac权限体系

Trac 的权限体系是比较完备的设计,默认情况下trac有anonymous和authenticated两种性质的用户组。Anonymous即匿名组,默认 情况下只要能访问apache提供的trac实例服务,那么就属于这个组,这个组浏览trac实例界面时,将根据trac实例设定的权限方案提供可以浏览 的内容。
在通常情况下,我们都给某个trac实例指定admin用户,即权限最大的用户。可以通过trac-admin 实例名 permission add 用户名 TRAC_ADMIN,命令在dos提示符下创建此实例的管理员帐户。需要注意的是权限是区分大小写的。设置成功后,此用户验证登录后,将能够看到Admin这个webadmin管理界面。可以通过此界面可视化的对trac实例进行管理。
Trac使用Subject和Action方法绑定来进行赋权。Subject即操作对象,Action即可以执行 的动作。通过这种关系映射,从而实现Trac的权限管理。默认情况下Trac包含anonymous和authenticated两个Subject,通 过前面的trac-admin后,将出现第三个subject,即用户名。
对于Subject具体的赋权操作,可通过下图完成。通过对Subject的分配Action即可完成赋权操作,通 过Remove selected items可以取消某个Subject已经分配的权限。需要注意的是TRAC_ADMIN是最大权限。同时也可以对Subject进行分组管理。某个组拥 有的权限,组员将会自动继承。

Trac中的WIKI

在Trac中随处可见WIKI的影子。Trac的welcome页面,Ticket的编写等等,在整个Trac界面中均可以使用WIKI的语法书写文档。WIKI包含自己的一套语法,采用Genshi才渲染Web页面,或者说解释WIKI语法到HTML语法。

Roadmap

Roadmap中文翻译路线图。在Trac中使用Roadmap展现某个软件的开发过程。在Roadmap中,通过Milestone来分解软件开发的整个生命周期。多个Milestone就构成了一个Roadmap。当然一个软件交付后,在以后的维护过程中的变更、修改等都创建新的Milestone进行管理。

Timeline

Timeline中文可译作时间线,它是以时间进度为参考轴,按时间倒序的方式显示此trac实例中所以的操作日志。它监控的对象包括:
  • WIKI事件:创建和更改动作;
  • Ticket事件:创建、更改、完成等所有的Ticket的事件;
  • Source chanege事件:资源库的代码发生一些动作事件;
  • Milestone事件:Milestone结束事件。

Trac中的Ticket

Ticket是trac中管理项目的核心元素,它在trac中被用作项目的任务、功能需求、错误报告软件发布支持等,它采用WIKI作为其描述部分文字的语法.

Trac中的Report

Report在trac中主要的用于显示ticket,可以根据上文中提到的ticket所有的属性进行过滤,同时也可以定义显示ticket哪些字段属性,如果觉得用户设定的查询条件及显示方式很有价值,那么你可以保存此查询Report,在下次直接使用。这样在菜单“VIEW TICKETS”中看到此报表。需要注意的是Report只查询ticket。

Trac中的Search

Search主要是对ticket和WIKI进行查询的,查询的内容为ticket和wiki内容,其实查询的就是timeline菜单中列出的所有的内容。Trac使用全文检索的方式进行查询。具体就不在描述。Search输入框中的最小长度的设置在Trac.ini配置文件中进行配置,参考Help/Guide。

Trac中的Admin

Trac中的admin都是一些重要的操作,但是同时也是很简单的操作,都是对trac整个环境的基本信息做一些设置。包含两个部分的设置,即general和ticket。[1]

5项目周期

Trac 采用面向进度的开发模型,因此产生了Milestone的概念,那么Milestone虽然建立了阶段性的里程碑,但是里程碑具体怎么才能到达呢?这就需 要采用ticket方式进行处理。当定义的所以的ticket全部closed时,就说明到达了里程碑,但是达到了也并不表示所有的ticket都是 fixed,也许是其他的原因关闭的。还有虽然到达了里程碑,但是未必是按时完成的,但是总的阶段性结束点是很明确的。
因此用trac管理一个项目,就要做好以下几方面的工作:
  • 划分里程碑
  • 划分项目components
  • 划分ticket
  • 熟练掌握Ticket的运作机制
  • 熟练掌握Change History的查看和使用
  • 熟练掌握Milestone的查看和使用
前面三项属于项目架构范畴,后面三项属于操作范畴。对于前面三项各自的划分原则是:
划分里程碑原则
里程碑是一些事件,我们设立这些事件是为了表明当这些事件发生的时候,我们的工作已经达到了某种程度。而我们不能够仅仅使用时间点来划分里程碑。
至于选择什么事件作为里程碑,其实就是选择项目利益相关人员最关心的事件作为里程碑。如果为项目计划时间表开一个会 议,肯定有很多人提出他们关心的事件或者时间点,比如销售人员会问开发人员什么时候完成alpha测试,好让他们去找客户做beta测试,老板在听完大致 计划之后会问什么时候拿出第一个运行版本,开发人员会问什么时候能够签约以便可以开始正式的工作。这些事件或者时间点就是最好的里程碑,里程碑之所以能够 标示项目进度,是因为它是项目相关人员关心的事件,里程碑标示进度的含义也是事件的含义。
在实际项目工作中,里程碑是否已经达到,也是非常明确的事情。事件是否发生应该是很明确的,如果不明确说明选择的里程碑不是一个事件,比如“评审通过”、客户在合同上签字、需求分析文档被老板批准,测试中bug收敛,这些事情是否发生都是很清晰的,是一个明确的时间点。
划分Component原则
一般情况下按功能模块来划分,比如协同办公系统可以划分为公文处理、个人办公、电子邮件等等。组件和里程碑之间的关系是,一个组件可以属于多个里程碑,当然一个里程碑里面也可以包含多个组件,它们之间是多对多的关系,但是在trac里面是以里程碑为导向的,所以我们应该站在里程碑这条轴上去管理软件项目。
具体的Component如何划分,这就需要跟实际的情况决定了。
划分Ticket原则
Ticket系统简介 Ticket系统是Trac中关于项目管理的一个重要单元,它是一个简单有效的版本差异和Bug跟踪系统。
在项目开发过程中出现的任何问题,都可以用一个Ticket来标识,例如Bug,项目计划,功能改进,项目建议,Todo等等,都可以写成一个Ticket,开发人员通过访问查看Ticket系统,可以及时的了解到项目进度,有待解决的地方等等
每个Ticket都可以被修改和说明(Description属性),并说明这个Ticket是Bug还是项目建议 还是其他什么(Type属性),指派由哪个人对这个Ticket负责(Assigned to/Owner属性),设定Ticket的优先级(Priority属性),设定Ticket的最终完成时间(Milestone属性),设定这个 Ticket属于哪个模块(Component属性)。一个Milestone包含一个名称和时间,其中时间即为项目中这个阶段的预计完结时间,我们通过 设定这个属性,来表明所要创建的Ticket属于哪个Milestone,属于项目的哪个阶段,该在哪个时间之前完成。[1]

6Trac 的安装

Trac 的主页上有大量的文档,指导用户进行安装和升级。具体安装过程参见主页上相关文档 [2]
另外也有一些项目提供预先打包的“Portable”安装方式[3]

trac项目管理平台的更多相关文章

  1. 使用rsync工具构建php项目管理平台

    对于phper来说部署项目和更新项目是很方便的,只要直接将写好的项目覆盖到项目的根目录就可以啦.但是平时项目开发的时候肯定不是只部署一个环境,一般是三套环境(开发环境.测试环境.生产环境),我们每次在 ...

  2. 什么是云效 Projex,云效Projex企业级高效研发项目管理平台

    云效项目协作Projects是一款企业级高效研发项目管理平台, 提供了快速实践的敏捷研发项目管理机制,提供对需求.迭代.缺陷各个维度的协同管理以及相关的统计报告,让研发团队高效协作.践行敏捷并持续交付 ...

  3. 【转】搜狗开源内部项目管理平台Cynthia意欲何为

    FROM : http://blog.csdn.net/dj0379/article/details/38356825 目前,在项目管理与缺陷管理系统上,中国的中小开发团队基本都在使用国外产品,在理念 ...

  4. 开源项目管理平台*redmine*的架设

    yum -y install ruby yum install rubygems gem install heroku gem install rack -v=1.0.1 gem install ru ...

  5. jira项目管理平台搭建

    参考文档:http://www.cnblogs.com/ilanni/p/6200875.html   一.环境准备 jira7.2的运行是需要依赖java环境的,也就是说需要安装jdk并且要是1.8 ...

  6. docker部署Redmine项目管理平台

    1.下载镜像(自己用的3.4版本) docker pull redmine:3.4 docker pull mysql:5.7 2.运行 docker run -p 3306:3306 --name ...

  7. 开源企业平台Odoo 15社区版之项目管理应用模块功能简介

    项目管理无论是各类证书的认证,如PMP.软考高级的信息系统项目管理师.中级的系统集成项目管理工程师等,还是企业实践都有着广泛的实际应用中,至今还是处于热门的行业,合格的或优化的项目经理还是偏少,对于I ...

  8. 项目管理、测试管理、代码bug 管理

    1.友盟统计     阿里旗下的产品 http://www.umeng.com/ 2.bugly    腾讯旗下的产品 http://bugly.qq.com/ 3.禅道  项目管理工具  需要部署到 ...

  9. 零成本建立的.NET小组开发平台

    前言 说道.NET开发平台,首先想到的就是Visual Studio,建立.NET小组开发平台自然首推TFS.但其花费却也是相当昂贵的(当然在本国可以无视这些成本),近期的开发中接触到一些开源软件并读 ...

随机推荐

  1. linux服务器如何设置目录权限,让开发只能在测试目录下开发,不在线上目录上开发

    当一台服务器上,既有测试环境,也有生成的环境,开发需要在线上测试,如果开发生产环境的权限,那开发容易误操作 需求如下: (1)生产环境的代码,必须有专用的账号登陆进行管理 (2)开发测试环境的代码,开 ...

  2. Android-BaseLine基础性开发框架

    比较基础性的Android快速开发框架Android-BaseLine,Android-BaseLine实现的功能远远没有其他框架多,一个很好的框架不应该显得太过臃肿,很多功能一般情况下我们可能用不到 ...

  3. Android子线程更新UI主线程方法之Handler

    背景: 我们开发应用程序的时候,处于线程安全的原因子线程通常是不能直接更新主线程(UI线程)中的UI元素的,那么在Android开发中有几种方法解决这个问题,其中方法之一就是利用Handler处理的. ...

  4. Android中使用抖动动画吸引来用户注意

    原文:http://www.androidcn.org/topic/552e65bc61d460226ab27a5c 在应用中,有时候我们要吸引用户去点击某些按钮,比如应用市场的推荐按钮,为了能够吸引 ...

  5. runtime之消息转发

    前言 在上一篇文章中我们初尝了runtime的黑魔法,可以在程序编译阶段就获取到成员变量的名字,特性以及动态的给对象增加属性等等,在接下来中我们进一步了解OC的消息发送机制.如果之前没接触过runti ...

  6. iOS 公司开发者账号申请

    苹果开发者账号分三种. 个人账号:个人申请用于开发苹果app所使用的账号,仅限于个人使用,申请比较容易,$99. 公司账号:以公司的名义申请的开发者账号,用于公司内部的开发者共用,$99. 企业账号: ...

  7. myeclipse2013 安装 egit

    myeclipse2013版本: Version: 2013 Build id: 11.0-20130401     手工安装不了,那就到市场上安装.     1.Help--->Install ...

  8. new与malloc的区别

    看起来,它们的不同只是new比malloc用起来更方便而已.仅仅是这样吗?不是吗? 1 来源不同: 1)new/delete是C++中的操作符,而malloc/free是C中的标准库函数,需要库文件支 ...

  9. TCP 连接的 TIME_WAIT 过多 导致 Tomcat 假死

    最近系统二次开发之后,发现使用的 Tomcat 7 会经常假死.前端点击页面无任何反应,打开firebug,很多链接一直在等待服务器的反应.查看服务器的状态,CPU占用很少,最多不超过10%,一般只有 ...

  10. nginx中使用srcache_nginx模块构建缓存

    nginx中可以将lua嵌,让nginx执行lua脚本,可以处理高并发,非阻塞的处理各种请求,openresty项目中可以使用nignx可以直接构建 srcache_nginx + redis 缓存, ...