`
webcode
  • 浏览: 5912317 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

UML从需求到实现---类图(1)

 
阅读更多

上次写到了UML的包图,用例等:接上:UML从需求到实现---包图

按照UML中图的出现顺序.当做完包图以后.我们下一步要做的当然是类图,类图也是UML中的三大核心图之一.

看到很多文章在描述类图的时候.总是大部分在叙述类之间的关系:关联,依赖,继承,组合,聚合呀这些.很少有人说明类是怎么来的.没有了类,你拿什么来画类图.那些关系其实没有多大意义.就像是象棋的马走日,象飞天一样.只是一个规定.你知道了这些就是一个象棋高手吗?

类图是UML中的一种静态图.他是体现面向对象编程的基础.类图就像是软件设计的细胞.是基本元素.没有了类图.也就没有了接下来的设计.但是类不可能是凭空产生的.类是我们凭借自己的经验和智慧去抽象,提取出来的.

所以说,对于一个良好的系统.如何去提取出类来.才是最关键的.下面我介绍一下面向对象开发过程中.利用三层架构的方式.分析典型MIS系统的类图从提出类.到类图的生成的过程.

一:根据用例确定数据库,确定表,创建实体类

第一个也是最关键的一个.我们要做的第一步就是要根据用户对数据的要求,去确定数据库中的表.去设计数据库(如何去设计数据库中的表,这里不在叙述).

因为我们在信息管理系统中.所有的操作可以说都是对数据的操作.你首先要确定的是数据.确定了数据,你才知道怎么操作(这个仅仅是我的个人体会).就像是你要谈恋爱.你首先要确定你要追求的目标.才能制定追求的方法.如果你连个目标也没有.整天和别人说你要谈恋爱.别人会怎么想你?

然后根据设计好的数据库,一一对应的方式设计成实体类.实体类可以说就是数据库的映射.把数据库的每一个表影射成一个类,每一个字段设计成一个属性.这样保证你的操作是面向对象的.对于一条记录,你可以整体去操作它.如下图:

image

PS:这里我要补充一点.很多人不理解实体类是干什么的.不知道该把它放在三层架构的那一层.其实实体类不属于三层的任何一层.其实它就是一个自定义的变量.你这么理解他就行了.

就像是你的string,int型变量一样.你用它来存放数据就对了.不同地方就是它可以放多个不同类型的变量而已.

二:将实体类对应成数据库操作类 (注意为什么不是增删改查类)

创建完实体类以后.然后要创建对数据库的操作类.这个也是每一个数据表对应一个操作类即:DAL层的类.注意我为什么是一个数据库表对应一个操作类.但是不是一个一个操作类对应一个数据库表.这个原因在后面将讲到.

我们最好是为每一个操作类都设计一个接口类.这样方便以后换数据库.

建立好这些类以后.就要为这些类添加方法,方法对于每一个数据库是不同的.但是大体的方法用途还是基本一样的.都是增,删,改,查的一些方法.无非是变了一些参数和返回值.如图:

clip_image004

clip_image005

三:根据用例封装业务逻辑.形成bll层类

当实现完数据库的操作类以后,其实整个系统的基石就有了.下面就是研究系统的功能了.

对于BLL层的类.其实就是根据用例.然后封装一下单个用例需要用到的数据库操作类.然后把他们的功能封装到一起.

比如想添加一个用户:

首先到用户类里查询是否已经添加.

接着添加到用户信息表中信息

然后添加到用户工作记录表信息.

也就是说你这个用例要用到那些个表的操作.我都要封装到一起.为UI层提供统一的接口.

如图:

clip_image006

PS:再为BLL层设计类的时候.尽量符合单例模式.即一个类只完成一个功能.这样减少了类之间的耦合性.

如何设计类请看我的另一篇文章:设计模式原则

四:界面层就是窗体类

至于界面层,好的界面无非是用一些好的控件等.让大家看起来舒服.在UML中,只要把界面对应的窗体(c/s)名称写出来就可以了.里面的方法我认为是不必要写的.你在做界面的时候就已经都做好了.

备注:

1:在DAL层可以考虑用抽象工+反射的方法来实例化类.这样再换数据库的时候就方便多了.如图:

clip_image008

2:DAL层不一定完全和数据库对应.这个就是我在上边提出的问题.在操作中难免要遇到一些全局使用的数据.我们把这些数据放到一个实体类中.把它虚拟出一个类.把数据设置成这个类的属性.然后操作类的属性.

最好不要把它单独定义到模块中.这样就不太复合面向对象的精神.

3:同层之间尽量不要相互调用

虽然类图中允许同层之间的相互调用.但是个人认为同层直接尽量避免相互调用.已较少之间的耦合(关于这篇我将在后面的文章接着讲述为什么是这样).

4:类图之间的关系.

关于类之间的关系.这里就不在叙述,请看我的其他文章.UML文章集合

分享到:
评论

相关推荐

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领读者从基础到各个知识点进行学习。全书内容由浅入深,并辅以大量的实例说明,书本阶段性地提供了一些实验指导。 本书提供了所有实例的源代码...

    家教发布系统UML实现,类图,用例图,活动图,序列图。。。

    家教发布系统UML实现,类图,用例图,活动图,序列图。。。

    uml 试卷很全面好多个试卷及答案

    6.在UML的类图中,类之间的关系有 泛化 、 实现 、 聚集 、 依赖 和 关联 5种。 7.共享聚集的“部分”对象可以是任意“整体”对象的一部分,表示事物的整体/部分关系较弱的情况,“整体”端的重数应该是 n 。 8....

    大作业—外卖点餐系统的实现

    自己实现的全套 外卖点餐系统 , 包含需求分析文档 ,以及绘制的UML类图 , 以及源代码,eclipse的项目文件夹,适合学习JAVA SE,体会面对对象编程的思想。

    网络五子棋.rar另需UML类图请见博客

    (1)实现“准备”的功能,如果双方都准备,则开始游戏。 (2)实现“认输”的功能,如果某方认输,则提示信息,并且结束游戏。 (3)实现“悔棋”的功能,撤销上次落棋,并重新落子。 (4)需要实现每步棋判断是否...

    UML案例-网上购物

    分别介绍了统一建模语言(UML)、Rational Rose软件、面向对象程序分析与设计以及通过一个简易电子商务系统的例子介绍如何应用UML和Rose进行项目需求分析、结构规划和生成框架代码,以及如何从现有系统逆向转出代码...

    JS画UML图工具MyGraph整合例子

    因工作需求,从网上下载了MyGraph的源代码,与本地一个例子做了一个demo,目前已实现UML图形编辑、本地打开、保存功能(google浏览器已测) 部署到tomcat后,打开URL: ...即可使用

    基于UML的图书馆管理系统分析与设计

    UML(统一建模语言)是面向对象建模语言的标准,它可以对任何具有静态结构和动态行为的系统进行建模,它的主要作用是帮助用户进行面向的描述和建模,它可以描述软件从需求分析到软件实现和测试的全过程。标准建模语言...

    基于UML的仓储管理系统的设计与实现

    4.5 系统设计顺序图,入库类图 53 4.6 系统扩展功能 55 4.7 系统构架设计 63 第五章 系统实现测试与配置 64 5.1系统实现的工具与技术 64 5.2 系统实现方式图 65 5.3 系统测试与系统实现界面 66 第六章 系统开发的...

    Uml面向对象分析,建模与设计实验报告

    (1)病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视平台进行分析处理; (2)在中心值班室里,值班护士使用中央监视平台对病人的病症进行监控; (3)根据医生的要求,系统随时打印病人的病情报告...

    uml 基础、案例与应用(第三版)

    第1章 UML简介 3 1.1 在纷繁复杂中寻求解决问题的办法 3 1.2 UML的诞生 4 1.3 UML的组成 5 1.4 其他特征 12 1.5 UML 2.0中的新图 13 1.6 为什么需要这么多种图 16 1.7 这不仅仅是一系列图 16 1.8 ...

    UML建模——图书管理系统需求分析报告

    图书信息管理系统是使用计算机实现图书大量信息处理的电子档案管理系统,在本系统中主要满足借书者、图书管理员和系统管理员3方面的需求

    UML 课程设计 汽车租赁系统的需求分析 图书馆管理系统

    UML 课程设计 汽车租赁系统的需求分析 图书馆管理系统 各种图都具备,我们大四的课程设计 10.1 系统概述 10.1.1 问题的提出 10.1.2系统的构建目标和意义 10.1.3 系统设计原则 10.2 需求分析 10.2.1 系统的功能...

    uml实验报告整合

    1. 对每个用例实现识别分析类,根据需求、常识识别类的属性,根据交互图识别类的方法,在每个用例实现下创建一个类图,命名为 **用例的VOPC图(借书用例VOPC) 2. 综合所有VOPC图,在系统分析包中创建一个类图,命名...

    校友通讯录的uml建模和c#实现

    遵循面向对象方法,以UML建模为驱动力,即以用例图建立系统的需求模型, 以类图、顺序图和活动图建立系统的设计模型。以功能流程图、数据流图、关系数据库表和ER图来帮助系统分析和设计。 使用C#语言和ASP.NET编程...

    UML(统一建模语言)相关知识点

    介绍标准建模语言UML的重要内容可以由哪五类图(共9种图形)来定义?用例图、静态图(包括类图、对象图和包图)、行为图、交互图和实现图,以及敏捷开发的特点和目的是什么,软件工程三要素中的过程敏捷开发的特点和...

    基于UML的 面向对象软件分析与建模.rar

    摘要 提出一种简化需求分析和系统设计的 UML建模方法 ,以 用例图 表达系统需求,以设计 类图、协作图 表达系统的结构逻辑及行为逻辑,讨论了需求分析、系统设计及其建模的过程概念, 实现了 需求分析、 信息封装、...

    uml期末大作业

     期末大作业的题目既可以从附录1中的题目中进行选择,也可以发挥自己的创造力,任选自己学习、工作和生活中某个领域存在的真实问题来建模,例如:吃饭、上课、复习、考试、锻炼、KTV唱歌....任何领域都可以。 四、...

    《UML建模实例教程》【PPT】

    第1章课程定位与教学案例综述. 1.1职业岗位能力需求分析 1.2课程设置和课程定位分析 1.3WebShop电子商城介绍 1.3.1电子商城需求分析 1.3.2电子商城系统设计 1.3.3电子商城数据库设计 1.4LibraryMIS图书管理...

    UML和模式应用(架构师必备).part07.rar

    第12章 迭代地从需求到设计 12.1 以迭代方式做正确的事,正确地做事 12.2 尽早引发变更 12.3 完成所有分析和建模工作是否需要几个星期 第13章 逻辑架构和UML包图 13.1 示例 13.2 什么是逻辑架构和层 13.3 ...

Global site tag (gtag.js) - Google Analytics