版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章 面向对象方法与CASE 8.1 面向对象方法 811 面向对象方法的基本概念概括地说,面向对象方法具有下述四个要点:(1)认为客观世界是由各种对象组成的 ;(2)把所有对象都划分成各种对象类(简称为类,Class),每个对象类都定义了一组数据和一组方法。 (3)按照子类与父类的关系,把若干个对象类组成一个层次结构的系统。 (4)对象彼此之间仅能通过传递消息互相联系。面向对象的方法学可以用下列方程来概括: OO=对象十类十继承十消息面向对象方法中使用的几个最基本概念: (1) 对象形式化的表示是:对象:=ID,MS,DS,MI,其中,ID是对象的标识或名字 MS是对象中的操作集合 DS是
2、对象的数据结构 MI是对象受理的消息名集合(即对外接口)(2) 类:是对具有相同数据和相同操作的一组相似对象的定义。 (3) 实例:实例就是某个类的一个具体的对象。 (4)消息:就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。 (5)方法:就是对象所能执行的操作。(6)属性:就是类中所定义的数据。(7)继承:是子类自动地共享父类中定义的数据和方法的机制。812 三种形式的模型 分别是描述系统数据结构的对象模型,描述系统控制结构的动态模型和描述系统功能的功能模型。在面向对象分析和面向对象设计中,结构表示类对象间的关系,是对客观世界实体相互间关系的抽象。类对象间的关系可以概括为归
3、纳关系、组合关系及关联关系。在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础,我们依靠对象模型完成三种模型的集成。 三种模型之间的关系: 1.针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。 2.状态转换驱使行为发生,这些行为在数据流图中被映射成处理,它们同时与对象模型中的服务相对应。 3.功能模型中的处理,对应于对象模型中类&一对象所提供的服务。 4.功能模型中的数据存储,以及数据的源点/终点(在功能模型中称为动作对象),通常是对象模型中的对象。 5.功能模型中的数据流,往往是对象模型中的属性值,也可能是整个对象。 6.功能模型中的处理可能产生动态模型中的
4、事件。 7.对象模型描述了功能模型中的动作对象、数据存储以及数据流的结构。813 面向对象分析方法的步骤面向对象分析方法包括以下五个步骤:标识对象;标识结构;定义主题;定义属性(及实例连接);定义服务(及消息连接)。模型一旦建立,就可在五个主要层次上进行表示和复审: 主题层:主题是控制读者在同一时间所能考虑的模型规模的机制。 对象层:对象是数据及其专用处理的抽象,反映系统保存有关信息和现实世界交互的能力。 结构层:结构表示问题空间的复杂度。 属性层:一个属性就是一个数据单元,用于描述一个对象或分类结构的实例。 服务层:服务是对象收到消息之后所执行的处理。 814 面向对象设计的内容面向对象设计
5、一般包括四个方面的内容:问题域部分;人机交互部分;任务管理部分;数据管理部分。(2)人机接口部件的最基本对象是窗口。 主要的窗口类型包括: 安全/登录窗口。 启动窗口。启动窗口主要完成: .对象的创建和初始化; .系统管理功能; .外设的激活与关闭。 业务功能窗口。 大多数面向对象的用户界面的设计都是事件驱动的。遵循下列准则有助于设计出让用户满意的人-机交互界面。1.一致性2.减少步骤3.及时提供反馈信息4.提供撤消命令5.无须记忆6.易学7.富有吸引力(3)任务管理设计 1确定事件驱动型任务 2确定时钟驱动型任务 3确定优先任务 4确定关键任务 5确定协调任务 (4)数据管理设计 数据管理部
6、件提供了在数据管理系统中存储和检索对象的基本结构。 数据管理方法有: 1关系数据库管理系统(RDBMS) 2面向对象数据库管理系统(OODBMS)815 面向对象实现 面向对象实现主要包括两项工作:把面向对象设计结果,翻译成用某种程序语言书写的面向对象程序,测试并调试面向对象的程序。(1)面向对象编程开发人员在编程之前,应选择一种最合适的面向对象语言,可以考虑以下一些实际因素:1.将来能否占主导地位2.可重用性3.类库和开发环境4.其他因素良好的编程风格有助于提高软件的可重用性、可扩充性和健壮性。以下准则值得注意:1.提高类的内聚2.减小类的规模3.尽量不使用全局信息4.封装实现策略5.精心确
7、定公有方法 6.顶防用户的操作错误7.检查参数的合法性8.不要预先确定限制条件(2)面向对象测试一般说来,对面向对象软件的测试可分为下列四个层次进行:1.算法层2.类层3.主题层4.系统层82 Case工具概述8.2.1 什么是CASE计算机辅助软件工程是计算机技术在系统开发活动、技术和方法中的应用,是软件工具与开发方法的结合体。CASE工具是指能够支持或使软件工程周期中一个或多个阶段自动化的计算机程序(软件)。CASE的目的是:使开发支持工具与开发方法学统一和结合起来;通过实现分析、设计与程序开发、维护的自动化,提高信息系统开发的效率和信息系统的质量,最终实现系统开发的全面自动化。CASE的
8、总体目标是:通过一系列集成化的软件工具、技术和方法,使整个计算机信息系统的开发自动化。其具体目标是: .提高信息系统开发效率。 .提高信息系统开发质量。 .加速信息系统开发过程。 .降低信息系统开发费用。 .实现系统设计的恢复和逆向软件工程(Reverse Engineering)的自动化。 .自动产生程序代码。 .自动进行错误的检查和校验。 .实现项目管理工作的自动化。 .改善信息系统开发过程的控制。 .集成系统开发的工具。 .提高软件的复用性和可移植性。CASE系统应该具备以下功能和能力: 支持多种软件开发方法学(如结构化方法、快速原型法、面向对象方法等)。 支持软件开发生命周期的各个阶段
9、:上游(分析与设计)、下游(编码、测试与维护)及项目管理。 具有文档出版功能和文字、图形编辑功能。支持软件重用。支持开发信息资源共享。一般说来,一个CASE工具应具备以下功能(或其中的一部分功能): 用户通过CASE工具能创建系统开发各阶段所需要的图表。 收集有关图表上的对象以及对象之间关系的信息,以便建立一个完整的信息集合。 在一个中央资源库中,应将图表所表示的语义而不是图表本身存储起来。 根据准确性、一致性、完整性检查图表。 使用户能够用多种图表类型表示一个分析或设计的不同方面。 使用户能以图表来描述条件、循环、case结构和其它结构化程序结构。 实施结构化的模型和设计,尽可能达到准确、一
10、致。 协调多个图表上的信息,检查信息的一致性,并集中检查信息的准确性、一致性和完整性。8.2.2 CASE的分类与工具CASE一般分为如下三类: .上游CASE,或称前端CASE。它描述了支持软件开发周期前期几个阶段(系统规划,系统分析和前期的系统设计即系统总体设计)的CASE工具。.下游CASE,或称后端CASE。描述了支持软件开发周期后期几个阶段(详细系统设计,系统实施和系统维护)的CASE工具。.支持项目管理的、并贯穿于整个软件开发周期的CASE。主要支持项目管理和评估等活动。应该注意以下几个问题:(1)上游CASE和下游CASE之间有所重叠。 (2)这种划分方法人为造成了上游CASE与
11、下游CASE之间的缝隙,因为上游CASE工具的输出要作为下游CASE的输入。 (3)一个完整的CASE工具应包括上述各种类型中的一种或几种产品。典型的CASE通常由下列工具的全部或一部分组成:(1)图形工具:(2)描述工具:(3)原型化工具:(4)查询和报表工具: (5)质量保证工具: (6)决策支持工具: (7)文档出版工具: ( 8)变换工具(Transform Facilities) (9)生成器: (10)数据共享工具:为同一种CASE工具的不同的局部资源库之间传递资源库信息。 . (11)安全和版本控制工具。 8.3 PlayCase的使用831 PlayCase概述PlayCASE
12、中提供了一系列的图形工具来帮助建立面向对象开发方法中需要的三个模型:(1) 结构模型,其核心成分是系统/功能分解树和构件图。 (2) 动态模型,其核心成分是事件流程图和伪码 .(3) 功能模型,其核心内容是层次化的数据流程图, PlayCASE的集成理念体现在软件生命周期的纵横两个方面:三位一体建模,以统一的形式支持生命周期。(1)在三个模型间进行横向集成:动态模型的事件流程图和功能模型的数据流程图分别以相同的模式,沿结构模型的系统/功能分解树逐级展开,充分体现自顶向下的分析设计思想;数据流程图中的数据,就是事件流程图中事件携带的数据;上述的数据在结构模型中的构件图中,是以构件的形式来描述其内
13、容及其间的各种关系,这种构件也是传统意义上的信息实体。(2)在开发文档间进行纵向集成:832 结构模型(1)建立系统结构树 一、用菜单命令 二、用工具栏(2)填写业务/需求调查表(3)构件枚举图 构件枚举图在面向对象软件工程中发挥的作用是标识出系统中的对象,并定义它们的属性和服务。(4)构件关系图建立构件关系图的操作也可以用工具栏来完成。 83动态模型(1)建立事件流程图接上述步骤,我们来完成事件流程图。PlayCASE用事件流程图描述企业的业务流程,其表达方式是沿系统/功能结构树自上而下逐层表达。(2)事件汇总图事件汇总图是和事件流程图一一对应的。它有几个方面的作用:一方面,它按层次来表达业
14、务部门(岗位)之间的业务分工,集中反映了各个部门(岗位)的业务活动;另一方面,它按层次来表达系统内部的功能界面,说明哪些功能由哪些子系统(模块)来完成。(3)工作案例图 工作案例图的实质是非运行过程的分门别类,既以某一类过程为主线,只画出该类过程的事件流程图,使用户能更好地掌握该事件的运行序列。(4)典型事件跟踪图典型事件跟踪图是为了使用户能够更好地掌握整个系统下的事件流向,使用户能从整个系统的宏观观点上考察某一系统下的所有事件流,也为以后进行动态仿真创造条件。83 功能模型(1)数据流图数据流程图分2个层次:系统层,功能层 。 (2)数据汇总图数据汇总图的作用是让我们从全局角度了解和把握信息
15、交互的全貌。建立数据汇总图的方法有两种: 数据汇总图的编辑工作主要是加入数据汇总链。 (3)功能调用树功能调用树主要用来描述功能(过程/函数)间的调用关系。 83 项目管理及文档管理(1)项目管理PlayCase中提供的项目管理工具有任务分解树、任务进度坐标图、任务计划网络图三种。 (2)技术文档打开菜单技术文档,最上部有(需求分析)、(总体设计)、(详细设计)、(用户手则),每一个选择项都对应着生成一个阶段的技术文档。 84 上机实践:酒店管理信息系统的开发841酒店信息管理的背景及基本要求酒店信息管理系统须满足以下基本要求:()娱乐休闲型酒店管理信息系统是一个综合性的人机交互系统 ;(2)
16、系统通过加快处理速度、对各类信息的详细记录和大幅度降低运行差错率来提高运转效率和准确性 ;3)完善的系统不仅能精确、实时地反映和处理酒店的各项业务活动,还能同时为各级管理人员服务,提供及时准确的决策信息和依据;(4)大型的管理信息系统要求在酒店内建设一个覆盖各部门的高效率的计算机网络。 (5)开发适合于各业务部门和管理部门共享使用的应用软件,充分发挥分布式高效能网络的计算和存储威力,结合消费卡灵活准确的信息对接特性,为客人提供最大程度的方便条件,从而在整体上提高工作和管理的效率。842 第一阶段业务调查第一步,了解酒店的组织结构,建立系统/功能分解树。酒店的组织结构如图8.1所示。图8.1 酒
17、店现行的组织结构客房 康乐部 餐饮部 财务部 接待 娱乐区 楼层 洗衣 餐厅 酒吧 洗浴区 购物 库房 收银台 其他部 根据组织结构图,建立系统/功能分解树,建好的系统/功能分解树如图8.2所示。 图8.2 系统/功能分解树第二步,完成业务/需求调查表。如前所述,PlayCase中业务/需求调查表分为四类:部门划分、部门职能、角色/岗位和工作任务,分别针对系统结构树中不同的层次,层次越低对业务的描述就越详细具体。限于篇幅,以下只列出部分业务/需求调查表。第三步,调查业务流程,全面搜集业务信息,初步画出顶层事件流程图。经调查得到以下的业务流程基本情况: 1.接待业务 (1)基本内容: (2)附加
18、内容: 2.点单业务(允许单独收银) 3.餐饮业务(允许单独收银) (1)基本内容: (2)附加内容: 4.收银业务1)基本内容:(2)附加内容: 5.库存业务 6.汇总报表 (1)按客人汇总:(2)按部门汇总:(3)单据审核: 第四步,从开发背景说明和业务/需求调查表入手,标识出对象,并初步确定其属性,建立构件枚举图。第五步,完成需求分析文档。 表8.1 部门职能调查表客房部部门 客房部调查表类型 部门职能作用(1)基本信息输入: (2)客房分配、选手牌:处理规则 (1)修改登记: 增加登记: 删除登记:(2)主手牌更换: 表8.2 部门职能调查表餐饮部 部门 餐饮部调查表类型 部门职能作用
19、作用(1)点菜:(2)加、换、退菜,换台:(3)订送餐:(4)收银结账:处理规则 1 菜要区分出是客人要求退,还是操作员误输入后主动退。2 结账时可现结,也允许按规定将餐费挂到相应的手牌下,待客人离店时统一结算。 表8.3 部门职能调查表康乐部 部门 康乐部调查表类型 部门职能作用确认客人的手牌号,选择消费或服务类别。确定提供服务的技师或服务生的工号。处理规则 遇到事先没有设定的项目,可临时记载其细节,必要时可在确认价格后将其添加到点单项目表中。 表8.4 部门职能调查表财务部 部门 财务部调查表类型 部门职能作用(1)结账:(2)库存:(3)汇总报表:处理规则(1)余额处理:(2)退房:(3
20、)消费调整: 图8.3 事件流图0层 表8.5 Guest构件属性列表 属性名称 描述 Name 客人/团体客人名称 HandCode 客人/主客手牌号 GuestType 客人类型(个人/团体) StartTime 入住时间 StayTime 住宿时间 表8.6 Room构件属性列表 属性名称 描述 RoomCode 房间号 RoomType 房间类型 Floor 房间所在楼层 Phone 电话分机号 RoomStatus 房间状态 表8.7 Bill构件属性列表 属性名称 描述 BillCode 帐单号 HandCode 应支付客人手牌号 TotalSum 总金额 Paid 实付金额 De
21、bate 折扣率 Striked 是否支付 任务概述 (1) 系统开发目标 1.代替员工的手工作业,提高酒店的运营效率。 2.采用图形化的操作界面,使人机对话方便,易懂、易用、易培训 3.系统24小时连续可靠运行,对重点业务实施全天候动态监管 4.系统维护方便可靠,有较高的安全性,满足实用性、先进性和经济性的要求需求规定一、功能规定 1.接待登记 (1)客人基本信息输入 (2)客房分配(3)主手牌更换(4)客房更换(5)修改登记:按客人进住后发生的变化情况进行相应的修改。(6)规定项目的查询: 2.点单 3.餐饮 . (1) 将菜的类型、名称、数量输入相应的餐饮记录单。(2) 按客人要求换、退
22、菜时,调整对应的记录单。(3) 按客人的要求,将饭菜送到房间,请客人出示手牌并签收。 (4) 根据餐饮记录单按金额、折扣或免单形式与客人结算、打印。 4.财务 (1)结账 (2)库存商品的基础数据进行设置和修改。 (3)日常性业务报表汇总 5.系统维护 (1)系统初始化: (2)客房: (3)消费: (4)餐饮: (5)整理数据:二、性能规定 1 精度要求 2 时间特性要求 84.3 第二阶段总体设计第一步,完善系统/功能分解树,需完成两个工作(1)明确分解树中哪些节点是子系统,哪些节点是功能(模块),其判断可以综合两方面因素:(2) 在此基础上,根据用户实际业务的需要,对现有分解树的末级节点
23、进行适当的功能分解。 第二步,在需求定义的基础上,我们根据系统/功能分解树所做的功能分解,把事件流程图进一步向下逐层展开,来详细描述软件的总体运行过程。第三步,描述信息流动情况,建立数据流程图8.5。图8.4 事件流图1层图8.5 数据流图0层 第四步,进行数据库的概念设计,完成两部分工作:(1)补充业务调查时业务数据(构件)的具体内容被忽略的部分。(2)指定数据构件属性值的基本类别 。第五步,描述数据构件间的相互关系,建立构件关系图。第六步,完成总体设计文档。总体设计文档要包括的主要内容是对系统总体结构设计方案的选择,对最优方案的概括描述,软件结构,系统配置方案等。需要包括系统流程图、系统配
24、置图及建立结构模型、动态模型、功能模型所需的各种图形。 表8.8 Guest构件属性列表 属性名称 值类型 Name Text HandCode Text GuestType Boolean StartTime Date/Time StayTime Date/Time 表8.9 GuestGroup构件属性列表 属性名称 描述 值类型 GroupId 团体编号 Text GuestNum 团体客人人数 Text RoomNum 团体客人订房间总数 Text 表8.10 GuestSingle构件属性列表 属性名称 描述 值类型 IsMember 是否团体成员 Boolean IsMaster
25、是否主客 Boolean GroupId 所属团体编号 Text Certificate 登记证件类型 Number CertifyCode 登记证件号 Text sex 性别 Number RoomCode 登记房间号 Text 表8.11 Room构件属性列表 属性名称 值类型 RoomCode Text RoomType Text Floor Number Phone Text RoomStatus Number 表8.12 Bill构件属性列表 属性名称 值类型 BillCode Text HandCode Text ItemArray 对象数组 TotalSum Money Paid
26、 Money Debate Number Striked Boolean 表8.13 Item构件属性列表 属性名称 描述 值类型 ItemId 项目编号 Text ItemName 项目名称 Text ItemPrice 项目单价 Money ItemNum 项目数量 Number WaiterCode 服务员编号 Text 系统总体结构 1 制订总体结构的出发点确定系统总体结构前考虑有三种可行的方式: (1)文件服务方式 (2)客户机/服务器(C/S)方式(3)浏览器/服务器(B/S)方式本系统的开发采用客户机/服务器方式。 2 系统总体结构(1)前台(客户端)(2)后台(服务器端)(3)
27、管理和维护模块系统配置 1 硬件配置 2. 软件配置 844 第三阶段详细设计第一步,设计用户界面及其运行序列。每项下按各部门功能设定子项:客房管理登记 选房餐饮管理点菜 付款服务管理点单 付款财务管理结帐 库存 报表以下给出部分用户界面。图8.6 主窗口 图8.7 选择房间窗口 图8.8 客人登记窗口 图8.9 点菜窗口 图8.10 客人登记窗口 图8.11 结帐窗口 第二步,进行数据库的逻辑设计,完成以下工作:定义数据构件的关键字(包括主键、外键和候选键),保持数据一致性;确定实现构件具体的DBMS或编程语言;定义构件属性值的具体类型;建立交叉表(构件),消除多对多的连接关系;构件应当符合
28、第3范式,消除更新异常情况。 第三步,进行数据库的物理设计,完成以下工作: 定义构件的索引,优化数据检索;垂直分割构件,优化数据存取; 定义视图、查询,为编程提供方便。表8.14 Guest构件属性列表 属性名称 关键字 索引 格式 Name String HandCode PK String GuestType Boolean StartTime Y Date StayTime Y Date 表8.15 GuestGroup构件属性列表 属性名称 关键字 索引 格式 GroupId PK String GuestNum integer RoomNum integer 表8.16 GuestS
29、ingle构件属性列表 属性名称 关键字 索引 格式 IsMember Boolean IsMaster Boolean GroupId PK String Certificate Byte CertifyCode String sex Byte RoomCode String 表8.17 Room构件属性列表 属性名称 关键字 索引 格式 RoomCode PK String RoomType Y String Floor Byte Phone String RoomStatus Byte 表8.18 Bill构件属性列表 属性名称 关键字 索引 格式 BillCode PK Y Strin
30、g HandCode FK String ItemArray TotalSum Currency Paid Currency Striked Boolean 表8.19 RoomBill构件属性列表 属性名称 关键字 索引 格式 PriceType 收费类型 Byte 表8.20 ServerBill构件属性列表 属性名称 关键字 索引 格式 ItemId FK string ItemName string ItemPrice currency ItemNum integer WaiterCode string 第四步,定义构件的方法。构件的方法可以有三个来源:对自身的维护,对事件的响应,对某
31、种功能的完成。表8.21 Guest构件方法列表 方法名称 存取模式 类型 描述 CalculateSum Private function 计算客人应支付的总金额 Save Private Procedure 存储状态 表8.22 Room构件方法列表 方法名称 存取模式 类型 描述 UpdateStatus Private Procedure 设置房间状态 Save Private Procedure 存储状态 表8.23 Bill构件方法列表 方法名称 存取模式 类型 描述 CalculateSum Private Procedure 计算帐单总金额 CalculatePaid Priv
32、ate Procedure 计算客人实际应支付的金额 CalculateDebate Private Procedure 计算折扣率 SetItemArray Private Procedure 设置ItemArray数组的值 SetBillCode Private Procedure 设置帐单编号 Save Private Procedure 存储状态 第五步,完成详细设计文档。详细设计文档应在总体设计文档的基础上,进一步描述各个子模块的算法、接口。子模块设计 1 客人 2 房间 3 帐单(1)房费的计算公式:房费Xf基本房价Xo*N*K0十超时费Xc*K1(2)餐厅帐单的计算公式:餐费XfF(总金额Xo*K0) 数据库设计 按照系统的基本业务流程设计的主要数据表如下: 账单表:每个客人的每次消费产生一个账单记录。 客人信息表:每个客人在入店后即产生一个记录。客房状态表:记录每一间客户的当前状态。其它数据表有:消费明细表:记录每个帐单中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-江西-江西家禽饲养员三级(高级工)历年参考题库含答案详解3套试卷
- 纤支镜肺泡灌洗的护理查房
- 腰肌劳损保守治疗
- 2026下半年小学教师资格证考试小学数学专项试卷及解析
- 2026年历史教学培训试卷
- 劳动就业政策研究
- 汽修行业职业发展指南
- 戒烟健康宣教素材
- 2026事业单位工勤技能-江苏-江苏计算机操作员一级(高级技师)历年参考题库含答案详解3套试卷
- 2026 年强降雨引发山洪与塌方防范宣讲
- 2026年秋季开学小学防震减灾开学第一课
- 2026年继电保护专业岗位考核题库(附答案)
- (2026 秋季版)新人教 PEP 六年级上册英语单元词汇表(含音标 + 默写练习 + 参考答案)
- 2025国家能源集团招聘笔试历年参考题库附带答案详解
- 山东黄金焦家金矿安全生产管理制度汇编
- 2026年秋季高中数学开学第一课 学科知识体系构建教学设计
- 出租车企业安全隐患排查工作手册
- 2026年供电所从业人员专业培训试题库及答案变电运维
- 2027届广州中考英语听说考试专项训练
- 2026年江苏省盐城市重点中学小升初英语考试题库试题附答案
- 中医护理基础理论培训
评论
0/150
提交评论