最近开始一个新项目,打算使用RUP方式进行管理,同时使用EA工具进行相关的建模,所以学习一下。
EA支持全部13种 UML 2.0图表和相关的图表元素,包括:
结构图:类、对象、合成元素、包、组件、布局;
行为图:使用案例、通信、序列、交互概述、行为、状态、时序;
扩展:分析(简单行为)、定制(需求、变动和UI设计)。
1、创建一个新工程,file-->New Project->弹出一个对话框输入一个工程名,选择保存地址确定后,弹出一个对话框,选择想要创建的类型点OK即可。
在select from : 中可以有四种选择:all , common , simple , unified process,即全部,通用,简单,统一过程
类型 | 对应中文名 |
Business Process | 业务流程 |
Requirements | 需求分析 |
Use Case | 用例 |
Domain Model | 领域模型 |
Class | 类图或类设计 |
Database | 数据库设计 |
Component | 组件 |
Deployment | 部署 |
Testing | 测试 |
Maitanance | 维护 |
Programe Management | 项目管理 |
User Interface | 用户接口 |
上表common中的种类,可以看出,基本上包括了开发过程需要的大部分模型。
2、对于以上类型使用前的理解
要使用上面的类型,首先要明白,软件开发过程会有那些需要进行表达出来,然后对这些要表达出来的东西选择EA提供的类型来进行表达。
然后才是学习如何用EA的类型来正确地表达我们想要表达的信息。
于是这个问题就要涉及许多东西了:
1)为啥软件开发不是编写代码这么简单的事?要搞的这么复杂做啥?显然不是吃多了,要把这些表达出来,是为了什么?
即,为什么要用UML来表达软件开发中的相关信息?至于为什么选择UML语言来表达,自个看书吧
2)EA只是一个工具,就好像,我们不一定要说话也可以表达你的想法。只是找一种最适合的方式表达出来,可以让更多的人能理解和明白其中的含义。
了解了第一个问题后,那就要明确,要表达什么?
3) 表达要做到什么程度,不同的人认知不同,说事情,总要让需要的人,应该要想明白的人看了能明白吧。
总体上来说就是,为什么要表达,表达什么,用什么工具,如何表达,表达的预期效果判断。
3、有了以上想法后,一个问题产生了,软件开发到底做些啥子?写代码的吧
不管怎么去说都可以,但有一点可以判断,软件开发的结果确实是获取用户的需求,然后分析设计,最后给用户一个解决用户需求的软件产品。
但是更多的是提供服务,基于软件平台,为用户定制个性人的服务。
所以大多数软件都会先其于一个基础平台,然后进行二次开发,所以为其他开发团队提供优秀文档支持是道德高尚的表现。
变更是不可避免地,管理变更也是麻烦的,如果没有说明,到时一团乱,小团队,只要管理好版本控制即可,然后就是多交流,可是大团队却是无法实现这种面对面多交流,协作的方式必然要通过其他方式来控制 ,不然那还不乱的团了。
所以软件开发生产的不只是具有功能的产品,还有与这个产品相关的文档。通过这个文档,就好像这个软件的个人档案一样,可以知道它的出生是什么原因,它是如何一步一步发展到如今这个样子,它对应用层能提供什么服务,它对二次开发人员又能提供什么支持,它的机制,它的架构,它的设计,它的每一个细节。
在产生它的过程中是如何管理它的。作为开发过程的支持,也是很重要的。
所以需要表达,表达就是让不懂它的人懂它,需要懂它的人懂它,至于你想懂它什么,那就查看它相应的表达文档。
要表达什么?一般都是按开发的过程来表达,即上表中提到的。
表达的方式,选择UML,有很多地方都说了它好反正我也找不到比它好的,就用它呗,对表达的整理,增加索引即可装定成文档。
表达的程度,这个要看要表达的意思,只要能正确表达出来及为完美。