第4讲面向对象的动态模型和功能模型
- 格式:ppt
- 大小:393.00 KB
- 文档页数:7
面向对象分析方法1/2面向对象分析方法(Object-Oriented Analysis,OOA),是在一个系统的开发过程中进行了系统业务调查以后,按照面向对象的思想来分析问题。
OOA与结构化分析有较大的区别。
OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
OOA(面向对象的分析)模型由5个层次(主题层、对象类层、结构层、属性层和服务层)和5个活动(标识对象类、标识结构、定义主题、定义属性和定义服务)组成。
在这种方法中定义了两种对象类之间的结构,一种称为分类结构,一种称为组装结构。
分类结构就是所谓的一般与特殊的关系。
组装结构则反映了对象之间的整体与部分的关系。
OOA在定义属性的同时,要识别实例连接。
实例连接是一个实例与另一个实例的映射关系。
OOA在定义服务的同时要识别消息连接。
当一个对象需要向另一对象发送消息时,它们之间就存在消息连接。
OOA 中的5个层次和5个活动继续贯穿在OOD(画向对象的设计)过程中。
OOD模型由4个部分组成。
它们分别是设计问题域部分、设计人机交互部分、设计任务管理部分和设计数据管理部分。
一、OOA的主要原则。
(1)抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽象。
抽象是形成概念的必须手段。
抽象原则有两方面的意义:第一,尽管问题域中的事物是很复杂的,但是分析员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。
第二,通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。
抽象是面向对象方法中使用最为广泛的原则。
抽象原则包括过程抽象和数据抽象两个方面。
过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。
数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和观察。
面向对象的分析过程摘要分析了面向对象技术应用于仿真领域的种种优点,亦即我们选择采用面向对象的方法进行改造的原因。
一些面向对象方法存在的不足。
关键词:仿真,面向对象,岸边集装箱起重机,训练器面向对象的开发方法是以对象作为最基本的元素,它是分析问题、解决问题的核心。
面向对象=对象(Object)+分类(classification)+继承(inheritance)+通过消息的通信(communication with messages)从下图中我们可以看出,面向对象的开发方法明显不同。
面向对象的仿真为仿真人员提供了开发模块化可重用的仿真模型的工具,它把系统看成由相互作用的对象所组成,而对象则往往表示现实系统中的真实实体。
从而提高了仿真模型的可理解性、可扩充性和模块性,并且便于实现仿真与计算机图形和人工智能的结合。
采用面向对象的方法,原因如下:1.可理解性面向对象仿真对设计者、实现者,以及最终用户来说都改进了仿真的可理解性。
因为仿真系统中的对象往往直接表示现实系统中的真实实体,这些实体在面向对象的仿真系统中可以用外观上类似于人们熟悉的实际系统的对象的图形或图像来表示,用户可以通过图形界面与仿真模型进行交互,利用图形或图像来直接建立仿真模型,这对于熟悉实际系统的用户来说是很容易理解的。
2.可重用性和可扩充性在面向对象的仿真中,可以建立起一个模型库用以保存以前建立的模型,模型库中的模型可以作为建立新模型的可重用构件,通过面向对象技术内在的继承机制可以容易地和系统地修改现有的对象(类)以创建新的对象。
并且可以加入现有的类库中。
类库提供了仿真建模所需要的一般设施。
通过修改现有的类,可以建立各种应用中所需要的特殊对象。
3.模块性面向对象的仿真是模块化,特殊的过程来寻找相应的信息,不会影响其它的对象。
4.图形用户界面对象作为模块,对象的所有信息都保存在该对象中,在面向对象的仿真系统中往往表示实际系统中的真实实体,因而在系统中可以用相似的图形或图像来表示,因此更便于建立非常直观的图形用户界面,用户可以直接在屏幕上建立系统的图形概念,直观地构造仿真模型。
面向对象设计模型引言面向对象设计模型是软件工程中一种常用的设计方法,通过将事物抽象为对象,然后通过对象之间的交互来解决问题。
面向对象设计模型有助于构建可维护、可重用和可扩展的软件系统。
本文将介绍面向对象设计模型的基本概念,以及如何应用它来设计高质量的软件系统。
什么是面向对象设计模型面向对象设计模型是一种软件设计方法,它将事物抽象为对象,对象之间通过消息传递来进行通信和协作。
面向对象设计模型的核心概念包括封装、继承和多态。
•封装:封装是将数据和行为组合到一个对象中,并对外部隐藏对象的内部细节。
通过封装,可以将复杂的系统拆分为多个简单的对象,每个对象只需关注自身的责任和行为。
•继承:继承是一种机制,允许在现有的类基础上创建新的类,并且继承原有类的属性和方法。
通过继承,可以实现代码的复用,减少重复编写类似的代码。
•多态:多态是指同一种方法可以根据接收到的不同对象所属的类而表现出不同的行为。
通过多态,可以提高代码的灵活性和可扩展性。
面向对象设计模型的目标是创建易于理解、可重用、可扩展和可维护的软件系统。
它强调将系统分解为小而简单的对象,每个对象都有明确的职责和行为。
通过对象之间的交互,可以实现系统的功能。
面向对象设计模型的设计原则面向对象设计模型遵循一些设计原则,这些原则有助于创建高质量的软件系统。
下面介绍几个常用的设计原则:1.单一职责原则(SRP):一个类应该只有一个责任,在软件设计中,应该将不同的职责分离到不同的类中。
这样可以提高类的内聚性和代码的可读性。
2.开放封闭原则(OCP):软件系统的设计应该对扩展开放,对修改关闭。
这意味着通过添加新的代码来扩展系统的功能,而不是修改已有的代码。
这样可以减少系统的风险,提高可维护性。
3.里氏替换原则(LSP):子类型必须能够替换掉它们的父类型。
这意味着在使用继承时,子类不应该破坏父类的特性和约束。
这样可以使得系统更加灵活,可扩展。
4.接口隔离原则(ISP):使用多个专门的接口,而不是一个总接口。
信息系统项目管理师考试辅导教程(第3版)第4章面向对象方法第4章面向对象方法结构化分析和设计方法在一定葙度上缓解了“软件危机”。
但随着人们对软件提出的要求越来越高,结构化方法己经无法承担快速高效开发复杂软件系统的重任。
2 0世纪80年代逐渐成熟的面向对象方法学,使软件开发者对软件的分析、设计和编程等方面都有了全新的认识。
由于“对象”概念的引入,将数据和方法封装在一起,提高了模块的聚合度,降低了模块的耦合度,更大程度上支持了软件重用,从而十分有效地降低了软件的复杂度,提高了软件开发的生产率。
目前,面向对象方法学已成为软件开发者的第一选择。
根据考试大纲,本章要求考生掌握以下知识点:面向对象的基本概念;统一建模语言UML;可视化建模;面向对象系统分析;面向对象系统设计。
4.1面向对象的基本概念为了讨论面向对象(Object-Oriented,0 0)的技术和方法,必须首先明确什么是“面向对象”?为什么要讨论面向对象的方法?什么是对象?对于这些问题,有许多不同的看法。
其中Booch、Coad/Y ourdon和Jacobson的方法在面向对象软件开发界得到了广泛的认可。
特别值得一提的是统一建模语言(UML,Unified Modeling Language),该方法结合了Booch、OMT和Jacobson方法的优点,统一了符号体系,并从其他的方法和工程实践中吸收了许多经过实践检验的概念和技术。
Peter Coad和Edward Y ourdon曾提出了下列等式:面向对象=对象(Objects)+类(Classes)+继承(Inheritance)+消息通信(Communication with Messages)4.1.1对象与封装对象(Object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。
面向对象的软件系统是由对象组成的,复杂的对象由比较简单的对象组合而成。
也就是说,面向对象方法学使用对象分解取代了传统方法的功能分解。
功能模型,结构模型,行为模型的关系
总体来说设计模型分为三大类:
1.创建型功能模型,共五种:工厂方法模型、抽象工厂模型、单例模型、建造者模型、原型模型。
2、结构型模型,共七种:适配器模型、装饰器模型、代理模型、外观模型、桥接模型、组合模型、享元模型。
3、行为型模型,共十一种:策略模型、模板方法模型、观察者模型、迭代子模型、责任链模型、命令模型、备忘录模型、状态模型、访问者模型、中介者模型、解释器模型。
创建型模型、结构型模型和行为型模型之间的关系
1、创建型模型
软件设计的过程是循序渐进的,一步一步来的。
在软件设计中对象的创建和对象的使用是分开的,因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模型要探讨的问题。
这里就提供了多种创建型模型进行选择使用。
2、结构型模型
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖
关系会影响到后续程序的维护性、代码的健壮性、耦合性等。
所以也有多种结构型模型可供开发人员选择使用。
3、行为型模型
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高。
第4讲面向对象的动态模型和功能模型面向对象的动态模型和功能模型主要是指面向对象程序设计中的两个重要概念,类和对象的行为和状态。
通过动态模型和功能模型,我们可以更好地理解面向对象编程,并进行对象的管理和调用。
面向对象的动态模型是指对象在运行时的行为和状态的特征描述。
在面向对象编程中,类是对对象进行描述的模板,而对象则是由类创建出来的实例。
类定义了对象可以执行的方法和拥有的属性,而对象则具有具体的属性值和能够执行的方法。
动态模型描述了对象在运行时的行为和状态,即对象能够执行的方法和当前的属性值。
对象的行为主要通过方法来实现。
方法是类中的行为定义,描述了对象能够完成的具体操作。
通过调用对象的方法,我们可以实现对对象行为的控制和管理。
例如,一个类可能定义了一个"加法"方法,然后通过创建对象并调用这个方法,我们就可以实现加法操作。
对象的状态是描述对象当前属性值的特征。
状态由对象的属性组成,属性是类中用于描述对象属性的变量。
通过改变对象的属性值,我们可以改变对象的状态。
例如,一个"人"类可能有一个"年龄"属性,我们可以创建对象并将年龄属性设置为30,然后通过改变属性值,我们可以改变对象的年龄状态。
面向对象的功能模型是指对象在运行时的组织和调用关系。
在面向对象编程中,对象之间可以通过类之间的关系进行组织和调用。
常见的类之间的关系包括继承、聚合和关联。
继承关系表示一个类可以继承另一个类的方法和属性,并可根据需要进行重写或添加新的方法和属性。
聚合和关联关系表示一个类可以包含一个或多个其他类的对象作为属性。
功能模型描述了对象之间的组织和调用关系。
通过功能模型,我们可以更好地组织和管理对象,并实现对象之间的协作和通信。
例如,我们可以通过组合多个对象来实现一个复杂的系统,对象之间可以相互调用对方的方法来实现系统的功能。
总结起来,面向对象的动态模型和功能模型是面向对象程序设计中两个重要的概念。
新疆农业大学机考题库软件工程21000.数据字典中的“[ ]”符号的意思是____。
(或)21001.面向对象分析方法的三个模型中,____模型是最基本的、最重要的、最核心的。
(对象)21002.可行性分析可以从三个方面进行:即经济可行性、技术可行性和____可行性。
(操作)21004.数据流程图包含四种成分,分别是数据源点/终点、数据存储、处理和____。
(数据流)21005.模块的____指得是模块内部各元素在物理位置上的紧密程度。
(内聚性,内聚)21006.软件____的目的是发现程序中存在的错误。
(测试)21007.单元测试又称为____测试。
(模块)21008.单元测试是对程序最小单位模块的测试,在单元测试中发现的往往是编码和____设计阶段的错误。
(详细)21009.从软件开发的整个过程来看,工作量最大的是软件开发的____阶段。
(测试)21010.McCabe方法是一种定量度量程序____程度的方法。
(复杂)21011.在软件测试中,“不仅每个语句至少执行一次,而且每个判定的每种可能结果都应该至少执行一次”指的是____覆盖标准。
(判定)21012.软件的可理解性、可修改性、可测试性是决定软件____的基本因素。
(可维护性)21013.问题分析图简称____图。
(PAD)21014.软件____的任务是找出错误的位置并改正错误。
(调试)21015.E-R模型的三各基本构成成分是属性、联系和____。
(实体)21016.瀑布模型适合于____变更比较少的软件开发过程。
(需求)21017.数据字典是软件需求分析阶段的最重要的工具之一,其最基本功能是描述各____的确切含义。
(数据元素)21019.软件的____指:在给定的时间点,按照规格说明书的规定,成功运行的概率。
(可用性)21020.系统流程图是描绘系统____模型的传统工具。
(物理)21021.在面向对象方法学开发软件时,通常需要建立三种模型,分别是对象模型、动态模型和____模型。
对象模型技术(OMT)
面向对象建模方法有很多种,也都在进一步的发展和完善中。
对象模型技术(OMT)是目前最为成熟和实用的方法之一。
它从三个方面对系统进行建模,每个模型从一个侧面反映系统的特性,三个模型分别是:对象模型、动态模型和功能模型。
对象模型表示静态的,结构化的"数据"性质,它是对模拟客观世界实体的对象及对象间的关系映射,描述了系统的静态及结构.通常用类图表示。
对象模型描述系统中对象的静态结构、对象之间的关系、对象的属性、对象的操作。
对象模型表示静态的、结构上的、系统的“数据”特征。
对象模型为动态模型和功能模型提供了基本的框架。
对象模型用包含对象和类的对象图来表示。
动态模型表示瞬间的,行为化的系统控制性质,他规定了对象模型中的对象合法化变化序列.通常用状态图表示.动态模型描述与时间和操作顺序有关的系统特征--激发事件、事件序列、确定事件先后关系的状态以及事件和状态的组织。
动态模型表示瞬间的、行为上的、系统的“控制”特征。
动态模型用状态图来表示,每张状态图显示了系统中一个类的所有对象所允许的状态和事件的顺序。
功能模型表示变化的系统的功能性质,它指明了系统应该做什么,因此直接地反映了用户对目标系统的需求,通常用数据流图表示.功能模型描述与值变换有关的系统特征--功能、映射、约束和函数依赖。
UML建模工具中的五大视图本节和大家一起学习一下UML建模工具方面的知识,本节主要包括面向对象建模概念和UML中的五大视图等内容,相信通过本节的介绍你对UML建模工具有一定的认识。
下面让我们一起来学习UML建模工具吧。
UML建模工具1.面向对象建模建模把复杂得问题分解为易于理解的小元素,以达到问题的求解模型帮助你具体化和指出系统的不同方面,模型也显示不同的部分如何彼此相关并有助于它们的工作形象化。
UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型解释用户的要求,交互模型描述消息流,实现模型包含工作单元,部署模型包含属于进程分配的细节。
提供一种简单的、准备使用的、表现为可视的建模语言,是独立于过程的,是独立于语言的2.UML建模工具的五大视图:UML定义了软件工程领域中的不同模型。
下面给出模型和它们的描述:.类模型描述其静态结构,状态模型表示对象的动态行为,用例模型描述用户的要求,交互模型描述消息流,实现模型描述工作单元,部署模型属于进程分配的细节。
◆用户视图–表示系统的目的和目标◆结构视图–表示系统的静态或空闲的状态◆行为视图–表示系统的动态状态或状态的变动◆实现视图–表示系统的逻辑元素的分布◆环境视图–表示系统物理元素的分布3.用户视图系统的用户视图由用例图组成,用例图包含执行者、用例、及它们的关系,用例图表示了系统对外部实体提供的功能,用例图由执行者和用例组成(执行者对系统做什么的)执行者主要可分为四类:主要执行者–直接与系统交互的人,次要执行者–涉及到系统维护的人,外部硬件–运行应用的非计算机的系统部分,其他系统–为其工作需要与你系统交互的外部系统4.结构视图UML建模工具中结构视图代表系统的静态方面,包含类图(描述不同的类和它们的关联,描述系统中声明的类)和对象图(描述不同的对象和它们彼此间的链接)。
类:用来描述具有特征的现实世界的实体。
面向对象的动态模型一、对象1. 对象有唯一的标识每个对象都应该有一个唯一的标识符,使得它可以在程序中被引用。
这个标识符可以是一个指针、一个地址或一个字符串等。
使用这个标识符可以识别出程序中的不同对象,从而对它们进行操作。
2. 对象有状态对象的状态是指对象所存储的数据,这些数据可以随着时间的推移而变化。
状态通常是私有的,只有对象内部的方法才能访问和修改它。
通过方法,对象可以完成对状态的修改和更新,并控制其状态的安全性和有效性。
对象的行为是指对象可以执行的操作或方法。
方法可以对对象的状态进行修改,并与其他对象协作完成一些任务。
对象的行为包括其方法的集合,方法之间可以通过消息的传递来进行交互,从而实现对象间的协作。
二、消息1. 消息由发送者发送在程序中,一个对象可以向其他对象发送消息。
发送者将消息发送给接收者,接收者则根据消息执行相应的方法。
可以通过消息的传递实现对象之间的通信和交互。
2. 消息由接收者处理当一个对象接收到消息后,它会根据消息执行相应的方法。
消息激活了接受者的一个特定状态。
然后,接受者将执行能够满足消息到达时的状态的方法。
这些方法通常可以修改接收者的状态,同时可能向其他对象发送新的消息以完成一些任务。
3. 消息有特定的语义消息描述了一种语义或意图,而不是明确的操作。
通过发送消息,并让对象自行处理它的语义和行为,可以将系统功能的实现和定义进行分离。
这样,系统能够更加模块化,可以改变对象的实现细节而不影响程序其他部分。
三、方法由于方法的支持和调用是动态的,所以面向对象程序设计是非常灵活的。
在运行时,程序可以根据实际情况来动态创建、删除、修改对象,以及动态响应消息和方法的调用。
在面向对象的动态模型中,消息和方法是非常重要的概念,它们使得对象之间能够相互交互,完成任务的执行。
它们建立了一个非常灵活的系统,使得程序设计者可以更好地掌控程序的逻辑和行为。
通过这些概念,软件设计者可以更好地分离系统的行为和实现,使系统更具可维护性和可扩展性。
面向对象中包括哪些UML图及每件图的作用UML面向对象分析及其包括的图、建模步骤一、叙述基于UML的面向对象分析设计过程1)识别系统的用例和角首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,借助UML建模工具描述概念层类图和活动图。
2)进行系统分析,并抽象出类系统分析的任务是找出系统中所有需求并加以描述,同时建立特定领域模型。
建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。
3)设计系统和系统中的类及其行为设计阶段由结构设计和详细设计组成。
①结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。
包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。
②详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。
二、面向对象中包括哪些UML图及每件图的作用UML图包括九种:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。
1)用例图(UseCaseDiagram)它是UML中最简单也是最复杂的一种UML图。
说它简单是因为它采用了面向对象的思想,又是基于用户视角的,绘制非常容易,简单的图形表示让人一看就懂。
说它复杂是因为用例图往往不容易控制,要么过于复杂,要么过于简单。
用例图表示了角色和用例以及它们之间的关系。
2)类图(ClassDiagram)是最常用的一种图,类图可以帮助我们更直观的了解一个系统的体系结构。
通过关系和类表示的类图,可以图形化的方式描述一个系统的设计部分。
3)对象图UML面向对象中对象图是类图的实例,几乎使用与类图完全相同的标识。
它们的不同点在于对象图显示类的多个对象实例,而不是实例的类。
一个对象图是类图的一个实例。
《软件⼯程案例教程》李军国主编习题答案第1章习题答案⼀、判断题⼆、填空题三、简答题1.软件的特点:①软件具有抽象性。
②软件与硬件的⽣产⽅式不同。
③软件与硬件的维护⽅式不同。
④软件具有复杂的逻辑性。
⑤软件的成本较⾼。
⑥软件的使⽤和社会因素有关。
2.软件危机产⽣的原因:①⽤户需求不明确。
②缺乏正确的理论指导。
③软件开发规模越来越⼤。
④软件开发复杂度越来越⾼。
3.软件危机的主要表现:①软件开发进度难以预测。
②软件开发成本难以控制。
③⽤户对产品功能难以满⾜。
④软件产品质量⽆法保证。
⑤软件产品难以维护。
⑥软件缺少适当的⽂档资料。
4.软件⼯程学的基本原则有哪些:①抽象。
②信息隐蔽。
③模块化。
④局部化。
⑤确定性。
⑥⼀致性。
⑦完备性。
⑧可验证性。
5 什么是软件的⽣命周期?答案:软件与任何⼀个事物⼀样,有它的孕育、诞⽣、成长、成熟、衰亡的⽣存过程。
这就是软件的⽣存周期。
6 软件⼯程过程有哪⼏个基本过程活动?试说明之。
答案:软件⼯程过程的基本过程活动有4步:①软件规格说明(需求定义)。
规定软件的功能及其运⾏的限制;②软件设计与开发(设计开发)。
产⽣满⾜规格说明的软件;③软件确认(测试)。
确认软件能够完成客户提出的要求;④软件演进(维护)。
为满⾜客户的变更要求,软件必须在使⽤的过程中演进。
四、综合题1.详细说明软件⽣命周期分哪⼏个阶段?答案:软件⽣命周期主要分为6个阶段:软件项⽬计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运⾏维护。
(1)软件项⽬计划:在这⼀步要确定软件⼯作范围,进⾏软件风险分析,预计软件开发所需要的资源,建⽴成本与进度的估算。
根据有关成本与进度的限制分析项⽬的可⾏性。
(2)软件需求分析和定义:在这⼀步详细定义分配给软件的系统元素。
可以⽤以下两种⽅式中的⼀种对需求进⾏分析和定义。
⼀种是正式的信息域分析,可⽤于建⽴信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。
另⼀种是软件原型化⽅法,即建⽴软件原型,并由⽤户进⾏评价,从⽽确定软件需求。