- 1、本文档共141页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象设计基础篇;面向对象的分析与设计;;什么是面向对象;1.1 什么是面向对象;面向对象方法的基本思想;用类和对象作为系统的基本构成单位。对象对应问题域中的事物,其属性和操作刻画了事物的静态特征和动态特征,它们之间的继承关系、聚合关系、关联和消息如实地表达了问题域中事物之间实际存在的各种关系。
因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射问题域。
;;整个软件开发过程归结为两项主要活动,即人们对所要解决的问题及其相关事物的认识和基于这种认识所进行的描述。
认识:在系统处理的问题域内,通过人的思维对该问题域中客观存在的事物以及所要解决的问题产生正确的认识和理解,弄清事物的属性、行为以及彼此之间的关系,找出解决问题的方法。
描述:采用一种语言将问题域中的事物以及问题解决方案的认识描述出来,最终描述必须使用一种能够被计算机读懂的语言,即编程语言。;1.2.2语言的鸿沟;1.2.3语言的发展——鸿沟变窄;软件工程学起到作用:
认识事物:在分析阶段提供了一些对问题域的分析和认识的方法。
描述事物:在分析和设计阶段提供一些问题域逐步过渡到编程语言的描述手段。;在认识事物方面,软件工程学有一套分析和认识问题域的方法、原则和策略,能够是系统分析员对问题域的理解更为全面、深刻和有效。
在描述事物方面,软件工程学中有一套表示体系和文档规范,这比仅用自然语言来表达更为准确,也更接近于后期的开发的阶段。
但是传统软件工程是在全局范围内以功能、数据 或数据流为中心来进行分析,这样的分析结果不能直接映射问题域。;概要设计阶段是以需求分析的结果为出发点构造出一个系统设计方案。主要是决定系统的模块结构,包括决定模块的划分,模块间的数据传送及调用关系。
详细设计是在概要设计的基础上设计每个模块的内部结构,包括数据结构和算法,用流程图描述其执行的过程。
经过这两个阶段,开发人员对问题域的认识和描述越来越接近系统的具体实现-编程。
但是传统的软件工程方法学中设计文档很难与分析文档对应??原因是二者的概念体系不一致。结构化分析所产生的数据流图(DFD)和结构化设计所产生的模块结构图(MSD)基于不同的概念体系。DFD中的数据流和加工等概念既不能对应MSD中的模块,也不能对应模块之间的关系。;又称实现阶段,主要工作是利用一种编程语言实现一个能够被机器理解和执行的系统。
测试是发现和排除程序中的错误,最终产生一个能够正确运行的系统。
由于分析方法的缺陷很容易产生对问题域的错误理解,分析与设计鸿沟很容易造成设计人员对分析结构的错误理解,所以在编程时程序员往往需要对分析和设计人员已经认识过的事物进行重新的认识,并可能产生与他们不同的理解。在实际开发过程中,后期开发阶段的人员不断发现前期阶段的错误,并按照他们的新的理解进行工作,会导致每个阶段之间会出现不少变化,其文档不能够很好地衔接。;一是对软件使用中所发现的错误进行修改;
需要从程序逆向追溯到发生错误的开发阶段。由于程序不能够映射问题域,以及各个阶段文档不能相互对应,每一步追溯都存在许多理解上的障碍。
二是因需求发生了变化而对软件进行修改。
从需求到程序的正向过程,维护中同样存在初次开发时遇到的困难。
;传统的软件工程方法;2.面向对象的软件工程方法;OOA强调直接从问题域中客观存在的事物来识别系统中的对象。用对象的属性和操作来描述事物的静态特征和动态特征。
OOA模型保持了问题域中事物分类以及他们之间关系的本来面貌。
把具有相同属性和相同操作的对象归结为一类;
用一般-特殊结构描述一般类和特殊类之间的关系,即继承关系;
用整体-部分结构描述事物的组成关系;
用关联表示事物之间的静态联系;
用消息表事物之间动态联系。;OOA针对问题域和系统责任,旨在建立一个能直接映射问题域的OOA模型,不考虑与系统实现条件有关的因素,从而使OOA模型独立于具体的实现。
OOD在OOA的基础上,针对具体的实现条件用OO方法进行进行系统设计。包括全局性的设计决策,也包括对象细节的完善。
根据具体的实现条件,一方面要对OOA模型做某些必要的修改和调整,将其结果作为OOD的一个组成部分;
另一方面要增加若干新的组成部分,以解决人机交互、控制驱动和数据存储等方面的问题。
目标:产生一个满足用户需求,并且可以在特定平台上实现的OOD模型。;OOP(OOI)是用一种面向对象的编程语言把OOD模型中的每个类编写为程序代码。
OOA和OOD模型中定义的每个类以及他们之间的各种关系决定了程序基本结构。
对象属性以及数据类型也应该在分析与设计阶段基本确定,程序员一般不需要重新去定义这些信息,只是将他们“翻译”成源程序代码。
在编程工具的支持下,部分“翻译”工作可以自动转换为源程序代码,实现模型中所定义的对象操作由程
文档评论(0)