1、1.2 UML概念、历史简介,徐迎晓复旦大学软件学院,outline,UML 概念What is a Model面向对象总结,outline,UML 概念What is a Model面向对象总结,UML概念,UML Unified Modeling Language.Modeling用于表达现实的简化视图,以便于面向对象软件系统的设计与实现,outline,UML 概念What is a Model面向对象总结,早期软件开发过程,Software Development项目管理、需求分析、质量保证、维护等设计、实现 通常的过程,需求说明:软件要做什么, 非正式描述,与未来的用户一起准备,正式
2、合同的基础,常作为软件开发的起点形式非正式的大纲informal outline高度详细和结构化的功能说明程序员非正式的理解原型系统(与未来用户一起开发)适合于simple program, single programmer数据和子程序结构在程序员脑子中,更复杂的过程,Structure chart: 系统结构特定方面的抽象视图整个程序功能分解为多个子程序(subroutine)以及子程序之间的调用关系这种功能的文档称为模型(Model),模型的作用,整个系统太复杂,难以一下子抓住,通过模型简洁地描述系统某个方面an abstract view of important aspects of
3、 the system交流。(项目组成员之间,与客户)将系统体系结构归档,Architecting a dog house,Can be built by one personRequiresMinimal modelingSimple processSimple tools,Architecting a house,Built most efficiently and timely by a teamRequiresModelingWell-defined processPower tools,Architecting a high rise,Early architecture,Progr
4、ess - Limited knowledge of theory,Modern architecture,Progress - Advances in materials - Advances in analysis,Modeling a house,模型的分类,分类:根据从何种角度来理解和描述系统的结构Structured Methods:包括结构化分析,结构化设计等通常用data flow diagram描述数据如何经过各个处理流程适于关系数据库设计(大量数据,数据的处理可由数据之外的函数处理)Object-oriented Methods: 将数据和函数统一建议迭代、增量(iterat
5、ive, incremental)开发Example: UML,模型和语言,LanguageUML主要是遵循精确语法的图形语言模型Model+表示法Notation Model: 表示系统的结构设计系统时可以在高层进行讨论,而不用太早进入代码的细节Notation: 以图表将模型文档化,UML概念,Unified组合了当前最好的面向对象软件建模方法Grady Booch, James Rumbaugh, and Ivor Jacobson,UML三位主要贡献者1. OMT (James Rumbaugh)2. The Booch method (Grady Booch)3. OOSE (Iva
6、r Jacobson),outline,UML 概念What is a Model面向对象总结,面向对象大师简介,Grady Booch Ivar Jacobson James Rumbaugh,James Rumbaugh,UML,Booch,Unified Method 0.8,UML 1.0,OMT,OOSE/Objectory,UML 0.9,OOPSLA 95,WWW - June 96,Beta version OOPSLA 96,Submission to OMG, Jan 97,Documentation Set,WWW Spec only,Other methods,UML
7、1.1,Submission to OMG, Sept 97,OMG Vote, Oct 97,UML 1.4,Sep. 2001,UML 1.2,1.3,9899,Mar. 2003,UML 1.5,Present,UML 2.0,Version 2.1.1.,面向对象的历史,1960年 - 70年代COBOL, FORTRAN, C结构化分析和设计技术1980年 - 1990年前Smalltalk, Ada, C+, Visual Basic早期面向对象生成(代码)方法1990年中晚期JavaUMLUnified Process,分析模型Analysis models描述应用领域设计模型
8、Design models描述软件系统(如Structure chart )面向对象技术分析模型和设计模型之间使用相同的模型和建模概念,解决从分析阶段到设计阶段的过渡问题,防止不一致,outline,UML 概念What is a Model面向对象总结,总结,UML是一种语言遵循特定的规则允许创建各种模型并不告诉设计者需要创建哪些模型并不提供开发过程UML是可视化语言UML是图形化语言图形便于交流(一幅图抵上千文字)UML是用于构造系统或理解系统的语言UML既支持正向工程,又支持反向工程,总结,UML是文档化语言将所建造的系统记录下来便于新程序员跟进开发产品新版本时很有用处,结构建模:类图对象图行为建模用例图交互图(顺序图、协作图)活动图状态图体系结构建模构件图实施图,Structure Modelingclass diagramobject diagramBehavior Modelinguse case diagraminteraction diagram(Sequence diagram/collaboration diagram)activity diagramstatechart diagramArchitecture Modelingcomponent diagramdeployment diagram,