面向对象的系统分析与设计的基本概念资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象的系统分析与设计的基本概念
专业:软件开发
小组:九幽小组
目录
概要 ---------------------------------------------------------------------2背景介绍 -----------------------------------------------------------------2问题陈述 -----------------------------------------------------------------3内容分析 -----------------------------------------------------------------3结论 ---------------------------------------------------------------------5名词解释 -----------------------------------------------------------------5参考文献 -----------------------------------------------------------------6
概要
极限编程(Extreme Programming,简称 XP 是目前讨论最多、实践最多、争议也是最多的一种敏捷开发方法。 XP 是一套能够快速开发高质量软件所需的价值观、原则和活动的集合, 使软件能以尽可能快的速度开发出来并向客户提供最高效益。
该报告主要讲述了 XP 的概念,特点核心价值,核心思想以及 XP 的适用环境。
XP 是很多 Java 开源软件使用的软件开发方法,也是许多实干派大师倍加推崇的一种方法,同时也有很多使用传统软件开发方法的大师和大公司倍加批评的一种软件开发方法。
背景介绍
2001年, 为了解决许多公司的软件团队陷入不断增长的过程泥潭, 一批业界专家一起概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则,他们称自己为敏捷联盟。
敏捷开发过程的方法很多,主要有:SCRUM , Crystal, 特征驱动软件开发(Feature Driven Development ,简称 FDD ,自适应软件开发 (Adaptive Software Development,简称 ASD ,以及最重要的极限编程 (eXtreme Programming,简称 XP 。ExtremeProgramming (极限编程,简称 XP 是由 KentBeck 在 1996年提出的。KentBeck 在九十年代初期与 WardCunningham 共事时,就一直共同探索着新的软件开发方法,希望能使软件开发更加简单而有效。 Kent 仔细地观察和分析了各种简化软件开发的前提条件、可能行以及面临的困难。 1996年三月, Kent 终于在为DaimlerChrysler 所做的一个项目中引入了新的软件开发观念—— XP 。
问题陈述
该报告中主要阐述一下几个问题:
极限方法提出的背景知识和概念,轻量级方法的优点
XP 的特点。和传统方法相比 XP 具有独特的优势
XP 的核心思想以及沟通简单反馈勇气四个核心价值
XP 的适用环境
内容分析
什么是 XP
Extreme Programming(极限编程,简称 XP 是由 Kent Beck在 1996年针对业务和软件开发提出的新规则。它的作用在于将业务和软件开发两者的力量集中在一个共同的、可以达到的目标之上。它是以符合客户需要的软件为目标而产生的一种方法论, XP 使开发者能够更有效的响应客户的需求变化。它强调, 软件开发是人与人合作进行的过程,成功的软件开发过程应该充分利用人的优势,而弱化人的缺点,突出了人在软件开发过程中的作用。极限编程属于轻量级的方法。
XP 是一个轻量级的软件开发方法
轻量级是针对传统的重量级方法而言的。重量级方法具有很多规则、惯例、和文档 ,正确地遵循它们需要训练及时间。而轻量级方法仅具有很少的一些规则和惯例,或者说,这些规则和惯例遵守起来很容易。
XP 的特点
1.不采用瀑布式的软件工程方法,而采用原型法。将一个软件开发项目分为多个迭代周期,每个周期实现部分软件功能。在每个周期都进行提出需求、设计软件架构、编码、测试、发布得软件开发的全过程。每个周期都进行充分的测试和集成。这样的好处是可以不断的从客户方面得到反馈,更逼近实际的软件需求。通过频繁的重新编码的过程,可以非常适应功能更改的需求,同时增加软件的易维护性。在不断的迭代中,避免架构设计的重大失误造成的软件不能如期交工,避免了软件设计的风险。
2.在软件设计中,强调简单性,就是坚决不作用不到的通用功能。同时,也不刻意避免重新编码,只有不断得重新编码才能保证软件得合理性。不害怕对整个软件推倒重做。认为重新编码是很正常得现象。每次得重新编码都会大大减少软件中得熵值。
3.在专业分工中,提出在开发团队中要有全职的客户人员的参与,同时在软件团队中也要有自己的领域专家。这样,可以和客户充分交流,彻底了解应用需求。这种软件需求的提出不是一次性的,而是不断的交流。也有专门的软件架构的设计师,首先进行软件整体架构的设计。
4.在软件开发的顺序上,和传统方法完全相反。传统方法是按照整体设计、编写代码、进行测试、交付客户的方法。而 XP 是按照交付客户、测试、编码、设计的顺序来开发。首先将要交付客户的软件的界面作出来,先让客户对软件有实际体验,这样,可以获得客户的更多的反馈,使需求可以在开发前确定。在编码前就先把测试程序做好,这样,编码完成后就可以马上进行测试。通过不断的测试来保证软件的质量。在进行软件架构设计之前就进
行编码,可以使问题更早暴露,可以使最后的软件设计更体现编码的特点,更符合实际,更容易实现,也保证了设计的合理,保证了软件设计的大量决定的正确性。
5.在项目计划的实现上,每次的计划都是技术人员对客户提出时间表,由最后的开发人员对项目经理提出编码的时间表。这种计划都是从下而上的,不是从上到下的,更容易保证计划的按时完成。同时,多个迭代周期也使工期的估计越来越精确。
6.在分工上,强调角色轮换,项目的集体负责,分工的自愿性。分工的自愿性就是每个人的工作内容不是由项目经理分派,而是由每个人自愿领取,这样保证了每个人可以发挥自己的特长,适应自己的情况。当然,在每个问题上都要有唯一的决策人,同时,也要经过充分的交流和沟通。角色轮换就是在项目中,一个人在不同的周期中担任不同的角色,可以保证每个人对项目的整体把握,方便项目中的沟通和理解。项目的集体负责,就是每个人不是完成自己的工作就可以了,要对整个项目的完成负责,任何人都可以对工作的任何部分提出自己的建议。任何人都可以从事任何工作。任何人都要对整个项目熟悉。这样做的优点是可以充分的锻炼人、可以发挥每个人的积极性、可以使项目不依赖于某个特定的人,方便今后的软件的维护,通过工作内容的变换可以提高人工作的兴趣。通过角色轮换还可以使每个人都劳逸结合,方便相互理解,避免由于不理解而造成的各种配合问题 .
XP 的核心思想与价值
XP 的核心思想:从长远看,早期发现错误以及降低复杂度可以节约成本。极限编程强调我们将任务(系统细分为可以在较短周期解决的一个个子任务(模块 ,并且强调测试、代码质量和及早发现问题。通常,通过一个个短小的迭代周期,我们就可以获得一个个阶段性的进展,并且可以及时形成一个版本供用户参考,以便及时对用户可能的需求变更作出响应。
XP 的核心价值:
XP 强调四种价值:交流,简易,回馈,勇气。