为什么要进行软件建模? ■软件系统越来越大,任何个人都不可能单 独管理这些代码; ■没有参加开发的人员无法直接理解程序代 码 ■我们需要一种描述复杂系统的简单方法
为什么要进行软件建模? ◼ 软件系统越来越大,任何个人都不可能单 独管理这些代码; ◼ 没有参加开发的人员无法直接理解程序代 码; ◼ 我们需要一种描述复杂系统的简单方法
软件建模的概念 ■软件建模( Modeling):将所要设计的结构和系 统的行为融汇贯通,对系统的体系结构进行可视 化和控制,化解复杂性的问题,有效地管理开发 风险,从而开发出高品质的软件。 面向对象的建模方法:人们在问题空间或解空间 中识别各种对象,并对其进行抽象化描述,从不 同的视角建立模型,形成系统的不同视图,并以 对象或类作为软件系统的主要构造块。始于80年 代初
软件建模的概念 ◼ 软件建模(Modeling):将所要设计的结构和系 统的行为融汇贯通,对系统的体系结构进行可视 化和控制,化解复杂性的问题,有效地管理开发 风险,从而开发出高品质的软件。 ◼ 面向对象的建模方法:人们在问题空间或解空间 中识别各种对象,并对其进行抽象化描述,从不 同的视角建立模型,形成系统的不同视图,并以 对象或类作为软件系统的主要构造块 。始于80年 代初
UML的发展历史 2001年 2000年 ULF. 4 UML1. 3 反2197年11月,0MG认可 1997年9月,最后提交0MG UML1. 1 1997年1月,第一次提交0MG UML伙伴 UML1. 0 Web-June 96 UMLO. 9 OOPSLA 95 Uni fied Method 0.8 VDM/Z 形式化方法 其他方法 Boch方法 OMT OOSE
UML的发展历史
什么是UML?(1) ■统一建模语言( Unified Modeling Language,UML):一种直观化、明确化 构建和文档化软件系统产物的通用可视化 建模语言,从企业信息系统到基于Web的 分布式应用,甚至严格的实时嵌入式系统 都适合于用∪ML来建模 ■它是一种富有表达力的语言,可以描述开 发所需要的各种视图,并以此为基础组建 系统
什么是UML?(1) ◼ 统一建模语言(Unified Modeling Language,UML):一种直观化、明确化、 构建和文档化软件系统产物的通用可视化 建模语言,从企业信息系统到基于Web的 分布式应用,甚至严格的实时嵌入式系统 都适合于用UML来建模。 ◼ 它是一种富有表达力的语言,可以描述开 发所需要的各种视图,并以此为基础组建 系统
什么是UML?(2) ■UML是一种语言 ■UML是一种可视化的建模语言 □UML提供一组具有明确语义的图形符号,可以建立清晰的模型便 于交流,同时所有开发人员都可以无歧义地解释这个模型。 ■UML是一种可用于详细描述的语言 口UML为所有重要的分析、设计和实现决策提供了精确的、无歧义 的和完整的描述。 UML是一种构造语言 口UML不是一种可视化的编程语言,但它所描述的模型可以映射 (正向工程/逆向工程)成不同的编程语言,如JAVA、C++和 Visua| Basic等 UML是一种文档化语言 口UML不是过程,也不是方法,但允许任何一种过程和方法使用它。 它可以建立系统体系结构及其详细文档
什么是UML?(2) ◼ UML是一种语言 ◼ UML是一种可视化的建模语言 UML提供一组具有明确语义的图形符号,可以建立清晰的模型便 于交流,同时所有开发人员都可以无歧义地解释这个模型。 ◼ UML是一种可用于详细描述的语言 UML为所有重要的分析、设计和实现决策提供了精确的、无歧义 的和完整的描述。 ◼ UML是一种构造语言 UML不是一种可视化的编程语言,但它所描述的模型可以映射 (正向工程/逆向工程)成不同的编程语言,如JAVA、C++和 Visual Basic等。 ◼ UML是一种文档化语言 UML不是过程,也不是方法,但允许任何一种过程和方法使用它。 它可以建立系统体系结构及其详细文档
UML的概念模型:视图(1) ■视图(vews):每个视图代表系统的一个抽象,反映了 系统中的一个特定方面,从而使不同的人员关注系统的不 同方面。 设计视图 实现视图 最终用户 编程 功能 软件管理 用例视图 进程视图 分布试图 系统集成 系统工程 性能 系統拓扑结构 分发 吞吐能
UML的概念模型:视图(1) ◼ 视图(Views):每个视图代表系统的一个抽象,反映了 系统中的一个特定方面,从而使不同的人员关注系统的不 同方面
UML的概念模型:视图(2) 用例视图( Use Case view) 口描述系统应该具有的功能集,它从系统外部用户的角度出发,实现对系统的抽象 表 口角色( Actor)代表外部用户或其他系统,用例(Use-case)表示系统能够提供的 功能,通过列举角色和用例,显示角色在每个用例中的参与情况。 口其他视图的核心和基础,其他视图的构造和发展依赖于用例视图所描述的内容 口静态地描述系统功能,主要为用户、设计人员、开发人员和测试人员而设置。 设计视图( Design View) 口用来揭示系统功能的内部设计和协作情况。 口利用静态结构和动态行为描述系统的功能。 口静态结构描述类、对象及其关系等,动态行为主要描述对象之间发送消息时产生 的动态协作、一致性和并发性等 进程视图( Process view) 口进程视图描述系统的并发工作状况,它包含形成系统并发与同步机制的线程和进 程,主要提供给系统开发商和集成商。 实现视图( Implementation View) 口实现视图由一些独立的构件和文件组成,显示实现模块及其之间的依赖关系 分布视图( Deployment View) 口分布视图主要描述系统的物理架构,显示系统硬件拓扑结构的节点,提供给开发 人员、集成人员和测试人员
UML的概念模型:视图(2) ◼ 用例视图(Use Case View) 描述系统应该具有的功能集,它从系统外部用户的角度出发,实现对系统的抽象 表示。 角色(Actor)代表外部用户或其他系统,用例(Use-case)表示系统能够提供的 功能,通过列举角色和用例,显示角色在每个用例中的参与情况。 其他视图的核心和基础,其他视图的构造和发展依赖于用例视图所描述的内容。 静态地描述系统功能,主要为用户、设计人员、开发人员和测试人员而设置。 ◼ 设计视图(Design View) 用来揭示系统功能的内部设计和协作情况。 利用静态结构和动态行为描述系统的功能。 静态结构描述类、对象及其关系等,动态行为主要描述对象之间发送消息时产生 的动态协作、一致性和并发性等。 ◼ 进程视图(Process View) 进程视图描述系统的并发工作状况,它包含形成系统并发与同步机制的线程和进 程,主要提供给系统开发商和集成商。 ◼ 实现视图(Implementation View) 实现视图由一些独立的构件和文件组成,显示实现模块及其之间的依赖关系。 ◼ 分布视图(Deployment View) 分布视图主要描述系统的物理架构,显示系统硬件拓扑结构的节点,提供给开发 人员、集成人员和测试人员
UML的概念模型:图(1) ■图( Diagrams):系统模型中每一个视图的内容是由一些图来描述的, UML中包含九种图 对整个系统而言,其功能由用例图描述,静态结构由类图和对象图描 述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构 则是由组件图和分布图描述。 类图 用例图 对象图 时序图 协作图 模型 组件图 状态图 分布图 活动图
UML的概念模型:图(1) ◼ 图(Diagrams):系统模型中每一个视图的内容是由一些图来描述的, UML中包含九种图。 ◼ 对整个系统而言,其功能由用例图描述,静态结构由类图和对象图描 述,动态行为由状态图、时序图、协作图和活动图描述,而物理架构 则是由组件图和分布图描述
UML的概念模型:图(2) 用例图 口用例图定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述 统内部对功能的具体实现 类图 口类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。 对象图 口对象图描述了一组对象以及它们之间的关系,表示类的对象实例。 状态图 口状态图表示一个状态机,强调对象行为的事件顺序。 时序图和协作图 口时序图和协作图均表示一组对象之间的动态协作关系,两者之间可以相互转换。 口时序图反映对象之间发送消息的时间顺序,协作图反映收发消息对象的结构组织 活动图 口活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。 组件图 口组件图描述组件以及它们之间的关系,表示系统的静态实现视图 分布图 口分布图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节 点中组件的配置
UML的概念模型:图(2) ◼ 用例图 用例图定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述 系统内部对功能的具体实现。 ◼ 类图 类图描述系统的静态结构,表示系统中的类以及类与类之间的关系。 ◼ 对象图 对象图描述了一组对象以及它们之间的关系,表示类的对象实例。 ◼ 状态图 状态图表示一个状态机,强调对象行为的事件顺序。 ◼ 时序图和协作图 时序图和协作图均表示一组对象之间的动态协作关系,两者之间可以相互转换。 时序图反映对象之间发送消息的时间顺序,协作图反映收发消息对象的结构组织。 ◼ 活动图 活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。 ◼ 组件图 组件图描述组件以及它们之间的关系,表示系统的静态实现视图。 ◼ 分布图 分布图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节 点中组件的配置