当前位置:文档之家› 浅谈对结构化方法和面向对象方法的对比和讨论

浅谈对结构化方法和面向对象方法的对比和讨论

浅谈对结构化方法和面向对象方法的对比和讨论
浅谈对结构化方法和面向对象方法的对比和讨论

浅谈对结构化方法和面向对象方法的对比和讨论论文关键词:软件工程结构化方法面向对象方法

论文摘要:本文阐述结构化方法和面向对象方法的基本概念与特点和这两种软件开发方法具体的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发大型软件系统的同时可结合结构化方法。

一弓I言

结构化n方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称00方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

二结构化方法

结构化方法包括基本的结构化方法、复杂的结构化方法IDEF体系、

Jackson方法。结构化方法的特点:①把一个复杂过程用多个单个小过程来实

现;②用数据流图,可以完成整个分解过程;③结果的唯一性,同一个问题,不同的

人分解出来的结果基本是一样的。也即,用结构化方法,基本上是有标准答案

的;④较适合初学者学习,一个连续的处理过程。

什么是软件体系结构? 一个程序和计算机系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构件,构件的外部可见属性以及它们之间的相互关系。体系结构并非可运行软件,它是一种表达,使软件工程师能够:①分析设计在满足规定需求方面的有效性;②在设计变更相对容易的阶段,考虑体系结构可能的选择方案;③降低与软件构造相关的风险。软件体系结构之所以重要的三个关键原因:①软件体系结构的表示有助T■对计算机系统开发感兴趣的各方(共利益者)开展交流;②体系结构突出了早期设计决策,这些决策对随后的所有软件工程工作有深远的影响,同时对系统作为一个可运行实体的最后成功有重要作用;③体系结构“构建了一个相对小的,易于理解的模型,该模型描述了系统如何构成以及其构件如何一起工作”。系统的体系结构是一个关于系统形式和结构的综合框架,包括系统构件和构件的整合。软件体系结构必须对系统结构以及数据和程序构件间的相互协作方式进行建模。

三面向对象方法

面向对象方法包括基本的面向对象方法、RUP。

(1)面向对象的概念

属性——说明一个类的数据集合;类——封装数据和过程的抽象,这些是说

明某些真实世界中的实体的内容和行为所必需的。换种方式说,类是一组相似对象的概括说明(如:模板、模式、蓝图);对象——某个特定类的实例。对象继承类的属性和操作;操作——也称作方法和服务,表现类的某个行为;子类——超类的特化,子类可以从超类继承属性和操作;超类——也称作基类,是一组相关类的泛化。

⑵面向对象的特点

①基于映射:把现实世界的工作过程或系统,用代码系统中的相对应的元素模拟出来,就完成了软件的设计和开发;②事物一对象;事物的特征一对象的属性;

事物的行为一对象的方法;事物之间的信息交换与协同一类方法调用;③由于现

实事物的复杂性,为了要更好地完成上面的模拟/映射,需要从多个角度描述系统

或过程;④静态关系:多态、继承、聚合、状态转换;⑤动态关系:用例、活动、

序列、协作。⑥结果的唯一性,同一个问题,有经验的人和没有经验的人,进行面

向对象设计时,结果可能会判别很大;⑦适用范围:设计复杂系统、设计高质量系统、设计与现实世界对应程度比较大的系统。

四结构化方法、面向对象方法的由来与发展

最初,只有完全一项计算任务的程度,并无所谓编程方法,更无软件工程方法。

随着软件复杂度的提高,出现了复杂问题分解为简单问题的一种思路:函数、模

块。在20世纪70年代初,软件危机问题出现之后,随着软件工程思想的确立,

从模块化思想逐渐发展出了一个软件开发规范体系:结构化方法。包括结构化的模型图:程序流程图、功能分解图等;结构化的开发建议:高内聚、低耦合;结构化的过程指引:基于瀑布模型的软件生命周期以及相关的工具、语言,这也成为了第一个软件工程方法。结构化方法继续发展,出现了其它新的结构化方法的分支。PAD方法:强调程序结构的分解;Jackson方法:强调数据结构与软件结构的一致;信息建模分析方法:数据流图、实体关系图。新的设计理念:数据驱动;IDEF体系:从信息建模分析方法发展出来;模型图;工具;设计规范。而另外一个重要的软件工程方法——而向对象方法,则是沿着另外一条路发展的。60 年代为程序仿真而开发的Simula语言,为了更好的模拟现实世界以进行仿真,引入了类概念和继承机。70年代末,另一个专用的面向对象语言Smalltalk开始进行设计,并在80年提出一个完善版本。但这时只在实验室和科研活动中使用。随着软件复杂程度的进一步提高,低耦合、高内聚的要求进一步提高,促进了面向对象开发思想的发展,低耦合、高内聚是获得较好软件质量的要求,但数据耦合是结构化方法无法解决的问题,要么有大量的全局变量;要么是每个函数都有

大量的参数,因此,把数据和代码集成封闭在一起,成了一个合理的要求,由此,出现了面向对象的思想。

结构化方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。结构化语言就是将自然语言加上程序设计语言的控制结构就成了结构化语言,专门用来描述加工逻辑。所以,它既有自然语言灵活性强、表达丰富的特点,又有结构化程序的清晰易读和逻辑严密的特点。结构化语言的显著特征是代码和数据的分离。这种语言能够把执行某个特殊任务的指令和数据从程序的其余部分分离出去、隐藏起来。获得隔离的一个方法是调用使用局部变量的子程序。通过使用局部变量,我们能够写出对程序

其它部分没有副作用的子程序。这使得编写共享代码段的程序变得十分简单。如果开发了一些分离很好的函数,在引用时我们仅需要知道函数做什么,不必知道它如何做。切记:过度使用全局变量会由于意外的副作用而在程序中引入错误。结构化语言比非结构化语言更易于程序设计,用结构化语言编写的程序的清晰性使得它们更易于维护。这已是人们普遍接受的观点了。比如作为结构化语言的C语言主要结构成分是函数C的独立子程序。在C语言中,函数是一种构件(程序块),是完成程序功能的基本构件。函数允许一个程序的诸任务被分别定义和编码,使程序模块化。可以确信,一个好的函数不仅能正确工作且不会对程序的其它部分产生副作用。PASCAL是世界上第一个结构化语言,曾被认为是计算机专业理想的教学语言,在数据结构等课程中一般用PASCAL语言举例。Access数据库是一种关系型数据库,所有的关系型数据库都是基于结构化查询语言SQL的。Visual FoxPro不但仍然支持标准的Xbase结构化程序设计,而且在语言上还有进行了扩展,提供了面向对象程序设计的强大功能和更大灵活性。

随着计算机及其用户越来越复杂,程序员的任务也越来越繁重,所以,与其相关的编写代码的时间也就越来越长了。接下来发生了有趣的事情,程序达到一定大小以后,为其编写代码所需的时间比预期的要长的多。事实是当程序达到一定大小时,人脑就不能跟踪所有的复杂性了。复杂性完全是产生事故的原因,战胜复杂性的方法就是编写一些小的“无错”程序,并把它们连在一起,形成一个大的“无错”程序,这就是面向对象编程的起源。

面向对象的程序设计OOP是Delphi延生的基础。OOP立意丁?创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编辑所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清析、编写容易。说它是一场革命,不是对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼容。只是部分面向对象反而会使情形更糟。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多。而Delphi是完全面向对象的,这就是使得Delphi成为一种触手可及的促进软件重要的开发工具,从而具有强大的吸引力。

面向对象的程序设计方法与编程技术不同于标准的结构化程序设计。程序设计人员在进行而向对象的程序设计时,不再是单纯地从代码的第一行一直编到最后一行,而是考虑如何创建、利用对象来简化程序设计,提高代码的可重用性。对象可是应用程序的一个自包含组件,一方面具有私有的功能,供H己使用;另一方面又提供公用的功能,供其他用户使用。随着面向对象技术成为研究的热点出现了几十种支持软件开发的面向对象方法。其中,Booch,Coad/Yourdon, OMT,

和Jacobson的方法在面向对象软件开发界得到了广泛的认可。特别值得一提的是统一的建模语言UML,该方法结合了 Booch, OMT,和Jacobson方法的优点,统一了符号体系,并从其它的方法和工程实践中吸收了许多经过实际检验的概念和

技术。

结束语

€向对象仍将是主流,但结构化方法并不会,相反在某些领域还会有进一步应用。面向对象方法在八十年代己经得到了很大的发展,并且已在计算机科学、信息科学、系统科学和产业界得到了有效的应用,显示出其强大的生命力。可以展望在九十年代内,面向对象方法将会大更深、更广、更高的方向上取得进展。

参考文献

[1] 软件工程:实践者

的研究方法(原书第6版)/ (美)普雷斯曼

(Pressman, R. S)著;郑人杰等译,一北京:机械工业出版社,2007. 1

[2] 《Delphi 3. 0/4. 0实用编程技术》方可燕等编著,北京:中国水利水电

出版社

从结构化到面向对象程序设计的模型转换

从结构化到面向对象程序设计的模型转换? 袁胜忠 山东大学威海分校现代教育技术部 威海264209 摘 要:随着软件系统内在复杂性的不断提高,面向对象技术已经取代结构化设计技术成为产业化软件开发的主流技术。本文剖析对象模型与结构化设计瀑布模型队程序设计风格的影响,探讨导致面向对象软件工程失败的主要原因,论证了成功实施面向对象软件工程的关键技术,帮助软件工程师完成从结构化设计实践向面向对象分析和设计实践的进化。关键词:对象模型 瀑布模型 迭代和增量式开发 面向对象软件工程 Model Changing From Structured Design Style to Object-Oriented Programming YUAN Shengzhong Department of Modern Education Technology of Shandong University at Weihai, Weihai, 264209 Abstract: In the past several years, with enhance of inherent complex of various systems, the object-oriented technology have actually become the main stream of industrial software development. Compared with traditional structured design style and the waterfall model, in this paper, we strength the correct understand to object model and discuss the main reasons for the failure of object-oriented development in order to promote the software engineers evolution from structured design to object-oriented analysis and design. Keywords: object model; waterfall model; iterative and incremental development; object-oriented software engineering 1 引 言 面向对象的技术可以分为:面向对象的程序设计语言,面向对象的数据库技术,面向对象的分析和设计方法。 对应用软件开发组而言,面向对象的分析和设计方法是一种新的方法,它比面向对象的程序设计语言和面向对象的数据库技术更加难以掌握。因为它与开发组熟悉的结构化设计方法是两种完全不同的设计风格,在建立系统时,结构化设计方法利用算法作为基本构件,而面向对象方法利用类和对象作为基本构件。二者要求开发组用不同的思考方法对待问题的分解,而且面向对象设计方法创造出来的软件体系结构大大超出了 ?作者简介:袁胜忠:男,1965年出生,软件工程师,主要研究方向为应用软件开发,网络管理与优化。

面向对象分析方法

https://www.doczj.com/doc/c311118848.html,面向对象分析方法1/2 面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。OOA与结构化分析有较大的区别。OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。 OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。分类结构就是所谓的一般与特殊的关系。组装结构则反映了对象之间的整体与部分的关系。 OOA在定义属性的同时,要识别实例连接。实例连接是一个实例与另一个实例的映射关系。 OOA在定义服务的同时要识别消息连接。当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。 OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。OOD模型由4个部分组成。它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。 一、OOA的主要原则。 (1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。抽象是形成概念的必须手段。 抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。 抽象是面向对象方法中使用最为广泛的原则。抽象原则包括过程抽象和数据抽象两个方面。 过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。 数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。数据抽象是OOA的核心原则。它强调把数据(属性)和操作(服务)结合为一个不可分的系统单位(即对象),对象的外部只需要知道它做什么,而不必知道它如何做。 (2)封装就是把对象的属性和服务结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节。 (3)继承:特殊类的对象拥有的其一般类的全部属性与服务,称作特殊类对一般类的继承。 在OOA中运用继承原则,就是在每个由一般类和特殊类形成的一般—特殊结构中,把一般类的对象实例和所有特殊类的对象实例都共同具有的属性和服务,一次性地在一般类中进行显式的定义。在特殊类中不再重复地定义一般类中已定义的东西,但是在语义上,特殊类却自动地、隐含地拥有它的一般类(以及所有更上层的一般类)中定义的全部属性和服务。继承原则的好处是:使系统模型比较简练也比较清晰。 (4)分类:就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。分类原则实际上是抽象原则运用于对象描述时的一种表现形式。 (5)聚合:又称组装,其原则是:把一个复杂的事物看成若干比较简单的事物的组装体,从而简化对复杂事物的描述。 (6)关联:是人类思考问题时经常运用的思想方法:通过一个事物联想到另外的事物。能使人发生联想的原因是事物之间确实存在着某些联系。

面向对象分析与设计简答题

1、什么面向对象? 面向对象不仅是以些具体的软件开发技术与策略,而且以一套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。 2、软件开发方法学的基本方法有哪些? 1)软件工程和瀑布方法学2)新方法学:螺旋式、迭代式、递增式、合并式3)面向对象方法学:UML、RUP、XP 3、为什么需要OOA、OOD。 OOA就是运用面向对象的方法进行需求分析,OOA加强了对问题域和系统责任的理解,有利于人员之间的交流,对需求变化的适应性较强,很好的支持软件复用。 OOD就是运用面向对象的方法进行系统设计,OOD.符合人们习惯的思维方法,便于分解大型的复杂多变的问题;易于软件的维护和功能的增减;可重用性好;与可视化技术相结合,改善了工作界面。 4、从概念层次、规格层次、实现层次三个角度如何理解对象的概念? 从概念层次来看,一个对象就是一系列的责任; 从规格层次来看,一个对象是一系列可以被其他对象或该对象自己调用的方法;从实现层次来看,一个对象是一些代码和数据。 5、如何绘制类图和对象图?简述其步骤。 类图绘制:1发现类,找到备选类,确定候选类2关联分析,确定关联关系,多重性分析3职责分析4限定与修改,导航性分析,约束,限定符; 对象图绘制:1发现类和对象2对其细化,分析,确定关系。 6、简述重定义方法与重载的区别。 重定义:1参数列表必须完全与被重写的方法相同2返回类型必须一直域被重写的方法的类型相同3访问修饰符的限制一定要大于被重写方法的访问修饰符4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查性异常:重载:1必须有不同参数列表2可以有不同的返回类型,只要参数列表不同即可3可有不同访问修饰符4可抛出不同的异常。 7.简述抽象方法与虚方法的联系与区别 虚方法有一个实现部分可以为子类实现有共同的方法,并为派生提供了覆盖该方法的选,抽象方法只是强制派生覆盖方法;抽象方法只能在抽象类中声明,而虚方法不是;抽象方法不能声明方法实体,虚方法可以;包含抽象方法的类不能实例化,但虚方法可以。 8、简述使用继承的规则。 1)、不要过度使用;2)、子类应是超类的一个类型;3)、子类应是超类的扩展; 4)、尽量少从具体类继承,最好继承接或抽象类。

面向对象课后题目解析

第 1 章 面向对象程序设计概论 面向对象程序设计教程(C++语言描述)题解与课程设计指导 第1章 面向对象程序设计概论

一、名词解释 抽象封装消息 【问题解答】 面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 二、填空题 (1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。 (2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。 (4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。 (5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。 三、选择题(至少选一个,可以多选)

(1)面向对象程序设计着重于( B )的设计。 A. 对象 B. 类 C. 算法 D. 数据 (2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。 A. 抽象 B. 继承 C. 封装 D. 多态 (3)在面向对象程序设计中,类通过( D )与外界发生关系。 A. 对象 B. 类 C. 消息 D. 接口 (4)面向对象程序设计中,对象与对象之间的通信机制是(C )。 A. 对象 B. 类 C. 消息 D. 接口 (5)关于C++与C语言的关系的描述中,(D )是错误的。 A. C语言是C++的一个子集 B. C语言与C++是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 【结果分析】 C语言是面向过程的。C++语言是一种经过改进的更为优化的C语言,是一种混合型语言,既面向过程也面向对象。 (6)面向对象的程序设计将数据结构与( A )放在一起,作为一个相互依存、不可分割的整体来处理。 A. 算法 B. 信息 C. 数据隐藏 D. 数据抽象 (7)下面( A )不是面向对象系统所包含的要素。 A. 重载 B. 对象 C. 类 D. 继承 【结果分析】

面向对象的分析方法_软件工程实验_1245713131

面向对象的分析方法 专业:计算机科学与技术专业学号:1245713131 班级:计科1班 姓名:

一、概述 随着现代科学技术的发展和社会的进步,各大高校的图书馆规模也不断扩大,与此同时,图书的种类和数量以及有关图书的各种信息也迅速的增加,这一庞大的信息量也对图书馆的信息管理技术提出了更高的要求。为了避免图书管理上的混乱,降低管理费用,提高工作效率,给读者提供更方便、快捷的服务,图书管理系统必须引入信息化和自动化的管理方式,对图书资料进行集中、统一、高效率的管理。 二、问题的提出 随着Internet技术的飞速发展,现在各高校已经把计算机引入了图书馆,开始了信息化的管理方式,这给予了学生极大的便利,学生可通过图书馆可以获得丰富的文献资料。和传统的图书管理方式相比,计算机和 Internet的使用也大大提高了图书馆对书籍的管理效率,为读者提供了更方便、更快捷的服务。与此同时服务理念也由以书籍为中心变为以广大师生的信息需求为中心,但是图书馆的网络信息服务还远远没有跟上网络建设的步伐,所提供的服务也远远不能满足高校师生的信息需求。高校图书馆应当有着先进的现代信息设备,完善的管理和服务,并且有稳定和特定的高素质读者用户群,更应该深入开展图书馆多元化信息服务,以更好地满足高校师生不同的信息需求。 目前高校图书馆网络信息服务内容都是浅层次的,主要还是集中在资料的“提供”上,比如动态信息和催还信息的发布只是停留在计算机上,没有充分利用现在飞速发展的通讯技术,使借阅者不能及时得到相应的信息。高校图书馆存在的诸多问题,已经不能满足广大师生群体对信息的需求,因此使得资源的共享性受到相当大的限制。 三、需求分析 (一)用户提出的需求包括下列内容: ①这是一个图书馆支持系统。 ②图书馆将图书和杂志借给借书者。借书者已经预先注册,图书和杂志也预先 注册。 ③图书馆负责新书的购买。每一本图书都购进多本书。当旧书超期或破旧不堪 时,从图书馆中去掉。 ④图书管理员是图书馆的员工。他们的工作就是和读者打交道并在软件系统的 支持下工作。 ⑤借阅人可以预定当前没有的图书和杂志。这样,当他所预定的图书和杂志归 还回来或购进时,就通知预定人。当预定了某书的借书者借阅了该书后,预定就取消。或者通过显式的取消过程强行取消预定。 ⑥图书馆能够容易地建立、修改和删除标题、借书者、借阅信息和预定信息。 ⑦系统能够运行在所有流行的技术环境中,包括Unix, Windows和Linux,并应 有一个良好的人机交互图形用户界面(GUI)。

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

结构化方法和面向对象方法的比较结构化方法是结构化分析,结构化设计和结构化编程的总称,是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。 面向对象方法它不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。 结构化方法和面向对象方法二者的比较如下。 一、基本思想的比较 结构化方法的基本思想主要体现在三个方面。一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。三、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。 面向对象方法的基本思想主要有:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等。 二、基本原则的比较 结构化方法遵循基本原则有:一、抽象原则:是一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。二、分解原则:是结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。三、模块化原则:结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。 面向对象方法遵循基本原则有:一、抽象:是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。二、封装:是对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。三、模块化:是已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。(高内聚低耦合)四、层次:抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂

面向对象系统分析与设计试卷与答案

面向对象分析与设计试题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)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 .

面向对象的建模方法

面向对象的建模方法 [摘要]评述面向对象的几种建模方法并作一比较,阐述统一建模语言的优越性,并对其组成、特征、建模过程进行描述。 [关键词]软件工程建模面向对象 一、引言 面向对象方法学也称为面向对象的开发方法,它属于软件工程的范畴。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。也就是说,面向对象方法是一种崭新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。由于对象的独立封装,模块的可构造性、可扩充性、可重用性也大大加强,从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。 面向对象的软件工程要求首先对系统建立模型是对现实的简化,它提供了系统的蓝图。一个好的模型只需抓住影响事物发展的主要矛盾,而忽略那些次要矛盾。每个系统可以从不同方面用不同的模型来描述。因而每个模型都是在语义上闭合的系统抽象。通过建模可以按照实际情况对系统进行可视化模型详细地说明了系统结构或行为,指导我们构造系统模板 二、面向对象建模方法 建模是构造软件系统最基本的步骤,在软件工程学科中提供了多种多样的建模方法和高效的工具,其目的是为了在软件开发过程的早期就发现设计中可能隐含的缺陷和错误,对于今日的大型软件系统,采用一种合适的建模方法,建立一个良好的模型是成功的关键。在市场上已有一些公司,如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)简单描述2)中间描述3)完全展开描述系统分析:将需求分析的结果确定系统的范围和主要功能。 二、分析模型 1)静态视图(类图) 2)动态视图(系统顺序图) 1.1建立静态视图(问题域建模) 定义这些系统需求而建立的类图称为域模型类图或简称域模型 类之间的关系:依赖、泛化、关联(聚合、组合) 2.1动态视图(系统顺序图)

三、OO模型的集成 OO需求模型中的关系 依赖性通常从顶部流到底部,双向箭头表示在两个方向都产生影响。 四、面向对象分析步骤: 第一步域模型 A、分析域模型得到静态视图(类图) B、画出实体对应的类及其之间的关系,注意此阶段强调的是静态关系 第二步基于用例的需求分析 通过对需求的调查,业务用例的构建和活动图的绘制,最终得到系统用例图 在用例图的下方,应附上每个用例的用例描述 第三步输入和输出:系统顺序图 域模型类图:

用例图:系统顺序图: 从分析到设计

五、面向对象设计 OO程序是由一系列协同完成某一任务的程序对象组成 OO设计目标:识别并确定所有对象,并生成每个用例,比如用户界面对象、问题域对象及DB访问对象 六、OO设计过程和模型 设计步骤:⑴创建设计类图的基础版本,或初步模型 ⑵开发交互图 ⑶根据开发交互图时得到的信息,返回设计类图并开发方法名称 ⑷用包图将设计类图分割成相关的功能 输入的模型: 交互图:用例图、用例描述、活动图、系统顺序图、设计类图 设计类图:域模型类图、交互图 包图:设计类图 七、设计类和设计类图 7.1 设计类图符号:1. 构造型 2. 标准的构造型 构造型:按照模型元素的特征进行归类的一种方式,用《》符号描述 2. 标准的构造型 (0)设计模型中的标准构造型 ⑴实体类 ⑵边界类 ⑶控制类 ⑷数据访问类 设计模型中的标准构造型:

浅谈结构化程序设计与面向对象程序设计

《浅谈结构化程序设计与面向对象程序设计》 姓名: 学号: 专业: 学院:

浅谈结构化程序设计与面向对象程序设计 [摘要] 程序设计可分为结构化程序设计和面向对象程序设计两种方法。本文梳理了两种程序设计方法的内容及特性,分析比较了它们之间的优缺点,并总结了在软件开发时要根据问题实际出发,根据二者的优缺点选取合适的开发方法,以达到最佳的开发效益这一设计原则。 一、引言 程序设计方法学主要讨论程序的性质以及程序设计的理论和方法。它起源于20世纪70年代的软件危机,在Dijkstra提出结构化程序设计的思想和概念后快速发展[1]。程序设计方法学的基本研究目标是通过对程序本质属性的研究来提高程序的效率,保证程序的正确性。 程序设计的基本方法包括结构化方法和面向对象方法。两种方法在软件开发中采用不同的思维模式,但是面向对象方法的基础仍是结构化方法。 本文第二节简要介绍结构化程序设计方法的内容;第三节列举面向对象程序设计方法的特性;第四节总结并探讨两种方法的优缺点;第五节阐述了实际开发实践中两种方法适用的场景。 二、结构化程序设计 结构化程序设计方法, 实质上是自顶向下的功能分解法, 通过逐步求精的设计过程把程序分解成单一处理功能的模块, 进而通过参数传递调用相应模块以实现程序的功能[2]。模块之间通过“顺序”、“选择”、“循环”的控制结构进行连接,并且只有一个入口、一个出口。 2.1 设计方法 对于要解决的问题,首先必须分析清楚问题的需求,对问题进行总体设计。在这两个步骤中都要采用自顶向下逐步求精的方法。对问题、模块、数据进行抽象,并对问题进一步分解。 2.2 基本控制结构 结构化程序设计把复杂的流程图转变为标准形式,以便用迭代表示,并嵌套少数基本而标准的控制逻辑结构—顺序、选择、循环[1]。其中,顺序决定执行顺序,选择决定执行条件,循环决定复执行条件。 2.3 程序设计原则 结构化程序设计的原则可表示为:程序=算法+数据结构[3]。算法和数据结构分别是一个独立的整体,二者分开设计。 三、面向对象程序设计

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

第29卷 第2期陕西师范大学学报(自然科学版)Vol.29 No.2 2001年6月Journal of Shaanxi Normal University(Natural Science Edition)J un.2001  文章编号:100123857(2001)022******* 结构化方法与面向对象方法的比较分析 张 莉, 裘国永 (陕西师范大学计算机科学学院,陕西西安710062) 摘 要:剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过 程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发 大型软件系统的同时可结合结构化方法. 关键词:软件开发;结构化方法;面向对象方法;问题域 中图分类号:TP316 文献标识码:A 20世纪60年代以来,软件的发展一直受到开发综合症“软件危机”的影响.为了提高软件质量,软件开发方法不断推陈出新,其中结构化方法[1,2]经过30多年的研究及应用,最为成熟且影响最大,直到现在仍有许多系统是用它开发的.而面向对象方法[1,3]是在结构化方法、信息建模方法等基础上发展起来的,近10年来发展较快,现已呈现出取代结构化方法的趋势.本文具体分析两者在软件开发中的差别以及面向对象方法的优越性. 1 结构化方法 结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界.用结构化开发的软件运行效率较高,且能够增加软件系统的可靠性. 1.1 结构化分析 它是面向数据流进行需求分析的方法,在该阶段力求寻找功能及功能之间的说明.它主要采用的工具是数据流图DFD(Data Flow Diagram),利用DFD描述边界和数据处理过程的关系. 1.2 结构化设计 结构化设计是将数据流图表示的信息转换成程序结构的设计描述,在该阶段力求寻找功能的实现方法,采用系统结构图表示系统所具有的功能和功能之间的关系.设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系).第二步详细设计即过程设计,在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图.因此,结构化方法比较适合于像操作系统、实时处理系统等这样的以功能为主的系统. 1.3 结构化方法的局限 (1)结构化方法在需求分析中对问题域的认识和描述不是以问题域中固有的事物作为基 收稿日期:2000211228 作者简介:张莉(1969─),女,陕西西安人,陕西师范大学讲师

面向对象的分析与设计大作业文档

面向对象的分析与设计课程结课大作业 学号______________ 学生姓名___________ 专业______________ 班级______________ 塔里木大学教务处制

《面向对象的分析与设计》课程结课作业\ 题 分\号 值\—— 一 二三四五六七总结总分 总分5 020100 得分 提示:1、请将答案写在此文档的相应位置,图形需在Rational Rose下绘制,大小可以根据个人需求定制(宽不超过页面1/3);2、请将相关的文档,包括程序的相关文档进行压缩,并将压缩文档上传到“大作业电子版文档”文件夹下命名为“班级-学号-姓名”,纸质版于2015年6月12日上午10:00 —13:00交到逸夫楼109。 一、选题(此题5分) 请根据你抽中的题号,请将其所对应的题目写到下方,并将你要描述的界面进行截图。 题目:照相(即手机的“相机”软件) XPERIA Z系列手机的自带相机软件。图中第五行第 该相机软件为SONY 二列 的软件。 相机

用例图用到的界面:A D E F 类图用到的界面:B C D E F 序列图和协作图用到的界面:A C 状态图用到的界面:A C 活动图用到的界面:AB C D E F 部署图用到的界面:A DEF ./ * 1SVf 九—X IJ .鈕 EuH o StiilE 拍 untflimhwiiBMiiriifn Qi -A 1 i a口X nt^tt帕.9* 自怕 笑Kt*n 关闻寸慎毛连拍JI 人■注册 O Q ? O■□Q :9 c口X 快走总谕 填理杯记? ?D 将害?瞳用朴 isn^g C? 内序科11诬? 4k a C3 Q)gv> W BF \j o Q ! A ◎ a o X 白拘Jt 笑隘快门(鞭牆)X nn-:? nt窒恙 (>o ■ U K>Qi A B 手动 创息啟 JR

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

普 通 本 科 毕 业 小 论 文 题目:比较四种典型面向对象方法的异同 学院软件与通信工程学院 学生姓名张伟聪学号 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)实现类和对象;

面向对象的分析过程

面向对象的分析过程 摘要 分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对 象的方法进行改造的原因。一些面向对象方法存在的不足。 关键词:仿真,面向对象,岸边集装箱起重机,训练器 面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。 面向对象=对象(Object) +分类(classification) +继承(inheritance) +通过消息的通信(communication with messages) 从下图中我们可以看出,面向对象的开发方法明显不同。 面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。采用面向对象的方法,原因如下: 1.可理解性 面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。 2.可重用性和可扩充性 在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。并且可以加入现有的类库中。类库提供了仿真建模所需要的一般设施。通过修改现有的类,可以建立各种应用中所需要的特殊对象。 3.模块性 面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。 4.图形用户界面

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

结构化方法与面向对象方法的比较分析 吴松娇 (凯里学院信息工程学院,09本(1)班,2009406012) 摘要:剖析了结构化方法和面向对象方法这两种软件开发方法具体的分析设计过程,讨论 了各自在不同软件开发中的应用及局限性,提出了在选用面向对象方法开发大型软件系统的同时可结合结构化方法.通过对具体实例的剖析,揭示DFD 与UML 之间的对应关系,从而提 出结构化软件分析方法与面向对象软件分析方法存在的对应关系,在软件需求分析方法上实现了二者的相互转换,这种对应与转换关系对现有结构化软件的维护及再工程具有指导意义。 关键词:软件开发; 结构化方法; 面向对象方法; 问题域 20 世纪60 年代以来,软件的发展一直受到开发综合症“软件危机”的影响. 为了提高软件质量,软件开发方法不断推陈出新,其中结构化方法[1 ,2 ]经过30 多年的研究及应用,最为成熟且影响最大,直到现在仍有许多系统是用它开发的. 而面向对象方法[1 ,3 ]是在结构化方法、信息建模方法等基础上发展起来的,近10 年来发展较快,现已呈现出取代结构化方法的趋势. 本文具体分析两者在软件开发中的差别以及面向对象方法的优越性. 1 结构化方法 结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它 从内部功能上模拟客观世界. 用结构化开发的软件运行效率较高, 且能够增加软件系统的 可 靠性. 1. 1 结构化分析 它是面向数据流进行需求分析的方法,在该阶段力求寻找功能及功能之间的说明. 它主要 采用的工具是数据流图DFD(Data Flow Diagram) ,利用DFD 描述边界和数据处理过程的关系. 1. 2 结构化设计 结构化设计是将数据流图表示的信息转换成程序结构的设计描述,在该阶段力求寻找功 能的实现方法,采用系统结构图表示系统所具有的功能和功能之间的关系. 设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系) . 第二步详细设计即过程设计,在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图. 因此,结构化方法比较适合于像操作系统、实时处理系统等这样的以功能为主的系统. 1. 3 结构化方法的局限 (1) 结构化方法在需求分析中对问题域的认识和描述不是以问题域中固有的事物作为基本 单位,而是打破了各项事物之间的界限,在全局范围内以数据流为中心进行分析,所以分析 结果不能直接反映问题域. 同时,当系统较复杂时,很难检验分析的正确性. 因此,结构化分析 方法容易隐蔽一些对问题域的理解偏差,与后续开发阶段的衔接也比较困难; (2) 结构化方法 中设计文档很难与分析文档对应,因为二者的表示体系不一致. 结构化方法的结果2数据流 图

面向对象分析设计小结

?1、面向对象方法的基本观点: ?Coad-Y ourdon认为:面向对象=对象+类+继承+通信。 ?2、面向对象方法的特点包括: ?(1)、符合人们对客观世界的认识规律; ?(2)、对需求变化具有很强的适应性; ?(3)、支持软件复用; ?(4)、可维护性好。 ?3、对象、类、封装、继承、消息、多态性的基本概念。 对象是客观世界中具有可区分性的、能够唯一标识的逻辑单元,是现实世界中的一个事物(站在计算机技术角度,即对事物的模拟)。 类是一组具有相同属性和相同操作的对象的集合。 封装是把对象的属性和操作结合在一起,组成一个独立的单元。 继承是指子类(派生类、特化类)自动拥有其父类(基类、泛化类、超类)的全部属性和操作,即一个类可以定义为另一个更一般的类的特殊情况。 消息是对象之间采用消息传递来发生相互作用—互相联系、互发消息、响应消息、协同工作,进而实现系统的各项服务功能。 多态性是一种方法,使在多个类中可以定义同一个操作或属性名,并在每一个类中有不同的实现。 ?4、面向对象系统开发过程。 ?5、运用名词词组法来定义类(对象): ?例:音像商店出租/出售业务信息系统中的类的确定。 ?总目标:?A.提供及时培训。?B.实施的系统必须友好,易学易用。?C.实施的系统必须考虑安全问题。

?具体目标: ?1.1.1 提供一个自动系统协助顾客出售/出租结帐。 ?2.1.1 提供和维护一个自动的会员数据库。?a. 按要求提供最新会员信息。? b. 有添加、改变、删除会员信息的能力。 2.1.2 提供会员信息报表(但不限于)?a. 最少光顾的会员。?b. 最经常光顾的会员。?c. 有问题会员(欠钱,出租过期)? 4.1.1 提供、维护出售和出租项的库存数据库。?a. 按要求提供最新库存信息?b. 有添加、改变、删除库存信息(出售和出租)的能力 4.1.2 提供库存信息报表(但不限于)?a. 最不受欢迎的出租项?b. 最受欢迎的出租项?c. 过期的出租项?d. 出售和出租项的“订购”产品(采购报表) 5.1.1 提供出售报表(但不限于)?a. 用产品码表示的一段时间(天、星期、月)内销售情况?b. 用产品码表示的一段时间(天、星期、月)内出租情况相应的侯选对象清单为:安全问题、自动系统、顾客出售/出租结帐、会员数据库、会员信息、会员信息报表、库存数据库、出售和出租项、库存信息、库存信息报表、采购报表、出售报表。 ?6、对多值属性的处理方法:用部分-整体方法。 例:发票/发票行 第2章统一建模语言UML 1、UML描述的软件基本模型:用例视图、逻辑视图、构件视图、进程视图、 部署视图 2、UML的基本符号。 3、RUP项目开发过程的特征:用例驱动的系统、以体系结构为中心、螺旋 上升式的开发过程、以质量控制和风险管理为保障措施。

面向对象分析与设计试题A卷及答案

面向对象分析与设计试题A卷及答案 一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分 ) 1. 到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是( D )的 出现和广泛使用,使面向对象方法成为了软件开发的主流方法。 A. OMT B. OOSE C. C++ D. UML 2.( D )为编程人员提供了重复利用程序资源的一种途径,使编程人员可以扩充和完善旧的程序以适用新的需求。 A. 封装机制 B. 抽象机制 C. 多态机制 D. 继承机制 3. 面向对象程序设计中用( C ) 来描述具有相同属性和行为的对象集合。 A. 实体 B. 对象 C. 类 D. 类模板 4. 下列语言中, ( D ) 是一种混合型面向对象编程语言。 A. C语言 B. Java语言 C. Basic语言 D. C++语言 5. 下列不属于类的成员函数的是 (D )。 A. 构造函数 B. 析构函数 C. 缺省构造函数 D. 友元函数 6. 多态机制的作用是 ( B )。 A. 信息隐藏 B. 实现“一种接口,多种方法” C. 派生新类 D. 数据抽象 7. 合理地利用( B ), 既可以实现部分成员隐蔽,又能方便部分成员的继承,实现代 码的高效重用和扩充。 A.公有继承 B.保护继承 C.友员函数 D.私有继承 8. ( C )经过实例化而生成具体的类。 A.抽象类 B.函数模板 C.类模板 D.对象 9. 类的析构造函数是在 ( C ) 时调用的。 A.不自动调用 B.创建对象 C.删除对象 D.创建派生类对象 10.在公有继承的情况下,基类的( C)成员无法继承到派生类中。 A. 公有成员 B. 保护成员 C. 私有成员 D. 静态成员

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