上接: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. Facebook内部高效工作PPT指南

    Facebook内部高效工作PPT指南 Facebook 内部分享:不论你如何富有,你都赚不到更多的时间,你也回不到过去.没有那么多的假如,只有指针滴答的时光飞逝和你应该好好把握的现在,以下25张PP ...

  2. 使用I/O 系统调用--copy.c

    作为Linux/Unix 系统编程入门,小生按照自己可以理解的方式,改写了源copy.c源代码来自:Linux/UNIX 系统编程手册 上册 P57 #include <stdio.h>/ ...

  3. goquery

    使用goquery 会用jquery的,goquery基本可以1分钟上手,下面是goquery文档 http://godoc.org/github.com/PuerkitoBio/goquery 1. ...

  4. Windows 2008远程多用户登录的配置方法(转载)

    在使用Windows2008远程登录功能时,如果需要进行多用户登录,可以采用以下配置方法: 首先要启用远程桌面这一功能:右击“我的电脑”→属性→远程配置→远程桌面,就可以配置相应的远程桌面功能了.下 ...

  5. java源代码分析----jvm.dll装载过程

    简述众所周知java.exe是java class文件的执行程序,但实际上java.exe程序只是一个执行的外壳,它会装载jvm.dll(windows下,以下皆以windows平台为例,linux下 ...

  6. derby支持的数据类型

    Data types This section describes the data types used in Derby. Built-In type overview Numeric types ...

  7. Css transition

    CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值. <!DOCTY ...

  8. (转)win32Application和win32ApplicationConsole

    这几天在创建MFC项目时,常常遇到一下两个连接错误,例如: 1. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _ma ...

  9. Java中的封装

    在前面的一些日子里,一只都在学习C#语言,使用C#在做一些小项目的,今天转到了Java的学习,还是感觉有点的不习惯,没有以前的中文界面的,全是英文.写起代码来都一直保持着C#中的编码的习惯,但是学习J ...

  10. [Effective JavaScript 笔记]第5章:数组和字典--个人总结

    前言 这节里其实一直都在讨论对象这个在js中的万能的数据结构.对象可以表式为多种的形式,表示为字典和数组之间的区别.更多的我觉得这章讨论多的是一些对应实现功能的相关操作,有可能出现的bug以及如何避免 ...