由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要。在uml开始之前,咱先回顾一个OOAD、OOP的主要特征。
OOAD:根据面向对象的方法学来对软件系统进行分析和设计的过程。它包括OOA 分析阶段和OOD设计阶段。其中分析阶段主要解决“What to do?”的问题,而设计阶段主要解决“How to do?”的问题。具体来说就是:在OOA分析阶段咱要做的主要工作就是建立对业务问题域的视图(建立模型)、列出系统必须要完成的核心任务、列出针对此问题域的最佳解决方案;而在设计阶段咱要做的主要工作是:如何解决具体的业务问题,引入咱工作需要哪些支持,设计系统的实现策略。通常OOAD的开发过程是这样的:a)项目分解为几个模块;b)使用UML进行建模;c)USDP(统一软件开发过程)是一个迭代、递增(需求、分析、设计、实现、测试等)式开发。
OOP的主要特征:封装、继承、多态、抽象、关联、聚合、组合。
下面谈谈我对这些特征的理解:
(1)封装:“合理隐藏,合理暴露”。具体来说就是合理隐藏数据和实现,提供公共方法供咱调用。
(2)继承:发生在子类和父类之间,通常在这两个类型之间存在“is a”的关系,如:香蕉“is a”水果,香蕉为子类,苹果为父类。通过继承可实现代码重用且继承也是多态的基础。
(3)多态:“同一种类型的变量调用同一个方法表现出不同特征或行为”。举例来说:呼吸breath()这个动作,人使用肺来完成,而鱼则使用鳃来完成。
(4)抽象:抽象是一种将方法声明和具体实现分离的一个过程。通过抽象,咱只需关注其本质特征(具体能做什么)而忽略掉一个对象(或实体)具体细节。
(5)关联:关联实质上是对象之间交互时的一种引用方式,当一个对象A通过另一个对象B的引用去调用B对象的方法操作或服务时,A和B便产生了关联。比如说:咱(person)使用手机(phone)来打电话(即咱调用了手机的一个功能--打电话dial()),person和phone之间就存在了关联关系。
(6)聚合:聚合是关联关系中的一种,一个对象A作为另外一个对象B的属性Field而存在,在外部对象(如汽车Car)被产生时,可有咱指定与其关联的内部对象(轮胎Wheel)。什么意思呢?说直白点吧,一辆汽车CarA的轮胎坏了咱可以重新换上新的轮胎WheelA,而轮胎WheelA/WheelC也可以卸下来供别的汽车CarB使用。可以看出聚合中的关联关系并没有那么强烈。
(7)组合:组合是关联关系中最为强烈的一种。当一个对象A包含另外一个对象B时,外部对象A负责管理内部对象B的生命周期。本质上:内部对象B的创建由外部对象A自己控制,就拿电脑与显示器来说吧,外部对象(电脑)不存在时,内部对象(显示器)也不能存在,这个应该很好理解了吧~
内聚与耦合
内聚:度量一个类独立完成某项工作的能力。组合:度量系统内或系统之间依赖关系的复杂度。咱一般的设计原则是:“高内聚,低耦合”,也就是咱要增加内聚,减少耦合。
下面开始咱们的uml之旅。
域模型
域模型也被称为设计模型,它包含两部分组成:一是具体状态和行为的域对象;二是域对象之间的关系,它包括:关联(上面已经介绍了)、依赖(a对象依赖B类中的方法,并且构造B类的实例)、聚集(整体和部分的关系:如手是人的组成部分)、一般化(继承关系)。
uml定义:统一建模语言(Unified Modeling Language),它是一种图形化的语言,可以帮助我们在OOAD阶段标识元素(用例、类、对象等)、构建模块(功能划分)、分析过程并可通过文档(概要说明、详细说明)来说明系统中的重要细节。
uml图形的分类:包括静态模型(static model)、动态模型(dynamic model)。静态建模目的是创建并记录一个系统的静态特征(如:类包含的属性和方法、用例中的参与者和用例以及用例之间的关系、对象之间的关系等)。静态建模包括:用例图、类图、对象图、组件图、部署图;而动态建模包括:时序图(也称顺序图)、协作图、状态图、活动图。
静态建模中的用例图:它是用来展示系统的核心功能及其交互的用户或系统等。
===================== 用例图========================
1. 用例:系统为参与者提供的功能,一般取名为带有动作性的词语。
2. 用例之间的关系 --> 虚线 :
a) 包含关系:大功能包含《include》子功能。
b) 扩展关系:将基用例中一段【相对独立并且可选】的动作,用扩展《extends》用例加以封装。 --虚线反向
c) 泛化关系:一般和特殊(抽象类/接口+实现类/子类)的关系。实线三角形箭头反向。
下面用一张图来说明:
总结
今天只是开了个头,讲了一下OOAD、OOP的几个特征以及uml建模中的分类(静态、动态建模),最后一个静态建模中的用例图来开始了咱们的uml建模之旅。接下来会继续讲解uml中的剩下的几个常用uml建模。
相关推荐
本资源提供了C#和Java的UML建模工具源代码,这对于开发者来说是一个宝贵的参考资料,有助于理解和学习如何实现这样的工具,以及如何在实际项目中应用UML。 首先,我们来看看C#的相关知识点。C#是一种面向对象的编程...
### UML建模的理解与应用 #### UML概念与作用 UML(Unified Modeling Language,统一建模语言)是一种标准化的图形表示法,用于软件密集型系统的规格说明、可视化和文档化。它不仅适用于面向对象的系统,也可以...
首先,UML是一种图形化语言,它提供了一套标准符号和图示,帮助开发人员理解、记录和沟通系统的需求、结构和行为。在考试成绩管理系统中,我们可能会涉及到以下几种主要的UML图: 1. **用例图**:描述了用户与系统...
ArgoUML是一款广受欢迎的开源UML建模工具,支持UML1.4的所有标准图形,适用于多语言环境,能够在任何Java平台上运行。其界面友好,易于上手,同时具备一定的扩展性,是初学者和有经验的开发者都能使用的优秀工具。 ...
综上所述,这个图书管理系统JAVA版不仅提供了全面的需求分析和建模,还包含了完整的JAVA源代码,是学习和理解JAVA开发、UML建模以及图书管理信息系统设计的宝贵资料。通过对该项目的学习,开发者可以深入理解JAVA...
ArgoUML 是一款开源的UML 建模工具,支持所有UML 1.4 的标准图形。它可以运行在任何Java平台上,并且支持10种语言(地区语言而不是编程语言)。它用Java构造,并遵守开源的BSD协议。
《高校校友平台UML建模报告》是一份深入探讨UML(统一建模语言...这份UML建模报告为理解项目提供了清晰的视角,是学习和实践UML建模的宝贵资源。对于想要掌握UML建模技术的学生和开发者而言,这是一个很好的实例教程。
3.1.2理解UML建模 3.2UML的特点 3.3UML的结构 3.3.1UML的事物 3.3.2UML的关系 3.4UML的视图 3.4.1用例视图 3.4.2逻辑视图 3.4.3并发视图 3.4.4组件视图 3.4.5部署视图 3.5UML图形符号 3.5.1用例图 ...
《MyEclipse UML建模详解》 统一建模语言(Unified Modeling Language,简称UML)是软件开发领域中一种广泛使用的建模工具,它通过图形化的表示方式,清晰地描述了软件系统的结构和行为。MyEclipse作为一款强大的...
《UML建模工具与流程图绘制》是关于软件建模和流程图设计的一份详细讲解资料,适合学习UML和相关工具的使用。本文将深入解析UML建模语言和常用的建模工具,帮助读者理解和掌握建模的核心概念。 UML(Unified ...
- **MyEclipse**:作为一款集成开发环境(IDE),MyEclipse内置了UML建模功能,该功能实际上是基于ArgeUML进行二次开发的。 ##### 17.1.2 MyEclipse 的 UML 工具 MyEclipse 是一款流行的Java集成开发环境(IDE),...
它通过一系列图形符号和图示来表达系统的结构、行为和关系,使得软件设计更加直观易懂。UML的核心理念在于统一,它整合了多种早期的建模方法,如Booch方法、OMT方法和Rational统一过程(RUP),旨在提供一种通用的...
根据给定的标题和描述,“Java高手真经系统架构卷Java Web系统设计与架构UML建模+设计模式+面向服务架构”,我们可以深入探讨几个关键的IT知识点:Java Web系统设计、UML建模、设计模式以及面向服务架构(SOA)。...
在软件开发过程中,UML(统一建模语言)是一种强大的工具,用于可视化、构建和文档化软件系统的结构和行为。UML图可以帮助开发者、设计师和项目团队清晰地理解系统的设计和实现,从而提高沟通效率和代码质量。"JAVA...
**UML(Unified Modeling ...通过提供的"UML建模"PDF文档,你可以系统地学习UML的基本概念、图示类型和使用方法,逐步掌握这一强大的建模语言。在阅读过程中,建议结合实际项目或案例进行练习,以加深理解并提升技能。
Rose是Rational Software Corporation开发的一种UML建模工具,而Visio则是Microsoft开发的一种图形化建模工具。这些工具可以帮助我们快速创建、设计和文档化UML模型。 3.系统分析和UML静态建模: 系统分析是指对...
在IT行业中,UML(统一建模...此外,UML建模也有助于团队间的沟通和合作,因为它提供了一种通用的语言和视图来理解和讨论复杂的软件系统。因此,熟练掌握MyEclipse的UML建模对于Java开发者来说是非常重要的技能之一。
综上所述,Enterprise Architect是一款功能强大的UML建模工具,对于学习和实践UML,以及进行软件开发工作,都是一个理想的选择。其中文版的易用性和免激活特性,更使其在中文用户群体中具有广泛的应用价值。无论是...
《Java Modeling in Color with UML》是一本深入探讨在Java开发中如何利用统一建模语言(UML)进行系统设计的书籍。UML作为一种强大的可视化建模工具,它能够帮助开发者清晰地表达软件系统的结构、行为和关系。本书...