文档详情

实用软件建模工程

第***
实名认证
店铺
PPT
744.50KB
约89页
文档ID:50149074
实用软件建模工程_第1页
1/89

实用软件建模工程 (第3版)软 件 建 模 § 软件开发的主要工作是软件需求和软件设计,软 件需求和软件设计的关键问题是软件建模 § 本章提出了B/S三层结构中的“功能模型、业务模 型、数据模型”这三个模型的建模思想与建模方 法,以及这三个模型的描述方式与“用例图、时 序图和类图”等图之间的关系,并且说明了三个 模型与B/S三层结构之间的对应关系,最后用三 个模型的思想与方法来分析省级新书店的建模案 例 § 信息系统的数据模型就是数据库,本章还深入浅 出地论述数据库设计的理论、方法、技巧与艺术 ,特别提出了数据库设计中的“第三者插足”模式 与“列变行”模式 1 三个模型的建模思想 § 1.功能模型 § 【定义6-1】功能模型FM(Function Model)实质上是用户需求模型,是描述 系统能做什么,即对系统的功能、性能、 接口和界面进行定义 § 因此,功能模型反映了系统的功能需求, 它是用户界面模型设计的主要依据§ 从宏观上说,功能模型是什么? § 若站在用户的角度上看,功能模型就是系统功能 需求列表; § 若站在设计者的角度上看,功能模型就是系统内 部功能模块(功能部件)的有机排列和组合; § 若站在Rose角度上看,功能模型就是系统的用 例的集合; § 若站在产品的角度上看,功能模型就是系统的用 户操作手册; § 若站在操作界面的角度上看,功能模型就是系统 的功能菜单; § 若站在B/S三层结构上看,功能模型就对应在浏 览层上建模。

§ 从微观上说,功能模型是什么? § 因为应用软件的执行方式已由以前的面向过程的 连续型“过程控制”,变为现在的面向对象的离散 型“事件驱动”和“消息传送”;由以前按程序事先 安排好的顺序执行,变为现在按用户的随机交互 指令顺序执行,所以现在的软件功能比以前复杂 多了 § 所以要从微观上回答功能模型中的微观功能有多 少,实在是一个难题这是因为面向对象操作的 路径是灵活多变的,多种多样的,开发者事先估 计不到的,甚至是千奇百怪的 § 功能模型的表示方法为:系统功能需求列表、性 能需求列表、接口需求列表、界面需求列表 UML规定主要采用“用例图”来描述功能模型 § 功能模型的设计和实现方法为:将相同的功能归 并,设计为一个个的构件或组件(部件),将不 同的功能设计成模块,然后用面向对象的语言将 这些离散的部件或模块组装起来,形成一个完整 的系统 § 功能模型既是动态的,又是静态的因为有的功 能与系统运行的时间序列有关功能模型既是数 据库和数据结构设计的基础,又是功能模块设计 、编程实现和测试验收的依据 § 2.业务模型 § 【定义6-2】业务模型OM(Operation Model) 实质上是业务逻辑模型,是描述系统在何时、何 地、由何角色、按什么业务规则去做,以及做的 步骤或流程,即对系统的操作流程进行定义。

§ 业务模型反映了系统的业务行为,它是算法设计 的主要依据若站在B/S三层结构上看,业务模 型就对应在中间层上建模 § 在企业信息系统(例如,MIS或ERP)中,业务 模型就是系统的业务流程图加上相应的业务规则 这里的业务流程图,是指企业在业务流程再造 BPR之后形成的操作流程和业务规则 § 业务流程图的画法没有统一的规定一般要规定 输入、处理、输出、文件及流向的图形标志在 图形内部或外部可书写文字说明业务流程图也 可以用业务操作步骤来描述,还可以用类似于程 序流程图的图形来表达 § 在UML中,完整的业务模型由用例图、时序图、 交互图、状态图、活动图来表述但是,时序图 在表述中起到核心作用 § 业务模型是动态的,所以有时称业务模型为动态 模型或操作模型业务模型既是功能模型设计的 基础,又是用户操作手册编写的依据 § 3.数据模型 § 【定义6-3】数据模型DM(Data Model)实质上 是实体或类的状态关系模型,即对系统的数据结 构进行定义 § 数据模型反映了系统的数据关系,它是实体或类 的状态设计依据若站在B/S三层结构上看,数 据模型就对应在数据层上建模 § 信息系统中的数据模型,是指它的E-R图及其相 应的数据字典。

这里的数据字典,包括实体字典 、属性字典、关系字典这些数据字典,在数据 库设计的CASE工具帮助下,都可以查阅、显示 、修改、打印、保存 § 信息系统中的数据模型分为概念数据模型 CDM和物理数据模型PDM两个层次 § CDM就是数据库的逻辑设计,即E-R图 PDM就是数据库的物理设计,即物理表 有了CASE工具后,从CDM就可以自动转 换为PDM,而且还可以自动获得主键索引 、触发器等等 § 数据模型设计是企业信息系统设计的中心 环节,数据模型建设是企业信息系统建设 的基石,设计者与建设者万万不可粗心大 意 § 数据模型本身是静态的,但是在设计者心 目中,应该尽量将它由静态变成动态设 计者可以想象数据(或记录)在相关表上 的流动过程,即增加、删除、修改、传输 与处理等,从而在脑海中运行系统,或在E -R图上运行系统 § 信息系统中的“功能模型、业务模型、数据 模型”这三个模型中,数据模型最为重要, 因为它是企业信息系统的核心与灵魂,企 业信息系统就是对数据模型的录入、处理 、传输与查询等操作 § 4.三个模型的优点 § 三个模型建模思想的优点是简单、直观、 通俗、易懂、易学、易用,非常适合于关 系数据库管理系统RDBMS支持的信息系统 。

§ 当三个模型建好之后,在这三个模型的支 持下,运用强大的面向对象编程语言,以 及软件组织内部的业务基础平台、类库、 构件库等财富,软件开发在技术上就能顺 利实现 § 5.三个模型无所不在 § 事实上,不管是系统软件还是应用软件, 都有一个建模问题,而且三个模型的建模 思想,也适合于系统软件建模 § 例如操作系统,它的功能模型就是管理网 络上的所有软硬件资源及其相互间的通信 ;它的业务模型就是按优先级别组织网络 中的进程和线程运行;它的数据模型就是 网络节点上的数据结构,例如,进程控制 块和进程调度队列的数据结构 § 对编译系统的分析,首先要分析它的词法和语法 分析器,词法与语法规则就是系统的业务模型 但是,分析的重点还是语法分析器,它是编译系 统的核心 § 为此,要分析它的语法状态转移矩阵及其相关的 数据结构例如,各种各样的堆栈和队列语法 状态转移矩阵加上相关的数据结构,就是编译系 统或解释系统的主要数据模型,很多算法分析都 是以它为基础的 § 而编译系统或解释系统的功能模型,就是该语言 的文本 § 游戏软件中的模型由三个模块组成,这三 个模块是逻辑处理模块(Logic)、对象状态 模块(Data)和绘制(或渲染)模块(Render)。

§ 在这里,逻辑处理模块就相当于业务模型 ,因为它要处理游戏中的各种游戏规则与 模拟算法; § 对象状态模块就相当于数据模型,因为它 要保存游戏对象的各种实时状态属性; § 绘制模块就相当于功能模型,因为它要在 显示器上显示各种游戏动作场景 2 数据模型设计概论 § 1.什么是好的数据模型 § 什么是好的数据模型?其条件有三:一是 满足功能需求,二是满足性能需求,三是 该模型能长期稳定,尽量做到“以不变应万 变” § 所谓“以不变应万变”,就是当用户的功能 需求发生某些变化时,数据库设计的结构 不需要做任何改动,就可以适应用户的功 能需求 § 2.数据库的组成 § 数据库由数据库服务器、数据库管理系统DBMS 、数据库管理员DBA、多张表、表上的视图和索 引、许多用户和角色所组成 § 若一个数据库的表不是存放在网络的一个节点上 ,而是存放在多个节点上,则称此数据库为分布 式数据库 § 表是数据库的基本组织单位,字段是表的基本组 织单位表有一个名字,叫表名,每个表有一个 以上的字段,每个字段有字段名、字段类型、字 段宽度、小数点后位数、默认值、字段域值定义 、是否为主键、是否为外键、是否可空等属性。

§ 3.基本表、代码表、中间表和临时表 § 由于记录的数据可以是原始数据、信息代码数据 、统计数据和临时数据四种,所以又可将表划分 为基本表、代码表、中间表和临时表四种 § 【定义6-4】存放原始数据的表,称为基本表 § 【定义6-5】存放信息代码数据的表,称为代码 表 § 【定义6-6】存放统计数据的表,称为中间表 § 【定义6-7】存放临时数据的表,称为临时表 § 【定义6-8】信息源产生的数据,称为原始数据 § 原始数据是要采集并录入的数据,是未加工处理 的数据原始数据和信息代码数据,统称为基础 数据基本表和代码表,统称为基表只有基表 才对应实体,因为它们存放信息源产生的数据, 中间表和临时表存放原始数据派生后的统计分析 数据,所以它们不对应实体 § 【定义6-9】所谓实体关系图,实质上是基表关 系图 § 数据库设计主要是指基本表设计,当然也包括代 码表、中间表、临时表和视图的设计,因为基本 表的设计较难,代码表、中间表、临时表和视图 的设计较易 § 基本表具有如下四个特性: § (1)原子性基本表中的字段是不可再分解的 § (2)原始性基本表中的记录是原始数据(信 息源产生的数据)记录。

§ (3)演绎性由基本表与代码表中的数据,可 以派生出所有的输出数据 § (4)稳定性基本表的结构是相对稳定的,表 中的记录是需要长期保存的 § 在上述四个特性中,原始性特别重要所谓原始 性,就是基本表中存放的信息,是信息源产生的 信息 § 任何一个应用系统,不管它如何庞大,它的信息 源个数都是不多的主要实体的个数一般不会超 过十个 § 4.数据库视图 § 与基本表、代码表、中间表、临时表不同,视图 是一种虚表,它依赖数据源的实表而存在,这些 实表是基本表和代码表 § 视图是供程序员使用数据库的一个窗口,是基表 数据综合的一种形式, 是数据处理的一种方法, 是用户数据保密的一种手段 § 为了进行复杂数据处理、提高运算速度和节省存 储空间, 视图的定义深度一般不得超过三层 若 三层视图仍不够用, 则应在视图上定义临时表, 在 临时表上再定义视图这样反复交迭定义, 视图 的深度就不受限制了 § 5.数据库的存储过程与触发器 § 存储过程是一段经过编译的程序代码,存放在数 据库服务器端通过调用适当的存储过程,可在 服务器端进行大量的数据处理,再将处理结果送 到客户端 § 触发器是一种特殊类型的存储过程,它是通过事 件进行触发而被执行的,而存储过程可以通过存 储过程名字而被直接调用。

§ 实践证明,过多地使用触发器,会引起数据库系 统瘫痪,甚至崩溃凡是能用存储过程代替触发 器功能的地方,就坚决用存储过程! § 6.数据库设计的内容 § 数据库设计包括数据库需求分析、数据库 概念设计、数据库物理设计三个阶段索 引、视图、触发器和存储过程都在数据库 服务器上运行,所以也将它们划分到数据 库物理设计之中 § 7.数据库设计的步骤 § 数据库设计有10个步骤,如表6-2所示 设计设计 步骤骤设设 计计 内 容第1步 将原始单单据分类类整理,理清原始单单据与输输出报报表之间间的数据转换转换 关系及算法,澄清一切不确定的问题问题第2步从原始单单据出发发,划分出各个实实体,给实给实 体命名,初步分配属性, 标识标识 出主键键或外键键,理清实实体之间间的关系 第3步 进进行数据库库概念数据模型CDM设计设计 ,画出实实体关系图图ERD,定义义 完整性约约束 第4步 进进行数据库库物理数据模型PDM设计设计 ,将概念数据模型CDM转换为转换为 物理数据模型PDM 第5步 在待定的数据库库管理系统统上定义义表空间间,实现实现 物理建表与建索引 第6步 定义义触发发器与存储过储过 程 第7步 定义视图义视图 ,说说明数据库库与应应用程序之间间的关系 第8步 数据库库加载载与测试测试 :向基表中追加记录记录 ,对。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档