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