实用软件工程 第7章 软件建模.ppt

上传人:少林足球 文档编号:3594453 上传时间:2019-09-15 格式:PPT 页数:132 大小:1.17MB
返回 下载 相关 举报
实用软件工程 第7章 软件建模.ppt_第1页
第1页 / 共132页
实用软件工程 第7章 软件建模.ppt_第2页
第2页 / 共132页
实用软件工程 第7章 软件建模.ppt_第3页
第3页 / 共132页
实用软件工程 第7章 软件建模.ppt_第4页
第4页 / 共132页
实用软件工程 第7章 软件建模.ppt_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《实用软件工程 第7章 软件建模.ppt》由会员分享,可在线阅读,更多相关《实用软件工程 第7章 软件建模.ppt(132页珍藏版)》请在三一文库上搜索。

1、实用软件工程,第7章 软件建模,软件开发的主要工作是软件需求和软件设计,软件需求和软件设计的关键问题是软件建模。 建模的工具很多,最时尚的是UML提供的九种图:类图、对象图、用例图、时序图、协作图、状态图、活动图、构件图和实施图,重点是建立系统的用例图、时序图和类图。 UML不是一种建模方法,而只是一种建模语言或建模工具而已。,本章导读:,提出了“业务模型、功能模型、数据模型” 三个模型的建模思想与建模方法,以及这三个模型的描述方式与“用例图、时序图和类图”之间的关系。 论述数据库设计的理论、方法、技巧与艺术,即数据模型的设计方法与艺术。,软件建模,要求了解 (1)软件建模的概念 (2) UM

2、L的建模思想 要求理解 (1)UML的支撑环境Rose (2)UML建模思想的优缺点 (3)三个模型建模思想的优缺点 要求掌握 (1)业务模型的概念及表示方式 (2)功能模型的概念及表示方式 (3)数据模型的概念及表示方式 (4)数据库设计的方法、技巧,7.1 三个模型的建模思想 7.1.1 三个模型概论,功能模型FM(Function Model) 描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。 业务模型OM(Operation Model) 对系统的操作流程进行定义(怎么做)。 数据模型DM(Data Model) 对系统的数据结构进行定义(数据怎么组织) 。,三个模型概论(

3、续),数据模型:Power Designer、ER win、Oracle Designer 或Class Diagram 功能模型:功能点列表、Use Case Diagram 业务模型:自然语言加上流程图、Sequence Diagram,1、建模时机:,功能模型和业务模型(需求分析时建模) 数据模型 (软件设计),2、三个模型建模工具,思考:三种模型建模思想是否适合系统软件建模?,问题: 1. 操作系统的三个模型是什么? 2. 编译系统的三个模型是什么? 3. 解释系统的三个模型是什么?,7.1.2 业务模型,系统的业务流程图加上相应的业务规则。这里的业务流程图,是指企业在业务流程再造BP

4、R(Business Process Reengineering)之后形成的操作流程和业务规则。,1、业务模型:,2、业务模型的范围: 企业的组织结构,部门职责及岗位(或角色)职能,岗位操作流程,岗位业务规则,每个流程的输入、响应、输出。,3、业务模型的描述方法: 组织结构图,岗位(或角色)职能表,业务流程图加上业务规则说明。,4、业务流程图,业务流程图也可以用业务操作步骤来描述,还可以用类似于程序流程图的图形来表达。,在UML中,完整的业务模型由用例图、时序图、交互图、状态图、活动图来表述。但是,时序图在表述中起到核心作用。 业务模型有时称为动态模型或操作模型。 业务模型的作用,既是功能模型

5、设计的基础,又是用户操作手册编写的依据。,取100元人民币的时序图,取100元人民币的交互图,“开户”的活动图,7.1.3 功能模型,1、功能模型是什么?, 系统功能需求列表(用户角度), 系统内部功能模块(功能部件)的有机排列 和组合 (设计者), 系统的用例的集合 (ROSE), 用户操作手册 (产品), 功能菜单 (操作菜单),总之,功能模型描述系统能做什么,是系统所有功能的集合,具体表现在系统的功能、性能、接口和界面上。,2、功能模型的表示方法,系统功能需求列表 性能需求列表 接口需求列表 界面需求列表 UML规定采用用例图来描述功能模型。,3、功能模型的设计实现方法,将相同的功能归并

6、,设计为构件或组件(部件),将不同的功能设计成模块,然后用面向对象的语言将这些离散的部件或模块组装起来,形成一个完整的系统,供最终用户使用。,4、功能模型的特点,功能模型既是动态的,又是静态的。因为有的功能与系统运行的时间序列有关。,5、功能模型的作用,功能模型既是数据库和数据结构设计的基础,又是功能模块(功能部件)设计、编程实现和测试验收的依据。,7.1.4 数据模型,企业信息系统中的数据模型,是指它的E-R图及其相应的数据字典。这里的数据字典,包括实体字典、属性字典、关系字典。,1、数据模型是什么?,数据模型分为概念数据模型CDM和物理数据模型PDM两个层次。CDM就是数据库的逻辑设计,即

7、E-R图。PDM就是数据库的物理设计,即物理表。,2、数据模型的表示方法,系统的概念数据模型CDM和物理数据模型PDM,加上相应的表结构。 UML规定,用类图加上对象图来表述数据模型。在UML的实现工具Rose 2003中,可以建立系统的数据模型。,3、数据模型的特点,数据模型本身是静态的,但是在设计者心目中,应该尽量将它由静态变成动态。 设计者可以想象数据(或记录)在相关表上的流动过程,即增加、删除、修改、传输与处理等。,图书销售系统数据库CDM,7.2 数据模型设计概论,“以不变应万变”,就是当用户的功能需求发生某些变化时,数据库设计的框架不需要做任何改动,就可以适应用户的功能需求。,1、

8、什么是好的数据模型?,(1) 一是满足功能需求 (2) 二是满足性能需求 (3) 三是该模型能长期稳定,尽量做到“以不变应万变”。,数据库设计的难易程度取决于两个要素: (1). “数据关系的复杂程度” (2). “数据量的大小”。,2、数据库设计的主要工作,设计数据库的表,表的结构就是数据的存储结构。,7.2.1 数据库与数据库管理系统,管理用户的数据库及其在数据库上的各种操作,以及数据库对外的各种接口。,1、两者区别?,数据库和数据库管理系统是有区别的,前者是应用软件,后者是系统软件。,2、数据库管理系统基本功能,关系数据库管理系统RDBMS自带许多编程语句(命令),这些语句可分为三大类:

9、数据定义语言DDL,如CREATE,ALTER,DROP;数据操纵语言DML,如SELECT,UPDATE,INSERT,DELETE;数据控制语言DCL,如分支语句、循环语句。,7.2.2 数据库的组成,数据库是表的集合,表由字段组成,表中存放着记录。由于记录的数据可以是原始数据、信息代码数据、统计数据和临时数据4种,所以又可将表划分为基本表、代码表、中间表和临时表4种。,1、组成,一个数据库由一台数据库服务器、一个数据库管理系统DBMS、一个数据库管理员DBA、多张表(每张表中有许多条记录)、表上的视图和索引、许多用户和角色所组成。,2、表的划分,原始数据和信息代码数据,统称为基础数据。本

10、表和代码表,统称为基表。 数据库设计主要是指基本表设计,包括代码表、中间表、临时表和视图的设计,基本表的设计较难,代码表、中间表、临时表和视图的设计较易。,3、数据库的表,(1)存放原始数据的表,称为基本表。 (2)存放信息代码数据的表,称为代码表。 (3)存放统计数据的表,称为中间表。 (4)存放临时数据的表,称为临时表。,基本表与中间表、临时表不同,有如下4个特性: (1)原子性。基本表中的字段是不可再分解的。 (2)原始性。基本表中的记录是原始数据的记录。 (3)演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。 (4)稳定性。基本表的结构是相对稳定的,表中的记录是需要长期保存

11、的。,4、基本表的性质,基表和中间表由DBA维护,临时表由程序员自己用程序自动维护。,5、其他表,代码表又称为“数据字典”,它是存放单位代码、物资代码、人员代码、科目代码等等信息编码的表。,中间表是存放统计数据的表,它是为数据仓库、输出报表或查询结果而设计的。,临时表是程序员个人设计的,存放临时记录,为个人所用。,视图是一种虚表,它依赖数据源的实表而存在,这些实表是基本表和代码表。,6、数据库视图,视图是供程序员使用数据库的一个窗口,是基表数据综合的一种形式, 是数据处理的一种方法,是用户数据保密的一种手段。,7.2.3 数据库设计的内容与步骤 (三项内容,十大步骤),数据库需求分析的步骤:

12、(1) 收集系统所有的原始单据(信息源产生的数据)和统计报表 (2) 弄清楚两者之间的关系,写明输出数据项中的数据来源与算法 (3) 若原始单据覆盖了所有需要的业务内容,并且能满足所有统计报表的输出数据要求,则需求分析完毕 (4) 反之继续分析,重复步骤(1)-(3)。,1、数据库需求分析,【例7-1】 “姓名,性别,身高,体重,民族”这一组相关元数据的集合,就组成人这个实体。而“张三,男,1.8,90,汉族” 就是人这个实体的一次表现,它不是一个实体,而是一个实例。如果将“体重”改为“毛重”,则“姓名,性别,身高,毛重,民族”就不是一个实体,因为人不能用毛重、净重描述,猪和货物可以用毛重、净

13、重描述。 概念设计的特点是:与具体的数据库管理系统和网络系统无关,它就是数据库的逻辑设计。,2、数据库概念设计,数据库概念设计是指设计出数据库的概念数据模型CDM,以及相应的数据字典(DD)。 所谓实体,就是一组相关元数据的集合。所谓实例,就是实体的一次表现。,数据库物理设计的方法是: (1)确定关系数据库管理系统平台,即选定具体的RDBMS。 (2)利用数据库提供的命令和语句,建立表、索引、触发器、存储过程、视图等。 (3)列出表与功能模块之间的关系矩阵,便于详细设计。,3、数据库物理设计,数据库物理设计是指设计出数据库的物理数据模型PDM,包括数据库服务器物理空间上的表、字段、索引、视图、

14、储存过程、触发器,以及相应的数据字典。,数据库设计十大步骤,7.3 数据库设计的理论与方法,原始单据与实体之间关系在一般是一对一的关系,即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系。这里的实体可以理解为基本表。 【例7-2】 在人力资源信息系统中,一份员工履历对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单据对应多个实体”的典型例子。,1、数据库原始单据与实体之间的关系,实体在哪儿呢?即如何发现、找到、抽象出实体呢?其实,实体就蕴涵在原始单据中!,主张主键原子化,即只用一个字段做主键。其中外键必须对应主键。,2、主键与外键,一个实体

15、不能既无主键 (PK),又无外键 (FK)。在E-R图中, 处于叶子部位的实体, 可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。,PK是供程序员使用的表间连接工具,可以是一个无物理意义的数字串, 由程序自动加1来实现;也可以是有物理意义的字段名或字段名的组合,不过前者比后者好。,第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。,3、通俗地理解范式理论,第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解。,第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性。 在数据库设计时,作为惟一性标志的主

16、键,最好是一个字段,而不是组合字段,这就是主键的原子性。,数据库设计规范化理论的实质,就是引导并帮助设计人员实现“实体、属性、主键的原子化”!,其他更高级的范式:BCF、4NF、5NF等各级范式,研究的内容是解决实体本身的原子性问题。,“只要实现了属性、主键、实体三者的原子化,就从根本上符合了各级范式的要求了”。这就是范式理论的实质!,降低范式就是增加字段,允许冗余。常称“降低范式的过程”为“反规范化设计过程”。,没有冗余的数据库设计,为了提高运行效率,必须降低范式标准,适当保留冗余数据,这就是用空间换时间。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时

17、考虑。,低级冗余和高级冗余,主键与外键在多表中的重复出现, 不属于数据冗余。非键字段的重复出现, 才是数据冗余,而且是一种低级冗余,即重复性的冗余。高级冗余不是字段的重复出现,而是字段的派生出现。 低级冗余会导致数据的不一致!,【例7-3】 有一张存放商品的基本表,如P163表7-3所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的做法。,在Rose 2002中,规定列有两种类型:数据列和计算列。“金额”这样的列被称为“计算列”,而“单价”和

18、“数量”这样的列被称为“数据列”。,4数据库设计中的两大窍门,窍门之二:要建立稳定的数据模型,就要掌握“以不变应万变”的设计技巧,这个技巧就是“列变行”。,站在IT企业的数据库开发上讲,数据库设计的核心窍门只有两个:,窍门之一:如果两个实体(或多个实体)之间的关系非常复杂,那么它们之间就可能存在多对多的关系。对于这种情况,我们不但要善于认别它,而且要正确处理它(增加第三者)。,增加第三者的实质,是解决关系的原子化问题。 在现实生活中,到处存在多对多的关系。例如:老师与课程、学生与课程、读者与图书、旅客与客房、司机与车辆、船舶与货物、飞机与机场、运动员与项目等。,增加第三者,寻找“笛卡尔积的子集

19、”的窍门,就是“要善于认别与正确处理实体之间的多对多关系”。 两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。 剩下的问题是:要将原来两个实体的共同属性分配到第三个实体中去,还要将原来两个实体的主键当作第三个实体的外键。这里的第三个实体,就是“笛卡尔积的子集”,它是一个实体,对应一张基本表。,多对多关系,多对多关系,具体做法,请看P165【例7-7】 学生成绩单的管理,就是一个“列变行”的例子。,列变行,所谓“列变行”,就是将第一个表中的某些列,变为第二个表中的某些行。将原来设计不科学的一个表,变为现在设计很科学的两个表:其中一个为主表或父表,另一个为从表或子表(

20、又称明细表),通过主键与外键,两个表进行连接,共同完成相关的操作。,(1). “列变行”之前的表结构,(2). “列变行”之后的表结构,列变行之后的输出方案- 建立“学生成绩表”视图,Create View 学生成绩表 As Select 学生表 .学号,姓名,课程名称,成绩 From 学生表 ,成绩表 Where 学生表 .学号=成绩表.学号,“列变行”的实质,“列变行”的实质是解决实体的原子性问题。 在现实生活中,到处存在需要“列变行”的例子,因为到处有主表与明细表的关系。例如:部门与员工、员工基本情况与个人简历、月基本工资与月补贴、订单头与订单体等等。,“列变行”之后的表结构设计中的优点

21、,就是“实事求是”。第一,在四年级之前,他们没有学完三十门课程,这种设计也不会浪费一点存储空间;第二,到四年级时,即使个别学生修了两个学位,共计有三十多门课程,这种设计也不需要改动表结构,达到了“以不变应万变”的目的。,5西瓜理论和西瓜方法,【定义7-5】 所谓西瓜方法,就是在数据库设计时,如果将属性比作芝麻,将主要实体比作大西瓜,将次要实体比作小西瓜,那么在用CASE工具设计E-R图时,应先画出大西瓜,后画出小西瓜,用西瓜统帅芝麻,用大西瓜统帅小西瓜。,【定义7-4】 所谓西瓜理论,就是在数据库分析时,如果将属性比作芝麻,将主要实体比作大西瓜,将次要实体比作小西瓜,那么芝麻必须围绕西瓜转,小

22、西瓜必须围绕大西瓜转。,“西瓜理论和西瓜方法”排除了“属性主导型”方法,主张“实体主导型”方法。,“实体主导型”方法只是提出了“以实体统帅属性”的思想,在数据库分析与设计时,首先要抓住实体,从实体出发去寻找、发现、确定属性,而不要采取本末倒置的“属性主导型”方法,即从属性出发,通过属性的分解与归约,来寻找、发现、确定实体。,(1) 在数据库需求分析和设计时,一方面要以实体去统帅属性,另一方面要以主要实体去统帅次要实体; (2) 不但要使属性围绕实体转,而且要使次要实体围绕主要实体转; (3) 在任何信息系统的全局E-R图中,其主要实体的数目都是有限的,数据库分析与设计的任务,就是善于发现、捕获

23、主要实体,并用主要实体去组织、规划、设计全局E-R图。,“西瓜理论和西瓜方法”除了继承“实体主导型”方法的特点之外,还更进一步地提出:,画E-R图的步骤,在西瓜理论和西瓜方法的指导下,利用CASE工具画E-R图的步骤是: (1) 先画主要实体 (抓大西瓜) ,用大西瓜来统帅中小西瓜; (2) 再画次要实体 (抓中西瓜) ,使中西瓜围绕大西瓜转 ; (3) 后画代码实体 (抓小西瓜) ,使小西瓜围绕中西瓜转; (4) 最后分配或补充实体的属性 (捡芝麻) ; (5) 画关系,调整E-R图的部署,检查数据库设计是否实现了四化(属性、实体、主键、关系的原子化)。,6完整性约束表现在三个方面,(3)用

24、户定义完整性:它是用户单位规定的一些业务规则,这些业务规则有时用存储过程实现,有时用触发器来实现,有时用定义域(对字段的取值范围进行定义)来实现。业务规则反映用户单位的业务逻辑,必须在数据库需求分析时彻底搞清。,(1)实体完整性:每个实体必须有唯一性标志,这个唯一性标志是用实体的主键(PK)来实现。,(2)参照完整性。就是由主表到从表的方向是参照关系,由从表到主表的方向是依赖关系。参照和依赖关系,是通过主键(PK)、外键(FK)和触发器来加以实现。关系数据库的本质,就是分析、研究、处理主表与从表的关系,即主键与外键的关系。,7防止数据库设计打补丁的方法是“三少原则”,(3)一个表中的字段个数越

25、少越好。只有字段的个数少,才能说明系统中不存在数据重复,且很少有数据冗余,学会“列变行”,这样就防止了将子表中的字段拉入到主表中去,在主表中留下许多空余的字段。,(1)一个数据库中表的个数越少越好。只有表的个数少了,才能说明系统的E-R图少而精,去掉了重复的、多余的实体,形成了对客观世界的高度抽象。,(2)一个表中组合主键的字段个数越少越好,最好是用一个字段做主键,即主键原子化。因为主键的作用,一是建立主键索引,二是作为从表的外键,所以组合主键的字段个数少了,不仅节省了运行时间,而且节省了索引存储空间。,7.4 信息系统建模实例分析 省级新华书店信息系统建模案例,以上面三个主要实体为中心,并将

26、所有的次要实体统帅起来,使所有的次要实体都以这三个实体为中心,形成一个完整的新华书店信息系统数据模型。,1数据模型分析,从全局实体关系图中,CDM有以下3个主要实体: (1)图书:它存放了新华书店历年来发行的全部图书信息。 (2)仓库图书:它存放了储运中心仓库现有的全部图书信息。 (3)门市图书:它存放了书城或连锁书店各自现有的全部图书信息。,数据模型分析(续),每个实体的名称、主键、属性在CDM图上显示得很清楚。根据概念数据模型CDM,利用Power Designer Data Architect工具,就可自动生成物理数据模型PDM。,在省级新华书店信息系统的概念数据模型CDM中,与“图书”

27、直接关联的实体有:出版社、仓库图书、书城入库、订购单体、书城订单、图书警戒线。,与“仓库图书”直接关联的实体有:现货批销、付退货、图书报废、入库单、仓库货位、市外调拨、内部迁移、内退入库、市内配送、图书。,与“门市图书”直接关联的实体有:市内配送、内退入库、销售记录、书店、书城入库。,2功能模型分析,(1)“输入内容”是用户对信息系统的录入。 (2)“输出内容”是信息系统对外的显示或打印。 (3)“系统响应”是系统对用户操作的处理过程。,省级新华书店信息系统的功能模型具有16项功能,用“功能点列表”的方式来描述和分析,现将分析结果列在表7-7之中。,3业务模型分析,步骤1:制作订购单操作流程。

28、 步骤2:制作订单操作流程。 步骤3:图书期货入库操作流程。 步骤4:图书配送操作流程。 步骤5:图书销售操作流程。 步骤6:图书退货操作流程。 步骤7:图书调拨操作流程。 步骤8:图书现货批销操作流程。 步骤9:查询统计。 步骤10:制作记账凭证。,业务模型属于动态模型,本实例分析中用“业务操作步骤”来描述。省级新华书店信息系统的业务模型由下列10大步骤组成。,4分析结论,在此基础上,再对新华书店信息系统进行概要设计和详细设计。 当详细设计评审通过(不符合项为零)后,再利用Power Builder,Delphi,C+等语言进行实现,加上面向功能的测试和面向过程的管理,系统按计划(进度、成本

29、、质量)实现。,对上述“三个模型”研究分析之后,完成了需求分析的主要工作量及概要设计中的主要内容数据库设计。,7.5 三个模型建模思想总结,(2)符合客观事物的发展规律。 做什么?系统“功能模型”的任务。 怎么做?系统“业务模型”的任务。 在什么地方做?做事的原材料在什么地方?做完后的产品放到什么地方?这就是系统“数据模型”的任务。,1三个模型建模思想的优点,(1)符合中国人的心理: 系统有什么功能?对应系统的“功能模型”。 系统怎么操作?对应系统的“业务模型”。 系统的数据怎样组织?对应系统的“数据模型”。,(4)符合“简单、方便、直观”的原则。 “功能模型”看得见:菜单、界面、报表。 “业

30、务模型”摸得着:操作说明书、业务流程图、业务规则。 “数据模型”听得懂:实体、属性、关系、表、字段、记录、数据字典、原始数据、统计数据、临时数据。,(3)符合将复杂问题简单化的哲学思想。 项目经理主要负责 “三抓”:抓系统的“功能模型”。 ,抓系统的“业务模型”,抓系统的“数据模型”。,(6)三个模型的建模思想既适合应用软件建模,又适合系统软件建模。,(5)符合节省成本降低费用的经济效益目标。中国软件的开发方法与文档标准,不应该完全与发达国家相同,而结合中国的国情来做。,(3)只能覆盖需求分析和设计两个阶段,不能覆盖整个软件生存周期。业务模型和功能模型主要适合在软件需求阶段建模,数据模型主要适

31、合在软件设计阶段建模。,2三个模型建模思想的缺点,(1)功能模型表述不规范:目前,功能模型还只能用“功能点列表、性能点列表、接口列表”这三个列表来表示,或者用UML的用例图和用况规约来描述,其他还没有找到更好的方法。,(2)业务模型表述不规范:目前,业务模型还只能从“业务操作步骤、业务流程图、用户操作手册”这三个方面来表示。在UML中,完整的业务模型由用例图、时序图、交互图、状态图、活动图来表述,其他还没有找到更好的办法。,(2)数据模型能否可以用类图来创建呢?不可以。 UML中新增加了数据模型的语法,其实现工具Rose 2003支持这一功能。在Rose 2003的逻辑视图中,可以创建表以及表

32、中的字段、约束、主键、外键、关系、索引、触发器和存储过程。这样,就将Rose的建模方式与三个模型的建模思想结合在一起。,3值得思考的问题,(1)业务模型和功能模型描述方法的改进和提高,是三个模型建模思想的发展方向。UML只是一种建模语言,不是一种方法论,它独立于过程,不包括过程中的方法与步骤。方法论与语言工具是不同的,三个模型的建模思想属于方法论,UML属语言工具。,(4)“三个模型”的思想,加上“五个面向”的实施理论,就构成了一个完整的方法论,该方法论不仅适合信息系统建设,而且也适合其他应用软件和系统软件的建设。,(3)三个模型应以数据模型为中心,以业务模型和功能模型为两个基本点。尤其是在企

33、业信息系统的分析、设计和实现中,因为关系型数据库管理系统RDBMS仍然是其支撑平台,所以应该这样去理解三个模型的建模思想。,*7.6 UML的建模思想 7.6.1 UML对软件工程的重大影响,UML不是一种建模思想,只是一种建模语言或工具。 UML和 Rose的组合已构成了一种新的软件建模思想和开发方式,势必会对软件工程的发展与创新产生重大影响,这种影响将主要表现在如下四个方面:,UML是Rational Rose的理论基础,Rational Rose是UML的建模实现途径,即Rose是UML的实现工具。,UML对软件工程的重大影响,(1)软件生存周期:UML用统一的软件开发生存周期 RUP

34、来替代原有的软件生存周期。 (2)软件建模方式:UML用可视化的语言实现软件整个生存周期各个阶段的建模。 (3)软件文档规范:正向工程和逆向工程的文档全部由UML建模工具自动产生。 (4)软件人员分工:UML使得分析、设计、实现、维护的岗位界线逐渐趋向模糊。,7.6.2 UML的概念模型,(1)面向对象的基本“构造块”(积木块) (2)支配这些构造块放在一起建模的“规则”(建模的粘合剂) (3)运用于整个UML的“公共机制”(模型的图纸说明 ),使用UML的关键是用它来简明、准确地建立模型。为了理解UML的建模元素,关键是要学习它的三个要素:,第1种构造块:事物。 事物是构造块,UML中有4种

35、事物,它们分别是结构事物、行为事物、分组事物和注释事物。 (1)结构事物(Structural Thing),它是UML模型中的静态元素,包括类、接口、协作、用况、主动类、构件和节点7种元素。,1UML的“构造块”,UML中有3种基本构造块,分别是“事物”、“关系”和“图”,它们是UML建模中的积木元素或积木组合体。,(4)注释事物(Annotational Thing),它是UML模型的解释元素,主要是注解(Note),用一个包含注解内容的右上角为折角的矩形表示。,(2)行为事物(Behavioral Thing),它是UML模型中的动态元素,包括交互和状态机2种元素。,(3)分组事物(Gr

36、ouping Thing),它是UML模型的组织元素,主要是包(Package),用一个包含名称的左上角带有一个小矩形的大矩形表示。,UML 事物 结构事物,Class(类) Interface(接口) 描述了一个类或构件的服务(操作)集。,Collaboration(协作) 合作完成某个特定任务的一组类及其关联的集合,用于对Use case的实现建模。 Use Case(用例) 表示系统想要实现的行为,不关心这些行为是怎样实现的。,Active Class(主动类) 与一般类相同,但它至少拥有一个进程或线程,故能够启动控制活动。 Component(构件) 系统中物理的、可替 代的部件。,N

37、ode(节点) 系统在运行时存在的物理元素。,UML事物 行为事物,Interaction(交互) 由在特定环境中共同完成一定任务的一组对象之间交换的消息组成。,State Machine(状态机) 描述了一个对象或一个交互在生存期内响应事件所经历的状态序列。,UML事物 分组事物,package(包),UML事物 注释事物,Note(注释) 依附于一个元素或一组元素之上,对其进行约束或解释的简单符号。,关系也是构造块,UML中有5种关系,利用这些关系可以设计出结构良好的模型。 (1)依赖(Dependency) (2)关联(Association) (3)泛化(Generalization)

38、 (4)实现(Realization),第2种构造块:关系。,UML Relationships(关系),Dependency(依赖) 两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。,Association (关联) 一种描述一组对象之间连接的结构关系。 聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。 Generalization (泛化) 一种一般化特殊化的关系。,Realization(实现) 类之间的语义关系,其中的一个类元指定了由另一个类保证执行的契约。 两种情况出现实现关系: (1)在接口和实现它们的类或构件之间; (2)在用例和它们的协作之间。,(1

39、)类图(Class Diagram) (2)对象图(Object Diagram) (3)用况图(Use Case Diagram) (4)顺序图(Sequence Diagram) (5)协作图(Collaboration diagram) (6)状态图(Statechart Diagram) (7)活动图(Activity Diagram) (8)构件图(Component Diagram) (9)实施图(Deployment Diagram),第3种构造块:图。图也是构造块,UML中有9种图。,模型中主要的图形元素,UML模型的图形,模型,1. 用例图(use case diagram)

40、,用例图展现了一组用例、参与者以及它们间的关系。 可以用用例图描述系统的静态使用情况,它定义了系统的功能需求,但这是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。 在对系统行为组织和建模方面,用例图是相当重要的。,用例规格说明:销售商品,2. 类图 (class diagram),类图展示了一组类、接口和协作及它们间的关系。 类图没有时间概念,是概念数据模型(如E-R图)的一种延伸。 用类图说明系统的静态结构视图,包含主动类的类图专注于系统的静态处理视图。 系统可有多个类图,单个类图仅表达了系统的一个方面。要在高层给出类的主要职责,在低层给出类的属性和操作。,类图是从系统构成的角

41、度来描述正在开发的系统。 类的表示,限定关联,聚合、引用和重复度,关联名,类1,类2,角色1,角色2,关联类,泛化关系,3. 对象图 (object diagram),对象图展示了一组对象及它们间的关系。 用对象图说明类图中类的对象实例的数据结构和静态快照,即在某一时刻,一组对象的状态及其关系。 对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型的方面的因素外,它与类图作用是相同的。,4. 包图 (package diagram),严格地讲,包图只是表明包及其之间的依赖的类图。 包是对模型中涉及的元素分组所得的结果,是具有特定语义的一个子集,必须保证低耦合、高内聚。 广义地讲,包可以

42、包含类、接口、构件、节点、协作、用例等,还可以内嵌其他子包。 包之间的访问权限通过输出(Export)和导入(Import)设置,虚箭头 从源包到目标包。,5. 构件图(component diagram),构件图展现了一组构件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的系统建模。 构件图表示系统的静态实现视图。,课程,用户,课表系统,6. 部署图 (Deployment Diagram),部署图展现了对运行时处理节点以及其中构件的配置。每一节点代表一个计算单元。 它描述系统硬件的物理拓扑结构(包括网络布局和构件在网络上的位置),以及在此结构上执行的软件(即运行时软构件在节点中

43、的分布情况)。 用部署图说明系统结构的静态环境视图,即说明分布、交付和安装的物理系统。,8. 活动图 (Activity Diagram),活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作所需要的步骤)。它对于系统的功能建模特别重要,强调对象间的控制流程。 高层活动图用于表示任务,即用于分析用例,理解涉及多个用例的工作流、多线程及并行,显示相互联系的行为整体,还可用于业务过程建模,对系统的功能建模。低层活动图用于表示类的方法。,9. 状态图 (Statechart Diagram),状态图展示了一个特定对象的所有可能状态以及由于各种事件的发生而引

44、起的状态间的转移。 一个状态图描述了一个状态机,用状态图说明系统的动态视图。 状态图对于接口、类或协作的行为建模尤为重要,可用它描述用例实例的生存期。,project对象的状态图,10. 交互图 (interaction diagram),交互图展现了按一定的目的进行的一种交互,它由在一个上下文中的一组对象及它们之间交互的信息组成。 交互图可用于描述一个用例的行为。顺序图 和协作图都是交互图,它们可以相互转换。 如果希望查看单个对象跨用例的行为,要使用状态图。 如果希望查看跨用例跨线程的行为,要使用活动图。,10-1 顺序图 (Sequence Diagram ),顺序图展现了一组对象和由这组

45、对象收发的消息,用于按时间顺序对控制流建模。 对象表述为虚垂线顶端的矩形小框。 垂线是对象的生命线,说明对象的生命。 生命线之间的箭头表示消息。消息出现的次序自上而下。 消息箭头可以回到同一条生命线,指明自调用,即对象发给自己的消息。 用可表示条件,用*表明迭代依据。,移动电话系统的用例图,移动电话系统的顺序图,10-2 协作图(Collaboration Diagram),协作图展现了一组对象,这组对象之间的连接以及这组对象收发的消息。 它强调收发消息的对象的结构组织,按组织结构对控制流建模。 协作图中的协作不是参与者与系统之间的交互,而是系统内部某一个用例中各个对象之间信息传递的方式。 消

46、息上所附编号指明执行顺序。,移动电话系统的协作图,顺序图与协作图的比较,顺序图和协作图都是表示在某一个用例中一条执行路径上的执行情况,表明这时各个对象之间的交互。 顺序图强调顺序,易于看出其中出现的时间的顺序。协作图可以利用布局指明各个对象是如何连接的。 对于有多个可供选择的情况,使用交互图太不方便,可用 CRC卡片代替,描述 “类职责协作”。,为了将UML的构造块有机地组装在一起形成一个结构良好的模型,UML需要描述下列事物的5种语义规则。 (1) 命名:为事物、关系和图命名 (2) 范围:给一个名字以特定含义的语境,即范围 (3) 可见性:怎样使用或看见名字,即可见性 (4) 完整性:事物

47、如何正确、一致地相互联系 (5) 执行:运行或模拟动态模型的含义是什么,即执行,2UML运用构造块的“规则”,UML的规则,命名 (names) 为事物、关系和图起名。如:“student”、“PersonInfo:student” 作用域 (scope) 把施于类而不是施于实例的操作和属性说明为类作用域。相当于C+静态变量。,可见性 (visibility) 对类中任一属性或操作定义存取权限。 加前缀:+ (公用)、- (私用)、# (保护) 完整性 (integrity) 保持事物之间联系的正确性和一致性。 单个模型是不充分的,应建立互补的连锁的模型,从整体描述软件的蓝图。 保持模型与现实

48、的一致性。 执行 (execution) 通过运行或模拟动态模型,才能真正理解和领会程序代码的含义是什么。,3UML的“公共机制”,UML有4种在整个语言中一致应用的机制,使得该语言变得较为简单。,(1)规格说明 (2)修饰 (3)通用划分 (4)扩展机制,UML的公共机制,规格说明 (specifications) UML的图形表示用来对系统进行可视化,UML的规格说明用来描述系统的细节。 规格说明提供了对构造块的语法和语义的文字叙述。 在增量式建模中,可有两种方式: 先画图,再增加语义到它的规格说明中; 先创建规格说明,或对已完成的系统执行逆向工程,创建这些规格说明的投影图。,修饰 (ad

49、ornments) 对类的描述可以包含其他细节,表示为图形或文字修饰。 UML表示中每一个元素都有一个基本符号,可将各种修饰细节加到这个符号上。 例如,下图是一个带修饰的类。,公用操作,保护操作,私用操作,通用划分 (common divisions) 对类和对象的划分 接口和实现的分离,有名Customer对象,匿名Customer对象,由规格说明指定为 一个Customer对象,接口是契约, 实现是契约 的一种实施。,扩展机制 (extended mechanisms) 约束 (Constraint) 约束可增加新的语义或改变已有的规则。 约束用表明,放在相关元素附近。,简单约束,多个元素间的约束,衍型 (Stereotype) 如果发现需要一个模型构造,它不在UML中但又与UML的某一成分类似,可以将它看作UML构造的一个衍型。 例如,UML接口是一个类,它只有一些不具有方法实现和属性的公用操作,它是一种特别的类,可以定义它为类的衍型。 可以把衍型看作一种元类型,它创建了一种与U

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1