第1课_软件工程学概述.pptVIP

  • 9
  • 0
  • 约1.14万字
  • 约 87页
  • 2018-08-26 发布于湖北
  • 举报
结对编程 (Pair Programming) Pair Programming是一个编程模式(Programming pattern)。两个程序员并排坐在一台电脑前,面对同一个显示器,使用同一个键盘,同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起单元测试,一起整合测试(Integration Test),一起写文档等。基本上所有的开发环节都一齐肩并肩地,平等地,互补地进行开发工作。 其它领域的“Pair Working”: 越野赛车 驾驶飞机 测试驱动开发 (Test-Driven Design and Development) 测试驱动开发是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。 举例:修房子 拉线 重构 (Refactoring) 在不改变系统行为的前提下,重新调整和优化系统的内部结构,以降低复杂性、消除冗余、增加灵活性和提高性能。 提高代码质量,可维护性; 帮助尽早的发现错误; 可以提高开发速度; 重构原因 软件产品最初制造出来,是经过精心的设计,具有良好架构的。但是随着时间的发展、需求的变化,必须不断的修改原有的功能、追加新的功能,还免不了有一些缺陷需要修改。为了实现变更,不可避免的要违反最初的设计构架。经过一段时间以后,软件的架构就千疮百孔了。bug越来越多,越来越难维护,新的需求越来越难实现,软件的构架对新的需求渐渐的失去支持能力,而是成为一种制约。最后新需求的开发成本会超过开发一个新的软件的成本,这就是这个软件系统的生命走到尽头的时候。   重构就能够最大限度的避免这样一种现象。系统发展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的结构进行重新的整理。通过重构,不断的调整系统的结构,使系统对于需求的变更始终具有较强的适应能力。 代码集体所有权 (Collective Code Ownership) 1. “我们”的代码,而不是“我”的代码。 2. 任何人可以改动任何一段代码,但改动后 的代码必须通过所有相关的测试。 3. 每个成员都对全部代码的质量负责。 持续集成 (Continuous Integration) 1. 测试先行是持续集成的一个重要前提。 2. 持续集成指不断地把完成的功能模块整合在一起。目的在于不断获得客户反馈以及尽早发现BUG。 3. 随时整合,越频繁越好;集成及测试过程的自动化程度越高越好。 4. 每次只有一个PAIR在整合,而且必须运行功能测试。 5. 需注意,持续集成需要良好的软件配置变更管理工具的有效支持。 失败 通过 时间 功 能 测 试 现场客户 (On-site Customer) 客户是团队成员,在开发现场和开发人员一起工作。 传统的客户任务一般是讲解需求,运行验收测试,接收发布的系统。XP新增加的任务: (1) 写User Story; (2) 评估User Story的商业优先级; (3) 为每个User Story定义验收测试; (4) 计划开发内容; (5) 调控开发过程。 小型发布 (Small Release) 1. 发布过程应该尽可能地自动化、规范化; 2. 不断地发布可用的系统可以告诉客户你在做正确的事情; 3. 客户使用发布的系统,可以保证频繁地反馈和交流; 4. 保证客户有足够的依据调控开发过程(增加、删除或改变User Story); 5. 降低开发风险; 6. 随着开发的推进,发布越来越频繁; 7. 所有的发布都要经过功能测试。 平稳的工作效率 ——每周40h工作制 1. 不加班,不熬夜; 2. XP要求项目团队人员每周工作时间不能超过40小时,加班不得连续超过两周,否则反而会影响生产率; 3. 对于项目进度和工作量合理安排的要求比较高。 系统隐喻 ( System Metaphor ) XP: 通过隐喻来描述系统如何运作、新的功能以何种方式加入到系统。它通常包含了一些可以参照和比较的类和设计模式。XP 不需要事先进行详细的架构设计。 代码规范 ( Code Standards ) XP 强调通过指定严格的代码规范来进行沟通,尽可能减少不必要的文档。 类型:格式、代码结构、命名约定、错误处理、注释等。 系统隐喻 ( System Metaphor )

文档评论(0)

1亿VIP精品文档

相关文档