1、UML系统建模技术,为什么要建模 ?,更好的理解我们正在开发的系统并发现简化和重用的机会,表达我们所渴望的系统结构和行为,展示和控制系统体系结构,风险控制,面向对象的建模,传统的软件开发是从算法的角度进行建模 面向对象的建模方法是当前软件开发的主流方法,UMLUnified Modeling Language,一种对软件密集型系统的制品进行可视化,详诉,构造和文档化的可视化建模语言 OMG的标准建模语言,UML的发展史,90年代,有一定影响的OOAD方法有50多种 1993年,由Booch开始工作并创建了Rational公司 1994年,OMT的重要元老Rumbaugh加入Rational公司
2、 1995年10月,第一个版本,Unified Method 0.8 1995年Jacobson加入Rational公司 1996年6月,发布UML0.9 1997年,多家软件公司组成的UML联合组织成立,并把UML1.0提交到OMG 1997年11月4日,OMG发布UML1.1 目前版本UML1.4,UML是主流面向对象方法学的综合和统一,Booch OOSE OMT,UML是一种富有表达力的语言,从并发系统到基于Web的分布式应用,从企业信息系统甚至到严格的实时嵌入式系统都适合用UML来建模 UML是十分庞大的语言,提供了多种模型和足够的扩展性以对各种复杂系统建模,UML并不可怕,利用UM
3、L的20就可以为80左右的问题建模,UML是独立于过程的,最适用于用例驱动、以体系结构为中心、迭代和增量的过程中,RUP的软件开发生命周期,UML体系结构视图,UML的9个核心框图,用例图 类图 对象图 顺序图 协作图 状态图 活动图 组件图 实施图,最基本的建模,类图中的各个类对象,按照顺序图的交互,完成一个用例 。,一个ATM系统实例,建立一个具有基本功能的ATM机软件,客户可以存钱,取钱,客户可以查询节余,客户可以修改密码,客户可以使用信用卡付帐,需求建模用例图,需求分析的第一步是确定系统能够做什么?谁来使用这个系统? 用例图显示用例(表示系统功能)与角色(表示提供或者接收系统信息的人或
4、系统)之间的交互。 用户,项目管理员,分析人员,开发人员质保人员都可以通过用例图了解系统功能。,ATM系统的用例图,用例,描述一个系统(或一个子系统)做什么,而不是说明怎么做,角色,系统用户 与本系统交互的其他系统 时间,建立事件流,事件流的目的是建档使用案例中的逻辑流程,详细描述系统的工作。,用例“取钱”的事件流 (1),简要说明:客户可以从ATM机上取出自己帐目上的部分或者全部存款。 前提条件:无 主事件流:,客户将卡插入ATM机,开始用例。 ATM显示欢迎消息并提示客户输入密码。 客户输入密码。 ATM确认密码有效。如果无效则执行其他事件流A1。如果与主机联接有问题,则执行异常事件流E1
5、。 ATM提供以下选项:存钱,取钱,查询 。 用户选择取钱选项。 ATM提示输入所取金额。 用户输入所取金额。 ATM确定该帐户是否有足够的金额。如果余额不够,则执行A2,如果与主机联接有问题,则执行异常事件流E1。 ATM从客户帐户中减去所取金额。 ATM向客户提供要取的钱。 ATM打印清单。 ATM退出客户的卡,用例结束。,其他事件流A1:输入无效密码 ATM告诉客户该密码错误。 ATM退出客户的卡,用例结束。 其他事件流A2:余额不足 ATM告诉客户该帐户余额不足。 ATM退出客户的卡,用例结束。 异常事件流E1:联接主机出现错误 ATM告诉客户联接主机出现错误。 ATM在错误日志记下错
6、误。 ATM退出客户的卡,用例结束。 事后条件:无,寻找对象,研究事件流及情景文档中的名词 分辨对象和对象属性 不在事件流中的控制对象,顺序图按时间顺序对控制流建模,用户从中看到业务过程的细节 分析人员从中看到处理流程 开发人员看到需要开发的对象和它们的操作 质保人员看到过程细节,并根据这个过程开发测试案例,客户李明取20元钱的顺序图,协作图按对象的组织对控制流建模,质保人员和系统分析员用协作图显示对象间处理过程的责任分布和数据流。,客户李明取20元钱的协作图,对象结构类图,显示系统中类与类之间的交互 分析员用类图显示系统细节。类图可以显示每个用例中类的相互作用,也可以显示整个系统或子系统,A
7、TM系统“取钱”用例的类图,顺序图改进,关系,依赖 泛化 实现 关联聚合和复合,“取钱”用例的类图改进,组织建模元素包,一个包形成一个命名空间。通过包组织大系统模型,减少复杂性 结构良好的包是松耦合,高内聚的,对其类容的访问具有严密的控制,ATM系统的包组织,对象行为状态图,显示一个对象从生成到删除的生命周期中相应事件所经历的状态序列以及它们对哪些事件的相应。 分析人员和开发人员通过状态图更好的了解类的动态行为,使编码前能讨论和建立复杂逻辑。,Account对象的状态图,构造程序组件图,表示一组组件之间的组织和依赖关系 编译和部署系统的人员需要使用组件图。显示了类与实现组件之间的映射,组件按什
8、么顺序编译,编译时生成哪些运行组件 构件图对于通过正向工程和逆向工程构造可执行系统是重要的,ATM客户机的C+组件图,ATM服务器的C+组件图,ATM客户机的Java组件图,项目部署实施图,建模系统的实际部署 项目管理员,用户,分析员和部署人员通过实施图了解,显示网络的实际布局和网络节点上组件的配置,ATM系统的实施图,回顾ATM项目的开发过程,初始,识别角色和用例,构建用例图 。,细化,更新用例模型,细化用例。建立交互图,类图和状态图。开始构建实施图以建模系统体系结构,构造,完成代码,生成组件图,移交,使用实施图进行软件部署,维护软件与模型地同步 。,正向工程和逆向工程,通过正向工程把模型映
9、射为特定实现语言的代码。 通过逆向工程把特定实现语言的代码转换为模型。,UML的扩展机制,UML是可扩展的。 扩展用于特定的应用域或编程环境,但是它们导致了 U M L方言的出现。 在使用扩展机制之前,建模者应该仔细权衡它的好处和代价,特别是当现有机制能够合理工作时。,构造型,构造型是在一个已定义的模型元素的基础上构造的一种新的模型元素. 构造型的信息内容和形式与已存在的基本模型元素相同,但是含义和使用不同。,标记值,标记值是一对字符串,存储着有关元素的一些信息。 对于存储项目管理信息,代码生成器等有用,约束,约束是用文字表达式表示的语义限制。 约束用大括弧内的字符串表达式表示。约束可以附加在表元素、依赖关系或注释上。,谢谢!,