uml 系统建模 与分析设计

41
22/6/8 UML 系 系系系系系系系 1 UML 系 系系 系系系系系

Upload: phelan-christensen

Post on 02-Jan-2016

116 views

Category:

Documents


2 download

DESCRIPTION

UML 系统建模 与分析设计. 第一章 系统建模与分析设计技术的演变. 本章目的: 理解软件的基本概念和特点 了解软件的发展过程及软件开发过程 了解软件开发的方法 掌握面向对象技术的基本概念及开发过程 了解几种典型的面向对象方法. 1.1 软件的概念、特点和分类. 1 .现代软件的概念和特点 ( 1 )软件规模大。 ( 2 )软件开发规范并趋于标准化。 ( 3 )软件开发方法多,有大量的软件工具持。 ( 4 )注重软件开发的管理。 ( 5 )软件维护相对过去容易得多。. 2 .软件的分类 ( 1 )按软件的功能划分 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 1

UML 系统建模 与分析设计

Page 2: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 2

第一章系统建模与分析设计技术的演变

本章目的:理解软件的基本概念和特点了解软件的发展过程及软件开发过程了解软件开发的方法掌握面向对象技术的基本概念及开发过程了解几种典型的面向对象方法

Page 3: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 3

1.1 软件的概念、特点和分类

1.现代软件的概念和特点

( 1 )软件规模大。 ( 2 )软件开发规范并趋于标准化。 ( 3 )软件开发方法多,有大量的软件工具持。 ( 4 )注重软件开发的管理。 ( 5 )软件维护相对过去容易得多。

Page 4: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 4

2 .软件的分类( 1 )按软件的功能划分 系统软件。 支撑软件。 应用软件。( 2 )按软件的规模划分 微型软件。 小型软件。 中型软件。 大型甚至超大型软件。( 3 )按软件工作方式划分 实时处理软件。 分时软件。 交互式软件。 批处理软件。

Page 5: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 5

( 4 )按软件服务对象的范围划分 项目软件。

产品软件。( 5 )按使用的频度划分

一次性使用软件。使用频度较高的软件。

( 6 )按软件失效的影响程度划分一般性软件。关键性软件。

Page 6: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 6

1.2  软件的发展与软件工程

软件工程的指导性原则: 变动的软件需求。

稳妥的设计方法。高效的软件开发支持技术。有效的过程管理。

软件工程具有里程碑意义的进展:结构化软件开发方法的工具。计算机辅助软件工程( CASE )。面向对象语言和方法成为主流的软件开发技术。

Page 7: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 7

1.3 软件开发模型的演变和生存周期

1.3.1 软件开发过程与模型的演变

1. 瀑布模型( waterfall model )( 1 )慎重使用瀑布模型的情况:

不能充分理解客户需求或客户需求有可能迅速发生化;系统太大太复杂,不能一次做完所有的事;事先拟采用的技术迅速发生变化;提供的资源有限;无法利用各开发阶段的某一中间产品。

Page 8: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 8

( 2 )使用瀑布模型的情况:系统所有的功能、性能要求客户可以一次性准确交付时;必须是首次开发的新系统并且淘汰全部老系统时。

2. 渐增模型( incremental model )( 1 )慎重考虑使用渐增模型的情况:

不能充分理解客户需求或客户需求有可能迅速发生变化;事先拟采用的技术迅速发生变化;客户突然提出一些新的功能需求;长时期内仅有有限的资源保证(开发人员和资金)。

Page 9: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 9

使用渐增模型的情况:需要在尽短的时间内得到系统基本功能的演示或使用;各版本都有中间阶段产品可提供使用;系统可以被自然地分割成渐增的模式;开发人员与资金可以逐步增加。

Page 10: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 10

3. 演化模型( evolutionary model ) 演化模型也称为原型( prototype )法模型。

使用演化模型时应注意:演化模型也是通过系统各个可执行的中间版本以渐增的形式来开发系统的,但是客户需求可以分步逐渐了解,不用在初始时就确定。在模型中,可以预先定义一部分客户需求,然后在每个后继的中间版本中再逐步增加需求,一点点完善。在开发每个中间版本时,开发过程中的活动和任务可以顺序地或部分重叠平行地被加入到这些中间版本中。

Page 11: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 11

Page 12: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 12

4. 螺旋模型( spiral model )螺旋模型的四类活动:制定计划。风险分析。实施开发。客户评估。

Page 13: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 13

5 . 智能模型( intelligent model )

Page 14: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 14

1.3.2 软件开发模型的选择

要综合考虑以下几个因素: ( 1 )软件规模 ( 2 )软件类型

系统软件的开发。实时软件的开发。商业应用软件的开发。嵌入式软件的开发。人工智能软件的开发。

Page 15: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 15

( 3 )软件质量要求( 4 )交付工期( 5 )客户需求明确度( 6 )投资( 7 )可复用性( 8 )开发者掌握的资源

Page 16: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 16

1.3.3 软件生存周期

Page 17: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 17

1.软件定义( 1 )软件系统的可行性研究

1 )经济可行性研究。2 )技术可行性研究。3 )法律可行性研究。4 )方案的选择。

( 2 )需求分析1 )任务。

软件功能需求: 软件性能需求: 软件系统运行环境:

2 )按需求建模。3 )软件需求规格说明( Software

Requirements Specification ,简称 SRS )。

Page 18: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 18

2.软件开发( 1 )概要设计

建立系统总体结构和各模块之间的关系;定义各个功能摸块的接口;设计全局数据库或数据结构;规定设计约束;制定组装测试计划。

( 2 )详细设计对概要设计进行细化;建立文档资料。

Page 19: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 19

( 3 )实现选择合适的编程语言;制定测试案例;保存文档资料。

( 4 )组装测试( 5 )确认测试

3.软件使用、维护和更新换代( 1 )软件使用( 2 )系统维护( 3 )系统更新换代

Page 20: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 20

1.4 软件开发方法简介

1. 结构化程序设计方法其控制结构仅由顺序、选择与重复等有限的基本控制结构表示。

2. 模块化程序设计方法模块之间的接口应尽可能简明清晰:

单独模块的修改不影响其它模块的功能; 模块化应具有可修改性、易读性和可验证性。

3. 面向对象程序设计方法

Page 21: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 21

1.4.1 结构化软件开发方法

1.结构化分析的步骤 构造数据流模型。

构建控制流模型。生成数据字典( DD )。生成可选方案,建立需求规约。

Page 22: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 22

2.结构化设计步骤

首先研究、分析和审查数据流图。从软件的需求规格说明中弄清数据流加工的过程。然后根据数据流图决定问题的类型。由数据流图推导出系统的初始结构图。优化软件结构。描述模块接口。修改和补充数据词典。制定测试计划。

Page 23: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 23

1.4.2 模块化软件开发方法

( 1 )模块可分解性。( 2 )模块可组装性。( 3 )模块可理解性。( 4 )模块连续性。( 5 )模块保护。

Page 24: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 24

1.4.3 面向数据结构软件开发方法1.建立 JSD 的系统进程模型2 . JSD 方法的步骤( 1 ) JSD 需求分析步骤

标识系统中的实体与相应动作;生成实体结构图;初建系统模型。

( 2 ) JSD 系统设计步骤扩充功能过程。系统定时。系统实现。

Page 25: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 25

面向数据结构的开发方法的特点:

将分析结果作为设计基础,无明显分界;都必须标识关键实体和动作;信息具有层次性;提供一组将层次化的数据结构映射到程序结构的步骤;数据结构由顺序、选择和重复 3 种构造成分表示。

Page 26: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 26

1.4.4 面向对象软件开发方法面向对象方法的意义:( 1 )一种新的思考方式。( 2 )将数据和行为结合成为对象。( 3 )核心是封装。( 4 )面向对象方法建立的基础是:

软件工程概念;计算机科学概念;工程管理;数据库信息模型;传统软件开发方法。

Page 27: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 27

面向对象方法有几十种,综合起来,其基本观点如下:现实客观世界由对象组成。相同的对象归并为类。类可以继承。对象之间通过消息进行联系。

面向对象 = 对象 + 类 + 继承 + 通信

Page 28: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 28

1.4.5 软件开发方法的评价与选择

综合考虑以下几方面因素:人员素质。时间进度。掌握资源。可行性。领域知识。

从四个方面评价:技术特征。使用特征。管理特征。经济特征。

Page 29: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 29

1.5 面向对象软件开发方法简介

特点:( 1 )使人们更好地认识客观世界( 2 )能很好地适应需求变化( 3 )容易实现软件复用( 4 )系统易于维护和修改

Page 30: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 30

1.5.1 面向对象的基本概念

封装性、继承性和多态性。1. 对象

客观世界中的实体抽象为问题空间中的对象。2. 对象的抽象——类

把具有相同特征和行为的对象归在一起就形成了类( Class )。

Page 31: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 31

Page 32: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 32

3. 信息隐蔽和局部化——封装4. 继承与派生

Page 33: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 33

5. 对象之间的联系纽带——消息

Page 34: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 34

6. 多态性多态性( Polymorphism)是指同一个消息为不同的对象接收时,可产生不同的动作或执行结果。

Page 35: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 35

1.5.2 面向对象系统开发过程

Page 36: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 36

( 1 )需求分析阶段。( 2 )系统分析阶段。( 3 )系统设计阶段。( 4 )系统实现、测试、使用、维护阶段。

Page 37: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 37

1.5.3 几种典型的面向对象方法简介

1 . Booch 面向对象方法( 1 ) Booch 方法的基本开发模型

开发模型包括逻辑模型、物理模型、静态模型和动态模型。( 2 ) Booch 方法的一般过程

开发过程分为技术层和管理层开发。1 )系统技术层开发步骤

发现类与对象。确定类和对象的语义。标识类和对象间的关系。

Page 38: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 38

2 )系统管理层开发步骤强调团队技术管理。明确用户关键需求。建立系统分析模型。完善设计系统结构。系统实现。软件交付。

2 . Jacobson 的面向对象方法( 1 )建立面向对象分析模型的过程

1 )建造用户需求模型。2 )建造系统分析模型。

Page 39: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 39

( 2 )建立面向对象设计模型的过程1 )创建模块作为主要的设计对象。2 )创建一个显示激励如何在模块间传送的交互

图。3 )把模块组织成子系统。4 )复审设计工作。

3 . Coad-Yourdon 的面向对象方法论( 1 )面向对象分析( OOA )步骤

类及对象层。结构层。主题层。属性层。服务层。

( 2 )面向对象设计( OOD )步骤

Page 40: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 40

4 . James Rumbaugh 的面向对象方法( 1 )对象模型。( 2 )动态模型。( 3 )功能模型。

Page 41: UML 系统建模        与分析设计

23/4/20 UML系统建模与分析设计 41

1.6 本章小结