学习交流

C++博客 首页 新随笔 联系 聚合 管理
  2 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

2006年12月1日 #

用例图

 

设计用例图的关键在于对用例的层次分割,驱动过程如下:

       首先设计 系统级用例,然后由系统级用例分析得到 子系统级用例,再由子系统级用例细化得到 功能级用例。此时用例分析的目的就达到了。

 

o_01.JPG

系统

子系统

功能

子功能

活动

用例级

功能级

请多指教啊:) (用rational rose 设计)

 

(系统级)空间导航系统用例图

o_02.JPG

 

用例说明:

1.      确定坐标系:通过探测到四颗特定恒星的距离,来确定自己在太阳系中的坐标。

2.      虚拟空间镜像:读取数据库信息,建立虚拟场景,并显示飞船的位置和航线。

3.      飞船状态分析:分析飞船的所存储的能源,食物,损坏程度计算飞船剩余的可飞行时间,速度上限。

4.      探测空间:探测周围存在的小型天体,对它们的运动方程进行,在镜像中显示并做出安全预警。

5.      航线管理:根据飞船的目的地信息,宇宙中继站信息和飞船飞行能力计算出一条最佳航线。

6.      飞机控制计划:根据总的航线信息和危险预警信息产生飞船的控制计划。

 

(子系统级)虚拟空间镜像系统用例图

o_03.JPG

    用例说明:

1.        设置参数:设置坐标系,镜像缩放比例,观察角度,观察坐标。

2.        静态数据虚拟:绘制行星和恒星,这些数据存储在计算机内,可以直接读取。

3.        动态数据虚拟:绘制以飞船为中心的球形范围内所有的天体,并反映他们的位置,形状和运动模拟。

4.        绘画飞船:绘制飞船的位置,并根据飞船的速度和方向更新飞船的位置。

5.        绘画航线:绘画主航线。

 

功能级用例)静态数据虚拟

o_04.JPG

 

(功能级用例)动态数据虚拟

o_05.JPG

用例说明:

      

1.        动态数据虚拟:数据在不断更新。

2.        采集数据:采集数据,并筛选出超过一定体积(如飞船的十分之一)天体,记录它们的位置,形状。

3.        拟合运动方程:根据天体的坐标和时间的数据,拟合它们的运动方程。

4.        绘画小型天体:绘制小型天体的位置,形状,运动模拟。

 

 

 

posted @ 2006-12-01 21:04 邵腾飞 阅读(369) | 评论 (0)编辑 收藏

2006年11月11日 #

 



我的第一篇博客文章居然是个错误的论点(VC6.0中全局常量在编译时好像是当作宏定义优化处理了),这让我十分汗颜

发贴两天之后,我发现了自己的想法是错误的!

灰溜溜的删除了处女作后,仍在担心已经有几个读了此贴,给他们带来了误会啊

我保证以后发贴一定慎重又慎重!




以前老师常说,学语言是学到了软件的下乘东西,专科生都可以无师自通,要学我们就学设计。
可是……我们班都误解了老师,老师的意思是编程序应该由我们自学,我们放弃了编程,设计又没学好,结果连专科生都不如……。

请一起反思,无论你是爱好编程,还是爱好设计,编程是基础,让我们从编程开始。




UML 统一建模语言,是一种建模方法,对建模对象进行模型抽象与形式描述的方法。
建模方法 = 过程 + 表示法 + 扩展机制;
过程:描述软件开发中所遵循的有序步骤。(需求分析、概要设计,……)
表示法:描述建模开发过程中所采用的模型的表示语言及符号。(UML图描述,ACME描述,……)
扩展机制:应用于 适应领域应用变化 的可扩充语言表示。

UML 就是告诉你一种方法,让你对软件进行建模(设计)。

从建模方法上看,

对象:现实世界任何事物的抽象化描述,问题域中可用结构模型定义的实体
属性:描述对象的内部状态信息数据结构
操作:描述对象的外部状态信息通讯方式
关系:不同对象间具有规律性的关联抽象
结构:对象单元的分类结构,组装结构。
机制:封装机制,继承机制,聚集机制,消息机制。

面向对象 = 对象 (属性,操作,封装)
         + 结构 (分类,组装)
         + 关系 (关联,泛化,聚集)
         + 通信 (消息,执行方法)



结构化方法并不是比面向对象差,只不过它是刚性的,不利于维护,不要完全抛弃结构化思想。在大型软件设计中,开始可用结构化思维分块,再用面向对象分析设计。


下面介绍一些概念:

对象:问题域中有意义事物的抽象。
类:    问题域中同类对象的抽象化结构表示——一组具有相同属性集和操作集的对象。(抽象化对象)
实例:由类创建的新对象。(具体化对象)

对象的抽象化即为类
类的实例化即为对象

模板表示
抽象类:主要用于定义接口,其操作可推延到子类中实现。
具体类:主要用于实现父类的具体操作,可实例化的类。

粒度:软件分类的可封装的独立单元的大小程度。(重用性)
层次:可分解的相关单元的叠放次序。

操作:属性的操作即数据的存取方法(Method),状态迁移的瞬时行为(Action),
            对象的服务(Service)即与外界进行消息通信的方法。

泛化:对概念的共性抽象与特性识别,体现抽象对象(类)间的一般/特殊关系,
            抽象对象间父类与子类关系的继承表示,可用于构成层次化的分类结构。
聚合:对实体构成的实例描述,体现具体对象间的整体/部分关系,具体对象分解/组合关系的聚集表示,
            可用于构成组装结构。
            组成是聚合关系的一种特例,组成用于表示部分与整体共存,如车轮类是构成车类的部件。
依赖:表示相关对象间的变化/影响关系。


如何开发软件?
        软件的开发过程沿主工作流推进,软件优化过程按迭代工作流展开,以用例(事务,活动)驱动软件构架。

主工作流:需求,分析,设计,实现,评估
驱动过程:
                  用例 ——》   事务 ——》   活动 ——》动作
                     |
                  构架 ——》   初始 ——》   细化 ——》精化
                     |
                  构件 ——》   对象 ——》   模板 ——》实例

UML描述:
o_04.JPG

    


初始:目标/功能/案例
细化:构架/构件/对象


UML的基本构造块 : 部件、关系、图

部件:结构 + 行为 + 分组 + 注释 ;

结构:用例,对象类,角色,构件,节点,接口;
行为:交互,协作,活动,状态;
分组:包,框架,子系统;
注释:说明,标注,注解;

构造关系:关联、聚集、泛化、依赖

图……

关于图的,下次再依次详细解释吧(最近老加班,估计到下周末才有时间:)
每种图都会介绍它的作用,如何驱动。
每个例子都会以 图 + 图元编号 +小说明 进行解释。

当然这一切都建立在我知道如何在这里贴图的条件上,有谁知道请告诉我。

我想用Rational Rose 或 Visio2003 画图,请高手告诉我如何贴图,谢谢了。

posted @ 2006-11-11 23:07 邵腾飞 阅读(628) | 评论 (0)编辑 收藏

仅列出标题