1 UML 在软件开发中的建模
Rational Rose 是一个完全的 , 具有能满足所有建模环境(Web 开发,数据建模,Visual Studio 和 C++ )需求能力和灵活性的一套解决方案。 Rose 允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练。 通过在软件开发周期内使用这种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统。 常用软件开发过程为:分析、设计、实现、配置、测试等阶段,不同的软件开发方法,无疑都是对这些过程的 n 次迭代。
(1)需求分析阶段建模。 使用 UML 静态图中的用例图 、状态图,可以在软件开发的需求分析阶段找出系统所有需求并加以描述。 在用例图中,使用事件表明了用户和系统的交互作用,在这个图形中显示了用户能实现一个目标。 通过用例图,可以把需求分析和功能分析中的系统模块, 按角色分配到各类用户,使得系统模型更加清晰。 UML 的状态图是描述对象在生命周期内处于哪些状态,每一种状态的行为以及什么样的事件引起对象状态发生改变。
(2)设计阶段建模。 设计阶段的任务是通过综合考虑所有的技术限制,以扩展和细化分析阶段的模型。 设计的目的是指明一种易转化成代码的工作方案,是对分析工作的细化,即进一步细化分析阶段所提取的类(包括属性和操作),并且增加新的类处理诸如数据库、用户接口、通信、设备等技术领域的问题。
设计阶段可以分为两个部分,一是结构设计。 结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖性和主要通信机制。 希望得到尽可能简单和清晰的结构,各部分之间的依赖尽可能的少,并尽可能地减少双向的依赖关系。 二是详细设计。 细化包的内容,使编程人员得到的所有类的一个足够清晰的描述。 在设计阶段可以使用两种 UML 视图来描述系统,一是类图,类图是 UML 中的静态视图中的一种;二是序列图,序列图是 UML 中的动态图中的一种。 ① 系统类图。 定义的类通常要有二个特点:一是使用来自问题域的概念,二是类的名字用该类实际代表的涵义命名。 通过系统需求分析、系统用例,建立本系统类图;② 序列图。 序列图描述对象如何相互交互和通讯。序列图中的最重要的是时间。通过序列图,可以看出为了完成某种功能一组对象如何发送和接收序列消息。
(3)实现阶段建模。 构造或实现阶段是对类进行编程的过程。 选择向对象语言 C# 作为实现系统的软件环境。 在 C# 中很容易实现从逻辑试图到代码部件的映射。 在实现阶段中,可以选择下列图来辅助编程。 ①类的规格说明:每个类的规格说明详细显示了必要的属性和操作。 ②类图:显示类的静态结构和类之间的关系。 ③状态图:显示类的对象可能的状态、所需处理的转移以及触发这些转移的操作。 ④包含某个类的对象的动态图(顺序图、合作图、活动图):显示该类的某个方法的实现或别的对象是如何使用该类的对象的。 ⑤ 用例图和规格说明:显示系统需求和结果。
(4)测试与配置阶段建模。 完成系统编码后,需要对系统进行测试,它通常包含:单元测试、集成测试、系统测试和验收测试。 在单元测试中,使用类图和类的规格说明,对单独的类或一组类进行测试;在集成测试中,使用组件图和合作图,对各组件的合作情况进行测试;在系统测试中,使用 UML 的用例图,以及查所,开发的系统是否满足用例图所描述的需求。
2 UML 建模简介
UML 通 过事物 、 关系和图来描述软件工程的建模内容 .
UML 采用多视图表示模型的不同侧面, 表 示各种元素和概念之间的划分, 而每一类视图使用一种或两种特定图来可视化的表示视图中的概念。 图是 UML 的核心,通过事物和关系来描述客观事物的抽象。 UML 的图可划分为如下三种类型:① 静态图:描述了那些不发生变化的软件元素的逻辑结构,描绘了类、对象、数据结构及其存在于它们之间的关系。 ② 动态图: 展示了在运行期间的软件实体的变化,描绘了执行流程、实体改变状态的方式。 ③物理图:显示了软件实体的不变化的物理结构,描绘库文件、字节文件、数据文件等,以及存在于它们之间的关系。
下表说明了三类图中最常用的一些 UML 图, 以及它们适用的软件开发阶段。
3 UML 建模的主要特点
建模的目的是从不同的视角去分析软件的功能,从应用角度来看, UML 的主要特点可以归结为:① UML 融合了当前一些流行的开发方法的主要概念与技术,成为一种面向对象的标准化的统一的建模语言,约束了以往各种方法的建模语言的不一致和差别。② UML 捕捉系统静态和动态行为的信息。静态结构定义了对系统具有重要意义的各种对象,以及它们之间的关系。 动态行为定义了时间上和状态上对象间的通讯。 从不同而又相关的视角来对系统建模,允许了多角度对系统的理解。 ③UML 是系统建模语言,独立于开发过程。 虽然 UML 与常用的建模工具配合使用,将发挥强大的效用,但是 UML 也可以在其它面向对象的开发过程中使用。④ UML 与具体的实现无关,可应用于任何语言平台和工具平台。 它可以被具有代码生成的交互式可视建模工具所支持, 工具可以提供 UML 向各种编程语言的代码生成,以及可以从现有的程序逆向构筑模型。
4 结语
在不同的阶段建立不同的模型, 建模的目的也各不相同。
UML 为用户提供了强大的支持,并提供了很大的自由度。 用户在遵循某些软件开发方法的原则下完全可以根据自己所开发系统的特点,在软件开发的过程(分析、设计、实现、测试和配置)中,灵活地选用 UML 所提供的各种图,建立系统模型。
参考文献:
[1]胡 颖辉,宁 赛飞着。基 于 UML 和 ASP.NET 实 现三层 B/S 结构系统开发[J].合肥市:计算机与信息技术,2007.
[2]陆魁军等。计算机网络工程实践教程[M].北京:清华大学出版社,2006 .