`

软件过程,TSP,RUP和XP

阅读更多

说到为什么我喜欢在实验室推广XP,我们先来看看几个软件过程

  首先是RUP,RUP有什么特点呢?迭代性开发,用例驱动,使用UML对软件建模,提倡事先设计好以组件为核心的体系结构(以体系结构为中心),不断的评估和测试软件质量,(使用用例)控制软件的变化。在这些原则的基础上,把软件人员分成各种角色(分析,开发,管理,测试,工具支持,配置)等等,在软件开发过程中的各种产品叫做工件(Artifact)。

  再看TSP,TSP把人员分成小组领导者、开发经理、计划经理、质量/生产经理,以及技术支持经理(注意这点和RUP的雷同),要求各个人员严格记录在软件开发过程中的每一步,比如程序的Bug率,使用的时间等等。

  最后一个是XP,XP的特点,双人编程,简单用例(User Story),Refactoring,以周为基础的迭代。持续集成,现场客户,测试驱动,自动化测试,代码同步。同样的,XP也把人员分成测试,交流人员,设计师,技术作者,客户,程序员等等。

  OK,说了这么多长篇大论,是为了把几个软件过程拿出来比较。所有的软件过程无非是为了避免风险,保证项目的成功。

  拿交通工具做比方的话,TSP就好比坐火车,由于TSP是CMM那帮子人搞的,所以TSP不强调迭代性开发。TSP强调的是质量管理和控制,通过每个人自觉自愿的记录每天的行为,从而的得到严格的项目的数据,缺乏了这种严格控制,TSP就好比火车没有轨道,一点用处也没有。而在我们实验室一帮懒懒散散的学生中搞数据,要他们每天填表,从而知道项目消耗了多少人时,Bug率为多少,不要做梦了吧,所以TSP那套方式肯定是行不通的。

  再看XP和RUP的差别,迭代性开发,两者都强调,不过两者的含义不同,在RUP中,每次迭代,强调产生的是一个个工件,比如完成了用例。而在XP中,产生的是可用的软件。为什么RUP的迭代里面可能没有产生可用的软件呢?因为RUP强调的是用例驱动和体系结构为中心,所以RUP花在设计体系结构和用例上的时间会比较多,这样带来的好处是软件的后期变更会比较少。而XP本身强调的是拥抱变化,不管三七二十一,先开发出来一个能用的再说,如果客户不满意(别忘了,XP是现场客户),Refactoring之。所以在XP的开头的时候,根本就不提倡太复杂的用例(客户在现场嘛,不懂客户的意思,现场交流啊),也不提倡过多的设计(测试驱动嘛,通不过的话Refactoring之)。

  然而RUP没有现场客户的概念,所以清晰的用例描述是RUP中很重要的一环。只有这些用例在客户和团队之间达成了共识,才能做下一步的工作,同样的,需求的变更也必须通过用例来体现,RUP很强调变更管理,就是这个意思。

  而在我们实验室做现在这个项目,不是和客户交流的问题,而是没有客户!!!

  所以,在这种程度下,我们的用例,不是要让客户理解,而是我们自己理解就足够了。而体系结构,由于你们现在不用考虑分布式,并发,事务等等一系列东西。这些东西都由J2EE做了。

  此外RUP在我们实验室很难办的一件事情是对各个阶段产生的工件的质量监控,同学们互相哈哈哈,很难对一个文档性的东西进行评价。

     那么要改善我们现在做的项目,最重要的是做什么呢?第一是,小迭代,我们现在整个软件开发周期太长了,应该缩短到2-6周以内。第二,测试,我们现在的测试很多都是手动的,需要自动化这个测试过程。第三是,快速构建,持续集成。整个软件的部署周期不能像现在这么长,不能由同学们手工构建,而必须是自动化的部署。这些都是在XP中强调的。

     RUP的不同就好比是做BUS和自己开小汽车的不同,尽管细微,但是,开小汽车更需要小心翼翼的调整方向,而公交车毕竟有线路。
   
  如果在一个大公司做部门经理的话,我更愿意采用RUP那套方式,辅之于XP的各种实践,然而在实验室,我只有退而求其次,因地制宜,XP能推广多少是多少,一些很难推广的东西比如风险管理,BUG管理只能暂时放弃了。

分享到:
评论

相关推荐

    软件过程管理37517PPT学习教案.pptx

    软件过程规范的建立可以通过多种模型和方法,如CMM/CMMI、PSP、TSP、RUP、XP和MSF等,这些模型提供了不同角度和层次的管理框架。 软件过程可以分为三类:软件基本过程、软件支持过程和软件组织过程。软件基本过程...

    软件过程新版.doc

    组织在建立过程规范时,可以参考多种国际标准和模型,如CMM、PSP、TSP、CMMI、RUP、极限编程(XP)和MSF。这些模型和框架提供了过程改进的路径和实践指导,有助于提升软件组织的能力和效率。 3. 项目实施过程规范 ...

    软件过程规范示例.pdf

    本规范采用 CMM(软件过程成熟度模型)的指导,吸收 RUP、XP、MSF、PSP、TSP 等过程规范指南的思想、方法及实践,充分结合xxx技术开发部的实际情况,引入先进的技术、方法、工具,为公司的软件开发工作提供一部详细...

    2021年软件测试工程师面试过程中遇到的问题.doc

    回答时要了解主流软件工程思想的概念和特点,如 CMM 是软件能力成熟度模型,CMMI 是能力成熟度模型集成,RUP 是软件工程化过程,XP 是极限编程,PSP 是个人软件过程,TSP 是团队软件过程等。 (5)对项目管理、白盒...

    软件测试工程师笔试试题(大集合).doc

    软件过程改进的方法包括 RUP、CMM、CMMI、XP、PSP、TSP 等。软件过程改进的关键是要确保软件的质量。 沟通技巧是一个非常重要的知识点。沟通技巧的目的是为了确保软件测试的正确性和效率。沟通技巧的方法包括项目...

    软件测试工程师试题实用.pdf

    提到的“TSP”,可能指的是Team Software Process,即团队软件过程,是CMM的升级版。 文件中还出现了版本控制和软件开发周期的术语,如“Beta”,这是软件开发中用来指代软件产品的一个测试阶段。“Alpha”也是测试...

    软件测试面试题集锦(30题)

    软件工程思想包括CMM、CMMI、RUP、XP、PSP、TSP等。这些思想强调了软件开发过程中的质量控制、风险管理、版本控制等方面,以确保软件产品的质量和可靠性。 七、测试员职业发展 测试员需要具备一定的技能和素质,如...

    软件面试测试题 对找软件测试同学很有用

    PSP(个人软件过程)和TSP(团队软件过程)关注个体和团队的生产力和质量。 以上就是软件测试面试中可能遇到的问题及其解析,这些知识对于准备面试的软件测试工程师至关重要。通过理解和掌握这些概念,应聘者能够更...

    应聘软件测试工程师常见的面试题.pdf

    - **TSP**:团队软件过程,关注团队协作和过程改进。 这些思想和模型提供了不同层次的指导,帮助软件项目更有效地管理、开发和交付高质量的软件产品。在面试中,理解和应用这些知识将展示候选人对软件测试和开发...

    《面试题库系列》软件测试面试问题锦集.docx

    - TSP(Team Software Process):团队软件过程,指导团队协同开发。 这些面试问题揭示了软件测试的核心概念,包括个人素质、测试流程、团队协作、质量管理和软件工程的最佳实践,是应聘者在面试中展示专业技能和...

    软件QA和测试面试问题集

    CMM/CMMI关注过程成熟度,RUP侧重于统一过程,XP强调极限编程和持续集成,PSP/TSP则聚焦于个人软件过程和团队软件过程的优化。应聘者需解释这些方法的核心理念,以及它们如何应用于实际项目中,提升软件开发和维护的...

    2023年软件测试工程师笔试试题大集合.doc

    您是否熟悉一些主流的软件工程方法论和思想,如 RUP、CMM、CMMI、XP、PSP、TSP。假如熟悉,您是否可以谈一下对这些方法论和思想的结识?” 在软件测试类型方面,本资源摘要信息提出了两个问题,分别是“软件测试...

    软件测试工程师面试题

    - **PSP/TSP(个人软件过程/团队软件过程)**:聚焦于个体和团队的技能提升和过程控制。 #### 九、沟通与人际关系 **提高沟通效率与维护良好人际关系的策略** 有效的沟通需要清晰表达、倾听反馈和尊重差异。建立...

    软件测试面试问题-个人.docx

    - **PSP**和**TSP**:个人软件过程和团队软件过程,帮助个体和团队提升生产力和质量。 8. **成为优秀的测试工程师**:需要具备全面的技术能力,如自动化测试、性能测试、安全测试等;严谨的逻辑思维,能够发现潜在...

    软件测试面试题答案.pdf

    - **TSP**:团队软件过程,强调团队合作和过程管理。 以上知识涵盖了软件测试的多个方面,包括职业发展路径、个人素质要求、测试流程、质量管理、配置管理和软件工程思想,这些都是理解和从事软件测试工作的重要...

    软件测试问题集锦 对软件测试的一些问题阐述 最新行业动态 最全 问题描述

    CMM(Capability Maturity Model)和CMMI(Capability Maturity Model Integration)是过程改进模型,RUP(Rational Unified Process)是软件开发框架,XP(Extreme Programming)强调敏捷开发,PSP(Personal ...

    软件测试面试题 软件测试面试题 软件测试面试题

    软件过程改进旨在持续优化开发和测试流程,以提高效率和质量。改进措施可能包括: - **引入新的工具和技术**:利用自动化测试等手段提高效率。 - **培养团队技能**:通过培训提升团队的技术水平。 - **改进沟通机制*...

    2022年应聘软件测试工程师常见的面试题.docx

    PSP和TSP则是个人和团队的软件过程改进框架,帮助开发者提高生产力和代码质量。 以上是对软件测试工程师面试题中涉及的各知识点的详细解释,这些内容反映了软件测试工程师需要掌握的核心技术和理论知识。

Global site tag (gtag.js) - Google Analytics