您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 第三讲面向对象方法学
第三讲面向对象方法学问题:汇编语言编写程序、高级语言的结构化编程和面向对象编程之间的比较?面向对象方法与面向过程方法的比较分析属性面向对象方法面向结构方法计算机处理的实体对象这里的对象是指数据以及可以施加在这些数据之上的操作所构成的统一体是各种预定义类型的变量、数组、记录和文件等数据描述计算机处理对象的操作通过消息驱动对象主动的执行起自身的数据处理行为通过对象(参数)传送,并调用外部的处理功能来处理对象处理观点上的不同把程序看成是相互协作而又彼此对立的对象的集合。每个对象就是一个微型的程序,有自己的数据、操作、功能和目的看作是工作在数据之上的一系列过程或函数的集合基本实体类(数据+行为)模块(数据+部分行为)通讯机制消息的传递模块调用和参数的传递思维的特点该方法使用现实世界的概念抽象地思考问题从而自然地解决问题。他强调模拟现实世界中的概念而不强调算法。在进行面向对象设计时,计算机处理问题方式被放弃,而重点针对需要处理的问题进行分析。这种方法以算法为核心,把数据和过程作为相互独立的部分,数据代表问题空间中的客体,程序代码则用于处理这些数据。这种思维方法与计算机处理问题的方法是相一致的。对于那些非常熟悉计算机处理过程的程序员来说具有不可替代的优势。软件开发过程的特点面向对象的方法重点强调反映现实需求的对象业务模型的建立,相对而言设计和编码部分的工作则较为次要。重点在软件处理过程的设计和实现上。适用范围的比较适合于比较大型的,对计算机的处理效率要求不是非常高的应用。对于要求涉及底层处理的应用或需要较高处理效率直接对硬件系统进行操作的系统比较适用。另外对一些小的需要复杂处理流程的软件系统也比较适用。一般特点比较稳定、可重用、易维护;但效率比较底效率高;但难维护两种方法的交互性面向对象方法是在传统软件工程方法上发展起来的一种新方法,许多传统的软件工程方法在面向对象的分析上也同样起作用,(模块设计的原则等)面向过程设计,在面向对象的设计中还存在一些不可消除的作用,当前提出的面向方面的设计就是这种作用的体现。面向对象的概念(省略)面向对象软件过程的一般特性:1.面向对象的软件过程软件过程模型的比较属性面向对象方法面向过程方法过程模型中强调的重点业务分析模型的建立软件设计模型的建立生命周期个环节关系各个阶段之间的界限不在明显具有较清晰的界限分别,每个阶段描述模型之间的过度比较困难,需要一定的转换处理主要处理的对象对象模块数据流,加工,功能模块等开发过程强调迭代强调环节之间的依赖性喷泉模型:喷泉模型的生命周期与面向过程的生命周期是一致的,但喷泉模型的各个阶段是迭代和无缝的。RUP过程模型:软件过程是指实施于软件开发和维护中的阶段、方法、技术、实践及相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。行之有效的软件过程可以提高开发软件组织的生产效率、提高软件质量、降低成本并减少风险。目前市场上领先的软件过程主要有RUP(RationalUnifiedProcess;Rational统一过程)、OPENProcess和OOSP(Object-OrientedSoftwareProcess;面向对象软件过程)。而其中的RUP具有较高认知度的原因之一恐怕是因为其提出者Rational软件公司聚集了面向对象领域三位杰出专家Booch、Rumbaugh和Jacobson,同时它又是面向对象开发的行业标准语言——标准建模语言(UML)的创立者。RUP是由Objectory过程演化而来,其初始版本为5.0,先后经历了5.1、5.11、5.5等版本直到最新的RationalUnifiedProcess2000版本。RUP的二维开发模型传统的软件开发模型瀑布式开发模型是一个单维的模型,开发工作划分为多个连续的阶段。在一个时间段内,只能作某一个阶段的工作比如,分析、设计或者实现RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。入下图:RUP的二维开发模型从图中的阴影部分表示的工作流可以看出,不同的工作流在不同的时间段内工作量的不同。值得注意的是,几乎所有的工作流,在所有的时间段内均有工作量,只是工作程度不同而已。这与Waterfallprocess(瀑布式开发模型)有明显的不同。开发过程中的各个阶段和里程碑RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。每个阶段结束于一个主要的里程碑(MajorMilestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。1.初始阶段初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。本阶段具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。初始阶段结束时是第一个重要的里程碑:生命周期目标(LifecycleObjective)里程碑。生命周期目标里程碑评价项目基本的生存能力。初始阶段的主要成果是:前景文档:对核心项目要求、关键性质、主要限制的一般性的前景说明;初始的用例模型(完成10%-20%)初始的项目术语表初始的商业用例,包括商业环境、验收规范以及成本预测初始的风险评估项目规划,其中明确阶段和迭代商业模型,根据需要可选一个或多个原型初始阶段结束时是第一个里程碑:生命周期目标里程碑。对初始阶段进行评估的准则是:风险承担人对项目范围定义和成本/进度估计达成共识需求由主要的用例无二义地表达出来成本/进度估计、优先级、风险和开发过程的可信度开发出来的体系结构原型的深度和广度实际支出与计划支出的比较2.细化阶段细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。细化阶段的成果是:用例模型(至少完成80%):识别出了所有的用例和角色,以及大多数用例的描述一些增加的需求,包括非功能性需求以及任何与特定用例无关的需求软件体系结构描述可执行的体系结构原型修订后的风险表和商业用例整个项目的开发计划,包括粗略项目规划,显示迭代过程以及相应的评估准则更新的开发用例,指定要使用的过程初步的用户手册(可选)细化阶段结束时第二个重要的里程碑:生命周期结构(LifecycleArchitecture)里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。细化阶段的评估准则包括对以下问题的回答:产品的前景是否稳定?体系结构是否稳定?可执行的演示是否强调了主要的风险元素,并且已经解决?构造阶段的规划是否已经足够详细和准确,是否有可信的评估支持?如果用当前的规划来开发整个系统,并且使用当前的体系结构的话,是否所有的风险承担人对当前的前景都达成一致?是否实际的资源支出与计划的支出都是可接受的?如果项目不能通过这个里程碑,则将取消或重新考虑。3.构造阶段在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。构造阶段的产品是一个可以立即提交给最终用户使用的产品,它至少应该包括:在特定平台上集成的软件产品用户手册对当前版本的描述构造阶段结束是第三个里程碑:初始运行能力。此时要决定软件、节点和用户是否已经准备好运行,并且项目没有出现任何高风险问题。这个版本通常叫做beta版。构造阶段的评估准则包括对以下问题的回答:这个产品版本是否足够稳定和成熟,可以在用户群中发布吗?是否所有的风险承担人都已经准备好向用户提交?实际的资源支出和计划的支出的比值是否仍然可接受?如果项目没有达到这个里程碑,必须推迟发布。4.交付阶段交付阶段的目的是把软件产品交付给用户群。一旦产品提交给最终用户,通常会产生新的要求,如继续开发新版本,修正一些问题,或者完成某些被推迟的功能部件。当基线足够成熟,能够向最终用户领域发布时,就进入了交付阶段。这通常需要系统的一些可以使用的子集已经达到一定的质量要求,并且有用户文档,从而使交付产生积极的效果。包括:beta测试确认新系统达到用户的预期与被取代的旧系统并行操作功能性数据库的转换用户和维护人员培训向市场、分销商和销售人员进行新产品的展示。交付阶段侧重向用户提交软件的活动,这个阶段包括几个典型的迭代,如beta版本,通用版本以及对用户的反馈作出响应等,都需要可观的精力。但是,在生命周期的这一点上,用户反馈可能主要限于产品调整、配置、安装和可用性问题上。交付阶段的主要目标包括:使用户可以自我帮助使风险承担人合作,使展开基线完整,并与前景评估准则一致交付阶段的终点是第四个重要的项目里程碑:产品发布里程碑。在这个点上,要确定是否已经达到目标,能否开始另一个开发周期。交付阶段主要的评估准则包括对以下问题的回答:用户是否满意?是否能够接受实际的和计划的资源支出的比?RUP的核心工作流RUP中有9个核心工作流,分为6个核心过程工作流(CoreProcessWorkflows)和3个核心支持工作流(CoreSupportingWorkflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被访问。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。1.商业建模(BusinessModeling)商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。2.需求(Requirements)需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。3.分析和设计(Analysis&Design)分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象,由设计类和一些描述组成。设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem),而描述则体现了类的对象如何协同工作实现用例的功能。设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化,该视图中省略了一些细节,使重要的特点体现得更加清晰。体系结构不仅仅是良好设计模型的承载媒介,而且在系统的开发中能提高被创建模型的质量。4.实现(Implementation)实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。5.测试(Test)测试工作流要验证对象间的交互作用,验
本文标题:第三讲面向对象方法学
链接地址:https://www.777doc.com/doc-2183898 .html