首页 > 知识点讲解
       面向对象软件开发
知识路径: > 信息化和信息系统 > 信息系统及其技术和开发方法 > 软件工程 > 面向对象的分析、设计与开发 > 
被考次数:3次     被考频率:中频率     总体答错率:40%     知识难度系数:     
考试要求:熟悉      相关知识点:4个      
        面向对象的方法从问题模型开始,然后进行识别对象、不断细化的过程。它从本质上就是迭代和渐增的。开发过程是一次次的迭代反复过程,随着迭代的进行,系统功能不断完善。典型的面向对象开发方法有RUP(Rational Unified Process)和XP(eXtreme Programming),两者各有侧重,适用于不同的场景。
        1.RUP
        RUP是Rational公司开发和维护的过程产品。RUP以适合于大范围项目和机构的方式捕捉了许多现代软件开发过程的最佳实践。RUP的三个关键特征为迭代(Iterative)、以架构为中心(Architecture-Centric)和用例驱动(Use-Case Driven)。
        RUP的6个基本最佳实践如下:
        .迭代式开发。RUP支持专注于处理生命周期中每个阶段中最高风险的迭代开发方法,极大地减少了项目的风险性。
        .需求管理。RUP描述了如何提取、组织和文档化需要的功能和限制。
        .使用基于构件的体系结构。RUP提供了使用新的及现有构件定义体系结构的系统化方法。
        .可视化软件建模。RUP开发过程显示了对软件如何可视化建模,捕获体系结构及构件的构架和行为。
        .验证软件质量。RUP帮助计划、设计、实现、执行和评估软件质量,并且不是事后型的。
        .控制软件变更。RUP开发过程描述了如何控制、跟踪和监控修改以确保成功的迭代开发。
        RUP的二维开发模型
        RUP可以用二维坐标来描述。横轴表示时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);纵轴按内容组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow),如下图所示。
        RUP开发过程的各个阶段和里程碑
        RUP中的软件生命周期在时间上被分解为4个顺序的阶段,分别是初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。每个阶段结束于一个主要的里程碑(Major Milestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。
        
        RUP的二维开发模型
        (1)初始阶段。
        初始阶段有时也称为先启阶段,该阶段的主要目标是为系统建立商业模型并确定项目的边界。任务包括识别和规避项目的主要风险,建立用例模型框架,并制订里程碑日期的阶段计划。
        初始阶段结束时是第一个重要的里程碑:生命周期目标(Lifecycle Objective)里程碑。该里程碑评估项目的基本可行性。
        (2)细化阶段。
        细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目标,必须在理解整个系统的基础上,对体系结构做出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。
        细化阶段结束时是第二个重要的里程碑:生命周期结构(Lifecycle Architecture)里程碑。该里程碑为系统的架构建立了管理基准,并使项目小组能够在构建阶段中进行衡量。
        (3)构造阶段。
        在构造阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构造阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。
        构造阶段结束时是第三个重要的里程碑:初始操作(Initial Operational)里程碑。该里程碑确定产品是否已经可以部署到Beta测试环境。
        (4)交付阶段。
        交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。在生命周期的这一点上,用户反馈应主要集中在产品调整、设置、安装和可用性问题上,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。
        在交付阶段的终点是第四个里程碑:产品发布(Product Release)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下,这个里程碑可能与下一个周期的初始阶段的结束重合。
        RUP的核心工作流
        RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被使用。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。
        (1)商业建模(Business Modeling)。
        商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。
        (2)需求(Requirements)。
        需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化,最重要的是理解系统所解决问题的定义和范围。
        (3)分析和设计(Analysis&Design)。
        分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象,由设计类和一些描述组成。设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem),而描述则体现了类的对象如何协同工作实现用例的功能。
        (4)实现(Implementation)。
        实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。
        (5)测试(Test)。
        测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确地实现,识别并确认缺陷在软件部署之前被提出并处理。RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。测试类似于三维模型,分别从可靠性、功能性和系统性能来进行。
        (6)部署(Deployment)。
        部署工作流的目的是成功地生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。
        (7)配置和变更管理(Configuration&Change Management)。
        配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。
        (8)项目管理(Project Management)。
        软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框架等。
        (9)环境(Environment)。
        环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了逐步的指导手册,并介绍了如何在组织中实现过程。
        2.XP
        极限编程(eXtreme Propgramming,XP)由Kent Beck在1996年开创,是一种演进式的原型化方法,以最大化发挥人的能量为核心目标,具有沟通高效、设计简单、反馈迅速等特点,是一种轻量级、敏捷的过程方法。
        XP是一种高度动态的过程,它通过非常短的迭代周期来应对需求的变化。XP一般适用于需求不确定、变化快、项目历时不超过半年、人数不超过10个、在同一地点工作的中小型团队。
        XP的生命周期包括4个基本活动:编码(coding)、测试(testing)、聆听(listening)、设计(designing)。
        XP的4个价值目标:
        .沟通:让开发人员集体负责所有代码并结队工作,鼓励与客户及团队内部保持沟通。
        .简化:鼓励只开发当前的功能,避免过多的文档,专注于最小化解决方案,做好为新特性改变设计,在系统隐喻和代码规范下不断重构的准备。
        .反馈:通过单元测试和功能测试获得快速反馈。
        .勇气:提倡积极面对现实和处理问题的勇气,拥抱变化。
        XP的12个最佳实践:
        .有计划的开发。通过结合使用标有优先级的“故事”卡和技术估算,确定下一版本的功能。
        .小型发布。以小的增量版本经常向客户发布软件。
        .系统隐喻。隐喻是一个高层次的系统构想,需要不断地细化架构来指导全部开发。
        .简单设计。通过保持代码简单从而保证设计简单。不断地在代码中寻找复杂点并且立刻进行移除。
        .测试驱动。“先测试,后编码”。用户编写测试内容以对“故事”进行测试。程序员编写测试内容来发现代码中的任何问题。在编写代码前先编写测试内容。
        .重构。这是一项简化技术,用来移除代码中的重复内容和复杂之处。
        .结对编程。团队中的两个成员使用同一台计算机开发所有的代码。一个人编写代码或者驱动,另一个人同时审查代码的正确性和可理解性。
        .集体代码所有权。任何人都拥有所有的代码。提高代码透明度,增强团队合作精神。
        .持续集成。每天按任务多次创建和集成系统,随着需求变化,进行不断的回归测试。
        .每周40小时工作制。程序员在疲劳时无法保证最高效率。连续两周加班是绝对不允许的,否则会影响工作效率。
        .现场客户。至少有一名真实的客户全天候工作于开发环境中,帮助定义系统、编写测试内容并回答问题。
        .编码规范。程序员采用统一的编码规范。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2017年下半年
   信息系统项目管..
   上午试卷 综合知识
第25题
选择题
面向对象软件开发方法的主要优点包括( )。
①符合人类思维习惯
②普适于各类信息系统的开发
③构造的系统复用性好
④适用于任何信息系统开发的全生命周期

32%
   2013年下半年
   信息系统项目管..
   上午试卷 综合知识
第25题
选择题
在面向对象开发方法中,(25)是指同一消息发送给不同的对象,会有不同的响应。

26%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有