动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 软件工程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 软件工程 ]的信息



本月文章推荐
.软件工程的七条基本原理.
.CMMI模型对软件测试技术的扩充.
.回顾2005 开源软件进入SOA.
.Apache中的挂钩剖析(1).
.社会工程学在计算机信息安全中的.
.JavaScript Associative Arrays.
.SOA成长五步走.
.创新和效率 寻找SOA的中国切入点.
.解析SOA反模式(1).
.灰关联分析与语音/音乐信号识别.
.CIO们的记忆: 宣扬SOA的商业价值.
.使用软件工程学来开发软件.
.从用户角度探讨病毒:解析并防范.
.SOA的中间件:未来前景广阔 现实.
.基于UML的系统分析方法研究.
.在.NET 2.0 中使用自定义事务操作.
.利用社会工程学 揭开网络钓鱼(Ph.
.走出一般性的建模误区.
.SOA: 不能只有“吹捧”.
..NET设计模式研究之装饰模式.

统一建模语言UML轻松入门之类和对象

发表日期:2008-3-23 |



  同类相从,同声相应,固天之理也。——《庄子·渔父》

  类是一种对本质相同事物的抽象,人类软件开发技术的发展历史,就是还事物以本源的历史,开发技术、名词越来越接近世界的真实,“面向对象”、“类”就是这样的产物。

  3.1类图

  在UML中,类图显示了一组类、接口、协作以及它们之间的关系。在UML的静态机制中类图是一个重点,它不但为设计人员所关心,更为实现人员所关注,建模工具也主要依据类图来产生代码(正向)工程。因此,类图在UML的各种图中占据了相当重要的地位。

  类

在类图中类用矩形框来表示,它的属性和操作分别列在分格中,若不需要表达具体信息时,分格可以省略。一个类可能出现在好几个图中。同一个类的属性和操作只在一种图中列出,在其他图中可省略。图3.1给出Student类和MFC中的CObject类。

统一建模语言UML轻松入门之类和对象(图一)统一建模语言UML轻松入门之类和对象(图二)
图3.1类的表示

  类间关系

  在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之间的连线来表示,连线上和连线端头处的不同修饰符表示不同的关系。类之间的关系有继续(泛化)、关联、聚合和组合。

  (1)继续:指的是一个类(称为子类)继续另外的一个类(称为基类)的功能,并增加它自己的新功能的能力,继续是类与类之间最常见的关系。类图中继续的表示方法是从子类拉出一条闭合的、单键头(或三角形)的实线指向基类。例如,图3.2给出了MFC中CObject类和菜单类CMenu的继续关系。

统一建模语言UML轻松入门之类和对象(图三)
图3.2 类的继续

  类的继续在C++中呈现为:

  class B { }
  class A : public B{ }

  (2)关联:指的是模型元素之间的一种语义联系,是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。可以给关联加上关联名来描述关联的作用。关联两端的类也可以以某种角色参与关联,角色可以具有多重性,表示可以有多少个对象参与关联。可以通过关联类进一步描述关联的属性、操作以及其他信息。关联类通过一条虚线与关联连接。对于关联可以加上一些约束,以加强关联的含义。
 
  关联在C++中呈现为:

  class A{...}
  class B{ ...}
  A::Function1(B &b) //或A::Function1(B b) //或A::Function1(B *b)

  即一个类作为另一个类方法的参数。

  (3)聚合:指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。

统一建模语言UML轻松入门之类和对象(图四)
图3.3 类的聚合
QQread.com 推出各大专业服务器评测 Linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器
  (4)组合:也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。

  聚合和组合的区别在于:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

  我们用浅显的例子来说明聚合和组合的区别。“国破家亡”,国灭了,家自然也没有了,“国”和“家”显然也是组合关系。而相反的,计算机和它的外设之间就是聚合关系,因为它们之间的关系相对松散,计算机没了,外设还可以独立存在,还可以接在别的计算机上。在聚合关系中,部分可以独立于聚合而存在,部分的所有权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用。

  在C++语言中,从实现的角度讲,聚合可以表示为:

  class A {...}
  class B { A* a; .....}

  即类B包含类A的指针;

  而组合可表示为:

  class A{...}
  class B{ A a; ...}

  即类B包含类A的对象。

  准确的UML类图中用空心和实心菱形对聚合和组合进行了区分。


统一建模语言UML轻松入门之类和对象(图五) 统一建模语言UML轻松入门之类和对象(图六)
图3.4 聚合和组合

统一建模语言UML轻松入门之类和对象(图七)
图3.5 银行治理系统类图

  图3.5给出了一个典型的银行治理系统的类图,基本上一看就懂:

  银行类聚合了账号库(AccountSet)、客户库(EmployeeSet)和员工库(EmployeeSet);

  账号库中包含了n个账号(Account)、客户库中包含了n个客户(Employee),员工库包含了n个员工(Employee);

  员工类和客户类都继续自人(Person)类,而员工类中又有一种非凡的员工,即员工治理者类(EmployeeAdmin);

  账号类和客户类之间体现出一种关联关系;

  单独的元素PersonSex定义了枚举类,其中包括Male和Female两种性别。

  我们再给出一个类图实例(图3.6),它来源于软件无线电SCA(软件通讯架构)标准。软件无线电技术是目前电信产品、军用电台中研究的大热门,在其定义的SCA体系中,核心框架即以类图的形式呈现,它定义了应用程序基本框架和标准控制服务接口。

  实际上,软件无线电核心框架即由类以及类之间的继续、关联和聚合关系组成。

统一建模语言UML轻松入门之类和对象(图八)
图3.6 软件无线电核心框架

  接下来,我们给出建立类图的步骤:

  (1)研究分析问题领域确定系统需求;

  类的识别是一个需要大量技巧的工作,寻找类的一些技巧包括:名词识别法;根据用例描述确定类;使用CRC分析法;根据边界类、控制类、实体类的划分来帮助分析系统中的类;参考设计模式确定类;对领域进行分析或利用已有领域分析结果得到类;利用RUP中如何在分析和设计中寻找类的步骤。

  (2)确定类,明确类的含义和职责、确定属性和操作;

  (3)确定类之间的关系。

  3.2对象图

  对象图显示某时刻对象和对象之间的关系,是类图的变化,一个对象图可看成一个类图的示例(example),对象图表示的是类的对象实例而不是真实的类。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

  对象图中并无新的表示法(除了对象名下要加下划线以外),与类图中的表示法一样,可以认为,只有对象而无类的类图就是一个“对象图”。

统一建模语言UML轻松入门之类和对象(图九)
图3.7 对象图

  在对象图中,对象名可以有三种表示形式:

  (1)对象名:类名

  (2):类名

  (3)对象名

  图3.7中的是第1种,即“对象名:类名”格式。

  实质上,对象图几乎很少被用到(它包含的信息量太小,仅仅用于呈现某一时刻对象的值,对软件的设计几乎没有太大的帮助),使用远没有类图广泛。我们可以这样类比类图和对象图之间的关系:

  “动词+名词”构成“动名词”,例如动词“爱”+名词“国”构成动名词“爱国”。

  我们可以看到,“动名词”的信息量很大,很抽象,而作为动名词的例子的“爱国”信息量很小,具体程度很高。

  动名词 ―――――> 类图

  爱国  ―――――> 对象图

  把“动名词”看作类图,把“爱国”看作对象图,很明显,对象图就是类图的一个example而已。

上一篇:统一建模语言UML轻松入门之用例 人气:235
下一篇:Rational Rose和UML可视化建模基础 人气:187
浏览全部软件工程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-8 ECShop v2.6.0 Build 20080707(G
2008-7-8 动网论坛PHP版 v2.0++ Build 080
2008-7-8 中国IT总舵 v9.0 UTF版
2008-7-8 凹丫丫新闻发布系统 v4.6 Build
2008-7-8 topview数据查询 v3.0
2008-7-8 Z-Blog v1.8 Spirit Build 80708
2008-7-8 Z-Blog v1.8 Spirit Build 80708
2008-7-8 凹丫丫新闻发布系统 v4.6 Build
2008-7-8 新动软万能网站内容管理cms系统
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報