面向对象的软件开发方法分析论文(精选15篇)
面向对象的软件开发方法分析论文 篇1
面向对象的软件开发方法分析论文
面向对象的技术是计算机软件技术史上的一次革命,为软件开发拉开了新的篇章。面向对象的软件开发方法,是一种以对象建模为基础,自底向上和自顶向下相结合的方法,包括了所有对象的数据结构。基于此,文章从传统软件开发方法存在的问题出发,并以此为基础,对面向对象的软件开发方法展开分析,以供参考。
相比传统的软件开发方法,面向对象的软件开发方法(OMT)实现了质的飞跃,采用了一种自底向上的归纳、自顶向下的分解方法,通过对对象建模的建立,彻底解决了软件开发在需求分析、可维护性以及可靠性三大环节上的问题,同时也大大提高和改善了系统的可维护性。可见,面向对象的软件开发方法,作为一种归纳和演绎思想的综合体现,其对软件设计、软件开发所起的促进作用是毋庸置疑的。
一、传统软件开发方法存在的问题
(一)软件复用性差
在软件开发工程所追求的目标当中,软件复用性是重点之一,同时也是节约人力和提升软件生产率的重要渠道。虽然近年来软件当中的结构化分析、结构化设计和结构化程序开发给软件产业带来了巨大的进步,但是还不足以从根源上解决软件重复使用的问题。
(二)软件可维护性差
传统的软件开发方法过于侧重一致、完整的文件合成最终的产品,以致在整个开发过程中,软件的可测试性、可读性和可修改性成了衡量一个软件产品优劣的重要标准。事实上,在软件的实际应用中,我们可以发现这类产品的维护性差,且所消耗的成本相当高。
(三)开发出的软件不能满足用户需要
传统的结构化方法所涉及的知识领域比较广泛,以致使用它开发大型软件时,一旦遇到系统需求模糊或者系统发生动态变化,就会影响开发效率,导致最终开发出来的软件脱离用户实际需求。
(四)软件质量难以保证
传统的软件开发方法所开发出来的复杂型大型软件,或者是需求模糊的系统,绝大多数都是难以成功投入市场使用的。归其原因,主要有以下两大因素:第一,软件开发人员对用户的实际需求理解不够透彻,以致最后开发出来的软件和用户的期待不相符;第二,所开发出来的软件灵活性低,无法适应用户需求的经常性变化,再加上部分用户有时会在软件的一些使用性能方面提出部分要求,倘若系统的设计和开发是基于过程中,那么软件系统的可扩充性和稳定性就会无法适应变化,而这种变化也会对软件系统自身的机构造成影响,设计、开发的成本也会随之提高。
二、面向对象的软件开发方法
现阶段,面向对象的软件开发方法的研究已经日趋成熟,市场上也不断有新产品涌现。面向对象的软件开发方法有Coad方法、Booch方法和OMT方法等。
(一)Booch方法
Booch方法的最突出特点就是它能够反映出系统的各个方面是如何相互联系和作用的。在一系列的.面向对象的软件开发方法中,Booch方法是最早描述当中的基础问题的,其首先提出面向对象是区别于传统软件开发的一种方法。Booch方法认为面向对象的软件分解更接近人们对客观事物的认知,它并没有对各个开发阶段进行明确的周期划分,把主要的工作都集中在软件设计阶段。
(二)Coad方法
Coad方法是通过多年来大型系统开发的经验与面向对象概念的有机结合,该方法在对象、结构、属性和操作的认定方面,提出了一套系统化的原则,并完成了从客户需求角度进一步进行类和类层次结构的认定。Coad方法把软件系统的开发划分为分析和设计两个阶段,虽然说Coad方法没有引入类和类层次结构的术语,但事实上它已经在分类结构、消息关联等概念中呈现了类和类层次结构的特征。从某种程度上来说,Coad方法的概念虽然简单易懂,但是它对各个面向对象和行为的描述不够全面,对象模型的语言表达能力也不突出。
(三)OMT方法
OMT方法是一种跟随OOP向OOD和OOA发展而形成的面向对象的软件开发方法,它的方法涵盖了软件分析、软件设计以及软件实现三大步骤,贯穿于软件开发的全程。OMT还建立了对象模型、动态模型和功能模型三个模型,这三个模型在一定程度上完善了软件,使软件开发更加清晰,也更易于维护。可以说,作为一种以真实世界为对象建模而进行的独立语言设计,OMT方法彻底实现了传统软件开发方法没有完全实现的目标,为绝大多数领域的应用软件提供了一种实际的、高效的、可操作的保证。
(四)UML语言
UML语言是一种建模语言,它是软件工程领域的重要成果之一,在未来,UML语言将会成为面向对象技术领域内的标准建模语言。UML不仅结合了Booch方法、OMT方法、OOSE方法的优势,而且还对其做了进一步的发展,汲取了面向对象技术领域中的其他流派优秀的开发思想,融入了软件工程领域的新思想、新方法、新技术。总而言之,UML是一种通用的标准建模语言,适用于以面向对象技术为基础的任何类型的软件系统,而且还能够在系统开发的不同阶段使用,从需求规格描述直至系统完成后的测试和维护。
综上所述,由于面向对象的软件开发方法所具备的诸多优点,相信面向对象的软件开发方法在未来会有更广阔的前景。可见,开展面向对象的软件开发方法的研究工作,也有着十分重要的现实意义。
面向对象的软件开发方法分析论文 篇2
1.阐释实时软件的内涵
实时软件是实时系统中的软件。当外部世界发生变化时, 相应地实时系统就会对这种变化做出动作进行回应, 并在规定的时间内、依靠严格的控制、最大化地获取数据来实现这一功能。特别要指出的是, 这些控制是有严格规范的, 这便对实时系统的应用进行了限制, 只应用于它相对应的方面。
另外, 实时系统具有高标准的要求, 主要可以体现在以下方面:其一、时间方面, 必须在规定的时间内处理完突发事物, 如果超过时间就会造成不可弥补的损失;其二、正确性方面, 在规定的时间内对突发事物做出合理的逻辑判断和处理, 这就确保了结果的正确性。同时, 存在着对实时系统的实时性有一个普遍的误区, 他们狭隘地臆断实时就是速度要快。以第一时间对外部情况做出反应是实时系统的一个优点, 快速反应是实时性的一个要求, 但是两者有着本质的区别, 不可混淆概念。有时快速反应并不意味着实现了实时性。所谓的实时性是指要求圆满处理完外部相应的事物和要求必须在规定的时间内。
除了具有一般软件系统的特点外, 实时系统软件还具有:首先, 时间限制, 即实时性。要求在规定的时间内对于外部的发生的事物系统要做出反应并处理好;其次, 稳定性。如果系统重启和故障恢复系统会很快复原且数据不受损;再次, 多任务、并行性、分布性。实时系统可以同时同步对于外部世界或者分布较广的多个问题和任务, 进行有效的处理并有效地保证处理的结果具有可靠性。而这种处理的有效性和可靠性是由系统的实时性决定的;最后, 对于操作系统的底层具有开发性, 实时操作系统就是实时软件应用中所使用的操作系统, 要求在优先调配机制和内存锁定机制控制下, 实现多任务同时同步处理。特别要注意的是, 对于系统中的语言开发原则也要坚持实时性原则, 选择实时性语言, 以求对多个任务进行并行处理。
2.探讨实时软件开发方法
与普通的实时软件相比, 复杂性是两者的共性, 实时系统的软件还具有自己的特殊性要求, 那就是时间控制的因素, 这就是实时软件的结构和开发方法的优势。
■2.1实时分析技术
以面临解决的事实问题或既定的目标为依托, 全面解析实时系统的软件和硬件部分, 而后对硬件和软件进行拆解, 以求对设计实时软件奠定根基, 这就是实时系统在分析阶段中所要完成的任务。建模和仿真技术是实时系统进行分析才应用的技术。对实时系统元素进行建模时要求分析人员必须利用好数学辅助工具, 另外, 把握时间长短和对资源大小进行估量是分析人员在这一过程中特别要注意的问题。根据在对数据流进行分析的基础上, 分析人员要建模实时系统的硬件和软件元素, 控制以概率的形式进行, 这就是数学分析方法应该注意的。同时, 对系统时间和资源大小如何进行评估, 就要求分析人员以网络分析、序列论、图形论和数据模型等方式来推导出来。RMS理论为基础, 能够分析并行的多任务的分析技术, 是为了辅助RMAM的分析方法而设立的理论。判断在实时系统中在调度方面利用RMS处理并行任务是否能够满足他们的实时性的依据, 那就是看有没有采用采用RMA分析技术。分析系统的性能需要使用仿真和建模工具, 利用这两种工具软件工程师还能够构建一个模型, 通过这样的形式, 可以有效地理解系统的运作。为建立一个实时系统的概念模型需要通过系统的状态图、活动图和模块图, 这就是系统的建模方法。然后在在建立的模型的基础上, 分析和仿真系统的行为和执行情况, 并测试系统是否具有一致性和完整性, 最后, 汇总在真实系统中的各种数据和特性。
■2.2实时设计和实现技术
在给定的时间控制情况下如何完成系统的目标是实时设计阶段中主要面对的任务。处理实时软件中的优先权的选择、多任务和并行、同步和异步、时间约束等问题是设计实时软件所必须考虑的因素。通常都是通过扩展一些非实时设计方法是实时软件的设计方法所采用的手段, 而基于过程的模块化的设计方法是传统的实时软件的设计方法才采用的手段。不仅可以采用自顶向下和结构化的程序设计, 而且可以采用图形化的语言描述设计, 还有一些运用有限状态机、Petir网、消息传递系统或一某种专门语言等是使用面向数据的设计方面向对象的实时软件开发方法所研究的基础性方法。
■2.3传统实时软件开发方法应该注意的问题
临的问题越来越多, 最终使实时软件很复杂了。在过程的设计方法上而建立的传统实时软件已不能够适应变化的新情况了。它主要存在以下问题:首先, 分别对过程和数据进行处理, 这样就使真实世界的实际情况失去了本来面目, 更加剧了分析和设计实际世界的难度;其次, 没有统一性的划分原则对采用层次化的功能模块划分系统, 最为严重的是, 某个别的开发人员的主观看法完全左右了对组织软件单元, 系统的划分, 这样就失去了客观性加剧了实时软件开发的困难;最后, 由于人为的局限性使得对调度的分析和描述过程也相当的复杂。
3.结语
随着电子信息技术的发展, 我们研究实时软件开发时, 要具有勇于突破和敢于创新的斗志, 在对现实情况进行分析和研究的基础上, 要不断对实时软件进行改进, 以达到它更好地服务于社会的目的。
参考文献
[1]肖亚利.面向对象的实时软件开发方法研究[D].四川大学, 2003.
面向对象的软件开发方法分析 篇3
【关键词】面向对象 软件开发方法 问题 分析
相比传统的软件开发方法,面向对象的软件开发方法(OMT)实现了质的飞跃,采用了一种自底向上的归纳、自顶向下的分解方法,通过对对象建模的建立,彻底解决了软件开发在需求分析、可维护性以及可靠性三大环节上的问题,同时也大大提高和改善了系统的可维护性。可见,面向对象的软件开发方法,作为一种归纳和演绎思想的综合体现,其对软件设计、软件开发所起的促进作用是毋庸置疑的。
一、传统软件开发方法存在的问题
(一)软件复用性差
在软件开发工程所追求的目标当中,软件复用性是重点之一,同时也是节约人力和提升软件生产率的重要渠道。虽然近年来软件当中的结构化分析、结构化设计和结构化程序开发给软件产业带来了巨大的进步,但是还不足以从根源上解决软件重复使用的问题。
(二)软件可维护性差
传统的软件开发方法过于侧重一致、完整的文件合成最终的产品,以致在整个开发过程中,软件的可测试性、可读性和可修改性成了衡量一个软件产品优劣的重要标准。事实上,在软件的实际应用中,我们可以发现这类产品的维护性差,且所消耗的成本相当高。
(三)开发出的软件不能满足用户需要
传统的结构化方法所涉及的知识领域比较广泛,以致使用它开发大型软件时,一旦遇到系統需求模糊或者系统发生动态变化,就会影响开发效率,导致最终开发出来的软件脱离用户实际需求。
(四)软件质量难以保证
传统的软件开发方法所开发出来的复杂型大型软件,或者是需求模糊的系统,绝大多数都是难以成功投入市场使用的。归其原因,主要有以下两大因素:第一,软件开发人员对用户的实际需求理解不够透彻,以致最后开发出来的软件和用户的期待不相符;第二,所开发出来的软件灵活性低,无法适应用户需求的经常性变化,再加上部分用户有时会在软件的一些使用性能方面提出部分要求,倘若系统的设计和开发是基于过程中,那么软件系统的可扩充性和稳定性就会无法适应变化,而这种变化也会对软件系统自身的机构造成影响,设计、开发的成本也会随之提高。
二、面向对象的软件开发方法
现阶段,面向对象的软件开发方法的研究已经日趋成熟,市场上也不断有新产品涌现。面向对象的软件开发方法有Coad方法、Booch方法和OMT方法等。
(一)Booch方法
Booch方法的最突出特点就是它能够反映出系统的各个方面是如何相互联系和作用的。在一系列的面向对象的软件开发方法中,Booch方法是最早描述当中的基础问题的,其首先提出面向对象是区别于传统软件开发的一种方法。Booch方法认为面向对象的软件分解更接近人们对客观事物的认知,它并没有对各个开发阶段进行明确的周期划分,把主要的工作都集中在软件设计阶段。
(二)Coad方法
Coad方法是通过多年来大型系统开发的经验与面向对象概念的有机结合,该方法在对象、结构、属性和操作的认定方面,提出了一套系统化的原则,并完成了从客户需求角度进一步进行类和类层次结构的认定。Coad方法把软件系统的开发划分为分析和设计两个阶段,虽然说Coad方法没有引入类和类层次结构的术语,但事实上它已经在分类结构、消息关联等概念中呈现了类和类层次结构的特征。从某种程度上来说,Coad方法的概念虽然简单易懂,但是它对各个面向对象和行为的描述不够全面,对象模型的语言表达能力也不突出。
(三)OMT方法
OMT方法是一种跟随OOP向OOD和OOA发展而形成的面向对象的软件开发方法,它的方法涵盖了软件分析、软件设计以及软件实现三大步骤,贯穿于软件开发的全程。OMT还建立了对象模型、动态模型和功能模型三个模型,这三个模型在一定程度上完善了软件,使软件开发更加清晰,也更易于维护。可以说,作为一种以真实世界为对象建模而进行的独立语言设计,OMT方法彻底实现了传统软件开发方法没有完全实现的目标,为绝大多数领域的应用软件提供了一种实际的、高效的、可操作的保证。
(四)UML语言
UML语言是一种建模语言,它是软件工程领域的重要成果之一,在未来,UML语言将会成为面向对象技术领域内的标准建模语言。UML不仅结合了Booch方法、OMT方法、OOSE方法的优势,而且还对其做了进一步的发展,汲取了面向对象技术领域中的其他流派优秀的开发思想,融入了软件工程领域的新思想、新方法、新技术。总而言之,UML是一种通用的标准建模语言,适用于以面向对象技术为基础的任何类型的软件系统,而且还能够在系统开发的不同阶段使用,从需求规格描述直至系统完成后的测试和维护。
综上所述,由于面向对象的软件开发方法所具备的诸多优点,相信面向对象的软件开发方法在未来会有更广阔的前景。可见,开展面向对象的软件开发方法的研究工作,也有着十分重要的现实意义。
【参考文献】
[1]唐黎黎.面向对象的软件工程应用研究[J].现代商贸工业,2010(22).
面向对象的软件开发方法分析论文 篇4
地下工程有限元图形系统的面向对象开发
应用面向对象技术有效地组织地下结构有限元分析图形系统的复杂数据,提出了有限元后处理图形系统面向对象的数据结构和基本算法,并用VC++完成了该系统的开发.系统可以方便地显示地下结构的应力、位移等物理量的.空间等值线、矢量图、塑性区、开裂区等分布特征,最后还给出了系统的应用实例.
作 者:作者单位:刊 名:岩石力学与工程学报 ISTIC EI PKU英文刊名:CHINESE JOURNAL OF ROCK MECHANICS AND ENGINEERING年,卷(期):21(z1)分类号:O241.82关键词:面向对象设计 地下工程 有限元后处理 图形系统
面向对象的软件开发方法分析论文 篇5
卫星系统的复杂性是卫星模拟器研制的难点.针对面向功能方法的.不足,提出了面向时象的卫星模拟器设计方法,并使用OMT技术进行了卫星模拟器建模示例.
作 者:吴振宇 熊晓将 宋秋静 WU Zhen-yu XIONG Xiao-jiang SONG Qiu-jing 作者单位:中国空间技术研究院・北京・100094 刊 名:飞行器测控学报 ISTIC英文刊名:JOURNAL OF SPACECRAFT TT & C TECHNOLOGY 年,卷(期):2008 27(2) 分类号:V411.8 关键词:面向对象 卫星 模拟器
面向对象的软件开发方法分析论文 篇6
面向对象方法的哲学思想及在土地复垦中的应用
介绍了面向对象的基本概念,面向对象理论,并以平朔安太堡露天煤矿为例,论述了○○方法的.哲学思想以及在土地复垦中的应用.
作 者:张彤彤 Zhang Tongtong 作者单位:山西大学科学技术哲学研究中心,山西,太原,030006刊 名:科学之友英文刊名:FRIEND OF SCIENCE AMATEURS年,卷(期):“”(20)分类号:B712.5关键词:面向对象 面向对象方法学 哲学思想 土地复垦
软件工程中面向对象方法研究 篇7
1.1 软件工程的定义
软件工程是一门用来进行分析和研究选择使用工程化的方式对软件进行建立并进行维护的学科。它比较实用, 用起来也比较有效且其质量也比较高。它涉及的领域非常广, 有程序设计语言、对软件的开发以及数据库的构建等方面。
所谓软件生命周期, 其实就是软件从开发到使用, 再到退出历史舞台的过程。软件生命周期划分成三个阶段, 即对软件的定义、开发和运行维护。一般对软件过程进行描述都是对生命周期模型加以利用, 也就是将生命周期都分成了一些阶段, 而且每一阶段相应的执行序列都给制定好, 所以, 此模型又称为过程模型。
1.2 软件的发展
伴随着计算机的普及, 人们对软件的需求量更大, 刚开始, 软件是以比较简单的程序模式呈现在人们的生活中的, 这时还不是真正的软件, 只是能完成比较简单的任务, 还没真正深入到人们的生活, 大多数行业还是以手工操作为主。计算机的出现和迅速发展, 给人们的生活带来了翻天覆地的变化, 相应的也带动了软件的发展。新技术的出现和发展都是为了满足人们的生活需要, 就拿计算机来说, 它的出现及发展, 给人们的工作和生活带来了极大的便利, 使工作效率得到有效提高, 使得时间和经济成本被节省出来, 由此为软件朝着多样化、专业化以及个性化发展打下了坚实的基础。主要体现在:
(1) 由于软件不是具体的物品而是逻辑产品, 因此, 从费用上看, 其主要的费用是研制开发的费用。虽然软件不会磨损用坏、老化, 但是经过一段时间后他会因为落伍而退役。
(2) 因为软件实际上是一种逻辑产品, 所以要体现出他的功能就得依靠硬件与软件共同工作的环境和操作人员的操作。
(3) 对于软件产品来说, 其所具有的功能要比别的产品更加的复杂。
(4) 对软件进行设计, 比别的产品更加的复杂, 因为他需要功能具有多样性, 其实现也具有多样性。
2 面向对象软件工程
面向对象软件工程就是采取面向对象方法, 与人类认识规律相符的某一软件工程。从上世纪80年代开始, 人们开始把面向对象进行分析与设计的探讨重视了起来, 让面向对象软件工程方法学得以日益形成。面向对象方法具有以下优势:
(1) 从认知学上讲, 面向对象方法与人们对客观世界的认识规律是相符的, 长期以来, 人们在对一个软件系统进行研究、设计、完成的整个程序跟人们对一个系统的充分认识之间有很大的差别。
(2) 开发出来的软件系统维护起来比较容易, 软件系统所具有的结构比较容易理解、扩展以及更改。针对对象方法开发的那些软件系统, 其构成部分一般是对象类, 对象所具有的封装性把抽象以及信息隐蔽所具有的特性给淋漓尽致地表现了出来。
(3) 面向对象方法中所包含的继承机制对软件的服用进行了大力的支持。
OO方法的先进机制和能力:
OO方法是以OO定义当做理论基础而开发出来的提出的, 它的特点有以下几种:
(1) 抽象性。
抽象是把我们实际生活里比较复杂的事物给具体化, 用比较精炼而且简单的手段来反应出他在计算机的发展过程里发挥了巨大的作用, 程序设计语言简单地说是通过不断发展以及发展的相关手法而产生的。具体表现为: (1) 抽象表达能力非常强; (2) 所具有的抽象的数据类型, 使得对象级上比较高层次的抽象得以达到。
(2) 封装性。
封装的基本含义有以下几点:
(1) 明确清晰的范围以及外部边界在其软件的所有构成部件的里面都是需要具备的; (2) 让部件彼此相互联系以及作用得以达成, 应该使每一个部件装有比较好的接口得以确保; (3) 因为部件里面的设计以及实现是不知道的, 因此, 软件的质量以及可靠性就显得至关重要, 但是OO方法里面的类是封装良好的模块, 以对象当成封装的组成单位的特性恰是供应了此种完好的封装机制。
(3) 继承性。
继承性是OO方法的独特之处。继承性显示并引申了OO方法的共享机制。此外, 相异的类或者对象中间横向共享机制大部分是通过多重继承性得以达成的。目前软件向开放体系结构发展, 对系统进行开发的时候其接口必须采取公用的, 让信息之间的交换以及共同享用从而达成。OO方法的继承性恰好是从概述到详尽、普通到特别、抽象到具体, 充分采用现有的系统或建好的类实施引申或者是更改, 来建立属于本身的新系统, 让软件系统所具有的开放性得以实现, 让工作量得以简化, 使软件所具有的重用能力得以提高。
(4) 多态性。
多态性其实就是选择一个相关的操作名称把那些数据类型不一样的多种多样的操作都得以实现, 多态性得以实现的方法有:运算负重载和函数名重载等因为多态性所具有的特点, 使得软件的灵活性以及重用性得到了有效的强化。
3 面向对象方法的核心问题
面向对象方法与结构化方法一样, 其核心问题也是模型问题。
OOA模型:
OOA关心的是构建现实世界的模型问题。如何解决现实世界的建模问题呢?根据系统科学的思想, 首先需要对复杂的系统进行分解, 最常用的分解方法就是分层。采用P.Coad和E.Yourdon的分层方法将OOA模型划分为5个层次, 即:主题层、对象层、结构层、属性层和服务层。OOA的主要任务就是要在问题域上构建具有这5个层次内容的OOA模型。
(1) 主题层。
主题提供OOA模型中各图的大体情况, 分析员跟客户就可以在这个平台上进行交流, 这样利于人们对复杂系统的模型构成进行很好的理解。
(2) 对象层。
对象属于属性和专用服务相结合的封装体之一, 就是抽象地对此领域的人、事、物等比较具体客观的事物做详细的描述。类把对象给构建了出来, 类所描述的是一个或者是多个的事物, 所有描述的事物都能用相同的属性及服务进行描述。
(3) 结构层。
在OO方法里, 组装结构与分类结构是比较重要的2种结构, 两种结构分别对“整体与部分”组织和“一般与特殊”组织进行描述。组装结构一般对人类思维大都选择的第2个基本法则来遵循, 就是把整体对象跟整体对象的组成部分给有效的区别开来。分类结构 (即一般与特殊) 遵循了人类思维普遍采用的第3个法则, 在OO方法中, 是类、成员和它们之间的区别。
(4) 属性层。
属性就是对于一个对象的抽象刻画描述类里面的任何对象都含有它应有的属性值, 属性值简单的说就是信息数据, 但这些信息数据是有状态的。
(5) 服务层。
服务层其实是接到一条信息后对信息进行相应的处理的层, 服务其实是把现实事物进行抽象的模型化。
参考文献
[1]董剑利, 牛兰庆.面向对象的方法及其精髓[J].甘肃教育学院学报 (自然科学版) , 1999, (02) .
浅谈面向对象程序设计方法 篇8
关键词:面向对象程序设计 结构化程序设计
一、面向对象设计方法
软件设计有两种主流设计方法:以结构化程序设计为基础的结构化软件设计和由面向对象设计方法导出的面向对象的软件设计, 20世纪70年代末到80年代初的结构化设计方法即传统设计方法,以区别于后来兴起的面向对象的设计方法。在软件设计周期中,面向对象设计方法是一种全新的设计和构造软件的方法,它使计算机解决问题的方式更符合人类的解决问题的思维方式,更能直接的描述客观世界,同时也可以增加的代碼的可重用性,是目前和未来软件开发的方向[1]。
面向对象设计在整个软件设计中占据着非常重要的部分,面向对象设计也是将分析阶段所建立的分析模型转变为软件设计模型,但是面向对象分析和面向对象设计之间没有明显的界限,面向对象的方法是基于抽象、信息隐藏、功能独立和模块化等重要软件设计概念基础上的,现阶段的软件设计基本上都运用了面向对象的设计方法[2]。面向对象的开发支持鼓励软件实践中的信息隐藏,数据抽象和封装,可以对单独对一个对象内部进行隔离修改,那么就使得运用面向对象开发的软件更容易修改、扩充和维护[1]。
对象和类是面向对象程序设计的基石,其基本的机制便是方法和消息。消息是要求某个对象执行类中某个操作的规格说明;方法就是对象执行的操作。面向对象程序设计三个重要特征:封装性,继承性和多态性。
(一)对象(Object)和类(Clasess)
对象即指现实生活中无所不在、各种各样的实体,它可以使具体的事物,也可以是抽象的实体[2]。从对象的构成和内容来看,设计程序时使用对象有以下优点:对象是对物体的直接抽象,这种抽象简化了实际物体的模型,同时以一种可以操作的形式将实体表达出来。进行了数据的封装后,掩蔽了实现的复杂性,对于用户使用起来就更加方便。
在现实生活中,具有相似性质,执行相同操作的对象,称为同一类对象,即类是同一种对象的集合与抽象[2]。例如,在Visual Basic中窗体都是Form类的实体,一个单独的窗体也是一个类。
(二)数据封装(Data Encapsulation)
数据封装是类的一个重要特性。数据封装是把数据和相关的操作设在一个包中,那么程序不能直接访问对象中的变量,只有通过对象的方法才能作用于数据。
(三)继承(Inheritance)
我们首先在对象的基础上创建对象,新的对象就会继承原先对象的所有属性和特点,同时根据实际情况也可以选择和修改父对象的属性和功能,这就叫做继承。利用这点,可以将旧的程序扩充为当前所需要的,也可以从已知的类中派生出新的类来。
(四)多态性(Polymorphism)
多态性就是多种表现形式,不同事物具有不同表现形式的能力,具体来说,可以用“一个对外接口,多个内在实现方法”表示。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。
二、结构化程序设计与面向对象程序设计
结构化程序设计是由算法和数据结构组成,算法指处理数据的特定的方法。结构化程序设计首要想法是如何处理数据,然后再选择最为方便处理的数据结构,那么重点主要集中在数据上了。结构化程序设计的基本思想是:系统按功能要求分解为若干个子模块,子模块再根据需求进一步分解为子模块,不断的进行分解,从上往下进行分解,这样的形式是自顶向下的“瀑布式”设计,仅运用了顺序、分支和循环三种结构设计编码。
面向对象程序设计中,用户需要做的事向对象传送消息。编程人员在设计过程中要做的就是向对象处理适当的消息以及它的内部数据,这样就最大限度了提高了代码的可重用性,缩短了调试时间。面向对象程序设计与结构化程序设计是相反的,面向对象的程序设计是从下往上的“喷泉式”的设计,对象是数据处理方法紧密结合的整体。
三、Windows及应用程序与面对对象的程序设计
Windows中的图形用户接口包括窗口,下拉式菜单,对话框等各种控件,这就使得Windows应用程序非常容易使用。我们用结构化的程序设计方法开发Windows应用程序非常困难,即使要在屏幕上生成一个简单的窗口或是一个简单的下拉式菜单也要编写几十条甚至几百条复杂的代码,写这些代码的前提必须是我们对Windows具有非常深入的了解。那么在这种情况下,一种开发时间短、质量高、复用性高等比结构化程序设计方法优良的设计方法。由于Windows的进城的核心也是对消息的处理,因此Windows程序编程是以消息为核心。消息也是面向对象程序设计的基本机制,程序的进程的核心也是对消息的处理,因此面向对象程序设计比结构化程序设计更适合于开发Windows应用程序。利用面向对象程序设计的封装性可以把Windows应用程序的所具有的行为进行封装,形成一个类层次库,这样就为Windows应用程序提供一个一致、直观和简单的与Windows的接口。面向对象程序设计具有继承性这一特性,Windows的应用程序可简单、方便的继承和选择性的使用Windows特性而不必重写这些代码,同时,编程人员也可以借用其他应用程序的功能代码,或是稍作修改,也不必考虑Windows底层的细节。那么这样看来,类层次库就大大的降低了Windows程序设计的复杂性,编程人员也不必一条一条代码的编写,显著的减少了创建Windows应用程序界面所需的源代码量,因此面向对象的程序设计在开发应用程序方面显示出巨大的优越性。
四、结语
面向对象的程序设计方法是当前软件设计的一个主要潮流,采用这种方法开发出的软件具有极大的稳定性、可维护性和可重用性,面向对象程序设计方法运用于软件设计中极大的提高的功能代码的复用性,大大的提高了工作效率。
参考文献:
[1]李双双,李探.面对对象的设计方法[J].计算机光盘软件与应用,2010年第5期
[2]史济民,顾春华,李昌武,苑荣.软件工程——原理、方法与应用(第二版)[M].北京:高等教育出版社,1990
面向对象的软件开发方法分析论文 篇9
面向对象分析与设计试题B卷
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分)3.下列不属于面向对象技术的基本特征的是()。
A.封装性
B.模块性
C.多态性
D.继承性
4.面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。
A.信息
B.数据隐藏
C.对数据的操作
D.数据抽象
5.关于面向对象方法的优点,下列不正确的叙述是()。
A.与人类习惯的思维方法比较一致
B.可重用性好
C.以数据操作为中心
D.可维护性好 8.下列不属于类的成员函数的是()。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
9.继承机制的作用是()。
A.信息隐藏
B.数据封装
C.派生新类
D.数据抽象
14.()是从用户使用系统的角度描述系统功能的图形表达方法。
A.类图
B.对象图
C.序列图
D.用例图
15.()是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图
B.组件图
C.类图
D.配置图
16.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图
B.协作图
C.状态图
D.序列图
17.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A.组件图
B.协作图
C.状态图
D.配置图
18.在用UML进行数据库的分析与设计过程中,()就是进行数据库的需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。
A.逻辑数据模型设计
B 业务Use Case模型设计
C.物理数据模型设计
D.物理实现设计
19.使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品”
A.业务Use Case模型设计
B.逻辑数据模型设计 C.物理数据模型设计
C.物理实现设计 20.UML的动态建模表示包含()种图。
A.9
B.5
C.4
D.2
二、填空题(每空 1 分,共 20 分)1.面向对象开发方法一改过去传统的以_______________为基础的______________的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_______的集合,其______________又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的______,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与____________在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的________、________、_________等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服____________。因此,它已成为成熟的广为采用的软件开发方法。
2.对象是客观实体的抽象表示,是由__________________________和________________________两部分组成。而______是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___________。通过________关系又可形成一种类层次结构。
3.UML中用于描述系统的静态建模的视图称为静态视图,包括________、_________、_________、__________和__________。
四.简答题(每空4分,共 20 分)1.简述面向对象软件开发方法的优点。2.简述面向对象技术的三大机制。3.简述OOA模型的层次结构。
4.简述OOD模型的总体结构,并画图表示。
5.应用UML进行系统分析和设计所需建立视图有那几种?
请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品”
五.试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2)成绩管理功能。试完成下列工作:(1)建立系统静态结构模型—画出系统用例图和类图;(10分)(2)建立系统动态结构模型—画出系统序列图和协作图;(10分)(3)建立关系数据库逻辑模型。(10分)
面向对象分析与设计试题参考答案
一、单项选择题(每小题 1 分,共 20 分)
1.D
2.C
3.B
4.C
5.C 6.D
7.D
8.C
9.C
10.D 11.B 12.B 13.B
14.D
15.C 16.D 17.D 18.B
19.B
20.C
二、填空题(每空 1 分,共 20 分)
1.功能分析, 面向过程, 对象,面向对象的设计, 概念,解空间,封装, 继承, 多态, 软件危机 2.描述对象属性的数据,四.简答题
1.简述面向对象技术发展的动因。
答:为了超越程序复杂性障碍,克服软件危机,人们提出了面向对象软件开发方法。面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。因此,它已成为成熟的广为采用的软件开发方法。请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品”
2.简述面向对象技术的三大机制。答:(1)封装性(encapsulation)
请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品” , 类,实例,继承
3.用例图、类图、对象图、包图、构件图、配置图 请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品”
所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。(2)继承性
如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。(3)多态性
在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。3.简述OOA模型的层次结构。
答:OOA模型采用五层次结构,它们分别是:(1)对象-类层
划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。(2)属性层
定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。(3)服务层
表示对象的服务或行为,即是要定义类上的操作。(4)结构层
标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,用“整体-部分”关系表示;当一个类属于另一个类时,用类之间继承关系表示。(5)主题层
可将相关类或对象划分为一个主题。4.简述OOD模型的总体结构,并画图表示。OOD体系结构的各个部分内容:(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。
(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。
请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品”
(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。
(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:
— 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。
— 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
class & object layer(类及对象层)attribute layer(类及对象层)service layer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务struct layer(结构层)subject layer(主题层)主题图1.5 OOD模型的总体结构5.(1)系统用例图如下
请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品”
查询课程信息老师老师查询学生成绩选课注册学生学生查询课程成绩管理老师信息学生成绩管理管理学生信息管理员管理课程信息管理开设课程管理员成绩统计(b)成绩管理的用例图(a)选课管理的用例图
对象类图如下:
教师编号姓名地址电话1..*0..*课程课程名描述学时加入课程()1..*0..*学生编号姓名地址电话开设课程课程名授课日期授课时间地点指定老师()学生满否()选修课程学生名课程名学期增加记录()选课统计()(a)选课对象类图开设课程课程名授课日期授课时间地点指定老师()学生满否()学生成绩登记学生名学期课程名成绩加入成绩()打印()(b)成绩管理对象类图成绩统计学期课程名成绩按课程统计()按学生统计()打印()
请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 http:// , 精选淘宝热门商品”
(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:
学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)
开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)
面向对象设计的优点 篇10
首先,对象的引入方便了在软件虚拟世界中模拟现实世界。现实世界是由很多独立的抽象或具体物体组成的,比如房子、汽车、空调、书等等。为了构建更真实的虚拟世界,在软件中需要存在用于表达类似现实物体的编程元素,这正是引入对象概念的意义所在。
以对象为设计中心,迫使设计者在关注程序所需实现功能的同时不至于忘记通过抽象去塑造概念,以便用对象表达之。由于抽象获得的对象有助于隐藏复杂度,这在一定程度上简化了通过对象表达和理解软件虚拟世界的难度。也由于对象的存在,使得设计更加的生动和具有更强的自我解释能力。
从软件设计者的角度:如果希望塑造的对象在现实生活中存在,这有助于他借助现实引导自己的设计,他也应尽量将虚拟世界中对象的行为塑造成与现实世界的相近;如果希望塑造的对象在现实生活中并不存在,他只能借助对象的行为和状态去塑造对象(的概念),此时应注意行为、状态与概念间关系的合理性,否则所塑造的对象将令人费解。
从软件维护者的角度:如果对象在现实生活中存在,这有助于他借助生活经验快速掌握设计;如果在现实中找不到对象的影子,他仍可以通过对象的行为掌握对象的概念,这同样有助于他更方便地维护软件,
其次,面象对象设计由于强调以对象为中心,因而具备更强的封装能力。在大多支持面向对象设计的编程语言中,更强的封装能力除了意味着更具信息隐藏能力外,还使得封装的边界既明显又更不易被突破,这有助于在软件的维护过程中维持“形”。某种程度上,面向对象设计强化了软件行业推崇的模块化设计。
再次,面向对象设计中的继承和多态技术除了进一步提高通过软件模拟现实世界的能力外,还能让设计更灵活、易变更和方便复用。
显然,面向对象设计的优势是通过使得设计方法更抽象而获得的,这也解释了为什么掌握面向对象设计比掌握面向过程设计更难。现实中,由于有些工程师难以转变为从对象、继承和多态的角度思考设计,使得运用面向对象设计这一方法举步为艰。
面向对象设计的关键是用对象表达抽象概念,如果抽象出的概念并不清晰,则所获得的设计一定不会好。千万不要误以为运用面向对象设计所获得的设计就一定比面向过程的好。好方法获得好结果的前提仍需要我们运用好。
面向对象的软件开发方法分析论文 篇11
31重视上机实践及习题
做习题是对所学内容进行复习的重要过程,还是深入学习的必要过程。每次课程讲授之后,教师均应当将有着较强代表性的一些习题布置给学生,以此对课堂上所学习到的内容加以巩固。还可以借助于学生作业的具体情况来了解学生掌握课程内容的程度。对于作业中普遍出现的错误,则需要教师当堂讲解,以便于让学生掌握牢靠、理解透彻。与此同时,学生作业中所出现的新颖新奇的程序设计思路及方法,也需要做好作业批注,并且当堂宣讲,鼓励学生勇于迸发出创新的火花。
32激发学习兴趣
为了能够使学生较快及较好的掌握相关方面的计算机知识,真正的融入计算机领域,教师应当尤其重视学生学习兴趣的调动及培养。在接触计算机的最初阶段,相当一部分学生仅仅是感到好玩、新奇,但并非是对此有兴趣,而逐渐地随着课程的持续深入,大量的要求、定义、规则、概念以及机械化格式的出现,非常容易使得学生有乏味枯燥的感觉產生。为了能够将学生的好奇向学习兴趣转化,那么在课程讲解中要注意着手于具体问题,使学生从感性上对新知识加以认识,然后再对理论要点进行讲授。比如,在首次课上,教师可以找已学的一些《线性代数》、《高等数学》等课程的问题,要求学生采取算法语言来予以求解,以这样的方式使学生对程序设计的用途加以切身体会,最重要的是掌握全新的一种问题的解决方法。在课程讲授的过程中,教师还要积极的引导学生学习一类算法,并且在同行课程中尝试应用。另外,教师还可以向学生经常性的介绍趣味性的一些算例,比如“迷宫问题”等,以此将学生的学习兴趣培养起来,促使学生主动积极的学习与获取知识,从而将程序设计基础打好。
面向对象的软件开发方法分析论文 篇12
船舶推进轴系是船舶的重要部件,其振动性能直接影响到船舶的运行状况。船舶轴系振动的计算流程主要包括建立振动计算模型、求解计算、结果后处理等。其中建立计算模型通常占用了整个计算流程中的多数时间。目前振动计算建模方法包括集中质量法、当量模型法及有限元法等。随着计算机硬件性能的提高与有限元技术的发展,有限元法建立的轴系振动计算模型与实际模型吻合程度高,并且计算速度快,是目前广泛采用的方法[1,2,3]。
虽然有限元法提高了轴系振动计算水平,但是设计者仍然需要花费大量的时间建立轴系有限元计算模型。目前轴系有限元建模的核心思想为面向过程的功能性建模,这种建模方式效率低、出错率高、模块化与可重用性差。一旦计算任务改变,不能在现有模型基础上快速建立针对新任务的有限元计算模型。针对这个问题,本文从轴系结构模型与有限元计算模型的自身属性及相互关系出发,采用面向对象技术建立轴系参数化结构模型,然后利用有限元参数化建模语言实现轴系结构模型向有限元计算模型的自动转换,提高轴系振动有限元计算效率。
2 面向对象方法及船舶轴系结构建模
2.1 船舶轴系结构及其振动有限元计算
船舶推进轴系是船舶动力系统的重要组成部分,其可靠运行直接影响船舶安全性。推进轴系主要由传动轴(如螺旋桨轴、中间轴、推力中间轴等)、轴承(如中间轴承、推力轴承等)、弹性联轴器、艉轴管密封装置、减速器及推进器(目前主要为螺旋桨)等组成[1],运行中将主机产生的功率传递到螺旋桨,同时将螺旋桨产生的轴向推力通过基座传递给船体,推动船舶航行。轴系振动有限元计算主要包括三个步骤:建立有限元模型、求解与后处理,如图1所示。
目前有限元软件可以快速地实现求解与后处理,设计者的主要任务是通过有限元语言与命令把轴系结构模型转换为有限元计算模型。这个转换过程主要体现为设计者从轴系结构模型中提取有限元建模参数(包括传动轴结构尺寸与材料属性、螺旋桨质量与转动惯量、弹性联轴器刚度与质量、轴承刚度与阻尼、外部激振力等),然后以这些建模参数作为输入,使用有限元软件语言及相关命令建立有限元模型。这种建模方法的核心思想是“面向过程”。
由于建模数据多、中间过程繁琐及软件命令多,采用上述方法建立有限元模型不仅耗时,而且容易出错。当设计者对有限元软件不熟悉时,更是无法快速、准确建立有限元模型。在方案优化设计时,设计者需在“建模-计算-后处理”中进行迭代操作,低效率的建模方法将严重影响整个设计进程。因此,提高轴系振动有限元建模效率是轴系振动计算中亟待解决的问题。
2.2 面向对象的船舶轴系结构建模
根据面向对象设计思想,轴系对象建模的关键是详细分析和抽象出与轴系相关的类及其属性和方法,并将属性和方法封装在类的定义中,实现模块化设计,通过类继承和派生技术实现整体扩展性与用户定制性。结合船舶轴系结构与轴系有限元计算要求,可抽象出轴系结构类属框架。其中建模基类主要包括传动轴类(CShafting)、弹性元件类(CFlexElem)、质量类(CMass)、激励类(CStimulate)四类,同时还涉及建模相关的材料类(CMaterial)。由这些基类可派生出相应的子类,如传动轴类(CShafting)可派生出艉轴类(CPropShafting)、中间轴类(CMidShafting)、推力轴类(CThrustShafting)等,如图2所示。
确定了类及其层次结构后,就可以针对一个具体的对象定义其固有的属性和方法。属性是对它本身的状态、特征和信息的描述,是对象的形态变化、功能作用和流程运行的基础和依据。方法是对对象功能、过程和行为的操作,是实现其自身功能和建立类间相互联系的途径。如传动轴封装了轴段名称、外径、内径、长度、与材料相关的密度、弹性模量、泊松比等属性。
完成轴系建模类的定义后,通过类的实例化可生成轴系各组成结构对象。对象内部的属性对应实体模型的外形尺寸、材料属性等特征,对象内部的方法使各对象间相互联系,将对象模块组装成相互联系的轴系模型。因此,整个轴系对象模型与轴系实体模型完全对应,不仅易于理解,而且可扩展性强。
3 轴系结构对象向轴系振动有限元模型的转换
因有限元软件具有自身特定的数据格式与语言,上述建立的轴系结构对象模型还无法直接用于计算,需按照有限元软件要求将轴系结构对象转换为有限元结构化数据。有限元参数化建模语言(ANSYS Parametric Design Language,APDL)是有限元程序设计的主要语言之一,运用APDL可针对具体专业需求开发个性化的程序,从而大大提高工作效率[11]。APDL可处理复杂的数据输入,用户对这些数据具有完全的控制权,如分析模型的尺寸、材料的性能、载荷、边界条件等。利用APDL语言不仅可完成有限元常规分析操作(包括建模、计算、后处理等),而且通过参数化变量方式可实现不同用户界面的数据交互。
基于模块化的轴系结构对象模型,结合参数化的有限元语言,将轴系结构对象模型自动转换为有限元计算模型。转换时,将轴系结构对象中的每一子对象映射为一个APDL语言块,所有语言块组合在一起便构成整个轴系计算模型。采用APDL语言还可进行后处理,如提取振动频率、振动响应等,因此设计者所需的计算结果数据也可通过APDL程序实现自动输出。轴系结构对象与有限元计算模型的转换过程如图3所示。
4 面向对象的船舶轴系振动有限元计算系统
根据本文提出的方法,开发了面向对象技术的船舶轴系振动计算系统,系统包括面向对象的轴系结构建模、轴系结构对象向有限元模型的转换、计算求解、数据分析与计算报告输出等功能模块,具体功能及实现方法如下:
(1)面向对象的轴系结构建模———通过交互操作建立轴系结构模型。采用面向对象语言Visual C++设计前台交互界面,建模中轴系结构对象与控件一一对应,双击相应控件将显示结构对象包含的属性数据,设计者可编辑相关数据;
(2)模型转换———将建好的轴系结构对象模型转换为有限元计算模型。通过Visual C++编程技术与APDL语言生成与轴系结构模型对应的有限元计算模型;
(3)振动计算———将有限元计算模型读入至有限元软件进行计算。通过Visual C++设计相关按钮(命令),并链接至ANSYS软件中;
(4)数据分析———对轴系结构数据与计算结构数据进行存储与分析。后台采用SQL Server数据库进行管理,前台通过Visual C++和ADO控件对数据进行操作;
(5)计算报告———输出轴系振动计算报告。通过编程方法实现输入数据与计算结果按特定格式输出为Microsoft Word格式文档,并具有可再编辑性。
通过面向对象的编程方法、参数化转换技术及数据库管理技术,该系统不仅满足集成性、模块化、重用性和扩展性等设计要求,同时基本实现了整个轴系振动计算流程的自动化,有效地提高了设计效率。面向对象的轴系振动计算系统主界面如图4所示。
5结语
本文提出并实现了一种面向对象的船舶轴系振动有限元计算方法,提高了船舶轴系设计效率。该方法具有以下特点:(1)通过面向对象技术建立船舶轴系结构对象模型,建模过程概念化、易于理解,避免了因设计者对有限元不熟悉而无法建立轴系有限元计算模型的问题;(2)采用APDL语言实现结构对象向有限元模型的转换,使结构对象与有限元模型无缝连接,结构对象与有限元模型实时、动态更新,提高了模型的重用性与扩展性;(3)利用本文提出的方法开发了面向对象的轴系振动有限元计算系统,提高了轴系振动计算流程的程序化、自动化。
参考文献
[1]陈之炎.船舶推进轴系振动[M].上海:上海交通大学出版社,1987.
[2]HASHEMI S M,et al.A Dynamie Finit e Element(DFE)method for free vibrations of bending-torsion coupled beams[J].Aerospace Science and Technology,2000,4(1):41-55.
[3]JANG G H,et al.Free vibration analysis of a spinning flexibledisk-spindle system supported by ball bearing and flexibleshaft using the finite element method and substructuresynthesis[J].Journal of Sound and Vibration,2002,251(1):59-78.
[4]王成恩,于宏,张闻雷,等.面向对象的航空发动机装配模型[J].计算机集成制造系统,2010,16(15):942-948.
面向对象知识总结 篇13
1.类本身就是一个封装单元
2.实现:A属于私有化;B共有的方法提供给外界访问;C信息隐藏,安全,对外提供清晰的接口
二、继承
1.代码共有,方便维护扩展 2.更符合人类遇到的问题及处理的习惯 3.多重继承关系下构造函数的执行过程
三、多态
1.概念
2.好处
3.应用(生活,程序中的应用)
程序多态的应用
1.方法重载
2.重写父类的方法
3.重写父类的抽象方法
4.父类类型作为方法参数,实现
5.以父类的引用,接收不同子类返回的结果
6.用接口实现
四、面向接口编程
1.理解接口
1.1接口体现的是一种能力
体现在接口中的方法
1.2接口的体现是一种约定体现在注释和接口的名称 1.3面向接口编程程序设计时:
A关注实现类有那些功能,不需要关注实现细节
B面向接口的约定不考虑接口
具体的实现2.使用接口如何使用接口?A编写接口<-----根据需求设计接口的方法 B实现接口<-----实现接口里定义的所有方法 C使用接口<-----多态 3.特征1.多实现,弥补单一继承不足 2.项目初期,搭建系统时不需要考虑具体的实现自然使用接口:设计和显现分离 3.方便搭建整个应用系统,及系统设计
也方便搭建系统框架 4.多态应用的很好体现更自然的使用多态
重点:
1.掌握抽象类与接口不同之处 难点:
1.方法重载与重写 2.继承关系下,构造函数执行流程 知识体系:
面向对象作业L1 篇14
某餐厅的订餐系统,顾客可以访问该系统订餐,也可以取消预定。另外在预定的时候也可以点菜也可以不点菜。没有订餐的顾客或订餐但没有点菜的顾客到达餐厅后点菜由服务员将点菜信息输入系统。另外服务员还使用该系统进行结账。
1、取消预订预订顾客<
2、取消预订预订顾客点菜结账服务员
3、预订取消预订顾客点菜结账服务员
4、取消预订预订顾客<
二、根据以下描述,选择正确的用例图
某大学的图书馆系统,学生可以使用该系统进行书籍的检索、借出、归还。借出时学生还可以根据需要查看自己已借的图书的一览。另外,在进行检索、借出、归还的时候需要通过学生信息系统认证学生信息是否是有效的。
1、借还书系统检索图书<
2、认证学生信息借还书系统检索图书<
3、借还书系统检索图书<
4、借还书系统检索图书<
三、根据以下描述,画出活动图 某公司的图书采购申请流程。
申请担当做成购书申请单,然后交给课长进行审查;审查是否所有书籍都需要购买,如果有不需要购买的书籍,则通知申请担当修改申请;如果所购书籍金额超过2000元,则需要部长审批,否则直接提交采购部门。部长批准后提交采购部门进行采购,如果不批准则通知申请担当不能进行采购。
四、根据以下描述,选出对应的活动图
某公司的人才招聘流程。人事部门挑选简历,并由开发部门对挑选后的简历进行审查,由人事部门对审查合格者安排考试。人事部门会查看考试结果、联络考试合格者告知其工资待遇并要求应聘者调动档案等。应聘者会告知对此待遇是否满意,如果满意则会调动档案等,同时人事部门会办理入司需要的手续。档案调动和入司手续办理完了之后该应聘者入司。
1、人事部门开发部门应聘者选取简历审查简历安排考试参加考试查看考试结果通知工资待遇及调档告知是否满意办理入司手续调动档案入司
2、人事部门开发部门应聘者选取简历审查简历[合格]安排考试[不合格]参加考试查看考试结果[不合格][合格]通知工资待遇及调档告知是否满意[else][满意]办理入司手续调动档案入司
3、人事部门开发部门应聘者选取简历审查简历安排考试参加考试查看考试结果通知工资待遇及调档告知是否满意办理入司手续调动档案入司
4、人事部门开发部门应聘者选取简历审查简历[合格]安排考试[不合格]参加考试查看考试结果[不合格][合格]通知工资待遇及调档告知是否满意[else][满意]调动档案办理入司手续入司
答案:1 ;3 ;
面向对象的软件开发方法分析论文 篇15
国内流体有限元分析大都依赖国外流体分析软件, 如美国大型有限元分析软件ANSYS (ANSYS公司目前已经收购FLUENT) 、ALGOR等。由于微流体与宏观流体的差别, 传统软件在微流体分析上显得力不从心, 分析结果与实验结果在某些情况下有较大差别, 尤其随着研究尺度的进一步缩小, 这种情况将越来越明显。普遍认为, 基于宏观流体力学理论的商品化流体分析软件不完全适用于微流体分析领域[1,2]。因此, 针对微流体研究的特点, 开发易修改、扩展性好的微流体分析软件势在必行。
传统的有限元程序设计一般采用结构化的程序设计方法和结构化语言 (如FORTRAN) , 最具代表性的有MSC, ANSYS等公司开发的有限元软件产品。但随着软件技术和有限元技术的发展, 这种面向过程的程序在实际应用中的弱点越来越引起研究人员重视, 它的局限性主要体现在以下几个方面:
(1) 有限元程序的数据流与操作流分离, 程序代码的重复利用率很低; (2) 为了提高效率, 程序的各模块常直接访问数据结构。系统模块与程序数据结构紧密联系在一起。例如, 单元、结点和约束也许需要访问涉及到分析的矩阵和矢量来获取和传递状态信息。这样, 程序代码的编制者和改动者要求不仅有本模块知识, 而且要对整个系统有深刻的理解。 (3) 程序被分解为若干模块 (子程序或函数) 。由于各子模块间众多相关出现的面向对象程序设计是大型软件系统开发技术取得的重大成就。面向对象程序设计所拥有的数据抽象和信息隐蔽等机理以及面向对象语言的继承性、封装性、多态性等特性为软件开发提供了理想的模块化机制和比较理想的软件可重用成分。利用面向对象方法来实现有限元算法, 是对有限元数值计算方法的完善和创新, 尤其在对微流体的有限元数值模拟方面将产生良好的效果, 加速微流控系统的研究和发展。
本文将面向对象有限元法引入微流体分析软件的设计中, 实现了一个微流体有限元分析软件框架, 软件整体由前处理模块、有限元计算模块、后处理模块组成, 实现了模型的构造 (前处理) 和实际计算的分离, 程序在重用性和可扩展性方面较结构化流体分析软件具有明显的优势。
1软件框架设计
建立MFA软件的流程结构如图1所示。
流体有限元分析, 有着自身的特点。利用有限元法进行流体力学问题分析通常需经过写出积分表达式、求解区域的离散化、确定单元基函数、单元分析、总体合成、边界条件处理、解总体有限元方程, 计算有关物理量等步骤。
2模型体系设计
目前, 国际上比较成熟的面向对象有限元理论模型有Zimmermann、Archer、Besson等的模型体系[3]。1993年, Ohtsubo[4]也曾针对有限元模型建模系统做过研究。国内曹本宽等人于1996年提出了面向对象有限元设计的几个基础类Element类、Node类、ShapeFun类、Matrix类等的基本模型和继承关系。基于设计统一性的考虑, 本文在类设计上注重了对已有模型的继承和发展[5,6]。可以用图2来表示MFA软件设计中MFElement类对已有单元模型的继承和发展。
参考以上理论模型, 本文设计了针对微流体有限元分析的模型体系。MFA软件基本类继承关系如图3所示。
2.1MFDomain类
MFDomain类是单元类 (MFElement) 、结点类 (MFNode) 等的管理者。MFDomain类一方面将MFElement类、MFNode类等捏合起来, 以完成各种有限元分析过程, 另一方面, 它向有限元分析器类 (MFAnalysis) 提供对外接口。
2.2MFElement类
单元是有限元分析过程中的一个重要概念, 反映了整个有限元离散体系的拓扑属性。从计算的整个过程来看, 单元类应该包括单元类型, 单元结点数, 单元结点编号等基本单元数据, 此外, 一些辅助的数据及操作方法也必不可少, 如单元与结点的联络数据, 单元积分点, 单元刚度阵计算, 等等。显然, 单元在此处涵盖了一个大的范畴。
在运用有限元法求解问题时, 针对不同的具体问题或者不同的求解区域, 可能会用到不同的单元, 它们在拥有共性的同时又有各自特殊性。由此, 根据面向对象的思想, “单元”这个概念应该从具体对象中抽象出来, 形成一个处于类继承树相对上层位置的类。这个数据类除了能够管理抽象“单元”所共有的一些属性数据 (如单元结点、材料、载荷、积分点等) 外, 其主要任务是计算单元刚度阵, 以及广义载荷向量等, 并最终形成求解方程组的左、右端项。
根据具体问题的不同, 在单元基类 (MFElement) 下, 可以继承出适合具体问题的单元类, 如此既能完整的进行数据封装, 也能保证单元的多态性。单元基类的设计是整个程序中尤其重要的部分。包含了下面一些基本的数据:numberOfNodes, 描述了单元节点数目, 结点对象存储在nodeArray数组里面;bodyLoadArray数组存储单元体载荷;单元高斯点数由numberOfGausspoints描述, 高斯点对象存储在gausspointArray数组中。图4描述了单元基类与其它类的耦合关系。
2.3MFNode类
结点是有限元分析中一个基本的概念, 结点数目、结点自由度决定了分析问题的规模, 且在整个分析过程中, 随时都会用到结点相关的数据, 因此, 需要建立一个完整刻画结点的类 (MFNode) 来描述这些数据。主要包含结点坐标、自由度等属性, 计算和分配结点力, 并在每个计算步更新结点信息。所有结点属性均为私有成员变量, 以保证封装性, 而作用于其上的操作一般为公有成员函数, 为与其它类之间的通信提供接口。
MFNode类和MFNodeManage类的关系类似于MFElement类和MFElementManage类之间的关系。MFNodeManage类的实例对象同样采用双向链表来存储MFNode类。MFElement类与MFNode类关系密切。它们之间是多对多的关联关系。一个单元类可有三个结点、四个结点或者其他, 由单元类的派生类规定。一个结点可能关联一个或多个单元对象, 与结点位置和网格划分方式有关。
2.4MFAnalysis类
在MFA模型体系设计中, 分析类即MFAnalysis类是协同求解域类工作的对象类, 起到确定有限元分析类型的作用。
分析类 (MFAnalysis类) 被设计成为一个虚基类, 并不执行具体操作, 所以诸如确定有限元分析类型等具体的操作由其子类, 如MFAnalysisDyn, MFAnalysisHeat等执行。
MFAnalysis类及其继承类的设计主要是考虑到具体有限元分析功能, 例如微流体动力学分析、热力学分析等。MFAnalysis类与MFDomain类、MFMathDomain类相关联。MFAnalysis类通过MFDomain类获得处理过的有限元相关的数据, 然后将这些数据交给MathDomain类进行计算, 从而实现整个有限元问题的求解。
MFAnalysis类与MFDomain类, MathDomain类的关联关系是单向的。这样的设计使得有限元分析和有限元构成以及数学求解完全脱离出来, 系统层次清晰。MFAnalysisDyn类和MFAnalysisHeat类继承了MFAnalysis类接口。
3算例分析
下面利用MFA和ANSYS有限元分析软件分别对二维流动问题进行分析, 问题描述如下:流经变截面流道内的理想不可压缩流体的定常平面流动, 假设进出口截面上的速度均匀分布, 初始速度20mm/s, 壁面速度为0, 出口压力为0, 求该流道内的流场。解题步骤不再赘述, 计算后, 作出速度分布图如图5所示。
通过图5可以看出, 两者分析结果相一致。
4结束语
有限元法在流体动力学分析领域有着广泛的应用, 在此程序框架基础上, 可针对具体的微流体数学模型进行应用扩展。由于MFAnalysis类及其派生类作为数学模型的抽象表达对其它类的依赖关系很小, 因此基本上只需要对MFAnalysis类及其派生类进行派生和改写即可, 工作量和复杂度较结构化软件大大减小。
参考文献
[1]Mohamed Gad-el-Hak.The Fluid Mechanics of Microdevices-the Free-man Scholar lecture.Joural of Fluids Engineering, 1999, 12/18.
[2]Staish G Kandlikar, Shailesh Joshi, Shurong Tian.Effect of surfaceroughness on heat transfer and fluid flow character at low Reynoldsnumbers in small diameter tubes.Heat Transfer engineering.2003, 24 (3) :4-16.
[3]Menetrey Ph.Zimmermann Th.Object-oriented non-linear finite elementanalysis:Application to J2 plasticity[J].Computers&Structures.1993, 49 (5) :767-777.
[4]Hideomi Ohtsubo, Yasumi Kawamura.Development of the Object-Ori-ented Finite Element Modeling System-MODIFY[J].Engineering withComputers.1993, 9:187-197.
[5]Sanal Z.Finite Element Programming and C[J].Computer&Struc-ture, 1994, 51 (6) :671-686.
[6]魏泳涛, 于建华, 陈君楷.面向对象有限元程序设计-程序构架[J].四川大学学报:工程科学版, 2001, 33 (4) :21-25.
[7]孔祥安.C++语言和面向对象有限元程序设计[M], 西安交通大学出版社, 1995.
[8]刘润东.UML对象设计与编程.北京希望电子出版社, 2001.
[9]詹志峰, 谢强, 郭永春, 等.用VC++6.0开发有限元后处理软件.计算机工程, 2004, 30 (7) :170-173.
【面向对象的软件开发方法分析论文】推荐阅读:
面向对象的软件维护论文10-12
面向对象的软件测试09-25
面向对象的分析11-10
面向对象软件测试07-18
面向对象分析08-02
面向对象的分析与uml05-28
浅析面向对象的多杆机构多目标多约束优化设计方法的论文10-08
面向对象程序设计方法08-27
Flash ActionScript2.0面向对象游戏开发10-12
面向对象的思想05-30