UML从需求到实现----包图
上接: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从需求到实现----包图的更多相关文章
- UML从需求到实现---类图(1)
上次写到了UML的包图,用例等:接上:UML从需求到实现---包图 按照UML中图的出现顺序.当做完包图以后.我们下一步要做的当然是类图,类图也是UML中的三大核心图之一. 看到很多文章在描述类图的时 ...
- UML从需求到实现---类图(2)
上节写到了UML中的类图:UML从需求到实现---类图(1) 写完以后总觉得写的不够详细.里面很多细节没有说到.一篇文章就把强大的面向对象的类说完.当然是不可能的.这次我再补充一些关于UML中类图和类 ...
- UML精粹4 - 对象图,包图,部署图,用例
对象图object diagram 对象图是某个时间点上的对象在系统中的快照,也经常被称为实例图.一般在展示组合对象结构时比较有用.例如 组合结构的类图 一个时刻的对象图 包图package diag ...
- UML九种图 之 包图和对象图
前言 对象图和包图依然是对系统的静态的描写叙述.UML九种图加上包图,事实上是十幅图. 包图 1.构成 2.包中的元素 类.接口.用例.构件.其他包等.( ...
- <十四>UML核心视图静态视图之类图和包图
一:类图(行为类和实体类) --->类图用于展示系统中的类及其相互之间的关系 --->概念层类图 --->说明层类图 二:概念层类图 --->概念层的观点认为:在这个层次的 ...
- UML 用例图、顺序图、状态图、类图、包图、协作图、流程图
用例图.顺序图.状态图.类图.包图.协作图 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling La ...
- UML九种图-包图、类图
UML九种图-包图.类图 一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班 ...
- 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...
- UML和模式应用5:细化阶段(8)---逻辑架构和UML包图
1.前言 本章是从面向分析的工作过度到软件设计 典型的OO系统设计的基础是若干架构层,如UI层.应用逻辑(领域)层 本章简要考察逻辑分层架构和相关UML表示法 2.逻辑架构和层 逻辑架构 逻辑架构是软 ...
随机推荐
- c/c++细节知识整理
这篇文章总结了部分c/c++琐碎的细节知识. 目录如下: (一)bool类型 知识点出处较多,无法一一列举,向原作者致敬. (一)bool类型 在c99标准以前,c语言并没有定义bool类型.如果需要 ...
- get_magic_quotes_gpc函数
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊 ...
- Integer Inquiry
Integer Inquiry Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Sub ...
- 解决 MySQL Cluster 通过 某一个MySqld节点新建表时,其他 MySqld节点 看不到表内容的问题
问题: 总共有 4 个MySqld节点,通过其中的一个节点新建表时,发现其他 MySqld节点 查不到表内容的问题,即表没有同步过来. 解决方案: 主要是因为新建表时,所选的 表引擎 错误导致的,只能 ...
- 使用nginx lua实现网站统计中的数据收集
导读网站数据统计分析工具是各网站站长和运营人员经常使用的一种工具,常用的有 谷歌分析.百度统计和腾讯分析等等.所有这些统计分析工具的第一步都是网站访问数据的收集.目前主流的数据收集方式基本都是基于ja ...
- node.js模拟qq漂流瓶
(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) node.js模拟简易漂流瓶,页面有扔瓶子和捡瓶子的功能,一个瓶子只能被捡到一次,阅读完就置状态位, ...
- HDOJ 1106
#include<iostream> #include<algorithm> #include<string.h> #include<stdlib.h> ...
- jQuery mobile 开发问题记录
一.动态加载页面问题 1.存在这样一个页面布局: main.html 为主界面A,B为该页面中的三个page,其中A为splitview左部分页面,B为右半部页面 a1.html 为一个独立的页面 a ...
- thinkcentre m8380t黑屏 解决办法
问题: 开机后,显示器上显示“无信号输入”,一直黑屏,但是主机的风扇.硬盘声音都正常. 解决办法: 把vga线等加紧了一些,屏幕还是不亮,然后我关掉插排电源,给cmos放了电,再重启就可以了. 这时需 ...
- How can I pretty-print JSON in python?
python -m json.tool my_json.json 转自: http://stackoverflow.com/questions/352098/how-can-i-pretty-prin ...