结构建模与分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 GIS软件工程--结构建模与分析
在程序设计语言中,类似于有参数和返回值的函数,例如在ATM银行系 统中,储蓄账户类可以有以下操作: 取款(withDraw) 存款(deposit) 查询余额(getBalance)
3.封装—消息隐藏
所谓封装(Encapsulation)是指对象的底层实现技术对用户来说 是不可见的。在面向对象系统中,只有对象的生产者(创建者、设计师 或开发者)知道该对象内部结构的详细信息,而对象的使用者,则不知 道对象内部的工作机制,必须通过对象的3个不同接口之一来处理这个 对象。 使用任何人都可以访问的公共接口 使用只有那些继承了该对象属性和操作的对象可以访问的受保护 (Protected)的接口。 使用参数接口。对于参数化类,参数接口定义了创建实例时必须提 供的参数。
ClassName ClassName -attribute ClassName -attribute +operation()
类的不同细节信息的表示
2 GIS软件工程--结构建模与分析
下面说明在UML中如何表示类,类和对象的区别在于对象名称下面有下 划线,还可以跟一个可选的类名。
2 GIS软件工程--结构建模与分析
2.4 类和实例
类(Class)是一组相似对象的通用定义,是对现实世界实体的抽象。 对系统而言,要捕获并规定类的主要特性和行为,并隐藏那些无关的信 息。类还确定了它的实例(Instance,对象)的结构和能力,因此可以 将类理解为一类结构等同对象的模板或蓝图。对象是类的实例,类是模 板,实例是模板塑造的对象。 在进行结构建模与分析时,理解类和实例之间的差别非常重要。类有 方法和属性,而对象实例具有行为和状态。
2.3.2 对象模型
物理对象和概念对象
2 GIS软件工程--结构建模与分析
可以广义地将对象划分为物理对象(Physical Object)和 概念对象(Conceptual Object)。物理对象是有形的可接触 的对象,如人、书籍、计算机、建筑物等。概念对象是无形的, 比如银行账户和日程表等。在软件开发中,现实中的对象被自 然映射为软件系统中的对象。 人们很容易混淆物理对象和概念对象,部分概念对象可能只 在某个小的团队内部甚至是一组领域专家内部得到很好理解。 对象设计人员需要与领域专家进行交谈,以获得必要的领域知 识,以便在软件设计时可以使用在某个领域内工作人员熟知的 对象、概念和术语。
2 GIS软件工程--结构建模与பைடு நூலகம்析
2.5 结构建模技术
在UML中,类可以简单地用一个划分成3部分的长方形来表示,这3 部分自上而下分别是:类名、属性列表和操作列表。每个属性名称后面 可以附加一些可选的细节信息,如类型和默认值,每个参数后面可以跟 一些可选的细节信息,如参数列表和返回值类型。在大多数情况下,第2 和3部分可以省略,一般只在图中显示那些与上下文相关的属性和操作。 还可以在属性或操作前面添加前缀(“-”、“+”、“#”),以便规定 该元素的可访问性(Accessibility)。“-”、“+”和“#”分别指出该 元素是私有、公有还是受保护的。
Bank Account -name -balance +debit(amount) +credit(amount)
Object1:Bank Account Nane=张三 Balance=10000.0
Object2:Bank Account Nane=李四 Balance=-200.0
对象和类的UML表示法
2 GIS软件工程--结构建模与分析
领域对象和实现对象 从现实世界中识别出来的对象是领域对象(Domain Object),将所 有与现实世界实体无关的对象统称为实现对象(Implementation)。例如 各类井下矿工、巷道、无线定位基站和电子标签都是领域对象,井下人员 位置的实时解算就是实现对象。 领域对象在整个开发生命周期内是稳定的,领域对象的规约不可能有大 的改动,它们构成了软件系统的框架。实现对象则是伴随需求的变化而变 化,在满足现实约束方面有更大的灵活性。 主动对象与被动对象 一个对象可以是主动对象(Active),也可以是被动对象(Passive)。 主动对象是可以改变自身状态的对象,一般使用进程或线程来实现主动对 象,又称其为“有生命的对象”。被动对象其状态不会发生改变,除非它 接收到消息。在实际软件开发中,绝大多数对象都是被动对象,一般自动 假设所有对象均为被动对象。
2 GIS软件工程--结构建模与分析
上面的银行账户类规定了银行账户对象将name和balance作为私有 属性(用符号-表示),credit和debit为公共操作(由符号+表示)。上 例中两个对象的状态不同,通过调用公共操作,可以改变实例对象的状 态。 1. 属性 属性(Property)是类的性质。属性有时又用性质、特征或数据成员 表示。从人类理解的角度看,性质是描述对象的特征;从技术角度看, 属性是对象保存自身状态信息的数据项。属性有名称、类型和具体取值。 2.操作 操作(Operation)是可以访问对象数据的函数或过程。操作由名称 和参数两部分组成。操作对应于对象提供的某项服务(Service)。操作 结合构成了对象的接口,为了调用某个对象提供的操作,其它对象只需 要知道该对象的接口即可。 操作有时也被称为方法或成员函数。对程序员而言,操作就是函数或 过程,返回值(Return Value)就是操作在结束时“带回来”的结果。
2 GIS软件工程--结构建模与分析
2.3 对象
2.3.1 对象的含义
对象就是实体,具有完善的特征和行为。一个对象通常有很多状态 (state),但在某一时刻只能处于一种状态。状态用属性来进行描述,在 不同的状态下,对象可能表现出不同的行为。有的对象若要完全描述其状 态比较复杂,但使用对象对系统进行建模,通常只关心对象的一部分状态。 对象的行为与对象的作用和反作用有关,对象的行为又被称为功能或者 方法。行为由对象可执行的一组操作确定。