8第八章 信息系统设计与分析

上传人:suns****4568 文档编号:85278535 上传时间:2019-03-08 格式:PPT 页数:44 大小:338KB
返回 下载 相关 举报
8第八章 信息系统设计与分析_第1页
第1页 / 共44页
8第八章 信息系统设计与分析_第2页
第2页 / 共44页
8第八章 信息系统设计与分析_第3页
第3页 / 共44页
8第八章 信息系统设计与分析_第4页
第4页 / 共44页
8第八章 信息系统设计与分析_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《8第八章 信息系统设计与分析》由会员分享,可在线阅读,更多相关《8第八章 信息系统设计与分析(44页珍藏版)》请在金锄头文库上搜索。

1、第8章 面向对象的分析与设计,信息系统分析与设计,8 面向对象的分析与设计,8.2 面向对象的基本概念与方法,8.1 概述,面向对象方法具有以下几个要点: 面向对象方法认为客观世界是由各种对象组成的。 所有对象都划分成各种对象类(Class),每个对象类都定义了一组数据和方法。 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(亦称类等级)。 对象之间仅能通过消息互相联系。,8.1.1面向对象方法概述,面向对象方法可以概括为: 面向对象(Object-Oriented) =对象(Object) +分类(Classification) +继承(Inheri

2、tance) +通信(Communication with messages),8.1.1面向对象方法概述,代码的可重用性好 可维护性和可扩充性好 稳定性好,8.2 面向对象的基本概念与方法,8.2.1对象(Object) 在面向对象方法中,对象可作如下定义:对象是由一组数据(属性)和施加于这些数据上的一组操作代码(操作)构成的。换言之,对象是一个有着各种特殊属性(数据)和行为方式(方法)的逻辑实体。 例如图8-1是一个简单的对象:“计数器”Counter。它有一个属性Value ,保存计数器的计数值。有三个操作:init( ),置value为“0”;dec( )使value减“1”;inc(

3、 ),使value增“1”。,8.2.1对象(Object) 归纳起来对象有下列特征: 标识(名称)唯一; 某一时间段内,有且只有一组私有数据; 有一组操作,每一个操作决定对象的一种行为; 对象内部封装数据、操作,对外通过传递消息相互作用。,8.2 面向对象的基本概念与方法,8.2.2类( Class ) 在面向对象的软件技术中,类可以定义为由数据结构及相关操作所形成的集合,或所有相似对象的状态变量和行为构成的模板。类具有明显的层次性,一个类可以派生出多个子类。如图所示。 图8-2 类的层次性,8.2 面向对象的基本概念与方法,8.2.3继承(Inheritance) 继承是指一个类(即子类)

4、因承袭而具有另一个类(或称父类)的能力特征或关系。如图8-3所示。 图8-3 继承,8.2 面向对象的基本概念与方法,8.2.3继承(Inheritance) 继承有单重继承和多重继承。子类仅有一个父类的继承称为单重继承,否则称为多重继承。例如在图8-5中,类C同时继承类A和类B的属性和行为,也可以有自己的专有特征。 图8-5 多重继承,8.2 面向对象的基本概念与方法,8.2.4消息( Message) 在面向对象方法中,消息就是向对象发出的服务请求,它应含有提供服务的对象标识、请求的服务、输入信息和回答信息。我们已经知道,对象具有信息隐蔽的功能,称之为“封装”(Encapsulation)

5、。所谓封装就是把对象的属性和行为向外部提供,而把对象的内部细节尽可能隐蔽起来,不允许外界访问。信息系统的功能需要其中许多对象的行为的有机结合才能完成。这里有机的结合就是对象之间消息传递,也即一个对象向有关对象发送消息。,8.2 面向对象的基本概念与方法,8.2.4消息( Message) 消息传递与面向过程中的函数调用不同之处: 函数调用时参数是可选项,而消息至少要带一个参数,它指明接收该消息的对象,并告诉对象做什么。 类似于函数名的消息操作名,函数名代表一段可执行的程序,消息操作名的功能取决于接收消息的对象本身。 函数调用是过程式的,消息传递是说明式的。具体如何做,由接收对象根据收到的信息自

6、行确定。,8.2 面向对象的基本概念与方法,8.2.5面向对象的建模技术OMT OMT,即面向对象建模技术,该方法支持整个信息系统开发的生命周期,包括系统分析、系统设计和系统实现。 包括三部分:对象模型、动态模型和功能模型。对象模型描述的是系统的对象的结构,使用图示的方式表示对象的属性、对象的行为和与其它对象的关系;动态模型描述与时间和行为顺序有关的系统属性,使用状态图来反映系统的动态特征;功能模型使用数据流程图描述对象行为的具体含义,它只考虑系统做什么,而不关心怎样做和何时做。,8.2 面向对象的基本概念与方法,8.3 面向对象的分析,其分析过程可用图8-7描述: 图8-7 分析过程概述,1

7、 对象模型,对象模型通过描述系统中类、对象、属性和对象之间的联系等来表示系统的静态结构。 (1)类和对象 对象是一种概念,一种抽象,或者是对应用有意义的事情,或者是具有清晰边界和含义的事情。 对象类(Object Class)描述具有相似属性的一组对象。如人、公司、动物等都是对象类,或简称类。,描述对象实例的OMT符号用圆角矩形框表示,类名(用粗黑体字)放在这个对象上端用圆括号括起来。对象名用标准体放在类名下方,无名氏对象实例则仅用带圆括号的类名,放在圆角矩形框的中央。如图8-8表示。 图8-8 类和对象,1 对象模型,(2)关联 关联是反映对象之间相互依赖、相互作用的关系。通常把两类对象之间

8、的二元关系分为一对一(:),一对多(:)和多对多(:)三种基本类型。 描述关联的OMT符号用一条连线表示,即在两个相互依赖、相互作用的对象之间画一条连线。上述关联的性质在连线的末端用一个特定的符号来表示: 如:“1+”,表示1个或1个以上,如图8-9 (b)。,1 对象模型,黑实心圆点,表示零个或多个,如图8-9(c)。 没有符号,表示为1个,如图8-9(a)。 图 8-9关联的图形表示,1 对象模型,(3)属性 属性是一个类中对象所具有的数据值。 属性分为类属性和对象属性两种。 类属性在类图中可置于类矩形框的下半部分,上半部分是类名,在类名和类属性之间画一条横 线。 对象属性可置于圆角矩形框

9、的下方,所不同的是对象框没有那条横线。 如图8-10所示。,1 对象模型,图8-10属性和值 2.建立对象模型 面向对象分析的首要工作,是建立问题域的对象模型。也即建立类、对象、关联和属性的模型表示。也就是目标系统的静态结构。静态结构相对稳定。因此,在用面向对象方法开发系统时,首先建立对象模型,然后再建立动态模型和功能模型。,1 对象模型,本节将以银行ATM(自动取款机)系统为例来说明分析过程应考虑的问题。图8-11是银行计算机业务系统示意图。 图 8-11银行业务系统(ATM),1 对象模型,OMT建立对象模型的步骤如下: 找出对象类 类和对象是问题域中客观存在的,系统分析员的任务是通过分析

10、找出这些对象类和对象。确定类的过程如图8-12所示 。 下面以ATM银行系统为例,从问题陈述中通过非正式分析找出如图8-13的名词,作为候选对象类。,1 对象模型,图8-13银行业务陈述中抽取的候选对象类 筛选出正确的对象类 找出候选的对象类之后,应经过严格的筛选,去掉一些不必要的和不正确的对象类。筛选时主要依据下列标准进行删除: 冗余 如果两个类名表达了同样的信息,则应保留在此问题中最富于描述力的名字。,1 对象模型,无关 与当前要解决的问题无关的对象 应删掉。 模糊 通常应该把这些笼统的或模糊的候选类去掉。 属性 在需求陈述中,有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类中

11、去掉。 操作 确定关联,1 对象模型,确定属性 确定属性通常包括分析和选择两个步骤。 分析 选择 通常有以下几种常见情况应当引起注意: 不要误把对象当作属性; 不要误把关联属性当作属性; 不要误把内部状态当作属性; 不要过于细化,应忽略那些对操作系统没有影响的属性。,1 对象模型,经过以上分析,银行业务系统的正确的对象类应为: 账户、ATM、分行、分行计算机、现金储值卡、出纳员、终端、事务、总行、中央计算机、储户。,1 对象模型,8.3.3动态建模,1.动态模型 动态模型的主要概念是事件、状态和状态图。事件,它表示外部触发;状态,它表示对象值;状态图,是事件和状态的网络。 (1)事件 事件是发

12、生在某一个时间点的一件事。事件可以划分成许多事件类,并可用一个名字来标识事件类。事件类的属性写在事件名后面的圆括号内。事件在对象之间传递的信息就是事件类的属性。表8-1表示了一些具有属性的事件类,属性部分是可选项。,表8-1事件类和属性 (2)脚本 脚本是事件序列。它可以包括系统中所有的事件,也可以仅包含系统中一个特定执行期间所发生的事件,或者可以是包含系统中某对象所产生的事件。,8.3.3动态建模,如表8-2是前述银行业务系统(ATM)的脚本。,8.3.3动态建模,事件序列和交换事件的对象能同时在扩张的脚本中表示出来,事件序列或扩张的脚本我们称它为事件轨迹图。图8-14示出了表8-2的事件轨

13、迹图。 (3) 状态图 状态图由事件和状态组成。从事件轨迹图出发来确定状态和事件。在事件轨迹图中,水平箭头线(边上标以事件名)表示一个事件,如图8-14中,“插入卡”就是一个事件。两个事件之间的间隔就是一个状态。,8.3.3动态建模,2.建立动态模型 一般来说,建立动态模型的步骤如下: 编写脚本; 确定事件; 构造状态图; 在对象之间进行事件匹配,保证一致性。 (1)编写脚本 在编写脚本时,首先要考虑正常情况的脚本,如前述银行系统业务脚本表8-2,同时也要考虑出错情况的脚本,如表8-3。,8.3.3动态建模,表8-3 异常情况脚本,ATM请求储户插入卡;储户插入一张现金储值卡。 ATM接受卡;

14、并显示它上面的分行代码和卡号。 ATM要求输入口令;储户误输入口令。 ATM请求总行核验号码和口令;在总行向相应分行咨询后,拒绝该卡。 ATM指示口令错,并请储户再输一次;储户输入口令,ATM与总行核实后确认无误。 ATM要求储户选择事务类型;储户选择一种“取款”。 ATM请求储户输入取款金额;储户改变主意,按了“取消”键。 ATM退出卡;请求储户拿走它;储户拿走卡。 ATM请求储户插入卡。,8.3.3动态建模,(2) 确定事件 仔细分析脚本,从中提取所有的外部事件。 (3) 构造状态图 构造状态图时,仅考虑事件轨迹图中指向某条竖线的那些箭头线。把这些事件作为状态图中的有向边(即箭头线),边上

15、标以事件名,两个事件之间的间隔就是一个状态。 (4)在对象之间进行事件匹配,8.3.3动态建模,1.功能模型 功能模型包含的内容主要有输入值、输出值和数据流图。 (1)输入值和输出值。 输入值和输出值是系统和外部事件之间的参数,所以应首先列出输入值和输出值。通过检查问题陈述,查找所有的输入值和输出值。 图8-16表示了ATM应用的输入值和输出值。,8.3.3动态建模,8.3.4功能建模,图8-16银行业务系统输入输出值,输入: 输出: 卡号 现金 口令 单据 事务类型 信息 账户类型 数量 银行代码,(2)数据流图 数据流图说明如何由输入值计算输出值。如图8-17是ATM系统的顶层数据流图。

16、图8-17 银行业务系统顶层数据流图,8.3.4功能建模,2.建立功能模型 建立功能模型的第一步是确定输入值和输出值,然后由输入值和输出值产生一组数据流图。数据流图通常按层次组织。最顶层的由单个处理组成(如图8-17),然后将顶层重要的处理扩展成第二层的数据流图。如果第二层仍有重要的处理,则可以向下继续扩展。例如图8-18是扩展了图8-17中执行事务的处理。,8.3.4功能建模,8.3.4功能建模,一般来说,构造功能模型的步骤为: 确定输入值和输出值; 画出不同层次的数据流图; 描述功能和约束条件。,8.3.4功能建模,8.4 面向对象设计,系统设计的第一步是将系统分解为多个子系统。系统到子系统的分解可以组成层次结构和块结构。 (1)层次结构 层次结构也称分层次结构。这种结构把软件系统组织成一个层次系统,每层是一个子系统。每一层以它下面的层来构造。 分层结构有两种形式,一种是封闭式,一种是开放式。所谓封闭式结构,即在此结构中,每一层是根据它的下一层结构来构造,每层仅仅为其直接下层提供服务。,所谓开放式结构,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号