精华内容
下载资源
问答
  • 两大类数据模型客观对象的抽象过程---两步抽象3.数据模型的组成要素(1)数据结构(2)数据操作(3)数据的完整性约束条件4.概念模型(1)用途与基本要求(2) 信息世界中的基本概念(3)两个实体型之间的联系① 一对一联系(1:1...


    0.思维导图

    在这里插入图片描述

    1.数据模型的概念

    • 在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。
    • 通俗地讲数据模型就是现实世界的模拟

    数据模型应满足三方面要求:

    • 能比较真实地模拟现实世界
    • 容易为人所理解
    • 便于在计算机上实现

    2.两大类数据模型

    数据模型分为两类(分属两个不同的层次)

    • (1) 概念模型 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
    • (2) 逻辑模型物理模型
      逻辑模型主要包括网状模型层次模型关系模型面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。
      物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

    客观对象的抽象过程—两步抽象

    • 现实世界中的客观对象抽象为概念模型
    • 概念模型转换为某一DBMS支持的数据模型
      在这里插入图片描述

    3.数据模型的组成要素

    (1)数据结构

    数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述,包括两个方面:
    (1)数据本身:类型、内容、性质。例如关系模型中的域、属性、关系等。
    (2)数据之间的联系:数据之间是如何相互关联的,例如关系模型中的主码、外码联系等。

    (2)数据操作

    数据操作

    • 对数据库中各种对象(型)实例(值)允许执行的操作,及有关的操作规则

    数据操作的类型

    • 查询
    • 更新(包括插入、删除、修改)

    (3)数据的完整性约束条件

    • 数据的完整性约束条件是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性。

    完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则

    4.概念模型

    (1)用途与基本要求

    概念模型的用途:

    • 概念模型用于信息世界的建模
    • 是现实世界到机器世界的一个中间层次
    • 是数据库设计的有力工具
    • 数据库设计人员和用户之间进行交流的语言

    对概念模型的基本要求:

    • 较强的语义表达能力
    • 能够方便、直接地表达应用中的各种语义知识
    • 简单、清晰、易于用户理解

    (2) 信息世界中的基本概念

    • (1) 实体(Entity)
      客观存在并可相互区别的事物称为实体。
      可以是具体的人、事、物或抽象的概念。
    • (2) 属性(Attribute)
      实体所具有的某一特性称为属性。
      一个实体可以由若干个属性来刻画。
    • (3) (Key)
      唯一标识实体的属性集称为码。
      (4) (Domain)
      属性取值范围称为该属性的域。
    • (5) 实体型(Entity Type)
      实体名及其属性名集合来抽象和刻画同类实体称为实体型
    • (6) 实体集(Entity Set)
      同一类型实体的集合称为实体集
    • (7) 联系(Relationship)
      • 现实世界中事物内部以及事物之间联系在信息世界中反映为实体内部的联系和实体之间的联系。
      • 实体内部的联系通常是指组成实体的各属性之间的联系
      • 实体之间的联系通常是指不同实体集之间的联系

    (3)两个实体型之间的联系

    在这里插入图片描述

    ① 一对一联系(1:1)

    实例

    • 一个班级只有一个正班长
    • 一个班长只在一个班中任职
      在这里插入图片描述

    定义:
    如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然。则称实体集A与实体集B具有一对一联系,记为1:1

    ② 一对多联系(1:n)

    实例

    • 一个班级中有若干名学生,
    • 每个学生只在一个班级中学习
      在这里插入图片描述
      定义:
      如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n

    ③ 多对多联系(m:n)

    实例

    • 课程与学生之间的联系:
    • 一门课程同时有若干个学生选修
    • 一个学生可以同时选修多门课程
      在这里插入图片描述
      定义:
      如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n

    (4)两个以上实体型之间的联系

    ① 一对多联系(1:m||1:n)

    • 若实体集E1,E2,…,En存在联系,对于实体集Ej(j=1,2,…,i-1i+1,…,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1E2,…,Ei-1,Ei+1,…,En之间的联系是一对多的。

    实例

    • 课程、教师与参考书三个实体型
      一门课程可以有若干个教师讲授,
      使用若干本参考书,
      每一个教师只讲授一门课程,
      每一本参考书只供一门课程使用

    在这里插入图片描述

    ② 一对一联系(1:1:1)

    实例

    • 一个独生子女只有一个父亲,一个母亲
    • 一个父亲也只有一个独生子女
    • 一个母亲也只有一个独生子女
      在这里插入图片描述

    ③ 多对多联系(m:n:p)

    实例
    供应商、项目、零件三个实体型
    一个供应商可以供给多个项目多种零件
    每个项目可以使用多个供应商供应的零件
    每种零件可由不同供应商供给
    在这里插入图片描述

    (5)单个实体型内的联系

    ① 一对多联系(1:n)

    实例
    职工实体型内部具有领导与被领导的联系
    某一职工(干部)“领导”若干名职工
    一个职工仅被另外一个职工直接领导
    这是一对多的联系

    在这里插入图片描述

    ② 一对一联系(1:1)

    • 身份证可以唯一确认一个人的身份,人与身份证有确认和被确认的关系
    • 一个身份证唯一确定一个人
    • 一个人也唯一确认一个身份证
      在这里插入图片描述

    ③ 多对多联系 (m:n)

    • 饮料和厂商之间有制造和被制造的关系
    • 多个饮料可以被多个厂商制造
    • 多个厂商可以制造出多种饮料
      在这里插入图片描述

    (6)概念模型的一种表示方法

    ① 实体-联系方法(E-R方法)

    • E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用E-R图来描述现实世界的概念模型
    • E-R方法也称为E-R模型

    ② 实体型

    用矩形表示,矩形框内写明实体名。
    在这里插入图片描述

    ③ 属性

    用椭圆形表示,并用无向边将其与相应的实体连接起来
    在这里插入图片描述

    ④ 联系

    • 联系本身:
      用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
      在这里插入图片描述

    ⑤ 联系的表示方法

    在这里插入图片描述

    ⑥ 联系的表示方法示例

    在这里插入图片描述

    ⑦ 联系的属性

    • 联系本身也是一种实体型也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来
      在这里插入图片描述

    ⑧ 一个实例

    用E-R图表示某个工厂物资管理的概念模型

    • 实体
      仓库: 仓库号、面积、电话号码
      零件 :零件号、名称、规格、单价、描述
      供应商:供应商号、姓名、地址、电话号码、帐号
      项目:项目号、预算、开工日期
      职工:职工号、姓名、年龄、职称

    实体之间的联系如下:

    • (1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
      (2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,仓库和职工之间是一对多的联系。职工实体型中具有一对多的联系
      (3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员。
      (4)供应商、项目和零件三者之间具有多对多的联系
      在这里插入图片描述

    5.非关系模型

    (1)层次模型(Hierarchical Model)

    • 层次模型是数据库系统中最早出现的数据模型
    • 层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统
    • 层次模型用树形结构来表示各类实体以及实体间的联系

    ① 数据结构

    满足下面两个条件的基本层次联系的集合为层次模型

    • 有且只有一个结点没有双亲结点,这个结点称为根结点
    • 根以外的其它结点有且只有一个双亲结点

    层次模型中的几个术语
    根结点,双亲结点,兄弟结点,叶结点
    在这里插入图片描述

    ② 特点

    • 结点的双亲是唯一
    • 只能直接处理一对多的实体联系
    • 每个记录类型可以定义一个排序字段,也称为·码字段
    • 任何记录值只有按其路径查看时,才能显出它的全部意义
    • 没有一个子女记录值能够脱离双亲记录值而独立存在

    在这里插入图片描述
    在这里插入图片描述

    ③ 多对多联系在层次模型中的表示

    方法:

    • 将多对多联系分解成一对多联系

    分解方法:

    • 冗余结点法
    • 虚拟结点法

    ④ 数据操纵与完整性约束

    层次模型的数据操纵:

    • 查询
    • 插入
    • 删除
    • 更新

    层次模型的完整性约束条件:

    • 无相应的双亲结点值就不能插入子女结点值
    • 如果删除双亲结点值,则相应的子女结点值也被同时删除
    • 更新操作时,应更新所有相应记录,以保证数据的一致性

    ⑤ 存储结构

    邻接法:
    按照层次树前序遍历(T-L-R)的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。又可分为:子女-兄弟链接法层次序列链接法

    在这里插入图片描述

    ❶ 子女-兄弟链接法
    • 每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟
      在这里插入图片描述
    ❷ 层次序列链接法
    • 按树的前序穿越顺序链接各记录值
      在这里插入图片描述

    ⑥ 优缺点

    • 优点:
      层次模型的数据结构比较简单清晰
      查询效率高,性能优于关系模型,不低于网状模型
      层次数据模型提供了良好的完整性支持
    • 缺点:
      多对多联系表示不自然
      插入删除操作的限制多,应用程序编写比较复杂
      查询子女结点必须通过双亲结点
      由于结构严密,层次命令趋于程序化

    (2)网状模型(Network Model)

    网状数据库系统采用网状模型作为数据的组织方式

    • 典型代表是DBTG系统:
      亦称CODASYL系统
      70年代由DBTG提出的一个系统方案
      奠定了数据库系统的基本概念、方法和技术
    • 实际系统:
      Cullinet Software Inc.公司的 IDMS
      Univac公司的 DMS1100
      Honeywell公司的IDS/2
      HP公司的IMAGE

    ① 数据结构

    网状模型:
    满足下面两个条件的基本层次联系的集合:

    1. 允许一个以上的结点无双亲;
    2. 一个结点可以有多于一个的双亲。

    表示方法(与层次数据模型相同):
    实体型:用记录类型描述
    每个结点表示一个记录类型(实体)
    属性:用字段描述
    每个记录类型可包含若干个字段
    联系:用结点之间的连线表示记录类型(实体)之
    间的一对多的父子联系

    网状模型与层次模型的区别:

    • 网状模型允许多个结点没有双亲结点
    • 网状模型允许结点有多个双亲结点
    • 网状模型允许两个结点之间有多种联系(复合联系)
    • 网状模型可以更直接地去描述现实世界
    • 层次模型实际上是网状模型的一个特例

    网状模型中子女结点与双亲结点的联系可以不唯一
    要为每个联系命名,并指出与该联系有关双亲记录子女记录
    在这里插入图片描述
    在这里插入图片描述

    多对多联系在网状模型中的表示:
    方法:将多对多联系直接分解成一对多联系

    例如:一个学生可以选修若干门课程,·某一课程可以被多个学生选修,学生与课程之间是多对多联系 ·

    • 引进一个学生选课的联结记录,由3个数据项组成
      学号
      课程号
      成绩
      表示某个学生选修某一门课程及其成绩

    在这里插入图片描述

    ② 网状数据模型的操纵与完整性约束(续)

    网状数据库系统(如DBTG)对数据操纵加 了一些限制,提供了一定的完整性约束

    • :唯一标识记录的数据项的集合
    • 一个联系中双亲记录子女记录之间是一对多联系
    • 支持双亲记录和子女记录之间某些约束条件

    ③ 存储结构

    关键:

    • 实现记录之间的联系

    常用方法:

    • 单向链接
    • 双向链接
    • 环状链接
    • 向首链接

    在这里插入图片描述

    ④ 优缺点

    • 优点
      能够更为直接地描述现实世界,如一个结点可以有多个双亲;
      具有良好的性能,存取效率较高;

    • 缺点
      结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握;
      DDL、DML语言复杂,用户不容易使用;

    6.关系模型

    关系数据库系统采用关系模型作为数据的组织方式
    1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型
    计算机厂商新推出的数据库管理系统几乎都支持关系模型

    (1)数据结构

    在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由组成。
    几个名词解释:

    • 关系(Relation)
      一个关系对应通常说的一张表

    • 元组(Tuple)
      表中的一行即为一个元组

    • 属性(Attribute)
      表中的一列即为一个属性,给每一个属性起一个名称即属性名

    • 主码(Key)
      表中的某个属性组,它可以唯一确定一个元组

    • (Domain)
      属性的取值范围。

    • 分量
      元组中的一个属性值。

    • 关系模式
      对关系的描述
      关系名(属性1,属性2,…,属性n)
      学生(学号,姓名,年龄,性别,系,年级)
      在这里插入图片描述
      举几个例子:

    • 例1
      学生、系、系与学生之间的·一对多联系:
      学生(学号,姓名,年龄,性别,系号,年级)
      系 (系号,系名,办公地点)

    • 例2
      系、系主任、系与系主任间的一对一联系

    • 例3
      学生、课程、学生与课程之间的多对多联系:
      学生(学号,姓名,年龄,性别,系号,年级)
      课程(课程号,课程名,学分)
      选修(学号课程号,成绩)

    规范化:

    • 关系必须是规范化的,满足一定的规范条件
    • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
    • 图1.27中工资和扣除是可分的数据项 ,不符合关系模型要求
      在这里插入图片描述

    在这里插入图片描述

    (2)关系数据模型的操纵与完整性约束

    • 数据操作是集合操作,操作对象和操作结果都是关系
      查询
      插入
      删除
      更新

    • 数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”

    • 关系的完整性约束条件
      实体完整性
      参照完整性
      用户定义的完整性

    (3)存储结构

    • 实体及实体间的联系都用来表示
    • 表以文件形式存储
      有的DBMS一个表对应一个操作系统文件;
      有的DBMS自己设计文件结构;

    (4)优缺点

    • 优点
      • 建立在严格的数学概念的基础上;
      • 概念单一:
        实体和各类联系都用关系来表示;
        对数据的检索结果也是关系;
      • 关系模型的存取路径对用户透明;
        具有更高的数据独立性,更好的安全保密性
        简化了程序员的工作和数据库开发建立的工作;
    • 缺点
      • 存取路径对用户透明导致查询效率往往不如非关系数据模型;
      • 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度;

    7.面向对象数据模型

    • 语义数据模型面向对象程序设计方法结合起来,用面向对象观点来描述现实世界实体(对象)的逻辑组织对象间限制联系等的模型

    • 一系列面向对象核心概念构成了面向对象数据模型( Object Oriented Data Model, 00模型)的基础,主要包括以下一些概念:

      • (1)现实世界中的任何事物都被建模为对象。每个对象具有一个唯一的对象标识
        (OID)。
      • (2)对象是其状态和行为的封装,其中状态是对象属性值的集合,行为是变更对象状
        态的方法集合。
      • (3)具有相同属性和方法的对象的全体构成了类,类中的对象称为类的实例。
      • (4)类的属性的定义域也可以是类,从而构成了类的复合。类具有继承性,一个类可以继承另一个类的属性与方法,被继承类和继承类也称为超类和子类。类与类之间的复合与继承关系形成了一个有向无环图,称为类层次。
      • (5)对象是被封装起来的,它的状态和行为在对象外部不可见,从外部只能通过对象显式定义的消息传递对对象进行操作。
    • 面向对象数据库(OODB)的研究始于20世纪80年代,有许多面向对象数据库产品相继问世,较著名的有Object Store、02、ONTOS等。

    • 与传统数据库一样,面向对象数据库系统对数据的操纵包括数据查询、增加、删除、修改等,也具有并发控制、故障恢复、存储管理等完整的功能。不仅能支持传统数据库应用,也能支持非传统领域的应用,包括CAD/CAM、OA、CIMS、GIS以及图形、图像等多媒体领域、工程领域和数据集成等领域。

    • 尽管如此,由于面向对象数据库操作语言过于复杂,没有得到广大用户,特别是开发人员的认可,加上面向对象数据库企图完全替代关系数据库管理系统的思路,增加了企业系统升级的负担,客户不接受,·面向对象数据库产品终究没有在市场上获得成功。

    8.对象关系模型

    • 对象关系数据库系统(Object Relational DataBase System, ORDBS) 是关系数据库面向对象数据库的结合。
    • 它保持了关系数据库系统的非过程化数据存取方式和数据独立性,继承了关系数据库系统已有的技术,支持原有的数据管理,又能支持00模型和对象管理。各数据库厂商都在原来的产品基础上进行了扩展。
    • 1999 年发布的SQL标准(也称为SQL99),增加了SQL/Object Language Binding, 提供了面向对象的功能标准。SQL99对ORDBS标准的制定滞后于实际系统的实现。所以各个ORDBS产品在支持对象模型方面虽然思想一致,但是所采用的术语、语言语法、扩展的功能都不尽相同。
    展开全文
  • 本文探讨了遗传算法在面向对象模型中的应用。 当我们在面向对象的系统中实现遗传算法的任何应用程序时,由于在任何应用程序中都可以使用毫无价值的处理能力,因此提高了系统效率并获得了发展动力。 面向对象的设计...
  • 面向对象模型的介绍

    千次阅读 2019-06-05 09:17:20
    面向对象模型 什么是面向对象呢?就是描述业务和操作员之间的关系,就是这个模块是谁操作的,就是权限。 一、所谓的面向对象模型,其实就是你要分析所做的系统,有多少个操作人员,就比如以下截图中的这个系统: ...
    开发工具与关键技术:PowerDesigner 数据库
    作者:何钦波
    撰写时间:2019/ 6 /8
    

    面向对象模型
    什么是面向对象呢?就是描述业务和操作员之间的关系,就是这个模块是谁操作的,就是权限。
    一、所谓的面向对象模型,其实就是你要分析所做的系统,有多少个操作人员,就比如以下截图中的这个系统:
    在这里插入图片描述
    上面截图中就有顾客、销售员、管理员这三种操作人员,那三种操作人员能操作那些模块呢?
     对于管理员来说呢:他可以对物品进行分类,也可以进行销售。
     对于销售员呢:他本职不就是进行销售吗,然而,他也可以发送电子邮件。
     对于顾客:他就可以查找一些商品,也可以发送电子邮件。
    所以,面向对象模型就是我们的操作人员所操作的对应的模块。
    举个例子,就比如学校系统,有多少个用户,学生、教师、管理员:
    学生可以看成绩,可以考试等等,就是模块跟用户之间的关系。

    二、接下来就是创建面向对象模型
    创建的路径:File—New Model—Object-Oriented Model
    然后到Diagram,想用那种就用那种建,而我们平常用的最多的就是下面截图中画圈的
    在这里插入图片描述
    三、右边的工具栏,看下面的截图:
    在这里插入图片描述
    图中1的人表示的是用户
    图中2表示的模块
    图中3表示的关系连线

    以上就是面向对象模型的介绍!

    展开全文
  • 本文重在模型之间的比较(优缺点、适用范围等),而不在于模型定义的阐述.^-^ 不过还是要先提几个基本概念滴: 1.软件生存周期:软件是会迭代的,软件从生到死的整个过程被称为软件生命周期(Software Development...

    本文重在模型之间的比较(优缺点、适用范围等),而不在于模型定义的阐述.^-^

    不过还是要先提几个基本概念滴:

    1.软件生存周期:软件是会迭代的,软件从生到死的整个过程被称为软件生命周期(Software Development Life Cycle,SDLC)。

    一般的,可分为定义、开发和运行三个时期,又可细分为以下六个阶段:问题的定义和可行性分析、项目计划、需求分析、软件设计、编码与测试、运行与维护。

    2.软件过程是整个软件生命周期中一系列有序的软件生产活动的流程。

    3.软件过程模型:为了高效地开发一个高质量的软件产品,用一个合理的框架来规范描述软件生命周期中的各个流程,这个框架(开发模型)就是软件过程模型。可分为三类:传统模型、面向对象模型和敏捷开发模型(本次只介绍前两个,敏捷还没学嘛)

    下面来介绍传统模型:

    传统模型

    那就不得不提到最早也是应用最广泛的软件过程模型————瀑布模型

    瀑布模型将软件生命周期分为软件计划、需求分析、软件设计、软件实现、软件测试、运行和维护等六个阶段,每一阶段是“阻塞式”的,即必须完成当前部分才能进行下一步活动。这六个阶段自上而下执行,开发进程从一个阶段“流动”到下一个阶段,如果发现问题则考虑返回上一层修改。

    (1)优点:

    1.再每个阶段都有检查点,当本阶段完成后,可以更有信心地专注于下一阶段

    2.瀑布模型是文件驱动模型,瀑布模型再执行过程中留下了完整的文档记录,有利于降低后期软件维护的成本

    3.提出了一套完整的科学的软件开发流程(其迭代思想被多个模型借鉴),使工程师可以工程化的完成软件的开发与设计。

    (2)缺点:

    1.“推迟实现”的指导思想使用户在工程后期才看到开发成果,这增加了开发风险,且越往工程后期发现错误后改正的代价越大,甚至需要推翻重来,举个栗子:做好一辆汽车后才忽然想起没安倒车灯,这得重新设计电路,把底盘都卸了重装啊!Tcl !

    2.不能混好的适应用户需求的变化,比如:编完代码,写完测试,用户告诉你这个地方要改一下,懂吧...

    3.增加工作量,秃头的程序员宝宝不仅要敲代码,还得写文档T_T

    (3)使用范围:

    产品定义明确且稳定,需求不会频繁变化

    和用户合作愉快,完整且周期的理解了用户需求,保证软件的正确性

    因负责各个子模块的成员在不同机构或者在不同地理位置等因素,交流不方便的团队

     

    原型模型  尽快得到一个实际系统的小样,然后让用户评价,之后反复修改原型,直到用户满意为止

    (1)优点:

    可以尽快看到模型小样

    借助小样明确需求,方便开发人员与用户交流

    尽快占领市场

    (2)缺点:

    用户开始看到的原型版本功能不全,如果一开始用户的需求就混明确,这不是浪费时光嘛!

    (3)适用:

    开始没太想好软件功能,或者需求总在变化的软件

    开发周期很长的项目

     

    增量模型是瀑布模型的进阶,分为增量构造模型和演化提交模型

    (一)增量构造模型

    增量构造模型

    (二)演化提交模型

     演化提交模型

     

    (1)优点:

    将具体的实现分成不同的模块,各个模块可以并行,缩短开发时间

    有利于软件的扩展性

    用户可以尽早看到部分软件功能,有利于明确需求,改正错误

    分批次交付,先完成主要功能,然后添加次要功能,有利于尽早占领市场

    降低开发风险,一般某个模块开发失败或者延期交付不会影响其他模块的开发

    (2)缺点

    实际上,有些模块在使用时必须要用到其他模块,必须事先定义好接口

    增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。

     

    (3)适用:

    需求不明确且开发周期长的项目

    需求变化大,需要及时响应市场需求的项目

     

    螺旋模型 结合了瀑布模型和快速原型模型的迭代开发模型(!!!强调了其他模型忽略的风险分析

    螺旋模型

    (1)优点:

    螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。

    同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。所以还兼具原型模型的优点

    (2)缺点:

    实际上有时候开发人员并不能真正判断是否会发生风险(例如系统正在走向灾难时,开发人员可能还认为一切正常),这就要求软件开发人员具有丰富的风险评估经验和这方面的专门知识。

    增加成本(请人不花小钱钱吗?)。

     

    (3)适用:

    风险较大且开发难度大的项目

     

    面向对象软件过程模型

    构件集成模型

    整个系统模块化;复用构件库中的软件构件

    (本来要附图片的,但是没找着)

    (不好意思,没找到图片)    (不好意思,没找到图片)                                  

    (1)优点:

    实现软件的重用,提高软件开发的效率,降低了开发成本和开发风险

    (2)缺点:

    可重用性与软件高效性不可兼得

    过分依赖构件库会导致软件质量下降

    (3)适用范围:

    已有软件的扩展

    需要开发的软件大部分功能可以通过构件库实现

    其实适用范围蛮广的@(--_--)@

    统一过程模型(RUP/UP,Rational Unified Process)

    风险驱动的、基于用例的、以架构为中心的迭代的可配置的开发流程

    统一模型(图文不完全一致,是网上找到的比较清晰的图)

    横轴:一次迭代过程中的四个阶段:初始、细化、构建、移交

    纵轴:五个核心流:需求、分析、设计、实现、测试

    我的理解:根据软件的特点,每隔一段时间都要进行一次大的迭代,即整个横轴(全过程四个阶段:初始、细化、构建、移交)的一次迭代。在一次大的迭代过程中,五个核心流贯穿其中,即四个阶段都包含这五个核心流(只是不同核心流在不同阶段的参与程度不同)。而每个阶段也可以采用多次迭代的方法来完成和完善。

     

    (1)优点:

    统一模型是基于构件的开发模型,较好的实现代码重用

    用例驱动的、可配置的,对需求变化有较好的适应力

    每一次迭代得到的都是可交付的版本,用户可以较早看到开发成果,缩短了版本间的开发周期

    迭代过程中加入了风险分析,可以减少软件开发风险,或者较早的发现错误

    (2)缺点:

    不支持多项目开发,这一定程度上降低了软件的重用

    (3)适用于:

    准备长时间开发和维护的软件

    其实蛮多都可以用滴

    OVER!

     

    参考资料及说明

    图片来源:抱歉第一次写博客,没存原图片的网址,只有两个图片的原网址可以找到_(:_」∠)_(如果图片所有者能看到我的博客,请您在我的博客上留言,我可以撤掉图片)

    一图二图来自百度文库的一份PPT,三图好像来自百度百科,表情包来自本机,最后一张图来自photo.blog.sina.com.cn

    参考书籍

    《软件过程方法与实践》第三版,机械工业出版社

    参考网址:

    抱歉抱歉,分两天写的,第一天的网址又没存,只剩今天的一个了https://blog.csdn.net/shadowyelling/article/details/7412336

     

    第一次写博客,诸多不足之处,请指教。

     

     

     

     

     

     

    展开全文
  • 教案UML 面向对象模型PowerDesigner 1. 实战项目训练教案 未定义书签错误!示例 .UML . 1 面向对象模型 .1.9 2. . 1动态模型 . 授课教师李祥 分钟课时90 面向对象模型1. 统一建模语言的图形来描述系统结构的模型它从...
  • 第7章 面向对象模型

    2015-01-18 23:36:26
    运用PowerDesigner 16建立面向对象模型
  • 论文研究-面向对象模型管理方法的研究及应用.pdf, 针对传统模型管理中存在的缺陷,把目前在软件开发领域中运用非常成功的面向对象技术应用到模型管理中,提出了面向对象...
  • 论文研究-基于面向对象模型库的DSS可重用体系结构研究.pdf, 通过对DSS中模型结构的研究,给出了基于面向对象模型库及其动态管理系统的DSS可重用体系结构,以及该体系结构...
  • 业务模型;UML类图

    因为欣赏所以转载,原文地址 http://blog.csdn.net/sunleap/article/details/4976993

    开发的流程有以下几步:

    image

                   对象图

    • 组织视图:组织结构的静态模型。包括:层次组织结构的人员(people not human)资源,生产资源(比如,设备,运输等)以及计算机、通信网络结构等。 
    • 数据视图:业务信息的静态模型。包括:数据模型,知识结构,信息载体,技术术语和数据库模型等。 
    • 功能视图:业务流程任务的静态模型。包括:功能层次,业务对象,支持系统和应用软件等。 
    • 控制(业务)视图:动态模型,展示流程运转情况,并能够将业务流程与流程相关的资源、数据以及功能等联系起来。包括:事件驱动过程链、信息流、物流、通信图、产品定义、价值增值图等。
    业务模型的画法可以用任何编辑工具如Visio、word完成,当然目前PowerDesigner、Erwin等专业工具也支持业务模型。
    数据模型是对企业或信息系统种的数据特征的抽象,随着数据库技术的大量使用,主要指数据库模型。
      数据模型所描述的内容包括三个部分:数据结构、作用于数据上的操作、数据约束。
      1)数据结构:数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。
      2)数据操作:数据模型中数据操作主要描述在相应的数据结构上的操作类型和操作方式。
      3)数据约束:数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。
      数据模型按不同的应用层次分成三种类型:分别是概念数据模型、逻辑数据模型、物理数据模型。
      1)概念数据模型(Conceptual Data Model):简称概念模型,主要用来描述世界的概念化结构,与具体的数据库系统无关。概念数据模型必须换成逻辑或物理数据模型,才能在数据库系统中实现。概念数据模型中最常用的是E-R模型。
      2)逻辑数据模型(Logical Data Model):简称数据模型,这是从数据库所看到的模型,是具体的数据库管理系统所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等等。此模型既要面向用户,又要面向系统。
      3)物理数据模型(Physical Data Model):简称物理模型,是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构。物理数据模型的设计要考虑数据管理的性能问题,它不但与具体的数据库系统有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有起对应的物理数据模型。
    可以利用PowerDesigner、Erwin、Oracle Data builder、Infosphere Data Architect、Rose等建模工具建立数据模型。
    这个应该是软件开发者喜欢的模型,使用面向对象分析(OOA)和面向对象设计(OOD)过程中所建立模型,包括类图、对象图、状态图以及与之相关的活动图、顺序图、组件图等,可以利用UML建模工具,如Rose、Infosphere DataArchitect等工具以及软件
    集成开发工具(Eclipse、Netbeans)建立面向对象模型。当然有些数据建模工具也支持面向对象模型。
    数据挖掘模型的概念虽然重要,但没有比较权威的解释,我说一下自己的理解,使用数据挖掘算法建立的,描述数据之间的关系模型就叫数据挖掘模型。
    数据挖掘模型的表现形式多种多样,跟数据挖掘算法有关,也跟我们要进行的后续操作有关。比如表现学生身高体重关系的函数(可以是直线、曲线、二次函数、多项式函数)是一个数据挖掘模型;表现超市商品关联关系的关联规则集合也是一个数据挖掘模型;表现银行客户分类情况的决策树也是一个数据挖掘模型。
     

    各个阶段的UML图

    (1)需求阶段是:用例图

    (2)分析阶段是:类图、序列图

    (3)设计阶段:类图、序列图与平台结合

    业务建模工作步骤:

    (1)选定业务单元

    (2)识别业务执行者

    (3)识别业务用例

    (4)详述业务用例

    (5)建立业务对象模型

        类图(Class Diagram)应该是使用的最多的一种UML图。其语法并不复杂,可能只需要几天时间就能掌握,但是其背后的面向对象(OO)思想却是需要日积月累才能深刻理解。

     

    1、OOA(Object-Oriented Analysis 面向对象分析)

    2、OOD(Object-Oriented Design 面向对象设计)

    3、OOP(Object-Oriented Programming 面向对象编程)

    4、OOT(Object-Oriented Technology 面向对象技术)

     

    PS:无论是开发人员还是分析人员,这几种思想是必须要掌握的,作为开发人员来说,OO的思想,其深度和延伸内容可谓博大精深,值得花时间去学习。

     

        类可以视作一现实事物抽象出的统一的、相似的模型。

     

        对象可以看做是类的具体化,就像模具导出的产品一样。

     

        类图就是描述类与类之间关系的图。

    案例:


    1、识别出类。

    2、识别出类的主要属性。

    3、画出类之间的关系。

    4、对各类进行分析、抽象、整理。

        两个类之间有关系,但又不确定是什么关系,可以用关联关系表达。


    PS:关联关系如果出现数量上的对应可以写上数字表示数量,可以用角色关系表示两类分别处于什么角色,单向关联关系表示关联是单向的,只能由关联方找到被关联方。在写代码时,可以将其视作关联类包含了被关联类的一个引用。

        包含关系表示一个类包含另一个类。

    PS:包含关系分为两种,一种是弱包含关系,叫做聚合,为空心菱形,一种是强包含关系,叫做组合,为实心菱形。一开始可以将所有包含关系视作弱包含,当发现某些关系可以用强包含表示时,才转为强包含关系。

        当一个类是另一个类的子类时,可以使用泛化关系。

    PS:泛化关系通常也被称作继承关系,根据类的发现先后关系,如果是由父类导出子类,这样就可以说子类继承父类,如果是由子类导出父类,这样就可以说父类泛化子类。

     

        当一个类可以实现某个抽象类时,可以使用实现关系。

    PS:标识接口与类之间的关系用的比较多。

     

        当一个类需要另一个类协助时,可以用依赖关系表示。


        当某类使用或者包含自己时,可以使用递归关系。


        当发现两个类之间的关系不能用一般关系来表示,这时候可以用关联类来表示关系,这也就是三角关系。

    PS:可以通过思考属性是否恰当来识别出关联类关系,列出两类的关键属性之后,思考这些属性的属性值是不是由该类本身就可以确定,如果不能两类之间就可能有关联类关系。

     


        如果说类图代表了一类事物,那么对象图就代表着某个具体的事物。

    现实世界被业务模型映射并且记录下来,但 这只是原始需求信息,距离可执行的代码还很遥远,必须把这些内容再换成一种可以指导开发的表达方式。UML 通过称之为概念化的过程( Conceptual)来 建立适合计算机理解和实现的模型,这 个模型称为分析模型( Analysis Model)。分析模型介于原始需求和计算机实现之间,是一种过渡模型。分析模型向上映射了原始需求,计算机的可执行代码可以通过分析模型追溯到原始需求;同时,分析模型向下为计算机实现规定了一种高层次的抽象,这种抽象是一种指导,也是一种约束,计算机实现过程非常容易遵循这种指导和约束来完成可执行代码的设计工作。

    事实上分析模型在整个分析设计过程中承担了很大的职责,起到了非常重要的作用。绘制分析模型最主要的元模型有:

    边界类(boundary) 。边界是面向对象分析的一个非常重要的观点。从狭义上说,边界就是大家熟悉的界面,所有对计算机的操作都要通过界面进行。从广义上说,任何一件事物都分为里面和外面,外面的事物与里面的事物之间的任何交互都需要有一个边界。比如参与者与系统的交互,系统与系统之间的交互,模块与模块之间的交互等。只要是两个不同职责的簇之间的交互都需要有一个边界,换句话说,边界决定了外面能对里面做什么“事”。 在后续的章节中,读者会感受到边界的重要性,边界能够决定整个分析设计的结果。

    实体类(entity) 。原始需求中领域模型中的业务实体映射了现实世界中参与者完成业务目标时所涉及的事物,UML 采用实体类来重新表达业务实体。实体类可以采用计算机观点在不丢失业务实体信息的条件下重新归纳和组织信息,建立逻辑关联,添加那些实际业务中不会使用到,但是执行计算机逻辑时需要的控制信息等。这些实体类可以看作是业务实体的实例化结果。

    控制类(control) 。边界和实体都是静态的,本身并不会动作。UML 采用控制类来表述原始需求中的动态信息,即业务或用例场景中的步骤和活动。从UML 的观点看来,边界类和实体类之间,边界类和边界类之间,实体类和实体类之间不能够直接相互访问,它们需要通过控制类来代理访问要求。这样就把动作和物体分开了。考虑一下,实际上在现实世界中,动作和物体也是分开描述的。

    读者或许在小时候都玩过一个游戏,每个同学发四张小纸条,在第一张纸条上写上XXX 的名字,在 第二张纸条上写上在什么地方,在 第三张纸条上写上一个动作,在 第四张纸条上写一个物体,然后将这些字条分开放在四个箱子里,再随意地从这四个箱子里各取一张纸条,就能组成很多非常搞笑的句子,例如张XX 在公园里跳圆规之类的奇怪语句,一个班的同学常常笑得前仰后合。

    游戏虽然是游戏,但说明了一个道理,只要有人、事、物和规则(定语),就能构成一个有意义的结果,无非是是否合理而已。分析类也是应用这个道理来把业务模型概念化的。由于所有的操作都通过边界类来进行,能做什么不能做什么由边界决定,所以边界类实际上代表了原始需求中的“事”; 实体类则由业务模型中的领域模型转化而来,它代表了现实世界中的“物”; 控制类则体现了现实世界中的“ 规则”, 也 就是定语;再 加上由参与者转化而来的系统的“ 用户”, 这 样一来,“ 人”也有了。有了人、事、物、规则,我们就可以像那个游戏一样把它们组合成各种各样的语句,只不过不是为了搞笑,所以不能随意组合,而是要依据业务模型中已经描绘出来的用例场景来组合这些元素,让它们表达特定的业务含义。

    (1)业务模型:也称企业模型,它为企业提供一个框架结构,以确保企业的应用系统与企业经常改进的业务流程紧密匹配。可以说,也就是说业务建模主要是从业务的角度而非技术角度对企业进行建模。典型的建模方法包括Zachman框架、ARIS HOUSE模型等,业务模型一般包括下面一些视图:

    (2)数据模型

    (3)面向对象模型

    (4)数据挖掘模型

    展开全文
  • 如果说事务脚本是面向过程的,那么领域模型就是面向对象的。面向对象的一个很重要的点就是:“把事情交给最适合的类去做”,即:“你得在一个个领域类之间跳转,才能找出他们如何交互”,MartinFlower说这是面向对象...
  • 面向对象数据模型

    千次阅读 2018-03-28 09:22:25
    所谓面向对象数据模型指属性和操作属性的方法封装在称为对象类的结构中的模型。可以通过将一个对象类嵌套或封装在另一个类里来表示类间的关联,新的对象类可以从更一般化的对象类中导出,如:以下是描述面向对象数据...
  • PowerDesigner 面向对象模型(OOM)说明

    万次阅读 2011-10-17 00:00:32
     OOM 简介 Object-OrientedModel(OOM) 面向对象模型,一个OOM包含一系列包,类,接口 , 和他们的关系。 这些对象一起形成所有的 ( 或部份) 一个软件系统的逻辑的设计视图的类结构。 一个OOM本质上是软件系统的一个...
  • 在这里我不想列举学术上的定义,只谈一下我自己的理解:模型是为了模拟、演示、深入分析被研究对象而建造的任何形式的作品。根据这一理解,我们想一下:小时候折的纸飞机是不是模型呢?是的。售楼处摆放的楼盘模型...
  • 主要介绍了django框架面向对象ORM模型继承用法,结合实例形式分析了Django框架ORM模型抽象类继承、多表继承及代理模型继承三种继承方式实现技巧,需要的朋友可以参考下
  • 面向对象模型  面向对象模型是利用UML(统一建模语言)的图形来描述系统结构的模型,它从不同角度实现系统的工作状态。这些图形有助于用户,管理人员,系统分析人员,开发人员,测试人员和其他人员之间进行信息交流...
  • 面向对象分析三种模型

    千次阅读 2019-04-28 18:31:51
    模型 交互模型 状态模型
  • 面向对象分析与设计——对象模型

    千次阅读 2014-10-22 09:18:58
    对象模型  对象模型包括:抽象、封装、模块化、层次结构、类型、并发和持久   2.1 对象模型的演进   OO建立在以前技术的最佳思想之上。两大趋势:小规模→大规模;高级程序设计语言;   2.1.1 程序...
  • 面向过程、面向对象模型和方法

    千次阅读 2017-02-14 12:04:33
    Oriented)是一种以“过程”为中心的编程思想,所谓“面向过程”的编程就是以“什么事情发生”或“什么流程进行”为目标或单元进行编程,而面向对象的则是以“谁在受影响”或“谁作出什么反映”为指导进行编程。...
  •     模型是现实世界特征的模拟和抽象。在数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。 文章目录1.概念数据模型(CDM)2.逻辑数据...
  • 1.引言  经过几十年的发展,今天的GIS系统已经具备了较强的数据存贮、管理和输入输出功能,但目前大多数的...为此,作者为现有GIS软件总结了两种典型的数据模型[1]:拓扑关系数据模型面向实体的数据模型,并分析了
  • 第4讲 面向对象的方法学;数据与处理之间的关系;面向对象的方法学;面向对象方法学的四个要点;面向对象方法学的四个要点;...1. 对象模型;UML 类;服务;类的描述;UML类间关系关联;关联的角色;限定关联;关联类;
  • 1、软件的实质:程序+数据+文档。 2、软件工程的三维空间观:过程+方法+工具。...4、面向对象方法与软件过程模型  1)基本模型 线性顺序模型:瀑布模型迭代模型:原型法模型基于构件的开发模型  2
  • 面向对象分析中,主要由对象模型、动态模型和功能模型组成。对象模型是最基本、最重要、最核心的。 用面向对象方法开发软件,通常需要建立3种形式的模型,它们分别是描述系统数据结构的对象模型,描述系统控制...
  • 面向对象三种模型之间的关系

    万次阅读 2017-03-11 16:39:14
    功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候(即在何种状态下接受了什么事件的...在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定了基础,人们依靠对象模型完成3种模型的集成。
  • 第一章 面向对象及软件建模概述

    千次阅读 2017-12-01 09:03:41
    面向对象的软件建模 n6.统一建模语言UML 1 软件与软件工程  软件: 程序+文档+数据  特点:  (1)软件规模大。  (2)软件开发规范并趋于标准化。  (3)软件开发方法多,有大量的软件工具...
  • 面向对象名词解释

    千次阅读 2019-11-10 19:56:57
    面向对象:将现实生活中的事物封装成对象,通过对象的实例化和调用,完成需求。关注点是对象的属性和方法,忽略事物执行的顺序或过程。面向对象的特点有:抽象、封装、继承、多态。 抽象:抽象就是将现实生活中的...
  • 一、 酒店管理系统的需求分析 1、 组织结构图2、 系统功能需求3、数据库管理模块4、基本业务模块 二、 系统的UML建模 1、 系统的用例图\系统的类图\系统的顺序图/系统的协作图\系统的活动图\系统的状态图
  • 使用UML和面向对象方法论, 共21页文档, 包含完整的问题分析, 建模过程描述, 类图顺序图活动图等
  • 面向对象空间数据模型构建研究,王珂,佘江峰,空间数据模型是GIS应用的关键和基础,其研究影响了整个GIS发展的历程。本文根据面向对象空间数据模型的相关概念和特点,提出了面向

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 315,487
精华内容 126,194
关键字:

面向对象模型