软件工程与UML概述.ppt
UML基础与Rose建模案例,邢台职业技术学院信息工程系主讲:曾凡晋,*,教材,指定教材:UML基础与Rose建模案例 吴建 郑潮 汪杰(人民邮电出版社)参考教材:美Josephschmuller 著,UML基础、案例与应用(第三版),人民邮电出版社,2004谭云杰大象-Thinking in UML 中国水利水电出版社 2009邱郁惠.系统分析师UML用例实战.机械工业出版社.2010 UML用户指南(第2版)(UML方面最权威的一本著作).邵维忠译.人民邮电出版社.2006,理论课Classroom:主教楼601,课程安排,实践课Classroom:科技楼608,*,目录,第一章 UML引言第二章 Rational Rose简介第三章 UML语言初览第四章 静态视图第五章 用例视图第六章 动态视图第七章 UML实现与部署,第八章 UML统一开发过程第九章 Rose的双向工程第十章 档案管理系统第十一章 BBS论坛系统第十二章 新闻中心管理系统,*,为什么学习这门课?,从程序员(programmer)到系统分析员(system analyst)从建筑工人(worker)到建筑师(architect),*,课程目标,掌握面向对象方法的主要思想、基本概念与原则。运用UML建模语言,表现程序设计构思。针对具体的UML模型,运用编程语言进行实现。进一步加深对软件建模重要性的理解与体会;强化对软件建模语言与工具的熟练使用。,*,参考网站,统一建模语言 http:/http:/Csdn(中国最大的程序员开发网站)http:/,*,教学安排,一、基础部分专题一:UML概述专题二:面向对象概念与UML的组成二、UML模型图专题三:类图、对象图、包图专题四:用例图专题五:交互图(顺序图、协作图)专题六:状态图专题七:活动图专题八:部署图与配置图三、案例分析 专题九:档案管理系统 专题十一:BBS论坛系统 专题十二:新闻中心管理系统四、大作业,*,课程地位,本课程需要有软件工程OOPL作为基础;本课程为软件体系结构奠定基础。是软件工程方向的重要内容之一;是软件工程方向学生必须掌握的基本技能之一。,课程能力目标,熟悉Rational Rose的使用。写出系统主要需求。画出系统的用例图。写出主要事件流。画出系统类图。画出系统主要用例的顺序图或协作图。画出系统主要用例的活动图。画出系统配置图。最终掌握使用UML工具对系统进行分析、设计的综合能力。,开设本课程的意义,考核方式,理论考试+平时成绩+上机实验(50分)(20分)(30分),*,第一章 UML引言,1.1 软件工程概述1.2 面向对象方法概述1.3 UML语言概述,*,教学目标,掌握软件工程的5个阶段(重点)理解面向对象方法的相关概念(重点)了解UML的历史、目标和应用领域掌握UML包含的总画面和定义(难点),*,1.1 软件工程概述,1.1.1 软件工程的提出 1968年,北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,通过借鉴传统工业的成功做法,他们主张通过工程化的方法开发软件来解决软件危机,并在这次会议上正式提出并使用了“软件工程”这一术语。,*,如何盖一座大楼?,1.1.2 软件工程的5个阶段,*,盖楼的五个阶段,立项阶段 建设单位系统分析与设计 设计单位实现 施工单位测试 单位合作运行维护 维护人员,*,软件工程的5个阶段(一),软件工程共有5个阶段:需求分析阶段、系统分析与设计阶段、实现阶段、测试阶段、维护阶段。(1)需求分析阶段 基本任务:选择合适的项目立项阶段。结束标准:需求分析报告。参与人员:领域专家。(2)系统分析与设计阶段 系统分析阶段基本任务:设计逻辑模型,弄清新系统是“干什么”的这个问题,明确我这个系统能做哪些事情。系统分析阶段结束标准:系统分析报告。系统分析阶段参与人员:系统分析员。系统设计阶段基本任务:根据分析阶段设计出来的逻辑模型进行物理模型的设计,解决的是“怎么干”这个问题,也就是要设计一个能由计算机技术具体实现的物理模型。系统设计阶段结束标准:系统设计说明书。系统设计阶段参与人员:系统分析员。,*,软件工程的5个阶段(二),(3)实现阶段 基本任务:计算机软硬件设备的安装和调试工作、编程、用户及操作人 员进行培训、编制操作手册、使用手册和有关说明等。结束标准:软件、用户手册。参与人员:程序员。(4)测试阶段 基本任务:单元测试、集成测试、系统测试和接受测试四个级别。结束标准:测试报告。参与人员:程序员、测试员和用户。(5)维护阶段 基本任务:包括系统的日常运行管理、评价和审计三部分工作。结束标准:维护修改建议。维护阶段参与人员:维护人员。,软件开发过程,*,*,1.2 面向对象方法概述,对象:任何感兴趣或要加以研究的事、物、概念都可以称为对象。面向对象的方法正是以对象作为最基本的元素,它是分析问题,解决问题的核心。,对象类型:,有形的实体:指一切看得见、摸得着的实物。如飞,事件:在特定时间所发生的事。如飞行、事故、演 出、开会等。,抽象概念:窈窕淑女、解决方案。,机、车辆、计算机、桌子、房子、机器人等等,都属于有形的实体,也是最易于识别的对象。,*,小结:类是在对象之上的抽象,对象则是类的具体化,,类:一个类定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同属性和行为。,属性表示类的性质,行为表示类可执行的操作,是类的实例。,*,面向对象的性质,封装用户隐蔽不必要的行为或属性。,继承性从个别的类中泛化出公共的属性和行为,,多态性是对象在不同情况下有不同行为的能力。,抽象从用户的观点看,表示不同于其他对象或类的对象或类的本质特征,由此派生出不同的子类。,Object-Oriented Analysis and Design,Object-oriented design将物理对象或概念中的对象变成代码,*,*,面向对象方法与结构化方法的区别,OO方法:对现实世界中的实体或者概念对象进行建模 对象各负其责 对象通过消息进行协同,完成复杂的任务结构化方法:研究功能分解 通过复杂的功能组合实现系统功能,*,1.3 UML语言概述,1.3.1 UML的历史1.3.2 UML的目标1.3.3 UML的定义1.3.4 UML的总画面1.3.5 UML的应用领域,*,1.3.1 UML的历史,UML的三位主要贡献者Grady Booch,James Rumbaugh,and Ivar Jacobson。1.面向对象的建模技术OMT(James Rumbaugh)2.Booch 1993(Grady Booch)3.面向对象软件工程OOSE(Ivar Jacobson)由Object Management Group(OMG)推荐成为国际标准,三友,*,Jim Rumbaugh,Grady Booch,Ivar Jacobson,*,*,1.3.2 UML的目标,易于使用,表达能力强,进行可视化建模;与具体的实现无关,可应用于任何语言平台和工具平台;与具体的过程无关,可应用于任何软件开发的过程;简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改;为面向对象的设计与开发中涌现出的高级概念(例如协作、框架、模式和组件)提供支持,强调在软件开发中 对架构、框架、模式和组件的重用;与最好的软件工程实践经验集成;可升级,具有广阔的适用性和可用性;有利于面对对象工具的市场成长;,*,1.3.3 UML的定义,UML(Unified Modeling Language,统一建模语言),是一种面向对象的建模语言。它的主要作用是帮助用户对软件系统进行面向对象的描述和建模,它可以描述这个软件开发过程从需求分析直到实现和测试的全过程。,*,1.3.4 UML总画面,4+1 视图,*,用例视图(use case view):强调从用户的角度看到的或需要的系统功能,并指出各功能的操作者。结构视图(structural view):展现系统的静态或结构组成及特征,包括类图、对象图和包图。行为视图(behavioral view):描述系统的动态模型和组成对象间的交互关系,包括状态图、活动图、时序图和协作图。实现视图(implementation view):描述软件系统实现的不同方面,通常用构件图来表示系统的实现视图。环境视图(environment view):表示系统物理元素的分布,此视图也称为部署图。,*,视图是由图组成的,UML提供9种不同的图:(1)用例图(Use Case Diagram):描述系统功能;(2)类图(Class Diagram):描述系统的静态结构;(3)对象图(Object Diagram):描述系统在某个时刻的静态结构;,(4)时序图(Sequence Diagram):按时间顺序描述系统元素间,(6)状态图(State Diagram):描述了系统元素的状态条件和响应;(7)活动图(Activity Diagram):描述了系统元素的活动;(8)构件图(Component Diagram):描述了实现系统的元素的,的交互;(5)协作图(Collaboration Diagram):按照时间和空间顺序描,述系统元素间的交互和它们之间的关系;,组织;(9)部署图(Deployment Diagram):描述了环境元素的配置,并,把实现系统的元素映射到配置上。,*,1.3.5 UML的应用领域,当前使用UML的最常见的领域是:银行服务国防系统基于Web的分布服务企业信息系统医疗系统宇航系统.,1.3.6 UML的组成,*,1、类图(Class Diagram)类:是一类或一组具有类似属性和共同行为的事物。,*,2、对象图(Object Diagram)3、用例图(Use Case Diagram)用例:是从用户的观点对系统行为的一个描述。对系统开发 人员来说,用例是一个有价值的工具:它是用来从用户的观察角度收集系统要求。,*,4、状态图(State/State chart Diagram)在任一给定的时刻,一个对象总是处于某一个特定状态。5、顺序图(Sequence Diagram)类图,对象图描述的是系统的静态结构。顺序图是基于时间的对象之间的动态交互(相互作用,传达信息),*,*,6、活动图(Activity Diagram)活动图强调行为,动作,而状态图强调状态的变化,*,7、协作图(Collaboration Diagram)系统中各组成元素相互协作。,*,8、构件图(Component Diagram)是类的具体实施。cpp,.exe file,*,9、部署图(Deployment Diagram)计算机系统的物理体系结构。,*,UML工具,*,UML和代码的关系,用Java,C+等 programming language是用编码实现一个系统。用UML是对一个系统建立模型。一些CASE工具可以根据 UML所建立的系统模型来产生Java,C+或其它程序设计语言代码框架。,*,什么样的模型是个好模型?,便于交流捕获本质与目的匹配拥抱变化拒绝复杂,*,思考,对于建模的作用你是如何理解的?UML能保证我们开发出高质量的软件吗?你认为应对需求变更的最佳方法是什么?面向对象技术的优点和缺点是什么?,*,*,百货商店的帐单系统中的用例,管理员,管理员,返回,*,输入帐单详细资料的类图,返回,*,帐单系统的时序图,BillDetailAcceptor,BillPrinter,TotalAmountCalculator,1.打入帐单材料,2.核对帐单材料,3.计算总数,4.打印帐单,Clerk,Clerk,1.输入帐单资料,返回,*,构件图,返回,*,用户节点,打印机节点,帐单系统的部署图,用户节点,数据库服务器节点,打印机节点,返回,谢 谢!,