当前位置:文档之家› 第6章-面向对象方法学及UML-part4

第6章-面向对象方法学及UML-part4

第6章-面向对象方法学及UML-part4
第6章-面向对象方法学及UML-part4

面向对象的软件开发方法简介

1面向对象的软件开发方法简介 面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。面向对象的开发方法具有以下优点。 ●把软件系统看成是各种对象的集合,这更接近人类的思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 换。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封 装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性, 从而提高了软件的可维护性。 ●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。 1.1 对象模型 在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。 1.自底向上的抽象 建立对象模型的第一步是从问题领域的陈述入手。分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。开发人员需要进行以下自底向上的抽象思维。 ●把问题领域中的事物抽象为具有特定属性和行为的对象。 ●把具有相同属性和行为的对象抽象为类。 ●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。 再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。 2.自顶向下的分解 再建立对象模型的过程中,也包括自顶向下的分解。例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。 1.1.2UML:可视化建模语言 面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。 1.2 面向对象开发中的核心思想和概念 在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。

信息的概括和提炼方法

信息的概括和提炼方法

信息的概括和提炼方法 【篇一:信息的概括和提炼方法】 《语文课程标准》:“国内外的重要事件,学生的家庭生活,以及日常生活的话题等都可以成为语文课程的资源”,“学生要初步具备搜集和处理信息的能力”。`因此,新闻信息的筛选与提炼题应运而生。近几年来,这类试题频繁出现于全国各地中考试卷中。 考查方式:处理新闻、概括内容、提炼观点、图表表述、给事物下定义……涉及记叙性语段信息提取、说明性语段信息提取、议论性语段信息提取、图表信息提取。 例题解析 记叙性语段信息提取:人(物)+地点+时间+事件 中考试卷中信息提取类试题主要有以下几种题型: 题型二:新闻内容的概括 【例1】请用一句话提取下面这段文字的主要内容。(限15字以内) 今年是建国60周年,也是《湖北日报》创刊60周年。在2月6日至3月15日《湖北日报》开展的形象人物评选活动中,聂海胜当选《湖北日报》形象人物。这次旨在以人物彰显媒体品质的评选活动,得到广大读者的积极支持。经热心读者手机短信、网络投票等方式推荐,襄樊籍航天英雄聂海胜以其责任、理性、坚毅的品质以及巨大影响力最终脱颖而出。 参考答案:聂胜海当选《湖北日报》形象人物 【例2】请自己组织语言,概括下面这段文字的主要内容。(限15字以内)

欧盟健康风险科学委员会发表报告指出,如果5年内每周使用随身听5天,且每天以高音量收听音乐平均超过一个小时的话,那么5%至10%的使用者将面临永久性失聪的危险。最近几年,欧盟的随身听特别是mp3的销售数量猛增,约有5000万到1亿人特别是年轻人在使用随身听,因此有必要对人体的危害进行调查并采取措施,以保护青少年不受随身听和其他类似装置的损害。 参考答案:随身听会造成永久性听力损伤(或:常用随身听可能导致永久性失聪。) 题型三:给新闻拟标题 【例1】给下列这则新闻加上恰当的标题。(不超过12个字) 据介绍,世界数字图书馆包罗万象,从图书到各种档案都有,资料质量非常高。它按时间、地点、主题和捐助机构等内容提供搜索和浏览服务。使用者可以用阿拉伯文、中文、英文、法文、葡萄牙文、俄文与西班牙文7种语言查询。 参考答案:世界数字图书馆正式启用 【例2】给下列新闻拟一个标题。 再现传统盛景的2009年温州“拦街福”开街已经十天,市民热情高涨,深深感受到了温州传统文化的魅力。 “拦街福”是温州是传统习俗,始于宋,盛于清,流传至今。今年突出“传承文明、文化兴市”的主题,主要活动有拦街祈福、民俗文化展示、民间艺术展演等。到昨天为止,光顾“拦街福”的市民已达到35万人次,现场每天都洋溢着欢乐祥和的气氛。 参考答案:“拦街福”开街市民热情高涨(或:市民热情高涨感受文化魅力) 解析:给新闻拟标题与概括新闻一样,都是考察概括能力。但它们之间也有明显的区别。首先,拟标题要求语言更简洁,概括性更强。标

常用的开发方法:结构化方法、原型法、面向对象方法

常用的开发方法:结构化方法、原型法、面向对象方法 常用的开发方法有:结构化方法、原型法、面向对象方法。 结构化方法:结构化方法是应用最为广泛的一种开发方法。按照信息系统生命周期,应用结构化系统开发方法,把整个系统的开发过程分为若干阶段,然后一步一步她依次进行,前一阶段是后一阶段的工作依据;每个阶段又划分详细的工作步骤,顺序作业。每个阶段和主要步骤都有明确详尽的文档编制要求,各个阶段和各个步骤的向下转移都是通过建立各自的软件文档和对关键阶段、步骤进行审核和控制实现的。它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。 以数据流图,数据字典,结构化语言,判定表,判定树等图形表达为主要手段,强调开发方法的结构合理性和系统的结构合理性的软件分析方法。 结构化方法方法具有如下特点。 (l)遵循用户至上原则。 (2)严格区分工作阶段,每个阶段有明确的任务和取

得的成果。 (3)强调系统开发过程的整体性和全局性。 (4)系统开发过程工程化,文档资料标准化。 该方法的优点是:理论基础严密,它的指导思想是用户需求在系统建立之前就能被充分了解和理解。由此可见,结构化方法注重开发过程的整体性和全局性。 该方法的缺点是:开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的信息需求,充分预料各种可能发生的变化,但这并不十分现实;若用户参与系统开发的积极性没有充分调动,造成系统交接过程不平稳,系统运行与维护管理难度加大。 原型法:原型法的基本思想与结构化方法不同,原型法认为在很难一下子全面准确地提出用户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。 是在投入大量的人力,物力之前,在限定的时间内,用最经济的方法开发出一个可实际运行的系统模型,用户在运行使用整个原型的基础上,通过对其评价,提出改进意见,对原型进行修改,统一使用,评价过程反复进行,使原型逐步完善,直到完全满足用户的需求为止。 适用范围:处理过程明确、简单系统;涉及面窄的小型系统

面向对象方法

面向对象方法 1、对象:是系统中用来描述客观事务的一个实体,是构成系统的一个基本单位。三个要素:对象标志(供系统内部唯一的识别对象);属性(状态、数据、用来描述对象的静态特征);服务(操作、行为或方法,用来描述对象的动态特征) 2、面向对象=对象(objects)+类(classes)+继承(inheritance)+消息通信(communication with messages) 3、封装是对象的一个重要原则。有2 个含义:对象是全部属性和全部服务紧结合而形成的一个不可分隔的整体;对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里面。 4、类和类库:类是对象的抽象定义,是一组具有相同数据结构和相同操作的对象的集合。类与对象是抽象描述与具体实例的关系,一个具体的对象被称为类的一个实例(instance)。 5、继承:使用已存在的定义作为基础建立新定义的技术。父类、子类要了解。 6、多态性:可以分为四类:过载多态(重载多态),强制多态,包含多态,参数多态。前两种统称为专用多态(特定多态),后两种称为通用多态。 7、消息:指向对象发出的服务请求,它应该含有下述

信息:提供服务的对象标志、消息名、输入信息和回答信息 8、消息通信:封装使对象成为一些各司其职、互不干扰的独立单位;消息通信为他们提供了唯一的合法的动态联系途径,使他们的行为能够相互配合,构成一个有机的系统。只有同时使用对象、类、继承与消息通信,才是真正面向对象的方法。 9、统一建模语言UML---是一种语言;是一种可视化语言;是一种可用于详细描述的语言;是一种构造语言;是一种文档化语言 10、UML 结构:构造块(建模元素、关系、图);公共机制(规格说明、修饰、公共分类、扩展机制);构架(逻辑视图、进程视图、实现视图(构建)、布署视图、用例视图)裸狗不用进 11、UML 视图:系统静态结构的静态模型(包括类图、构件图、部署图),系统动态结构的动态模型(包括对象图、用例图、序列图、协作图、状态图、活动图) 12、用例图:用例模型描述的是外部执行者(Actor)所理解的系统功能,用于需求分析阶段。(十四个图能认出来) 参与者(Actor)代表与系统接口的任何事物或人,它是指代表某一种特定功能的角色,参与者都是虚拟的概念。

面向对象的建模方法

面向对象的建模方法 [摘要]评述面向对象的几种建模方法并作一比较,阐述统一建模语言的优越性,并对其组成、特征、建模过程进行描述。 [关键词]软件工程建模面向对象 一、引言 面向对象方法学也称为面向对象的开发方法,它属于软件工程的范畴。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。也就是说,面向对象方法是一种崭新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。由于对象的独立封装,模块的可构造性、可扩充性、可重用性也大大加强,从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。 面向对象的软件工程要求首先对系统建立模型是对现实的简化,它提供了系统的蓝图。一个好的模型只需抓住影响事物发展的主要矛盾,而忽略那些次要矛盾。每个系统可以从不同方面用不同的模型来描述。因而每个模型都是在语义上闭合的系统抽象。通过建模可以按照实际情况对系统进行可视化模型详细地说明了系统结构或行为,指导我们构造系统模板 二、面向对象建模方法 建模是构造软件系统最基本的步骤,在软件工程学科中提供了多种多样的建模方法和高效的工具,其目的是为了在软件开发过程的早期就发现设计中可能隐含的缺陷和错误,对于今日的大型软件系统,采用一种合适的建模方法,建立一个良好的模型是成功的关键。在市场上已有一些公司,如Rationa1,Cayenne,Platinum等开始提供商品化的建模工具,即通常所谓的CASE工具,使得建模过程实现了一定的自动化的标准化,并逐步走向实用,而这些工具的后面,便是具有不同特色的建模方法。 下面分析比较Booch,OMT,OOSE,UML等几种主要的面向对象的建模方法: (一)Booch方法 Booch方法是由Grady Booch提出的,是一种主要面向设计的方法,它通过二维图形来建立面向对象的分析和设计模型,强调设计过程的不断反复知道满足要求为止。Booch 方法特别注重对系统内对象之间相互行为的描述,注重可交流性和图示表达。但在方法学上并不注重严格的过程,既不推荐软件设计人员该做什么,只是指出了其可做的工作。Booch 方法把几类不同的图表有机地结合起来,以反映系统的各个方面是如何可相互联系而又相互影响的。这些图贯穿于逻辑设计到物理实现的开发过程中,包括类图、状态图、对象图、交互图、模块图和进程图。 (二)OMT方法 OMT(Object Modeling Technology对象建模技术)是由JamesRumbaugh 等人提出的。OMT方法包含了一整套的面向对象的概念和独立于语言的图示符号。它可用于分析问题需求,设计问题的解法以及用程序设计语言或数据库来实现这个解法。OMT方法用一致的概念和图示贯穿于软件开发的全过程,这样软件开发人员不必在每一开发阶段便换新的表示方法。 OMT方法从对象模型、动态模型、功能模型3个不同但又相关的角度来进行系统建模。这3个角度各自用不同的观点抓住了系统的实质,全面地反映了系统的需求。其中,对象模型表示了静态的、结构化的系统数据性质,动态模型表示了瞬时的、行为化的系统的控制性质,功能模型则表示了变化的系统的功能性质。在软件开发的周期中,这3种模型都在逐渐发展:在分析阶段,构造出不考虑最终设计的应用域模型;在设计阶段,求解域的结构被

信息提取方法 (1)

专项训练 信息提取方法 材料信息各提取,共同话题相联系, 每则材料都概括,深入本质解问题。 (1、这几则材料为什么可以放在一起? 2、然后推断:一定是材料之间存在某种关系。再通过比较、分析,一定会有所发现。 3、答题时,材料间是因果关系的,要先写主要原因,再写其他原因;材料间是同类事物的,要先写共性的,再写不同点的) 1、阅读下面三则材料,写出你的探究结果 材料一对某区一所中学初三(3)班49名学生进行调查后发现:自己求过或家长帮助求过护身符的占96%;经常到网上占卜的占34%;相信命由天定的占1l%;相信自己的幸运花、幸运石、幸运数字一定能给自己带来好运的占78%…… 材料二在某搜索网站输入“占卜”二字,可检索到34.4万个网页;输入“星座”二字,可检索到267万个网页。从搜索结果看,占星奇缘、北斗星易学书、周公解梦等内容充斥网页。 材料三联合国教科文组织把每年的4月23日确定为“世界读书日”。专家呼吁全社会都要关心青少年的健康成长,多为青少年出版一些好书,多提供一些有益的活动场所,为加强社会主义精神文明建设、构建社会主义和谐社会作出贡献。 答:①当今社会青少年非常迷信; ②某些网络媒体里充斥着很多迷信邪说; ③全社会都要关心青少年的健康成长,并为之创设良好的环境,从而抵制迷信思想的侵蚀 2、读下列材料,写出你的探究结果。 材料一撒哈拉沙漠以南非洲地区的城市人口中,71.9%的人居住在贫民窟,而且贫民窟人数在急剧增加。贫民窟已给城市带来危机。 材料二在贫困的非洲国度安哥拉,孩子们没有受教育的机会,许多孩子被赶出家门,遭受辱骂、毒打,甚至被烧死或活埋,就因为他们的父母认为他们掌握邪恶的巫术。 材料三多年来,世界粮食计划署一直没有停止对非洲贫困地区的粮食援助。今年,又给予非洲20亿美元资金的粮食援助,相当于2002年对全球援助的总额。 答:1.非洲地区的贫困和愚昧带来了巨大的社会问题(人口增长、教育落后)且给世界增加了沉重的负担。2.贫困和愚昧严重困扰着非洲的发展,并给世界造成了沉重的负担 3、阅读下面的三则材料,联系本文,写出你探究的结果。 材料一母虎抚养幼虎有三个过程。开始,它出去捕食回来,把最嫩的肉用爪子撕成碎片,喂给幼虎。后来,它捕食回来,自己把肉吃掉,剩下的骨头扔给幼虎啃。再后来,它捕食回来,自己把肉吃掉,把骨头扔掉,幼虎要吃,它就大吼一声,不让它吃。过几天,幼虎饿得实在受不了,就离开母亲,自己找食吃,且不再回来。 材料二孟子曰:”故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身……”(《生于忧患,死于安乐》) 材料三曾有这样的一幅漫画:父亲送儿子上大学,衣着时髦的儿子空着手,与别人谈笑风生,而父亲却肩扛手提,佝偻着身子帮儿子排队报名。漫画题为“如此爱心”。 答案:1.人才多是在艰苦环境中造就的。2.恶劣环境的磨炼有利于人才的成长。3.全社会应该加强挫折

比较四种典型面向对象方法的异同

普 通 本 科 毕 业 小 论 文 题目:比较四种典型面向对象方法的异同 学院软件与通信工程学院 学生姓名张伟聪学号 0123992 专业软件工程届别 125 指导教师廖汉成 二O一四年九月二十七日

一、引言 随着计算机科学的发展和应用领域的不断扩大,对计算机技术的要求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对软件提出了更高的要求。结构化程序设计语言和结构化分析与设计已无法满足用户需求的变化。发展软件质量,缩短软件开发周期,发展软件可靠性、可扩充性和可重用性迫使软件界人士不断研究新方法、新技术,探索新途径。 面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。面向对象程序设计方法起源于六十年代末期的语言SIMULA’67,到了七十年代末期,软件行业正受到软件危机的困扰,结构化的开发方法不能够很好地解决软件危机。面向对象语言Smalltalk的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象也和开发方法开始结合,出现了面向对象的开发方法。 自80年代后期以来,相继出现了多种面向对象开发方法,现将其中四种典型的方法作一个简介和比较。面向对象方法都支持三种基本的活动:识别对象和类,描述对象和类之间的关系,以及通过描述每个类的功能定义对象的行为。 一.Booch方法 Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。OOD[3](Object Oriented Design)方法是Grady Booch从1983年开始研究,1991年后走向成熟的一种方法。OOD主要包括下述概念:类(class)、对象(object)、使用(uses)、实例化(instantiates)、继承(inherits)、元类(meta class)、类范畴(class category)、消息(message)、域(field)、操作(operation)、机制(mechanism)、模块(module)、子系统(subsystem)、过程(process)等。其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。元类是类的类。类范畴是一组类,它们在一定抽象意义上是类同的。物理的一组类用模块来表达。机制是完成一个需求任务的一组类构成的结构。 Booch方法的过程包括以下步骤: (1)在给定的抽象层次上识别类和对象; (2)识别这些对象和类的语义; (3)识别这些类和对象之间的关系; (4)实现类和对象;

冰川信息提取方法综述 20151101002

基于遥感的冰川信息提取方法综述 全球气候环境变化及其影响已成为当今世界各国政府、科学家和政策决策者所共同关注的重大焦点问题。政府间气候变化委员会(IPCC第四次评估报告指出[1],过去 100 a)(1906~2005 年)全球地表平均气温上升了0.74℃,而最近 50 a的升温速率几乎是接近过去 100 a 升温速率的两倍。冰川对气候变化十分敏感,被视为气候变化的指示器,升温已导致全球大多数冰川在过去 100 多年里处于退缩状态,尤其是最近的几十年呈加速退缩态势[1,2]。尽管大量的冰储存于两极冰盖中,但山地冰川和冰帽的储量损失在过去几十年和未来一个世纪对海平面上升、区域水循环和水资源可获取性均有重要影响[3-5]。 青藏高原及其毗邻地区蕴藏着世界上两极之外最大的冰雪储量,被称为“第三极”,该区气候变化引发的冰川变化不仅影响到周边地区十个国家的15亿人口的农业、发电等生产活动的水资源供应[3, 6, 7],而且会引发区域乃至北半球的大气环流格局的变化[8],从而使其成为国际冰川变化研究的热点地区。此外,青藏高原很多内陆湖泊近期水位上涨、湖泊面积增大导致草场淹没以及冰湖溃决和泥石流滑坡等山地灾害,对周边地区的生态与环境及农牧民的生活造成了严重影响[9]。 因此,监测青藏高原冰川变化时空分异特征,对于更加清楚地认识该地区对全球气候变化的响应具有重要的科学意义,对于及时提供湖泊水量变化信息,制定当地农牧民的应对措施具有重要的现实意义。本文系统梳理和总结了国内冰川监测相关研究进展,并探讨了当前该领域研究的不足以及未来的研究方向,旨在为我国冰川变化监测提供有益借鉴。 一、传统野外监测 传统的冰川观测主要基于野外实地考察,开展较早。世界上很多地区在一个多世纪以前就开始系统地观测冰川与冰盖的变化[10]。1930s 之前一直依靠实测冰川末端的变化或对比小冰期冰碛物的位置获得冰川变化的信息,1940s 后期开始了冰川物质平衡研究,截止到 2008 年全球已获取了 1803 条冰川自19 世纪后期的冰川长度变化和 226 条冰川过去 60 年内的物质平衡观测结果[10],分别占 1970s 估计的全球冰川总数 160000条[11]的 1.1%和 0.1%,观测数量很有限。我国冰川研究事业开创于1958年祁连山冰川考察[11],截止到 2007 年,基于野外考察共有 27 条冰川的长度变化和 5 条冰川的物质平衡的较长时间观测记录[12],分别为我国冰川总数46377[13]条的 0.06%和 0.01%,远低于前述全球尺度的相应观测比例,且没有一条位于我国冰川分布中心之一的喀喇昆仑地区。实地观测通常在容易到达、安全且不是太大的冰川进行,不能代表所有冰川的规模、海拔分布、坡度和朝向。所以,仅靠少数野外考察资料很难反映全球或区域尺度冰川变化的空间特征,所获得的冰川变化趋势及其对气候变化的响应的结论也难免存在局限性。 二、冰川面积变化遥感监测 遥感观测可以在瞬时获取较大范围的地面综合信息,适合对不同地理环境下的冰川变化进行长期而持续的监测,早期主要进行面积变化遥感研究。1940s 以后,人们可以借助于航空摄影技术测绘冰川末端位置[14]。1970s 之后,随着卫星遥感技术的发展和观测精度的提高,陆地资源系列卫星(Landsat MSS、TM 和

传统方法学与面向对象区别

小议传统方法学与面向对象的区别 姓名:戴育兵 学号:G1030510 年级 :大二 班级: .net(2)班

摘要 传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。 在20世纪60年代后期出现的面向对象编程语言Simdla_67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。

软件工程传统方法学 1.传统方法学概述 随着计算机应用领域的不断拓广,各种各样的问题也不断涌现,当问题严重到开发人员无法控制的时候便产生了软件危机。软件危机的出现,促使了软件工程学的形成和发展。随之整合整套技术的软件工程方法学广泛应用,主流之一就是传统方法学。传统方法学在软件开发过程中占据相当大的比重,因为其悠久的历史而为很多软件工程师青睐。如果说自然语言和编程语言之间有一道难以跨越的鸿沟,传统方法学就是跨越这道鸿沟的桥梁。 传统方法学又称生命周期方法学或结构化范型。一个软件从开始计划起,到废弃不用止,称为软件的生命周期。在传统的软件工程方法中,软件的生存周期分为需求分析、总体设计、详细设计、编程和测试几个阶段。 传统方法学使用的是结构化分析技术来完成需求分析阶段的工作。软件工程学中的需求分析具有两方面的意义。在认识事物方面,它具有一整套分析、认识问题域的方法、原则和策略。这些方法、原则和策略使开发人员对问题域的理解比不遵循软件工程方法更为全面、深刻和有效。在描述事物方面,它具有一套表示体系和文档规范。但是,传统的软件工程方法学中的需求分析在上述两方面都存在不足.它在全局范围内以功能、数据或数据流为中心来进行分析。这些方法的分析结果不能直接地映射问题域,而是经过了不同程度的转化和重新组合。因此,传统的分析方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难。 在总体设计阶段,以需求分析的结果作为出发点构造出一个具体的系统设计方案,主要是决定系统的模块结构,以及模块的划分,模块间的数据传送及调用关系。详细设计是在总体设计的基础上考虑每个模块的内部结构及算法,最终将产生每个模块的程序流程图。但是传统的软件工程方法中设计文档很难与分析文档对应,原因是二者的表示体系不一致,所谓从分析到设计的转换,实际上并不存在可靠的转换规则,而是带有人为的随意性,从而很容易因理解上的错误而留下隐患。 编程阶段是利用一种编程语言产生一个能够被机器理解和执行的系统,测试是发现和排除程序中的错误,最终产生一个正确的系统。但是由于分析方法的缺陷很容易产生对问题的错误理解,而分析与设计的差距很容易造成设计人员对分析结果的错误转换,以致在编程时程序员往往需要对分析员和设计人员已经认识过的事物重新进行认识,并产生不同的理解。因此为了使两个阶段之间能够更好的衔接,测试就变得尤为重要。 软件维护阶段的工作,一是对使用中发生的错误进行修改,二是因需求发生了变化而进行修改。前一种情况需要从程序逆向追溯到发生错误的开发阶段。由于程序不能映射问题以及各个阶段的文档不能对应,每一步追溯都存在许多理解障碍。第二种情况是一个从

软件设计师面向对象方法学(一)

[模拟] 软件设计师面向对象方法学(一) 选择题 第1题: 下列关于静态多态实现重载的描述中正确的是______。 A.重载的方法(函数)的方法名(函数名)可以不同 B.重载的方法(函数)必须在返回值类型以及参数类型上有所不同 C.重载的方法(函数)必须在参数顺序或参数类型上有所不同 D.重栽的方法(函数)只需在返回值类型上有所不同 参考答案:C 第2题: 程序设计语言提供了基本类型及其相关的操作,而______则允许开发者自定义一种新的类型及其相关的操作。 A.对象 B.实例 C.类 D.引用 参考答案:C 第3题: ______表示了对象间“is-a”的关系。 A.组合 B.引用 C.聚合 D.继承 参考答案:D 第4题: 若对象A可以给对象B发送消息,那么______。 A.对象B可以看见对象A B.对象A可以看见对象B C.对象A、B相互不可见

D.对象A、B相互可见 参考答案:B 第5题: 类描述了一组对象共同的特性,下列叙述中正确的是______。 A.类本身不能具有变量 B.对象具有类定义的所有变量的一份拷贝 C.对象间不能共享类定义的变量 D.可通过类名访问静态变量(类变量) 参考答案:D (6) 反映了类间的一种层次关系,而(7) 反映了一种整体与部分的关系。 第6题: A.继承 B.组合 C.封装 D.多态 参考答案:A 第7题: A.继承 B.组合 C.封装 D.多态 参考答案:B 第8题: 下列叙述中正确的是______。 A.d西向对象程序设计语言都不支持过程化的程序设计 B.面向对象系统只可采用面向对象程序设计语言实现 C.某些过程化程序设计语言也可实现面向对象系统

三种面向对象方法

三个著名的面向对象开发方法

摘要 主要介绍了3种典型的面向对象开发方法,并对它们进行了比较。面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。 关键字:面向对象;开发方法;OMT;BOOCH;JACOBSON; 1.引言 面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。 面向对象程序设计方法起源于六十年代末期的simnia语言.Smalltalk语言的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象与开发方法开始结合,出现 了面向对象的开发方法.自80年代后期以来,相继出现了多种面向对象开发方法,现将其中几种典型的方法作一比较分析. 2.三种典型的面向对象开发方法 2.1 OMT/Rumbaugh OMT(Object Modeling Technique)方法提出于1987年,曾扩展应用于关系数据库设计.1991年Jim Rumbaugh正式把OMT应用于面向对象的分析和设计.这种方法是在 实体关系模型上扩展了类、继承和行为而得到的.OMT覆盖了分析、设计和实现3个阶段,包括一组相互关联的类(class )、对象(object)、一般化(generalization)、继承(inheritance)、链(link)、链属性(link attribute)、聚合(aggregation)、操作(operation)、事件(event)、场景(scene)、属性(attribute)、子系统(subsystem)、模块(module)等概念. OMT方法把分析时收集的信息构造在3种模型中,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充.对象模型用ER图描述问题域中的列象及其相互关系,用类和关系来刻画系统的静态结构,包括系统中的对象、对象之间的关系、类的属性和操作等特征.动态模型用事件和对象状态来刻画系统的动态特性,包括系统对象的事件序列、状态和操作.功能模型按照对象的操作来描述如何从输入给出输出的结果,描述动态模型的动作所定义对象操作的意义。 OMT方法包含分析、系统设计、对象设计和实现4个步骤,它定义了3种模型,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充。这3种模型是:对象模型,用类和关系来刻画系统的静态结构;动态膜型,用事件和对象状态来刻画系统的动态特性;功能模型,按照对象的操作来描述如何从输人给出输出结果。分析的目的是建立可理解的现实世界模型。系统设计确定高层次的开发策略。对象设计的目的是确定对象的细节,包括定义对象的界面、算法和操作。实现对象则在良好的面向对象编程风格的编码原则指导下进行。 开发的四个阶段如下: (1)分析。基于问题和用户需求的描述,建立现实世界的模型。分析阶段的产物有: ●问题描述 ●对象模型=对象图+数据词典 ●动态模型=状态图+全局事件流图 ●功能模型=数据流图+约束 (2)系统设计。结合问题域的知识和目标系统的系统结构(求解域),将目标系统

面向对象方法学概述资料

9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系 传统的软件工程方法学曾经给软件产业带来巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,人们也注意到当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功。 在20世纪60年代后期出现的面向对象编程语言Simula-67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重面向对象分析和设计的研究,逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。面向对象技术已成为当前最好的软件开发技术。 9.1 面向对象方法学概述 9.1.1 面向对象方法学的要点 面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。应该使这些解空间对象与问题空间对象尽可能一致。这些解空间对象彼此间通过发送消息而相互作用,从而得出问题的解。也就是说,面向对象方法是一种新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。

概括地说,面向对象方法具有下述4个要点: (1) 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。按照这种观点,可以认为整个世界就是一个最复杂的对象。因此,面向对象的软件系统是由对象组成的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。 由此可见,面向对象方法用对象分解取代了传统方法的功能分解。 (2) 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。数据用于表示对象的静态属性,是对象的状态信息。因此,每当建立该对象类的一个新实例时,就按照类中对数据的定义为这个新对象生成一组专用的数据,以便描述该对象独特的属性值。 (3) 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。在这种层次结构中,通常下层的派生类具有和上层的基类相同的特性(包括数据和方法),这种现象称为继承(inheritance)。 (4) 对象彼此之间仅能通过传递消息互相联系。对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体,必须发消息请求它执行它的某个操作,处理它的私有数据,而不能从外界直接对它的私有数据进行操作。 重点:如果仅使用对象和消息,则这种方法可以称为基于对象的(object-based)方法,而不能称为面向对象的方法;如果进一步要求把所有对象都划分为类,则这种方法可称为基于类的(class-based)方法,但仍然不是面向对象的方法。只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。 9.1.2 面向对象方法学的优点 1. 与人类习惯的思维方法一致 2. 稳定性好 3. 可重用性好(重点) 用已有的零部件装配新的产品,是典型的重用技术,例如,可以用已有的预制件建筑一幢结构和外形都不同于从前的新大楼。重用是提高生产率的最主要的方法。

信息提炼方法

新闻信息提取方法略谈 【考点指津】 标题是新闻的“眼睛”,是新闻的精华,是新闻的灵魂,它用最简洁的语言概括了新闻最主要的内容。因此概括方法是:人物(事物)+事件。 概括新闻的主要内容一定要找出文段中的时间、地点、人物,还要把发生的事情用简单的语言表达出来,概括方法是:时间+人物(事物)+地点+事件。具体方法是:1.抓关键词语;2.关注重要句子;3.如果有导语就要抓住导语进行归纳,因为导语是新闻内容的高度概括。 【示例解析】 例1:给下面的报道写一个标题。(不超过10个字) “白帝碧波山水欢,千帆竞渡履平川。”6月10日,奉节县100名诗人齐聚老县城依斗门,朗诵着自己的诗作,送别有着一千多年历史的古城门,这座古城门即将在三峡水库蓄水达135米水位时,永沉江底。84岁的老诗人余敬之也参加了此次活动。有“活杜甫”之称的他,至今创作出了3000多首诗歌。看着不断上涨的江水,老诗人朗诵着自己的诗作,眼泪直往下掉。他说,千百年来,依斗门跟瞿塘峡、白帝城一样,是诗人取之不尽的创作源泉。 下午5点,依斗门被水淹没,标志着诗城遗址初步没入库底。此时,诗人们才依依不舍离去。 【解析】第一步,找出“人物”:百名诗人。第二步,找出“事件”:事件记叙比较零散,因此需要提取关键词语——朗诵,送别,古城门。84岁的老诗人参加活动只是送别古城门中的一个例子,因此不是短文的要点。答案:百名诗人“诵”别古城门。 例2:根据下面一则消息所给出的信息要点,拟一条“一句话新闻”。 【本报讯】记者近日从联通南京分公司获悉,130手机将在包括南京在内的12个城市推出“一机多网”服务,用户可以直接用手机拨打国际、国内IP长途电话,将来还能上因特网。 据介绍,“一机多网”是中国联通在预存话费的基础上推出的数字手机与IP电话因特网综合集成的一项新业务,用户在130手机上拨打IP电话时,无需输入卡号和密码,直接拨“17911”和被叫号码即可,在本地打国内长途时,不分远近均为每分钟0.7元,国际长途每分钟5.2元。据悉,到今年上半年,国内将有超过130个城市开通此项业务。 【解析】“事物”:联通。“事件”:消息的第一段是对全文内容的高度该括,因此可以从其中提炼出事件。时间:本消息表示时间的词语有四个——近日,将,将来,到今年上半年。可以从这几个词语看出时间是从最近开始,不超过今年上半年。因此我们可以把时间定为:近期。答案:联通近期将推出“一机多网”,手机也能打IP电话。 【演练提高】 1.为下面的报道拟一条标题。(不超过12字) 近日,新会市博物馆展出了一件特殊的文物“木美人”。这是画在一幅木制门板上的油画,画的是两个与真人一般大小、身着中国古代腰饰的西洋美女。研究者初步认为,这幅“木美人”是我国最早的油画作品。其艺术性不逊于意大利油画家达·芬奇的《蒙娜丽莎》。据传,这幅“木美人”门板,是明朝一位新会籍人士从福建带回来的。木门所属的屋子因为失火而被烧毁。门板是屋子里唯一没有被烧毁的东西,距今至少有五千多年的历史。这幅画究竟是何人何时所作?为何画中女子身着汉人服装,面部却有明显的西洋人特征?这些问题至今还不清楚。

结构化方法与面向对象方法比较

结构化方法与面向对象方法的内在联系 (一)二者在分解和抽象原则上一致 分解和抽象是软件开发中控制问题复杂性的重要原则。分解即化 整分零,将问题剥茧抽丝,层层消化;抽象则是通过分解体现,在逐层分解时,上层是下层的抽象,下层是上层的具体解释和体现,运用抽象可以不用一次考虑太多细节,而逐渐的有计划有层次的了解更多细节。面向对象方法与结构化方法在运用分解和抽象原则上的要求是完全一致的。 (二)局部化和重用性设计上的一致 局部化是软件开发中的一个重要原则,即不希望软件一部分过多 地涉及或影响软件的其它部分。在结构化方法中,局部化主要体现在代码与数据的分隔化,即程序各部分除必要的信息交流外,彼此相互隔离而互不影响,而面向对象方法则采用数据、代码的封装,即将数据、代码和操作方法封装成一个类似“黑箱”的整体对象,提高了程序的可靠性和安全性,同时增强了系统的可维护性。也就是说面向对象方法比结构化方法的运用更加深入更彻底。 结构化方法与面向对象方法的区别 (一)处理问题时的出发点不同 结构化方法是强调过程抽象化和模块化,以过程为中心构造或处 理客观世界问题的,它是一种面向过程的开发方法;面向对象方法强调把问题域的要领直接影射到对象及对象之间的接口上,是用符合人们通常的思维方式来处理客观世界的问题。

(二)处理问题的基本单位和层次逻辑关系不同 结构化方法把客观世界的问题抽象成计算机可以处理的过程,处 理问题的基本单位是能清晰表达过程的模块,用模块的层次结构概括模块或模块间的关系和功能;面向对象方法是用计算机逻辑来模拟客观世界中的物理存在,以对象的集合类作为处理问题的基本单位,尽可能使计算机世界向客观世界靠拢,以使问题的处理更直截了当,面向对象方法是用类的层次结构来体现类之间的继承和发展。 (三)数据处理方式与控制程序方式不同 结构化方法是直接通过程序来处理数据,处理完毕后即可显示处 理结果,在控制程序方式上是按照设计调用或返回程序不能自由导航,各模块程序之间存在着控制与被控制的关系;面向对象方法将数据与对应的代码封装成一个整体,原则上其它对象不能直接修改其数据,即对象的修改只能由自身的成员函数完成,控制程序方式上是通过“事件驱动”来激活和运行程序。 (四)分析设计与编码转换方式不同 结构化方法强调分析、设计及编码之间按规则进行转换,贯穿软件 生命周期的分析、设计及编码之间实现的是一种有缝的连接;面向对象方法从分析到设计再到编码则采用一致性的模型表示,贯穿软件生命周期的分析、设计及编码之间是一种平滑过程,即实现的是一种无缝连接。 结构化方法和面向对象方法各有优缺点 主要表现在如下几个方面:

面向对象方法学试题及答案

C++程序设计试题(下)样卷(卷面50分) (考试用时100分钟) 一、选择题(每题1分,共5分) 1.设计一个自定义类时,需要在屏幕上显示或向文件写入类对象的数据,最佳选择方法是。 A.为屏幕显示和文件写入各自设计一个成员函数。 B.为屏幕显示和文件写入统一设计一个成员函数。 C.重载插入运算符(<<)。 D.重载提取运算符(>>)。 2.关于异常处理,那些说法是错误的。 A.在C++程序中,由throw表达式抛出异常,而该表达式应直接或间接地被包含在try块中。 B.当抛出异常后,寻找匹配的catch子句有固定的过程:逆着程序函数的调用链返回,称为栈展开(Stack Unwinding)。 C.当某条语句抛出异常时,跟在其后的语句将被跳过,但析构函数仍然执行,所以应该在析构函数中释放资源。 D.catch子句实际是一个特殊的函数。 3.下列关于动态资源分配的说法中错误的是。 A.动态分配的资源不仅包括内存,还包括文件。 B.动态内存分配的优点在于可以随时给数组分配所需的内存而不会失败。C.动态分配的资源通常要求在析构函数中释放。 D.对含有动态分配的数据成员的类对象应该采用深复制。 4.下列有关模板的描述那些是错误的。 A.模板把数据类型作为一个设计参数,称为参数化程序设计。 B.模板参数除模板类型参数外,还有非类型参数。 C.类模板与模板类是同一概念。 D.使用时,模板参数与函数参数相同,是按位置而不是名称对应的。 5.关于多态,下面那些说法是正确的。 A.多态分静态的(编译时)和动态的(运行时)。 B.运行时的多态与类的层次结构有关。 C.在基类定义了虚函数后,在派生类中重新定义时可以不加关键字virtual。D.仅使用虚函数并不能实现运行时的多态性,还必须采用指针或引用来调用才能真正实现运行时的多态性。 二、填空题(每空0.5分,共5分) 1.有标准字符串类string对象str,str1,str2。对其字符元素的访问可用两种方式:str[i]和str.at(i)。两者的区别是(1)。str1+=str2 实现的运算是(2)。str.substr(pos,length1) 实现的运算是(3)。

相关主题
文本预览
相关文档 最新文档