上接:UML中图出现顺序

上回讲到用例图,UML中各个图之间的关系.接着根据UML建模中图出现的顺序来总结包图.

用例图确定以后.用户的需求基本上就确定了.接下来要根据用户的要求去设计系统.建模的顺序是由大到小.逐层解析.首先确定的就是系统的整体构架.系统的整体构架基本上就是包图.

包图的解释:

当然包图有非常官方的解释.但是那些解释都是比较抽象的.这里我都是用自己的语言来叙述包图的意义.

在UML中,包图看起来很像是一个文件夹.其实个人感觉包图就是一个文件夹.它是UML中的专用文件夹.用来把一些相似的物件放到一起.这个就是包图.

个人认为大家完全不必要拘泥于形式.大可以灵活的使用包图.只要为了让我们的建模看起来更简单.更有层次感就好.

一般来说用到包图的有两个地方.用例包 类包.顾名思义.

用例包:是把一些相似的用例放到一起,这个当然你可以从多个角度给他分类.比如角色,功能等.

类包:当然是把一组的类放到一起.也可以说是联系紧密的类.这个其实是我们经常用到的.我们用它来把系统的架构划分出来.把不同作用的类放到不同的包中.把系统分层处理.每个包代表一层或者一个独立的模块.

说到这里,不能不说经典的三层架构中的包图.一般的mis系统.把不同的层放到不同的包中.这样让读者很容易看明白你系统的框架.

比如:

其中的UI BLL DAL 分别是三层架构中的用户界面层 商业逻辑层 数据处理层

Entity表示实体类. 这样对应以后,我们很容易看清楚系统的框架.根据每个包进行设计.减少了模块之间的耦合性.

PS:

1:包应该连贯

你插入包中的任何东西都应该有意义,都需要考虑包中的其余内容。为了确定一个包是否连贯,一个好的经验法则是你是否能够用一个短的,描述性的名称为包命名。 如果你做不到这一点,你或许就已经把几个不相关的事务放到包中了。

2: 避免包间的循环依赖

包A依赖于包B,包B依赖于包C,而包C依赖于包A,这就形成了一个循环:A-B-C- A,建议尽量避免出现这种情况。因为包之间彼此紧密耦合,将来的维护和改进将变得困难。 循环依赖是一个很好的信号,意味着你需要重构一个或多个的包,把导致循环依赖的因素从包中除掉。

3: 包依赖应该反映内部关系

当一个包依赖于另一个是,这意味着两个包的内容间存在着一个或多个的关系。 例如:如果是一个用例包图,那么就有可能两个用例之间存在includes、 extends、或继承关系,而两个用例分别处于不同的包中。

转自:http://blog.csdn.net/lsh6688/article/details/6246752

UML从需求到实现----包图的更多相关文章

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

    上次写到了UML的包图,用例等:接上:UML从需求到实现---包图 按照UML中图的出现顺序.当做完包图以后.我们下一步要做的当然是类图,类图也是UML中的三大核心图之一. 看到很多文章在描述类图的时 ...

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

    上节写到了UML中的类图:UML从需求到实现---类图(1) 写完以后总觉得写的不够详细.里面很多细节没有说到.一篇文章就把强大的面向对象的类说完.当然是不可能的.这次我再补充一些关于UML中类图和类 ...

  3. UML精粹4 - 对象图,包图,部署图,用例

    对象图object diagram 对象图是某个时间点上的对象在系统中的快照,也经常被称为实例图.一般在展示组合对象结构时比较有用.例如 组合结构的类图 一个时刻的对象图 包图package diag ...

  4. UML九种图 之 包图和对象图

    前言     对象图和包图依然是对系统的静态的描写叙述.UML九种图加上包图,事实上是十幅图. 包图     1.构成           2.包中的元素      类.接口.用例.构件.其他包等.( ...

  5. <十四>UML核心视图静态视图之类图和包图

    一:类图(行为类和实体类) --->类图用于展示系统中的类及其相互之间的关系 --->概念层类图 --->说明层类图   二:概念层类图 --->概念层的观点认为:在这个层次的 ...

  6. UML 用例图、顺序图、状态图、类图、包图、协作图、流程图

    ​用例图.顺序图.状态图.类图.包图.协作图 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling La ...

  7. UML九种图-包图、类图

    UML九种图-包图.类图 一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班 ...

  8. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  9. UML和模式应用5:细化阶段(8)---逻辑架构和UML包图

    1.前言 本章是从面向分析的工作过度到软件设计 典型的OO系统设计的基础是若干架构层,如UI层.应用逻辑(领域)层 本章简要考察逻辑分层架构和相关UML表示法 2.逻辑架构和层 逻辑架构 逻辑架构是软 ...

随机推荐

  1. Linux下不同机器之间的文件拷贝

    通过 scp 命令实现不同机器之间的文件拷贝. (1)本机考到目标机器:scp 本机文件 目的地: 如:scp /home/odp-web.war   root@192.168.6.137:/usr/ ...

  2. 动态下载 Yahoo 网络数据存入 Microsoft SQL Server 再 Matlab 调用的一个完整例子

    % 编程环境: Matlab 2014a, win7 32bit, Microsoft SQL Server 2008r2 %% % 清屏 clc; clear all; close all; %% ...

  3. ifconfig 工具

    ifconfig 工具 ifconfig 命令常用格式: 格式:ifconfig显示当前激活的网络接口信息. 格式:ifconfig {INTERFACE}显示指定网络接口的信息.比如:eth0, e ...

  4. alert对ajax阻塞调查(IE, Chrome, FF)

    前阵子做保守工作,对一个js效果进行了改进,由于自己在chrome下测试没问题就丢给同事测试,同事用的是FF,发现不正常,后来又发现这个js在IE10下也不行,不得不调查,结果发现Chrome的ale ...

  5. js Float 精度

    1.加法 //加法 function add(arg1,arg2){ var r1,r2,m; try{r1=arg1.toString().split(".")[1].lengt ...

  6. firefox访问失败的时间设置错误问题

    在新装系统, 安装firefox后, 访问网页: baidu时 总是自动将http转换为https, 这个是baidu服务器的设置问题, 怪不到ff bd说,是ocsp证书错误, 然后将ocsp认证q ...

  7. ThinkPHP自动获取关键词(调用第三方插件)

    ThinkPHP自动获取关键词调用在线discuz词库 先按照下图路径放好插件 方法如下 /** * 自动获取关键词(调用第三方插件) * @return [type] [description] * ...

  8. .NET中的装饰器设计模式

  9. 用了那么久居然没发现firefox快捷键有如此多

    firefox用了也有好几年了,除了ytkah经常用到的搜索Ctrl+F.加入书签Ctrl+D.打开新便签Ctrl+T,鼠标右键菜单,还安装了鼠标手势插件FireGestures,快速关闭标签.撤销关 ...

  10. =============Python安装与使用================

    用文本编辑器写Python程序,然后保存为后缀为.py的文件,就可以用Python直接运行这个程序了. Python的交互模式和直接运行.py文件有什么区别呢? 直接输入python进入交互模式,相当 ...