1、2018/11/20,UML系统建模与分析设计,1,UML程序设计,信息学院 徐 萍,2018/11/20,UML系统建模与分析设计,2,课程安排介绍,总课程由理论课(9次27课时)、实验课(7次21课时)和复习课(1次3课时)构成。 实验报告和平时作业:任务下达后一周内交 考试时间:第17周 考试:笔试开卷考,无期中考,期末总成绩由笔试、实验和平时成绩综合得出。,2018/11/20,UML系统建模与分析设计,3,课程的教学内容,第1章 系统建模与分析设计技术的演变 第2章 统一建模语言UML 第3章 需求分析与用例建模 第4章 系统分析与对象类建模 第5章 系统设计与对象动态交互模型 第6
2、章 系统动态建模-状态模型 第7章 系统体系结构建模 第8章 模式设计及其应用 第9章 软件复用与构件接口技术,2018/11/20,UML系统建模与分析设计,4,教学章节间的关系,第1章 背景知识介绍,第2章 UML语言和Rose工具简介,第3章 用例图 第4章 类图和对象图 第5章 顺序图和活动图 第6章 状态图和活动图 第7章 构件图和配置图,第8章 设计模式,第9章 软件复用,2018/11/20,UML系统建模与分析设计,5,本课程的教学目标,1、了解常见的软件开发方法和开发过程 2、理解面向对象软件开发方法 3、掌握UML建模语言 4、学会在Rational Rose中进行UML建
3、模 5、掌握用例模型图、静态模型图(类图、对象图、包图、构件图和配置图)和动态模型图(顺序图、活动图、状态图和合作图)的设计 6、掌握常见的设计模式及其应用 7、了解软件复用与构件接口技术,参考书籍,UML精粹-标准对象建模语言简明指南Martin Fowlers 著 清华大学出版社 UML面向对象建模与设计 Michael Blaha 著 人民邮电出版社 UML与Rationl Rose2003 从入门到精通 解本巨 等编著 电子工业出版社 UML实战教程-面向.NET开发人员 高猛 译 清华大学出版社 UML和模式应用Craig Larman 著 机工出版,2018/11/20,UML系统
4、建模与分析设计,6,2018/11/20,UML系统建模与分析设计,7,第一章 系统建模与分析设计技术的演变,系统建模与分析设计是研究和应用如何以系统化、规范化、可度量的方法、运行和维护软件的一种层次化技术。包括过程、方法和工具UML系统建模与分析设计,2018/11/20,UML系统建模与分析设计,8,系统建模与分析设计,本章目的: 理解软件的基本概念和特点 了解软件的发展过程及软件开发过程 了解软件开发的方法 掌握面向对象技术的基本概念及开发过程 了解几种典型的面向对象方法,2018/11/20,UML系统建模与分析设计,9,1、软件的概念:,软件是人们对客观世界中问题空间与解空间的具体描
5、述,是客观事物的一种反映,是知识的提炼和固化。 具体的:软件就是程序以及开发、使用、维护程序所需要的所有文档。 软件=程序+文档 构造性(更强的表达能力)和演化性(更符合人类的思维模式)是软件的本质,1.1 软件的概念、特点和分类,2018/11/20,UML系统建模与分析设计,10,2现代软件的特点(1)软件规模大。(从开发平台 可看出)(2)软件开发规范并趋于标准化。(理论)(3)软件开发方法多,有大量的软件工具支持。(4)注重软件开发的管理。(5)软件维护相对过去容易得多。从工程的概念上看:软件工程与其它工程的区别与联系,2018/11/20,UML系统建模与分析设计,11,3软件的分类
6、 (1)按软件的功能划分系统软件。支撑软件。(支持的工具)应用软件。 (2)按软件的规模划分微型软件。小型软件。中型软件。大型甚至超大型软件。 (3)按软件工作方式划分实时处理软件。分时软件。交互式软件。批处理软件。,2018/11/20,UML系统建模与分析设计,12,1.2 软件的发展与软件工程,软件工程具有里程碑意义的进展:结构化软件开发方法的工具。计算机辅助软件工程(CASE)。面向对象语言和方法成为主流的软件开发技术。,2018/11/20,UML系统建模与分析设计,13,1.3 软件开发模型的演变和生存周期,软件开发模型概念:是软件开发全部过程、活动和任务框架对开发方法、开发工具(
7、程序设计语言)、开发人员、管理方法与手段的控制,2018/11/20,UML系统建模与分析设计,14,1.3.1 软件开发过程与模型的演变,瀑布模型(waterfall model)分为几个阶段: 确定客户需求 定义系统需求 系统分析与设计 系统测试 系统实现与集成 系统调整与改进 系统交付与使用,2018/11/20,UML系统建模与分析设计,15,瀑布模型,(1)慎重使用瀑布模型的情况: 不能充分理解客户需求或客户需求有可能迅速发生化; 系统太大太复杂,不能一次做完所有的事; 事先拟采用的技术迅速发生变化; 提供的资源有限; 无法利用各开发阶段的某一中间产品。,2018/11/20,UML
8、系统建模与分析设计,16,(2)使用瀑布模型的情况: 系统所有的功能、性能要求客户可以一次性准确交付时; 必须是首次开发的新系统并且淘汰全部老系统时。,2018/11/20,UML系统建模与分析设计,17,2. 渐增模型(incremental model),渐增模型:开发活动是由一组有计划的循环渐增的、不断改进的过程版本组成。,2018/11/20,UML系统建模与分析设计,18,渐增模型,(1)慎重考虑使用渐增模型的情况: 不能充分理解客户需求或客户需求有可能迅速发生变化; 事先拟采用的技术迅速发生变化; 客户突然提出一些新的功能需求; 长时期内仅有有限的资源保证(开发人员和资金)。,20
9、18/11/20,UML系统建模与分析设计,19,使用渐增模型的情况: 需要在尽短的时间内得到系统基本功能的演示或使用; 各版本都有中间阶段产品可提供使用; 系统可以被自然地分割成渐增的模式; 开发人员与资金可以逐步增加。,2018/11/20,UML系统建模与分析设计,20,3. 演化模型(evolutionary model)演化模型也称为原型(prototype)法模型。 对事先不能完整定义需求的软件项目的开发。使用演化模型时应注意:,2018/11/20,UML系统建模与分析设计,21,演化模型,演化模型也是通过系统各个可执行的中间版本以渐增的形式来开发系统的,但是客户需求可以分步逐渐
10、了解,不用在初始时就确定。 在模型中,可以预先定义一部分客户需求,然后在每个后继的中间版本中再逐步增加需求,一点点完善。 在开发每个中间版本时,开发过程中的活动和任务可以顺序地或部分重叠平行地被加入到这些中间版本中。,2018/11/20,UML系统建模与分析设计,22,4. 螺旋模型(spiral model) 螺旋模型的四类活动: 制定计划。 风险分析。 实施开发。 客户评估。,2018/11/20,UML系统建模与分析设计,23,1.4 软件开发方法简介,1. 结构化程序设计方法其控制结构仅由顺序、选择与重复等有限的基本控制结构表示。 2. 模块化程序设计方法模块之间的接口应尽可能简明清
11、晰:单独模块的修改不影响其它模块的功能;模块化应具有可修改性、易读性和可验证性。 3. 面向对象程序设计方法,2018/11/20,UML系统建模与分析设计,24,1.4.1 结构化软件开发方法1结构化分析的步骤构造数据流模型。构建控制流模型。生成数据字典(DD)。生成可选方案,建立需求规约。,2018/11/20,UML系统建模与分析设计,25,2结构化设计步骤首先研究、分析和审查数据流图。从软件的需求规格说明中弄清数据流加工的过程。 然后根据数据流图决定问题的类型。 由数据流图推导出系统的初始结构图。 优化软件结构。 描述模块接口。 修改和补充数据词典。 制定测试计划。,2018/11/2
12、0,UML系统建模与分析设计,26,1.4.3 面向对象软件开发方法面向对象方法的意义:(1)一种新的思考方式。(2)将数据和行为结合成为对象。(3)核心是封装。(4)面向对象方法建立的基础是: 软件工程概念; 计算机科学概念; 工程管理; 数据库信息模型; 传统软件开发方法。,2018/11/20,UML系统建模与分析设计,27,面向对象方法有几十种,综合起来,其基本观点如下: 现实客观世界由对象组成。 相同的对象归并为类。 类可以继承。 对象之间通过消息进行联系。面向对象 = 对象 + 类 + 继承 + 通信,2018/11/20,UML系统建模与分析设计,28,1.5 面向对象软件开发方
13、法简介,特点:(1)使人们更好地认识客观世界(2)能很好地适应需求变化(3)容易实现软件复用(4)系统易于维护和修改,2018/11/20,UML系统建模与分析设计,29,1.5.1 面向对象的基本概念封装性、继承性和多态性。1. 对象客观世界中的实体抽象为问题空间中的对象。2. 对象的抽象类把具有相同特征和行为的对象归在一起就形成了类(Class)。类有属性和操作。,2018/11/20,UML系统建模与分析设计,30,2018/11/20,UML系统建模与分析设计,31,3. 信息隐蔽和局部化封装 4. 继承与派生,2018/11/20,UML系统建模与分析设计,32,5. 对象之间的联系
14、纽带消息,2018/11/20,UML系统建模与分析设计,33,6. 多态性多态性(Polymorphism)是指同一个消息为不同的对象接收时,可产生不同的动作或执行结果。,2018/11/20,UML系统建模与分析设计,34,1.5.2 面向对象系统开发过程,2018/11/20,UML系统建模与分析设计,35,(1)需求分析阶段。(2)系统分析阶段。(3)系统设计阶段。(4)系统实现、测试、使用、维护阶段。,2018/11/20,UML系统建模与分析设计,36,1.6 本章小结,1、软件的概念,特点和分类 2、软件开发模型:瀑布模型,渐增模型,原型法,面向对象模型 3、软件开发方法:结构化,模块化,面向对象开发 4、面向对象软件开发的基本概念和开发过程,2018/11/20,UML系统建模与分析设计,37,1.7 习题,P30 三(11-14)、四(19,20),