资源预览内容
第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
第9页 / 共38页
第10页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章第五章 统一建模语言统一建模语言UMLUML与实例与实例 5.1 UML5.1 UML概述概述5.2 UML5.2 UML视图视图5.3 5.3 可视化软件开发可视化软件开发 工具工具RoseRose5.4 UML5.4 UML实例实例软件工程软件工程5.3 5.3 可视化软件开发工具可视化软件开发工具RoseRose Rational RoseRational Rose是图形化的是图形化的OO CASEOO CASE工具。工具。它包括系统建模它包括系统建模(OO(OO的系统分析与的系统分析与设计设计) )、模型集成、源代码生成、软件系、模型集成、源代码生成、软件系统测试、软件文档的生成、往返工程、统测试、软件文档的生成、往返工程、软件开发项目管理、团队开发管理,以软件开发项目管理、团队开发管理,以及及Internet WebInternet Web发布等工具,是一个强发布等工具,是一个强大的软件开发集成环境。大的软件开发集成环境。 Rational RoseRational Rose应用于应用于windows 9Xwindows 9X、windows NTwindows NT、Sun/OSSun/OS、IBM/OS2IBM/OS2等平台。等平台。UML与系统分析设计与系统分析设计张龙祥张龙祥 编著编著人民邮电出版社人民邮电出版社第第11章章2021/8/221Rational RoseRational Rose的的主要优点主要优点: :低开发风险;低开发风险;软件成分的高可用性;软件成分的高可用性;高度的系统弹性;高度的系统弹性;开发进程的高灵活性;开发进程的高灵活性;低开发成本。低开发成本。软件工程软件工程2021/8/222 (1)(1)支持支持OOOO建模建模 RoseRose支持支持OOOO系统分析与设计模型。它涉及了系统分析与设计模型。它涉及了OOOO的所有主要概的所有主要概念和成分,如对象类、对象、操作、服务、状态、模块、子系统、念和成分,如对象类、对象、操作、服务、状态、模块、子系统、处理器,以及它们之间的各种联系。处理器,以及它们之间的各种联系。 RoseRose把这些模型成分组成系统的把这些模型成分组成系统的4 4个视图个视图: :UseCaseUseCase视图视图、逻逻辑视图辑视图、组件视图组件视图和和配置视图配置视图。 RoseRose支持用户分别从静态与动态两方面建立系统的逻辑模型支持用户分别从静态与动态两方面建立系统的逻辑模型和物理模型。和物理模型。 RoseRose是可视化的建模工具,它提供的创建模型图的功能可以是可视化的建模工具,它提供的创建模型图的功能可以创建创建: :包图包图( (子系统子系统) )、UseCaseUseCase图、对象类和对象图、交互图、状图、对象类和对象图、交互图、状态图、活动图、组件图和配置图。此外还有对象消息图、消息踪态图、活动图、组件图和配置图。此外还有对象消息图、消息踪迹图、过程图、模块图等。迹图、过程图、模块图等。软件工程软件工程Rational RoseRational RoseRational RoseRational RoseRational RoseRational Rose的主要功能的主要功能的主要功能的主要功能的主要功能的主要功能2021/8/223软件工程软件工程 (2)(2)支持螺旋上升式开发过程支持螺旋上升式开发过程 从项目开发的开始、精化、系统构建到过渡,每个阶从项目开发的开始、精化、系统构建到过渡,每个阶段中都进行多次循环,每次循环都产生一个软件的原型,段中都进行多次循环,每次循环都产生一个软件的原型,每次循环基于前一个循环,是前一个循环的深化。每次循环基于前一个循环,是前一个循环的深化。 RoseRose提供了软件调试工具。提供了软件调试工具。Rational RobotRational Robot支持软件支持软件的功能测试和性能测试。的功能测试和性能测试。2021/8/224软件工程软件工程(3)(3)支持往返工程支持往返工程(Round-Trip Engineering)(Round-Trip Engineering) 往返工程可以帮助开发人员把实现中的修改变动映射到系统往返工程可以帮助开发人员把实现中的修改变动映射到系统模型,从而修改原设计的系统模型。传统方法很难实现。模型,从而修改原设计的系统模型。传统方法很难实现。 RoseRose提供了一套支持往返工程的工具,通过代码生成、逆向提供了一套支持往返工程的工具,通过代码生成、逆向工程工程、区分模型差异区分模型差异、设计修改等机制来实现往返工程。设计修改等机制来实现往返工程。 逆向工程逆向工程就是对程序分析,得到其中的数据结构、体系结构就是对程序分析,得到其中的数据结构、体系结构和程序的设计信息,最后得到原设计的系统模型。和程序的设计信息,最后得到原设计的系统模型。 RoseRose的逆向工程包括语义分析和设计输出。的逆向工程包括语义分析和设计输出。 第一步:分析源代码的语义,抽取其中的设计信息,产生相第一步:分析源代码的语义,抽取其中的设计信息,产生相应的数据文件。这是一个从代码到设计的映射过程。应的数据文件。这是一个从代码到设计的映射过程。 第二步是输出设计,由数据文件生成模型文件。第二步是输出设计,由数据文件生成模型文件。2021/8/225软件工程软件工程结构管理系统结构管理系统 它允许把一个模型划分为不同的受控单元,并自动维它允许把一个模型划分为不同的受控单元,并自动维护这些受控单元的完整性。护这些受控单元的完整性。 (4)(4)支持团队开发支持团队开发 RoseRose提供团队开发管理功能:提供团队开发管理功能:个人工作室个人工作室( (子目录子目录) ) 每个开发人员都有一个个人工作室,可以对它设置写每个开发人员都有一个个人工作室,可以对它设置写保护。保护。2021/8/226提供与提供与ClearCASEClearCASE和和MS Visual SourceSafeMS Visual SourceSafe的内置集成的内置集成 使开发组通过集成标准版本控制系统进行模型管理,保使开发组通过集成标准版本控制系统进行模型管理,保持与项目的其它成果协调一致。持与项目的其它成果协调一致。软件工程软件工程虚拟路径地图虚拟路径地图 对受控单元的存储和引用使用一种称为虚拟路径地图对受控单元的存储和引用使用一种称为虚拟路径地图的路径映射机制。虚拟路径地图使得模型很容易在不同的的路径映射机制。虚拟路径地图使得模型很容易在不同的文件夹间移动,而且可以从不同的工作室更新它。文件夹间移动,而且可以从不同的工作室更新它。2021/8/227软件工程软件工程(5)(5)对工具的支持对工具的支持 RoseRose支持当今广泛使用的软件开发工具,可以通过它的支持当今广泛使用的软件开发工具,可以通过它的Add-InsAdd-Ins管理器,把外部软件与管理器,把外部软件与RoseRose集成在一起,协同工作。集成在一起,协同工作。 在程序设计语言方面,在程序设计语言方面,RoseRose支持标准支持标准C+C+、MS VC+MS VC+、VBVB、JAVAJAVA等,既可以从模型生成源代码,也可以从源代码抽象出模等,既可以从模型生成源代码,也可以从源代码抽象出模型,实现往返工程。型,实现往返工程。2021/8/228软件工程软件工程5.4 UML5.4 UML实例实例第五章第五章 统一建模语言统一建模语言UMLUML与实例与实例 5.1 UML5.1 UML概述概述5.2 UML5.2 UML视图视图5.3 5.3 可视化软件开发可视化软件开发 工具工具RoseRose5.4 UML5.4 UML实例实例 简易教学管理系统简易教学管理系统JXGLJXGL。 采用基于实例采用基于实例(Use Case)(Use Case)的软件开的软件开发方法。发方法。 JXGLJXGL系统需求包括系统需求包括选课管理和成绩选课管理和成绩管理。管理。2021/8/229软件工程软件工程(2)(2)成绩管理成绩管理: 成绩录入;成绩录入;( (教学管理员录入教学管理员录入) ) 成绩查询;成绩查询;( (只能查询自己的成绩只能查询自己的成绩) ) 成绩统计与报表生成;成绩统计与报表生成;( (打印打印) )(1)(1)选课管理选课管理: 录入与生成新学期课程表;录入与生成新学期课程表;(10(10人人-30-30人人/ /课程课程) ) 学生选课注册;学生选课注册;( (选课门数选课门数 4 4门门) ) 查询;查询;( (不能查询别人的选课情况不能查询别人的选课情况) ) 选课注册信息的统计与报表生成;选课注册信息的统计与报表生成;( (打印打印) ) 学生选课注册信息传给财务系统;学生选课注册信息传给财务系统;( (交纳费用交纳费用) )2021/8/2210软件工程软件工程JXGLJXGL系统的直接用户有:系统的直接用户有:学生学生、教师教师和和教学管理员教学管理员。 教学管理员有权操纵数据库的数据,进行添加、更新、删教学管理员有权操纵数据库的数据,进行添加、更新、删除等操作。除等操作。 学生和教师一般只查询信息,只允许对自已有关的数据进学生和教师一般只查询信息,只允许对自已有关的数据进行添加、更新、删除等操作。行添加、更新、删除等操作。 JXGLJXGL将采用将采用C/SC/S结构建立,结构建立,JXGLJXGL系统的应用服务器和数据系统的应用服务器和数据库服务器设置在学校计算中心的工作站。学生、教师和教学管库服务器设置在学校计算中心的工作站。学生、教师和教学管理员可以在各系、各部门、图书馆、学生宿舍的台式理员可以在各系、各部门、图书馆、学生宿舍的台式PCPC机上使机上使用用JXGLJXGL系统。系统。2021/8/2211软件工程软件工程5.4.1 5.4.1 分析问题域分析问题域第五章第五章 统一建模语言统一建模语言UMLUML与实例与实例5.1 UML5.1 UML概述概述5.2 UML5.2 UML视图视图5.3 5.3 可视化软件开发工具可视化软件开发工具 RoseRose5.4 UML5.4 UML实例实例 5.4.1 5.4.1 分析问题域分析问题域 5.4.2 5.4.2 建立静态结构模型建立静态结构模型 5.4.3 5.4.3 建立动态行为模型建立动态行为模型 5.4.4 5.4.4 建立物理模型建立物理模型 分析问题域的分析问题域的主要任务主要任务: : 对问题域进行抽象,提出解决方案;对问题域进行抽象,提出解决方案; 对未来的系统进行需求分析,确定对未来的系统进行需求分析,确定系统的职责范围、功能需求、性能需求、系统的职责范围、功能需求、性能需求、应用环境及假设条件等;应用环境及假设条件等; 用用UseCaseUseCase图对系统的外部行为建立图对系统的外部行为建立模型,初步确定系统的体系结构等。模型,初步确定系统的体系结构等。2021/8/2212软件工程软件工程 分析问题域的分析问题域的主要步骤主要步骤: : 确定系统范围和系统边界确定系统范围和系统边界 定义活动者定义活动者 定义定义UseCaseUseCase 绘制绘制UseCaseUseCase 绘制交互图绘制交互图确定业务需求和系统目标,搞清确定业务需求和系统目标,搞清JXGLJXGL系统的职责范围。系统的职责范围。4 4个活动者:学生、老师、教学管个活动者:学生、老师、教学管理员和财务系统。理员和财务系统。应当明确每个应当明确每个活动者业务活动的内容、对系统活动者业务活动的内容、对系统的服务要求。的服务要求。从顶层从顶层UseCaseUseCase抽象,可以确定两个抽象,可以确定两个UseCase:“UseCase:“选课管理选课管理”和和“成绩管成绩管理理”。“选课管理选课管理”与与4 4个活动者存个活动者存在交互,在交互,“成绩管理成绩管理”与活动者与活动者“学生学生”、“老师老师”、“教学管理员教学管理员”存在交互。分解,得较小的存在交互。分解,得较小的UseCaseUseCase。从绘制顶层从绘制顶层UseCaseUseCase图开始,逐步分图开始,逐步分解细化,直到满足分析和建立模型的解细化,直到满足分析和建立模型的需要为止。需要为止。对主要的对主要的UseCaseUseCase做交互行为分析,做交互行为分析,绘制交互图。绘制交互图。2021/8/2213软件工程软件工程 顶层用例图描述了活动者和顶层用例图描述了活动者和系统的关系,但毕竟太抽象了系统的关系,但毕竟太抽象了, ,需需进一步细化进一步细化( (有多个用例图有多个用例图) )。2021/8/2214软件工程软件工程 画用例图还要表达用例之画用例图还要表达用例之间的联系。如间的联系。如“选课注册选课注册”与与“身份验证身份验证”存在使用关联。存在使用关联。2021/8/2215软件工程软件工程 绘制用例图后,应绘制用例图后,应绘制交互图,描述用例绘制交互图,描述用例如何实现对象之间的交如何实现对象之间的交互。交互图包括顺序图互。交互图包括顺序图协作图,它用于建立系协作图,它用于建立系统的动态行为模型。统的动态行为模型。2021/8/2216软件工程软件工程5.4.2 5.4.2 建立静态结构模型建立静态结构模型第五章第五章 统一建模语言统一建模语言UMLUML与实例与实例5.1 UML5.1 UML概述概述5.2 UML5.2 UML视图视图5.3 5.3 可视化软件开发工具可视化软件开发工具 RoseRose5.4 UML5.4 UML实例实例 5.4.1 5.4.1 分析问题域分析问题域 5.4.2 5.4.2 建立静态结构模型建立静态结构模型 5.4.3 5.4.3 建立动态行为模型建立动态行为模型 5.4.4 5.4.4 建立物理模型建立物理模型 静态结构模型由对象类图和对象图静态结构模型由对象类图和对象图组成。组成。 静态模型的静态模型的主要任务主要任务: : 发现对象类及其联系发现对象类及其联系 确定静态结构确定静态结构 绘制静态结构图绘制静态结构图( (对象类图、包图对象类图、包图) ) 建立数据库模型建立数据库模型2021/8/2217软件工程软件工程一、建立对象类图一、建立对象类图 1 1、定义对象类、定义对象类 从用例图和交互图中发现对象类,确定类的属性和主要操作。从用例图和交互图中发现对象类,确定类的属性和主要操作。 例如从课程信息管理顺序图中抽象出例如从课程信息管理顺序图中抽象出“课程类课程类”的操作。的操作。2021/8/2218软件工程软件工程 下面是下面是JXGLJXGL系统的对象类及其主要属性和操作。系统的对象类及其主要属性和操作。学生学生姓名姓名 年龄年龄 性别性别 通信地址通信地址 联系电话联系电话 专业专业 班级班级 查询()查询() 添加()添加() 修改()修改() 删除()删除() 教师教师姓名姓名 年龄年龄 性别性别 通信地址通信地址 联系电话联系电话 职称职称 查询()查询() 添加()添加() 修改()修改() 删除()删除() 开设课程开设课程授课日期授课日期 授课时间授课时间 授课地点授课地点 授课教师授课教师 注册学生数注册学生数 加入选课学生()加入选课学生()加入授课教师()加入授课教师()判学生数满()判学生数满() 学生登记学生登记学期学期 课程名课程名 加入课程()加入课程()打印()打印() 课程登记课程登记学期学期 学生名学生名 加入学生()加入学生()打印()打印() 还包括选课统计、学生成绩登记、成绩统计等对象类。还包括选课统计、学生成绩登记、成绩统计等对象类。2021/8/2219软件工程软件工程(2)(2)定义用户接口定义用户接口 除了一般类外,还要分析与定义系统的用户接口对象类。除了一般类外,还要分析与定义系统的用户接口对象类。 JXGLJXGL系统有以下一些用户接口类。系统有以下一些用户接口类。2021/8/2220软件工程软件工程(3)(3)定义联系定义联系 定义对象类后,需分析定义对象类后,需分析对象间的联系:关联、聚合、对象间的联系:关联、聚合、泛化、依赖等。泛化、依赖等。(4)(4)绘制对象类图绘制对象类图 在上述分析的基础上,在上述分析的基础上,绘制绘制JXGLJXGL系统的对象类图。系统的对象类图。通过通过“授课授课”关联关联通过通过“登记登记注册注册”关联关联“课程课程”由由“开设课程开设课程”聚聚合合教师教师学生学生“教师教师”和和“学学生生”泛化为泛化为“师师生生”“选课统计选课统计”依依赖于赖于“开设课程开设课程”2021/8/2221软件工程软件工程“成绩统计成绩统计”依赖依赖于于“学生成绩登记学生成绩登记”1对对0.*的关联的关联“教师教师”和和“学学生生”泛化为泛化为“师师生生”2021/8/2222软件工程软件工程二、建立数据库模型二、建立数据库模型 JXGLJXGL系统采用关系数据库系统存储和管理数据。在分析和系统采用关系数据库系统存储和管理数据。在分析和设计系统的静态结构模型时需要进行数据分析和数据库设计。设计系统的静态结构模型时需要进行数据分析和数据库设计。 JXGLJXGL系统有系统有4 4个方面的数据需要管理:人员数据个方面的数据需要管理:人员数据( (学生、教学生、教师师) )、课程数据、选课注册数据、学生成绩数据。、课程数据、选课注册数据、学生成绩数据。 经分析,经分析,JXGLJXGL系统至少应有系统至少应有6 6个数据库表个数据库表: :学生表、教师表、学生表、教师表、课程表、开设课程表、选课表、任课表。课程表、开设课程表、选课表、任课表。2021/8/2223 这些基本表定义为这些基本表定义为: : (1) (1)学生表学生表( (学生号、姓名、出生日期、性别、籍贯、地址、学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级、备注电话、入学时间、专业、班级、备注) ) (2) (2)教师表教师表( (教师号、姓名、出生日期、性别、籍贯、地址、教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注电话、职称、专长、备注) ) (3) (3)课程表课程表( (课程号、课程名、描述、学分、学时、性质、备课程号、课程名、描述、学分、学时、性质、备注注) ) (4) (4)开设课程表开设课程表( (课程号、学期、授课门数、授课时间、地点、课程号、学期、授课门数、授课时间、地点、选修人数、备注选修人数、备注) )软件工程软件工程2021/8/2224 (5)(5)选课表选课表( (学生号、课代号、学期、成绩、备注学生号、课代号、学期、成绩、备注) ) (6) (6)任课表任课表( (教师号、课程号、学期、备注教师号、课程号、学期、备注) ) 对于上述的基本表需要进行关系规范化,设计用户视图、对于上述的基本表需要进行关系规范化,设计用户视图、触发器、存储过程等。触发器、存储过程等。 数据库模式通常用实体数据库模式通常用实体联系模型联系模型(ERD)(ERD)表示,如果表示,如果需要也可以用对象类图为数据库模式建立模型。需要也可以用对象类图为数据库模式建立模型。软件工程软件工程2021/8/2225软件工程软件工程三、建立包图三、建立包图 对于大型的复杂系统,常需要把大量对于大型的复杂系统,常需要把大量的模型元素用包组织起来,以方便理解和的模型元素用包组织起来,以方便理解和处理。处理。 JXGLJXGL系统虽然不算很大,但也可以把系统虽然不算很大,但也可以把系统的对象类组织成包,以便更清楚地了系统的对象类组织成包,以便更清楚地了解系统的结构。解系统的结构。 包图表示的是系统的静态结构,但是包图表示的是系统的静态结构,但是建立包图应当同时考虑系统的动态行为。建立包图应当同时考虑系统的动态行为。 2021/8/2226软件工程软件工程2021/8/2227软件工程软件工程5.4.3 5.4.3 建立动态行为模型建立动态行为模型第五章第五章 统一建模语言统一建模语言UMLUML与实例与实例5.1 UML5.1 UML概述概述5.2 UML5.2 UML视图视图5.3 5.3 可视化软件开发工具可视化软件开发工具 RoseRose5.4 UML5.4 UML实例实例 5.4.1 5.4.1 分析问题域分析问题域 5.4.2 5.4.2 建立静态结构模型建立静态结构模型 5.4.3 5.4.3 建立动态行为模型建立动态行为模型 5.4.4 5.4.4 建立物理模型建立物理模型 系统动态行为模型由交互图系统动态行为模型由交互图( (顺序图顺序图和协作图和协作图) )、状态图、活动图表达。、状态图、活动图表达。(1)(1)建立顺序图建立顺序图 首先确定参与交互的活动者、对象首先确定参与交互的活动者、对象和交互事件,然后绘制顺序图。和交互事件,然后绘制顺序图。2021/8/2228软件工程软件工程管理员管理员 注册表单注册表单 :开设课程表单开设课程表单 :开设课程开设课程1:1:登录登录2:2:验证验证3:3:查询查询4:4:设置课程设置课程5:5:增加增加6:6:删除删除7:7:提交提交8:8:存储存储9:9:退出退出设置开设课程顺序图设置开设课程顺序图2021/8/2229软件工程软件工程管理员管理员 注册表单注册表单 :开设课程表单开设课程表单 :开设课程开设课程1:1:登录登录2:2:验证验证3:3:查询查询4:4:设置课程设置课程5:5:增加增加6:6:删除删除7:7:提交提交8:8:存储存储9:9:退出退出成绩登记与统计顺序图成绩登记与统计顺序图2021/8/2230软件工程软件工程(2)(2)建立协作图建立协作图( (协同图协同图) ) 首先确定参与协作的对象角色、关联角色和消息,再绘制首先确定参与协作的对象角色、关联角色和消息,再绘制协作图。协作图。2021/8/2231软件工程软件工程(3)(3)建立状态图建立状态图 先确定一个对象先确定一个对象的生命期中可能出现的生命期中可能出现的全部状态,哪些事的全部状态,哪些事件引起状态转移,将件引起状态转移,将会发生哪些动作,然会发生哪些动作,然后绘制状态图。后绘制状态图。2021/8/2232软件工程软件工程2021/8/2233软件工程软件工程(4)(4)建立活动图建立活动图 首先确定参与活动的对象、动作状态、动作流和对象流,首先确定参与活动的对象、动作状态、动作流和对象流,再绘制活动图。再绘制活动图。2021/8/2234软件工程软件工程5.4.4 5.4.4 建立物理模型建立物理模型第五章第五章 统一建模语言统一建模语言UMLUML与实例与实例5.1 UML5.1 UML概述概述5.2 UML5.2 UML视图视图5.3 5.3 可视化软件开发工具可视化软件开发工具 RoseRose5.4 UML5.4 UML实例实例 5.4.1 5.4.1 分析问题域分析问题域 5.4.2 5.4.2 建立静态结构模型建立静态结构模型 5.4.3 5.4.3 建立动态行为模型建立动态行为模型 5.4.4 5.4.4 建立物理模型建立物理模型包括建立组件图和配置图。包括建立组件图和配置图。2021/8/2235软件工程软件工程2021/8/2236软件工程软件工程数据库数据库服务器服务器应用应用服务器服务器课程管理课程管理成绩管理成绩管理JXGLJXGL系统配置图系统配置图数据库数据库教学管理教学管理服务器服务器图书馆图书馆客户端客户端专业系专业系客户端客户端JXGLJXGL系统的客户机系统的客户机/ /服务器结构配置图服务器结构配置图宿舍宿舍客户端客户端 JXGLJXGL系统是一个基于校园网和数据库的应用系统,其各组系统是一个基于校园网和数据库的应用系统,其各组成部分可以配置在不同结点上,通过校园网相互通信。成部分可以配置在不同结点上,通过校园网相互通信。2021/8/2237软件工程软件工程作业:作业: JXGLJXGL系统。系统。UML与系统分析设计与系统分析设计张龙祥张龙祥 编著编著人民邮电出版社人民邮电出版社第第12章章2021/8/2238
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号