《优质实用课件精选——软件工程课件.ppt》由会员分享,可在线阅读,更多相关《优质实用课件精选——软件工程课件.ppt(94页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程,第一章 绪论,复习建议: 本章内容较少,主要是让大家了解软件工程的提出的背景-软件危机以及软件工程研究的内容。 考试题目类型主要是单项选择题、填空题,题量在3%5%之间。,第一节 软件工程概念的提出与发展,1、软件危机,速度:软件的发展水平远远滞后于硬件的发展水平,生产率低下,软件制造仍然是一种人工集约生产方式 质量:软件的质量低下,不能满足用户的需求、适应性差 成本:软件开发成本居高不下 软件工程的三个核心问题: 软件开发的速度、软件制品的质量、软件开发成本,2、软件工程的发展,(1)20世纪6080年代 瀑布模型;过程化语言;支持工具 (2)20世纪80年代今 软件复用技术;软件
2、生产管理;面向对象语言 (3)近几年 软件复用技术:构件技术、平台技术、需求工程技术、领域分析技术、应用集成技术等。,3、什么是软件工程: 应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度实现满足用户要求的软件产品的工程,或以此为研究对象的科学,第二节 软件开发的本质 软件 软件=程序+文档 软件开发的本质:“映射”,问题域到不同抽象层之间概念和计算逻辑的映射.,2 实现映射的基本手段 何谓建立问题的模型:,问题的结构化谱系 例如1 :y=x +5,结构化问题,非 结构化 或半结构化问题,是解决问题的一般途径!,其中:采用数学作为建模工具,建模:,运用所掌握的知识, 通过抽象,给出
3、该问题的一个结构。,模型 模型是一个抽象。模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述、对系统内各模型元素以及它们之间关系的语义描述。 系统模型的类型 概念模型:描述软件是什么 软件模型:实现概念模型的软件解决方案。包括设计模型、实现模型和部署模型。,第二章 软件需求与软件需求规约,复习建议: 正确定义问题,是解决问题的基础。 需求获取是软件开发的第一步,它的工作质量决定了整个软件开发工作的成败,因此本章的内容是考核的重点内容。 考核的题目类型主要有:单项选择题、填空题、简答题,分值在10%左右。 内容以基本概念、基本原理为主。,第一节:需求与需求获取
4、 1、需求的定义 一个需求是有关一个“要予构造”的陈述,描述了待开发产品/系统功能能力、性能参数或其它性质。 2、需求的基本性质 必要的 无歧义的 可测的 可跟踪的 可测量的 3、需求的分类 功能需求,是整个需求的主体。 非功能需求:性能需求、外部接口需求、设计约束和质量属性需求。 能够区分哪些是功能需求,哪些是性能需求。,例如: 系统必须有能力支持100个以上的并发用户,每个用户可 以处理附录A中操作任务的任选组合,平均响应时间应该 小于1秒,最大响应时间应小于5秒。 其中:功能-可以处理附录A中操作任务的任选组合 性能-有能力支持100个以上的并发用户 平均响应时间应小于1秒,最大响应时间
5、应小于5秒。 必须在对话窗口的中间显示错误警告,其中使用红色的、 14点加粗Arial字体。 其中:功能-能显示错误警告 设计约束-在对话窗口的中间显示,并使用红色的、14点加 粗Arial字体。,除了对要执行的功能给出一个陈述外,还应规约如下内容: 关于该功能输入的所有假定,或为了验证该功能输入, 有关检测的假定。 功能内的任一动作次序,这一次序是与外部有关的。 对异常条件的响应,包括所有内外部所产生的错误。 需求的时序或优先程度。 功能之间的互斥规则。 系统内部状态的假定。 为了该功能的执行,所需要的输入和输出次序。 用于转换或内部计算所需要的公式。, 4、性能需求 规约了一个系统或系统构
6、件必须具有的性能特性。 例如:系统应该在5分钟内计算出给定季度的总销售税。 系统应该在1分钟内从100000条记录中检索出一个销售定单。 该应用必须支持100个Windows 95/NT工作站的并行访问。 注1:性能需求隐含了一些满足功能需求的设计方案,经常 对设计产生一些关键的影响。例如:排序,关于花费 时间的规约将确定哪种算法是可行的。 注2: 性能需求对功能需求而言,可以是一对多的,例如:,性能x,功能,功能,功能,5、接口需求的类别 用户接口 和用户之间接口的逻辑特性。 硬件接口 说明所要求的支持和协议类型 软件接口 允许与其它软件产品进行交互 通信接口 与通讯设施(如,局域网)之间的
7、交互 内存约束 易失性存储和永久性存储的特性和限制 运行 正常和异常的运行以及在系统正常和异常运行下如何与系统进行交互 地点需求 描述系统安装以及如何调整一个地点,以适应新的系统。,6、设计约束需求 法规政策 硬件限制 与其它应用的接口 并发操作 审计能力 控制功能 高级语言要求 握手协议 应用的关键程度 安全和保密,7、质量属性 质量属性(Quality attribute)规约了软件产品必须具有 的一个性质是否达到质量方面一个所期望的水平。例如: 属性 描述 可靠性 软件系统在指定环境中没有失败而正常运行的概率。 存活性 当系统的某一部分系统不能运行时,该软件继续运行或支 持关键功能的可能
8、性。 可维护性 发现和改正一个软件故障或对特定的范围进行修改 所要求的平均工作。 用户友好性 学习和使用一个软件系统的容易程度。,需求发现的技术 自悟 交谈 观察 小组会 提炼,第二节 需求规约(SRS),1、需求规约的定义 是一个软件/产品/系统所有需求陈述的正式文档,它表达了一个软件/产品/系统的概念模型。 2、需求规约的基本性质 重要性和稳定性程度:对需求进行分级 可修改的 完整的:没有被遗漏的需求 一致的:不存在互斥的需求 3、需求规约(SRS)基本格式(P28),4、表达需求规约(规格说明书)的三种风格 非形式化的规约 即以一种自然语言来表达需求规约,如同使用一种自然语言 写了一篇文
9、章. 其中:可以不局限于那种语言通常所约定的任何符号或特殊 限制(例如文法和词法),但要为那些在一个特定语境 中所使用的术语提供语义定义,一般情况下,该语境 与通常使用该术语的语境是有区别的。,半形式化的规约 即以半形式化符号体系(包括术语表、标准化的表达格 式等)来表达需求规约。因此,半形式化规约的编制应遵循一 个标准的表示模板(一些约定)。 其中: -术语表明确地标识了一些词,可以基于某一种自然语言 -标准化的表达格式(例如例如数据流图、状态转换图、实 体关系图、数据结构图以及过程结构图等)标识了一些元 信息,支持以更清晰的方式系统化地来编制文档. -应用中,不论是词还是标准化的表达格式,
10、在表达上均必 须遵循一些约定,即应以一种准确和一致方式使用之。,形式化规约 即以一种基于良构数学概念的符号体系来编制需求规约,一般往往伴有解释性注释的支持。 其中: -以数学概念用于定义该符号体系的词法和语义; -定义了一组支持逻辑推理的证明规则,并支持这一符号体 系的定义和引用。,5、需求规约的作用 其作用可概括为: 第一:也是最重要的,作为软件开发组织和用户之间一份事实的技术合同书;是产品功能及其环境的体现。 第二,对于项目的其余大多数工作,它是一个管理控制点。 第三,对于产品的设计,它是一个正式的、受控的起始点。 第四,是创建产品验收测试计划和用户指南的基础,SRS所不能实现的作用 第一
11、,它不是一个设计文档。它是一个“为了”设计的文档。 第二,它不是进度或规划文档,不应该包含更适宜包含在 工作陈述(SOW)、软件项目管理计划(SPMP)、软件生存周 期管理计 划(SLCMP)、软件配置管理计划(SCMP)或软件质 量保证计划(SQAP)等文档中的信息。因此,在SRS中不应给 出: 项目成本; 交付进度; 报告规程; 软件开发方法;质量保证规程;配置管理规程; 验证和确认规程;验收规程;安装规程。,第三章 结构化方法,复习建议: 自顶向下,逐步求精。 本章是整个课程的重点内容,其基本思想、基本原理和基本方法是软件工程理论体系中最经典的内容,考核题型涉及单项选择题、填空题、简答题
12、、综合应用题所有题目类型,占分值25%左右。 建议考生在牢记基本概念、基本原理的基础上,对综合应用题多下工夫,多做练习。,第一节 结构化需求分析,第三章 结构化方法,1、需求分析面临的挑战 问题空间理解 人与人之间的通信,“有效沟通” 需求的变化性,第三章 结构化方法,第三章 结构化方法,3、数据流图DFD图 用于建立系统功能模型。 是一种描述数据变换的图形化工具,其中包含的元素可以是数据流、数据存储、加工、数据源和数据潭等。,4、建模过程(绘制流程图的过程) 自顶向下、功能分解 (1)建立系统环境图 (2) 自顶向下,逐步求精,建立系统的层次数据流图 0层图:从0层图开始对流程图中的要素编号
13、 1层图 (3)定义数据字典 (4)描述加工,第三章 结构化方法,【例题】绘制数据流程图(2008年10月真题) 41.某个学生成绩管理系统的部分功能如下: (1)基本信息管理:教务管理人员输入或修改学期教学执行计划、学生名单和教师名单; (2)学生选课:学生根据教学执行计划进行选课; (3)分配任课教师:教务管理人员为符合开课条件的课程分配教师,并打印任课通知单给教师; (4)成绩管理:每门课程的教师在考试评分结束后将考试成绩交给教务管理人员,教务管理人员输入、维护成绩,系统可生成成绩单(发给学生)、成绩统计分析表(发给教务管理人员)。 请根据要求画出该问题的分层数据流图(要求画出顶层和0层
14、数据流图)。,第三章 结构化方法,【解析】 顶层图:只包含数据源/数据潭以及相关的数据流和一个处理。,第三章 结构化方法,要注意的问题: 1、黑洞(black hole),即只有输入而没有输出。 只有输出而没有输入。 灰洞(gray hole),即输入不足以产生输出。灰洞是经常也是不易被察觉的错误。 加工处理只用来表示数据的处理和变化,避免将计算机命令作为处理。 数据流必须起于且/或止于处理,即每一个数据流必须有一个处理与之有关,数据流不能起于数据存贮且止于一个数据源/数据潭或另一个数据存贮;也不能起于某个实体且止于另一个数据源/数据潭或数据存贮。,第三章 结构化方法,5、数据字典 定义数据流
15、程图中所有数据流和数据存储的数据结构。 定义为:= 顺序结构:+ 选择结构:【1】 重复结构: 子界:m.n,第三章 结构化方法,6、加工的描述 (1)判定表 判断表(Decision Table)也称为决策表,是一个二维表,它说明了每一种条件组合所产生的结果。 该表分为四个象限(quadrants)。 左上限代表所有的条件 左下限代表可能的结果 右上限代表每一种条件的取值(用Y和N来表示) 右下限用X表示所对应的条件组合所产生的结果,【例题】画出顾客购货的折扣政策的决策表。 销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,0
16、00时,给予5的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予3的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。,(2)、判定树 判断树 (Decision Tree)也称为决策树,是用来描述在一组不同的条件下,决策的行动是根据不同条件及其取值来选择的处理过程。业务规则的描述通常可以使用判断树这一过程描述工具。,【例题】画出顾客购货的折扣政策的决策树。 销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予5的折扣;当交易额在¥5,000
17、到¥10,000之间(含¥5,000)时,给予3的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。,(3)、结构化语言 【例题】用结构化语言表达:顾客购货的折扣政策。 销售商在给顾客的折扣时,要考虑付款日期和交易额这两个因素。若付款日期在10天以内(含10天),则当交易额超过¥10,000时,给予3的折扣;当交易额在¥5,000到¥10,000之间(含¥5,000)时,给予2的折扣;当交易额低于¥5,000时,没有折扣。若付款日期超过10天,则无论交易额多少,均不给任何折扣。,IF 付款日期在10日以上 折扣=0 ELSE IF 交易额=10
18、000 折扣=3% ELSE IF交易额=5000 折扣=2% ELSE 折扣=0,7、需求验证 验证每一个需求满足5个性质: 必要的、无歧义的、可测的、可跟踪的、可测量的 验证需求规格说明书满足4个性质:,重要性和稳定性程度、可修改的、完整的、一致的,第二节 结构化设计 分为总体设计和详细设计 1、总体设计的任务 把系统的功能需求分配到一个特定的软件体系结构中。 2、表达软件体系结构的工具 (1)yourdon模块结构图 (2)层次图 (3)HIPO图,3、模块结构图 结构图(Structure Chart)是对软件总体结构的一种图形描述,它显示了软件的层次结构、组织和通讯。也就是说,在结构
19、图中,显示了软件是由哪些模块组成的,这些模块按照什么样的层次结构组织在一起以及模块之间通过什么接口联系在一起。 结构图也称之为控制结构图、模块结构图或系统结构图。 空心表示数据信息 实心传递控制信息,4、层次图 层次图中一个矩形框代表一个模块,框间的连线表示调用关系(位于上方的矩形框所代表的模块调用位于下方的矩形框所代表的模块)。,5、HIPO图 HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写。为了使HIPO图具有可追踪性,在H图(即层次图)里除了顶层的方框之外,每个方框都加了编号。 H图+IPO图,6、总体设计步骤 将DFD图映射为设计层面的模块及模块调用。 (1)
20、变换流(Transform Flow)。基于变换流的数据流程图是一个线性的顺序结构,由输入臂、输出臂和变换中心三部分组成。其中变换中心使系统数据发生本质的变化,输入臂将物理输入变换成逻辑输入,而输出臂则将逻辑输出变换成物理输出。,(2)事务流(Transaction Flow)。事务流的数据流程图中有一个事务处理中心,它将输入分为许多相互平行的加工路径,然后根据输入的属性,选择某一加工路径。如下图所示。 业务中心完成以下任务: 接收事务(即输入数据); 分析每个事务并确定它的类型;,根据事务的类型选取一条活动通路。,【例题】控制结构图的绘制 根据数据计算的数据流图:,画出以转换为中心的控制结构
21、图。 【解析】这是一个典型的以“转换为中心”结构的分解,可以转化为:,总结:任何处理都可以划分为两种转换类型之一:以转换为中心的分解和以业务为中心结构的分解。,【例题】产生固定资产资料数据流程图如下,做出以业务为中心的模块控制结构图。,这是以业务为中心的处理,根据模板,可以转化为:,7、模块 执行一个特殊任务的一个过程以及相关的数据结构。模块通常由两部分组成:模块接口和模块体。 8、模块化 “分而治之”和“抽象”。 把一个待开发的软件分解成若干个简单的、具有高内聚低耦合的模块,这一过程称为模块化。 模块化是系统设计基本原理/原则之一。,9、内聚(Cohesion) 是指一个模块内部个成分之间相
22、互关联程度的度量。也就是说,凝聚是对模块内各处理动作组合强度的一种度量。很显然,一个模块的内聚越大越好。 (1)偶然凝聚 可维护性最差 (2)逻辑凝聚 (3)时间凝聚 (4)过程内聚 (5)通信内聚 (6)顺序凝聚 (7)功能凝聚 可维护性最好,10、模块耦合 耦合(coupling)是对两个模块之间联接程度的一种度量。模块间的依赖程度越大,则其耦合程度也就越大;反之,模块间的依赖程度越小,则其耦合程度也就越小。 很显然,为了使软件具有较好的可维护性和可修改性,模块间的关联程度即耦合程度应越小越好。因为耦合程度越小,表明模块间的独立程度越大,这样在修改一个模块时,对其它模块的影响程度就越小,从
23、而使模块的修改工作局限于一个最小范围之内。 (1)内容耦合 (2)公共耦合 (3)数据耦合 (4)控制耦合 (5)标记耦合 原则是:尽量用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。,11、启发式规则 高内聚、低耦合。 (1)改进软件结构,提高软件独立性。模块分解 (2)模块规模适中 (3)力求深度、宽度、扇出、扇入适中。 深度:表示其控制的层数。 宽度:同一层次上模块总数的最大值。 扇出:一个模块直接控制的下级模块的数目。 扇入:有多少个上级模块直接调用它。 原则:顶层模块扇出比较大,中间层模块扇出较小,底层模块具有较大的扇入。 (4)尽量使模块的作用域在其控制域内。 模块
24、的控制域:这个模块本身以及所有直接或间接从属它的模块的集合。 模块的作用域:受该模块内一个判断所影响的所有模块的集合。 (5)尽力降低模块接口的复杂度 (6)力求模块功能可以预测,12、详细设计 具体描述模块结构图中的每一模块,即给出实现模块功能的实施机制,包括一组例程和数据结构。 13、结构化程序设计方法 一种基于结构的编程方法,即采用顺序结构、选择结构和重复结构进行编程,其中每一结构只允许一个入口和一个出口,三种基本的控制结构: (a) 顺序结构,先执行A再执行B; (b) IF-THEN-ELSE型选择(分支)结构; (c)DO-WHILE型循环结构,14、详细设计工具 (1)程序流程图
25、 程序流程图:程序流程图又称为程序框图,它是历史最悠久使用最广泛的描述过程设计的方法,然而它也是用得最混乱的一种方法。 (2)盒图(N-S图),出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。,(a) 顺序;(b) IF-THEN-ELSE型分支;(c) CASE型多分支; (d) 循环;(e) 调用子程序A,(3)PAD图,PAD是问题分析图(Problem Analysis Diagram)的英文缩写,自1973年由日本日立公司发明以后,已得到一定程度的推广。它用二维树形结构的图来表示程序的控制流,将这种图翻译成程序代码
26、比较容易。下图给出PAD图的基本符号。,(4)类程序设计语言PDL PDL也称为伪码,它是用正文形式表示数据和处理过程的设计工具。 PDL具有严格的关键字外部语法,用于定义控制结构和数据结构;另一方面,PDL表示实际操作和条件的内部语法通常又是灵活自由的,以便可以适应各种工程项目的需要。因此,一般说来PDL是一种“混杂”语言,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法。 可以作为注释工具直接插在源程序中间。,15、设计规约 完整准确地描述满足需求规约所要求的所有功能模块,以及伴随功能模块而出现的非功能机制。 设计规约包括概要设计规约和详细
27、设计规约。 (1)概要设计规约 指明高层软件体系结构。 系统环境 软件模块的结构 模块描述 文件结构和全局数据文件的逻辑结构 测试需求 (2)详细设计规约 各处理过程的算法 算法所涉及的全部数据结构的描述,例题】根据下列变换型的数据流图,设计出初始软件结构图。,第四章 面向对象方法UML,复习建议: 以不变应万变。 统一建模语言(Unified Modeling Language,UML) UML是目前流行的建模语言,特别是在网站开发中广泛应用。 UML涉及很多的图,每一种图都有不同的图形符号、作用,在什么情况下用何种图来描述是本章的重点内容。 考核题目类型包括单项选择题、填空题、简答题,分值
28、在10%15%之间。需要考生掌握各种UML图的作用。,第四章 面向对象方法UML,面向对象建模过程的步骤:,第四章 面向对象方法UML,第一节 UML术语表,1、对象(object) 对象(object)是系统中用来描述客观事物的一个实体。一个对象由一组属性和对这组属性进行操作的一组方法组成。 对象只描述客观事物本质的与系统目标有关的特征。 对象之间通过消息通信,一个对象通过向另一个对象发送消息激活某一个功能。 2、类 类(Class)是具有相同属性、操作、关系和语义的一组对象的集合,它为属于该类的全部对象提供了同一的抽象描述,其内部包括属性和服务两个主要部分。 类有超类(Superclass
29、)和子类(Subclass)之分。 (相对而言)对象与类的关系犹如程序设计语言中变量和类型的关系。对象是类的实例(Instance)。 类在类图上使用包含三个部分的矩形来描述,如下图4-1所示。最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作(或者说方法)。,第四章 面向对象方法UML,3、属性 对象或类的属性(attributes)描述了对象的具体特征。属性有属性名和属性值(或称属性状态)。 每条属性可以包括属性的可见性、属性名称、类型、缺省值和约束特性。 UML规定类的属性的语法为: 可见性属性名 :类型 = 缺省值性质串 可见性:public(+) 、protec
30、ted(#)、private(-)、包内的() 4、类的操作 通常也被称为功能,但是它们被约束在类的内部,只能作用到该类的对象上。操作名、返回类型和参数表组成操作界面。 UML规定操作的语法为: 可见性 操作名 (参数表) : 返回类型 性质串 例如:+取客户地址(客户名:字符串):字符串,第四章 面向对象方法UML,5、接口 接口是操作的一个集合,其中每个操作描述了类、构件或子系统的一个服务。 采用具有分栏和关键字的矩形符号来表示 采用小圆圈和半圆圈来表示 6、协作 协作是一个交互,涉及交互的三要素:交互各方、交互方式以及交互内容。 7、用况(use case)/用况 对一组动作序列的描述,
31、系统执行这些动作应产生对特定参与者有值的、可观察的结果。 8、主动类 至少具有一个进程或线程的类。能够启动系统的控制活动,并且其对象的行为通常与其它元素行为并发的。 表示方法:两条竖线。 9、构件 系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。,第四章 面向对象方法UML,10、制品 系统中包含物理信息的、可替代的物理部件。 11、节点 节点是在运行时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。 12、关联(Association) 关联反映了类和类之间的静态关系。关联在模型中,特别是在永久业务对象模型中是最基本的关系。 链(link)是对象之间具有特定语义关
32、系的抽象。 关联名 导航 角色 可见性 多重性:多重性(Multiplicity)定义了与一个对象/类相联系的对象/类出现一次,该对象/类可能出现的最小和最大的数目。 限定符 聚合:一个类是另一类的一部分。 组合:是聚合的一种特殊形式 关联类 约束,第四章 面向对象方法UML,13、泛化/继承 继承:特殊类(子类)的对象拥有其一般类(超类)的全部属性与服务,称作特殊类对一般类的继承(Inheritance) 。利用继承(inheritance),子类可以继承父类的属性和方法。子类父类也可分别叫做特殊类一般类、子类超类、派生类基类等。 继承反映了类之间的一种联系或结构:一般-特殊结构,也称分类结
33、构(Classification Structure),是由一组具有继承关系的类所组成的结构。仅由一些单继承关系的类形成的结构又称作层次结构(Hierarchy Structure);由一些存在多继承关系的类形成的结构又称作网格结构(Lattice Structure)。,14、多态性(Polymorphism) 是指一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一属性或服务名在一般类及其各个特殊类中具有不同的语义。 多态是指用同一界面形式表示不同对象类中的不同实现的能力。 多态性的实现基于两个基本原理:封装和泛化。 多态性实现的方法: (1)泛化
34、 (2)定义一个抽象类接口类,第四章 面向对象方法UML,15、细化 细化是类目之间的语义关系,其中一个类目规约了保证另一类目执行的契约。 用空心三角形的虚线表示。 16、依赖 依赖是一种使用关系,用于描述一个类目使用另一类目的信息和服务。 用有向虚线段表示。 17、包 包是模型元素的一个分组,一个包本身可以被嵌套在其它包中,并且可以含有子包和其它类型的模型元素。,第四章 面向对象方法UML,第二节 UML的模型表达格式,图形化工具。 图的类别: (一)结构图 (1)对象结构建模类图和对象图 (2)应用结构建模包图、构件图、部署图、组合结构图 (二)行为图 对象交互建模顺序图、协作图(通信图、
35、交互综述图、定时图)、状态图(状态机) 对象行为建模用况图、活动图,第四章 面向对象方法UML,类图 任何系统都需要从两方面进行描述:结构信息和行为信息。系统的组成表达了系统各组成要素之间的联系,称为结构;这些组成要素的执行逻辑称为行为。在面向对象方法中,系统的结构信息是通过类图(class diagram)来描述的;而系统行为信息则通过用况图、交互图(包括顺序图和协作图)和状态图来描述的。也就是说,前者说明了系统的组成部分是什么,而后者则说明了系统做什么。 类图(class diagram)表达了系统的静态结构信息,即系统是由哪些类组成的,这些类之间的关系是什么。 类图显示系统各个部分以及怎
36、样将它们组装起来;但却不能模拟组装后系统的工作情况。 构造类图的三个关键问题是: (1)系统中有哪些需要关心的类? (2)这些类是如何描述的? (3)这些类之间的联系是什么? 创建一个系统的类图,要涉及4方面的工作: (1) 模型化待建系统中的概念,形成类图中基本元素 (2)模型化待建系统中的各种关系,形成该系统的初始关系。 (3)模型化系统中的协作,给出该系统的最终类图。 (4)模型化逻辑数据库模式,第四章 面向对象方法UML,2、用况图(use case 图) 用况是对一个参与者(actor)使用系统的一项功能时所进行的交互过程的一个文字描述序列。 用况是系统、子系统或类 与 外部的参与者
37、(actor)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。 用况图(Use Case Diagram)是指反映活动者,系统边界所封闭的用况,及活动者与用况之间,用况与用况之间关系的一种图。 6个模型元素: 1主题 2用况 3参与者: 系统用户: 是最常见的一种角色。是直接使用系统的人。 另一个系统:如DSS可作为MIS的一个活动者。补货系统可作为定单处理系统的活动者。 时间:当经过一定时间触发系统中的某个事件时,时间就成了角色。例如定期的某些业务处理工作。 4关联 5泛化 6依赖,第四章 面向对象方法UML,3、状态图 对象或者类的整体行为的某些规则所能适应的对象或类的状况
38、、情况、条件、形式或生存周期。仅当对象的行为规则不同时,才称对象处于不同的状态。 在由对象的全部属性的属性值集合所构成的笛卡儿乘积中的每一个等价集合(即,使对象的服务呈现相同行为规则的属性值的集合)称之为对象的一种状态。 例如,对象发票(invoice)可以根据其付款的情况分为三个状态:未付款(unpaid)、部分付款(partly paid)以及付清款(fully paid)。 状态图(state chart diagram)使用状态、事件和转换来记录对象在其生命周期中所历经的状态序列。 对象的初始状态是图中任何事件都未对该对象起作用时的状态。 状态代表对象生命周期中的某一瞬间。 转换表明作
39、为对事件的响应结果,对象将从一种状态转换到另一种状态并执行某个动作。 触发状态转换的事件在状态转换字符串中命名。双击一个状态转换,除事件签名以外,还可用字符串为其加注临界条件、动作表达式等标签。,第四章 面向对象方法UML,4、顺序图 顺序图(sequence diagram)表示了对象之间传送消息的时间顺序,也就是对象之间的交互顺序,这些交互是指在场景或用况的事件流中发生的。每一个对象(类)用一条生命线来表示即用垂直线代表整个交互过程中对象的生命期。生命线之间的箭头连线代表消息。 顺序图中的基本元素包括: 活动者,指用况中的活动者。 对象,指在用况中的内部对象。 生命线:在顺序图中的一个对象
40、下面的竖线,用以显示这个对象的生命期。时间从上到下流过。生命线实际上显示了消息的顺序,在生命线之上的消息比在它之下的消息先发生。在生命线中的棒形方框表示的是活动生命线,用以强调一个对象只有在一个场景的部分中处于活动状态。 消息,指场景内由事件流定义的内部事件成为在对象和活动者或其他对象之间的消息。 同步消息返回消息。同步消息假定有一个返回消息。同步消息用有实心的箭头表示;返回消息用虚线、箭头也不是实心来表示。 反身消息消息的发送方和接收方是同一个对象。 异步消息没有返回值的消息。用非实心箭头表示。 定时消息对消息附加时间约束条件,包括:发送时间、接收时间、已用时间等。,第五章 面向对象方法-R
41、UP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,第五章 面向对象方法-RUP,