![软件开发环境_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/3a7a4d0c-35a9-4811-a183-1ccb8a2fd243/3a7a4d0c-35a9-4811-a183-1ccb8a2fd2431.gif)
![软件开发环境_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/3a7a4d0c-35a9-4811-a183-1ccb8a2fd243/3a7a4d0c-35a9-4811-a183-1ccb8a2fd2432.gif)
![软件开发环境_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/3a7a4d0c-35a9-4811-a183-1ccb8a2fd243/3a7a4d0c-35a9-4811-a183-1ccb8a2fd2433.gif)
![软件开发环境_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/3a7a4d0c-35a9-4811-a183-1ccb8a2fd243/3a7a4d0c-35a9-4811-a183-1ccb8a2fd2434.gif)
![软件开发环境_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/9/3a7a4d0c-35a9-4811-a183-1ccb8a2fd243/3a7a4d0c-35a9-4811-a183-1ccb8a2fd2435.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、School of Computer & Information 主讲人主讲人: : 邵邵 堃堃School of Computer & Information 软件开发环境重点教授面向软件开发过程的各类软件软件开发环境重点教授面向软件开发过程的各类软件开发工具和使用方法。开发工具和使用方法。 讲述重点:讲述重点:1.了解软件工程中方法,工具和过程之间的基本概念,了解软件工程中方法,工具和过程之间的基本概念,及其相互关系(讲述为主);及其相互关系(讲述为主);2.了解当前的主要软件开发方法,结构化开发、面向对了解当前的主要软件开发方法,结构化开发、面向对象开发、面向方面开发和面
2、向组件的开发等(学生自象开发、面向方面开发和面向组件的开发等(学生自己查找资料,然后做报告);己查找资料,然后做报告);School of Computer & Information 3.了解针对这些开发方法的主要工具软件(学生自己查了解针对这些开发方法的主要工具软件(学生自己查找资料,然后做报告),重点介绍面向对象开发方法找资料,然后做报告),重点介绍面向对象开发方法UML,及其开发工具,及其开发工具Rational Rose(讲述为主讲述为主)。软件。软件开发工具、软件测试工具和软件开发过程项目管理工开发工具、软件测试工具和软件开发过程项目管理工具;具;School of Com
3、puter & Information l软件工程化的背景;软件工程化的背景;l软件规模化的背景;软件规模化的背景;l软件产业化的背景;软件产业化的背景;School of Computer & Information l软件开发环境软件开发环境(Software Development Environment)是指在基本硬件和宿至软件的是指在基本硬件和宿至软件的基础上,为支持系统软件和应用软件的工程化基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称开发和维护而使用的一组软件,简称SDE。l它由软件工具和环境集成机制构成,前者用以它由软件工具和环境集成机
4、制构成,前者用以支持软件开发的相关过程、活动和任务,后者支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及治理提供统为工具集成和软件的开发、维护及治理提供统一的支持。一的支持。 School of Computer & Information Software Engineering注:软件工程的三个基本要素:方法、工具和过程过程:规定了完成各项任务的过程;方法:完成软件开发的各项任务的技术方法;工具:软件工程的支撑环境; School of Computer & Information 支持支持瀑布模型瀑布模型、演化模型演化模型、螺旋模型螺旋模型、喷泉模型
5、喷泉模型以及以及结构化方法结构化方法、信息模型方信息模型方法法、面向对象方法面向对象方法等不同模型及方法的等不同模型及方法的软件开发环境。软件开发环境。 School of Computer & Information 有有单体型单体型、协同型协同型、分散型分散型和和并发型并发型等等多种类型的软件开发环境。多种类型的软件开发环境。 School of Computer & Information l前端开发环境前端开发环境(支持系统规划、分析、设计等阶段支持系统规划、分析、设计等阶段的活动的活动);l后端开发环境后端开发环境(支持编程、测试等阶段的活动支持编程、测试等阶段的活动
6、);l软件维护环境;软件维护环境;l逆向工程环境;逆向工程环境; 此类环境往往可通过对功能较全的环境进行剪裁此类环境往往可通过对功能较全的环境进行剪裁而得到。而得到。School of Computer & Information 有有通用型通用型和和专用型专用型软件开发环境。其中软件开发环境。其中专用型软件开发环境与应用领域有关;专用型软件开发环境与应用领域有关; School of Computer & Information 软件开发环境由工具集和集成机制两部软件开发环境由工具集和集成机制两部分构成,工具集和集成机制间的关系如分构成,工具集和集成机制间的关系如同同“插件插
7、件”和和“插槽插槽”间的关系。间的关系。 School of Computer & Information 软件开发环境中的工具可包括:软件开发环境中的工具可包括: 支持特定过程模型和开发方法的工具支持特定过程模型和开发方法的工具,如支持瀑布模,如支持瀑布模型及数据流方法的分析工具、设计工具、编码工具、型及数据流方法的分析工具、设计工具、编码工具、测试工具、维护工具,支持面向对象方法的测试工具、维护工具,支持面向对象方法的OOA工具、工具、OOD工具和工具和OOP工具等;工具等; 独立于模型和方法的工具独立于模型和方法的工具,如界面辅助生成工具和文,如界面辅助生成工具和文档出版工具;档
8、出版工具; 亦可包括管理类工具和针对特定领域的应用类工具。亦可包括管理类工具和针对特定领域的应用类工具。 School of Computer & Information 对工具的集成及用户软件的开发、维护及管理对工具的集成及用户软件的开发、维护及管理提供统一的支持。按功能可划分为环境信息库、提供统一的支持。按功能可划分为环境信息库、过程控制及消息服务器、环境用户界面三个部过程控制及消息服务器、环境用户界面三个部分。分。School of Computer & Information 是软件开发环境的核心,用以储存与系统开发有关的是软件开发环境的核心,用以储存与系统开发有关的信
9、息并支持信息的交流与共享。库中储存两类信息,信息并支持信息的交流与共享。库中储存两类信息,一类是开发过程中产生的有关被开发系统的信息,如一类是开发过程中产生的有关被开发系统的信息,如分析文档、设计文档、测试报告等;另一类是环境提分析文档、设计文档、测试报告等;另一类是环境提供的支持信息,如文档模板、系统配置、过程模型、供的支持信息,如文档模板、系统配置、过程模型、可复用构件等。可复用构件等。School of Computer & Information 是实现过程集成及控制集成的基础。过程集成是按照是实现过程集成及控制集成的基础。过程集成是按照具体软件开发过程的要求进行工具的选择与组
10、合,控具体软件开发过程的要求进行工具的选择与组合,控制集成并行工具之间的通信和协同工作。制集成并行工具之间的通信和协同工作。School of Computer & Information 包括环境总界面和由它实行统一控制的各环境部件及包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致视感工具的界面。统一的、具有一致视感(Look & Feel)的的用户界面是软件开发环境的重要特征,是充分发挥环用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担境的优越性、高效地使用工具并减轻用户的学习负担的保证。的保证。Scho
11、ol of Computer & Information l(1)软件开发的一致性及完整性维护;软件开发的一致性及完整性维护; l(2)配置管理及版本控制;配置管理及版本控制; l(3)数据的多种表示形式及其在不同形式之间自动转换;数据的多种表示形式及其在不同形式之间自动转换; l(4)信息的自动检索及更新;信息的自动检索及更新; l(5)项目控制和管理;项目控制和管理; l(6)对方法学的支持;对方法学的支持;School of Computer & Information l软件开发方法软件开发方法(Software Development Method)是指是指软件开发过
12、程所遵循的办法和步骤。软件开发活动的软件开发过程所遵循的办法和步骤。软件开发活动的目的是有效地得到一些工作产物,也就是一个运行的目的是有效地得到一些工作产物,也就是一个运行的系统及其支持文档,并且满足有关的质量要求。软件系统及其支持文档,并且满足有关的质量要求。软件开发是一种非常复杂的脑力劳动,所以经常更多讨论开发是一种非常复杂的脑力劳动,所以经常更多讨论的是软件开发方法学,指的是规则、方法和工具的集的是软件开发方法学,指的是规则、方法和工具的集成,既支持开发,也支持以后的演变过程成,既支持开发,也支持以后的演变过程(交付运行后,交付运行后,系统还会变化,或是为了改错,或是为了功能的增减系统还
13、会变化,或是为了改错,或是为了功能的增减)。School of Computer & Information 分析、设计、实现、确认分析、设计、实现、确认(测试验收测试验收)、演、演化化(维护维护)School of Computer & Information 覆盖开发全过程,并且便于在各阶段间的过渡;覆盖开发全过程,并且便于在各阶段间的过渡; 便于在开发各阶段中有关人员之间的通信;便于在开发各阶段中有关人员之间的通信; 支持有效的解决问题的技术;支持有效的解决问题的技术; 支持系统设计和开发的各种不同途径;支持系统设计和开发的各种不同途径; 在开发过程中支持软件正确性的校验
14、和验证;在开发过程中支持软件正确性的校验和验证;软件开发方法应该考虑的一般因素School of Computer & Information 便于在系统需求中列入设计、实际和性能的便于在系统需求中列入设计、实际和性能的约束;约束; 支持设计师和其他技术人员的智力劳动;支持设计师和其他技术人员的智力劳动; 在系统的整个生存周期都支持它的演化;在系统的整个生存周期都支持它的演化; 受自动化工具的支持。受自动化工具的支持。此外,在开发的所有阶段,有关的软件产物都应该是可见和可控此外,在开发的所有阶段,有关的软件产物都应该是可见和可控的;软件开发方法应该可教学、可转移,还应该是开放的,即可的
15、;软件开发方法应该可教学、可转移,还应该是开放的,即可以容纳新的技术、治理方法和新工具,并且与已有的标准相适应以容纳新的技术、治理方法和新工具,并且与已有的标准相适应可称为应用型软件开发环境。可称为应用型软件开发环境。School of Computer & Information w CRC卡w UMLSchool of Computer & Information CRC(Class-Responsibility-Collaborator)卡建模是一种简单且有效卡建模是一种简单且有效的面向对象的分析技术。它由三部分组的面向对象的分析技术。它由三部分组成:成:1. 类类(Cl
16、ass)2. 职责职责(Responsibility)3. 协作协作(Collaborator)School of Computer & Information 一个类代表许多类似的对象。而对象是系统模型一个类代表许多类似的对象。而对象是系统模型化中关注的事物。他们可以是一个人、地方、事化中关注的事物。他们可以是一个人、地方、事情、或任何对系统有重要性的概念。类名一般列情、或任何对系统有重要性的概念。类名一般列在在CRC卡的顶部。卡的顶部。School of Computer & Information 职责是类需要知道或做的任何事物。这些职责是类职责是类需要知道或做的任何事物
17、。这些职责是类自身所知的知识,或类在执行时所需的知识。自身所知的知识,或类在执行时所需的知识。School of Computer & Information 协作是指为获取消息,或协助执行活动的其他类。协作是指为获取消息,或协助执行活动的其他类。在特定情形下,与指定的类按一个设想共同完成在特定情形下,与指定的类按一个设想共同完成一个一个(或许多或许多)步骤。协作的类顺着步骤。协作的类顺着CRC卡的右边卡的右边排列。排列。 School of Computer & Information CRC模型是CRC卡的集合,它代表一个应用域或问题域的全部或一部分。School of C
18、omputer & Information CRC模型是最普遍的用户。图中展示了一个航运/存货控制系统的CRC模型例子,展示的CRC卡将被放在一张书桌或工作桌上。注意卡的放置:相互协作的卡是彼此接近的,无关系的卡不能放在附近。 School of Computer & Information 1、 CRC模型组一起加入(模型组包括相关的客户领域人员、设计者、记录员、系统分析员等)。2、 安排模型房间。3、 进行集体自由讨论内容根据此CRC模型的系统目标进行,如系统是为谁开发的?那些商业业务需要这个系统的何种支持?工作时需要什么信息?总之尽量按能达到系统要求实现的目标进行,包括进
19、行活动时对资源、条件、活动及人员的要求。School of Computer & Information 4、 讲解CRC模型技术(完成集体讨论后,设计者将描述CRC模型过程。通常需要花费十至十五分钟,该过程包括创造几个CRC卡范例,范例参考上图)。5、 重复地执行CRC模型步骤。6、 执行用例情景试验用户情景试验是一个任务过程模式,其中用户们将积极地参与以保证需求是准确的。基本的思想是一组商业领域专家(也就是客户方),设计者,系统分析员一步步通过一系列的用例证实CRC模能准确地反映出用户的需求。School of Computer & Information CRC模型就是一
20、种沟通方式,客户方与开发方如何通过这种有效的、易实现、易操作的方式建立一个能描述准确的、双方达成共识的系统需求。CRC建模因为用户积极参与到模型的定义中,他们对工作的满意度就会增加,并与开发者们并肩创造这个CRC模型,通过这个一连串的模型卡,双方对待建的系统需求目标达成共识。School of Computer & Information CRC模型只是一个面向对象应用的用户需求定义的一部分。你也应该考虑到用例,原型,和正式的需求文档。是否要使用CRC建模,就根据项目、企业、客户自身存在和所需的条件而定了 School of Computer & Information 面向对
21、象的软件过程面向对象的软件过程- -喷泉模型喷泉模型 需求阶段面向对象分析阶段面向对象设计阶段编码阶段集成和测试阶段运行状态进一步开发维护期喷泉模型的生命周期与结构化方法的生命周期是一致的,但喷泉模型的各个阶段是迭代和无缝的。School of Computer & Information 面向对象的软件过程面向对象的软件过程-RUP -RUP RUP的二维开发模型横轴是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone); 纵轴以内容来组织为自然的逻辑活动,体现开发过程
22、的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow)。 School of Computer & Information RUPRUP的各个阶段和里程碑的各个阶段和里程碑- -横向横向 RUP中的软件生命周期在时间上被分解为四个顺序的阶段 初始阶段初始阶段(Inception) (生命周期目标里程碑 ) 前景文档:对核心项目要求、关键性质、主要限制的一般性的前景说明; 初始的用例模型(完成1020); 初始的项目术语表; 初始的商业用例,包括商业环境、验收规范以及成本预测; 初始的风险评估; 项目规划
23、,其中明确阶段和迭代; 商业模型,根据需要可选; 一个或多个原型;细化阶段细化阶段(Elaboration)(生命周期结构里程碑) 构造阶段构造阶段(Construction)(初始运行能力 )交付阶段交付阶段(Transition)(产品发布里程碑) 用例模型(至少完成80):识别出了所有的用例和角色,以及大多数用例的描述; 调整一些增加的需求,包括非功能性需求以及任何与特定用例无关的需求; 软件体系结构描述; 可执行的体系结构原型; 修订后的风险表和商业用例; 整个项目的开发计划,包括粗略项目规划,显示迭代过程以及相应的评估准则; 更新的开发用例,指定要使用的过程; 初步的用户手册(可选)
24、; 在特定平台上集成的软件产品; 用户手册; 对当前版本的描述 ; beta测试确认新系统达到用户的预期; 与被取代的旧系统并行操作; 功能性数据库的转换; 用户和维护人员培训; 向市场、分销商和销售人员进行新产品的展示;School of Computer & Information RUPRUP的核心工作流的核心工作流- -纵向纵向 描述如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。 描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决
25、问题的定义和范围。 设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化。分析设计的结果是一个设计模型和一个可选的分析模型。 目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。 目的是验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现, 识别并确认缺陷在软件部署之前被提出并处理。RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷
26、的成本。 目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。 描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。同时也阐述了对产品修改原因、时间、人员保持审计记录。 平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。 目的是向软件开发组织提供软件开发环境,包括过程和工具。 Sch
27、ool of Computer & Information Jim RumbaughGrady BoochIvar JacobsonSchool of Computer & Information UML的简介的简介lUML(Unified Modeling Language)是一种构建软件系统和文档的通用可视化建模语言。lUML能与所有的开发方法一同使用,可用于软件开发的整个生命周期。lUML能表达系统的静态结构和动态信息,并能管理复杂的系统模型,便于软件团队之间的合作开发。lUML不是编程语言,但支持UML语言的工具可以提供从UML到各种编程语言的代码生成,也可以提供从现有
28、程序逆向构建UML模型。lUML并不是万能的,它是一种离散的建模语言,对于特定的领域,比如:GUI、VLSI电路设计或基于规则的人工智能,用特定的语言和工具可能更合适。School of Computer & Information l最重要目标:UML是所有建模人员可以使用的通用建模语言。它包含主流建模方法的概念,从而可以替代现有的软件分析和设计方法,比如:OMT,Booch,OOSE等。lUML不是完整的开发方法,它不包括逐步的开发流程,但它提供所有必要的概念,具备足够的表达能力。lUML的另一个目标是:能尽量简洁地表达系统的模型。UML的目标的目标School of Comput
29、er & Information UML概念可以划分为以下范围:概念可以划分为以下范围: 系统需求系统需求 静态结构静态结构 动态行为动态行为 交互行为交互行为 物理实现物理实现 各种图之间的关系各种图之间的关系 模型组织模型组织 扩展机制扩展机制UML的主要概念的主要概念School of Computer & Information 用例视图用例视图(Use Cases View)从外部用户从外部用户的角度来描述系统的行为,它将系统功的角度来描述系统的行为,它将系统功能划分为对用户有意义的事务,这些事能划分为对用户有意义的事务,这些事务被称为务被称为用例用例,用户被称为用户
30、被称为执行者执行者,用用例视图例视图也就是描述活动者在各个用例中也就是描述活动者在各个用例中的参与情况,它指导所有的行为视图。的参与情况,它指导所有的行为视图。系统需求系统需求School of Computer & Information 静态视图静态视图(Static View),一个模型必须首先定,一个模型必须首先定义各种事物的内部特征和相互之间的关系,应义各种事物的内部特征和相互之间的关系,应用概念建模成用概念建模成类类,类描述事物的,类描述事物的属性属性和以及在和以及在这些属性上的这些属性上的操作操作。类之间可以存在不同的。类之间可以存在不同的关关系系,比如,比如泛化泛化(继
31、承)、(继承)、关联关联和和依赖依赖等,静态等,静态视图表示成视图表示成类图类图,静态视图在某一时刻的快照,静态视图在某一时刻的快照称为称为对象图对象图。静态结构静态结构School of Computer & Information 状态机视图状态机视图(State Machine View),通过对每,通过对每个类的对象的生命周期进行建模,描述了对象个类的对象的生命周期进行建模,描述了对象时间上的动态行为。时间上的动态行为。状态机状态机是由是由状态状态和和迁移迁移组组成的图,状态机通常附属于类,描述类实例对成的图,状态机通常附属于类,描述类实例对接受接受事件事件的响应。的响应。 活
32、动视图活动视图(Activity View)是利用状态机对运算是利用状态机对运算和和工作流工作流进行建模的特殊形式。进行建模的特殊形式。活动图活动图的状态的状态代表了运算执行的状态,而非一般对象的状态代表了运算执行的状态,而非一般对象的状态,活动图和流程图很相似,不过它支持并发。,活动图和流程图很相似,不过它支持并发。动态行为动态行为School of Computer & Information 交互视图交互视图(Interaction View),对象通过交互来,对象通过交互来实现行为,交互视图通过实现行为,交互视图通过协作协作来进行建模,协来进行建模,协作具有结构和行为两个方面,
33、结构包含为行为作具有结构和行为两个方面,结构包含为行为方面而定义的一系列角色和关系,行为方面是方面而定义的一系列角色和关系,行为方面是绑定于角色的对象间的一系列交换的消息,这绑定于角色的对象间的一系列交换的消息,这些消息在协作中称为些消息在协作中称为交互交互,消息序列可用两种,消息序列可用两种图来表示:图来表示:顺序图顺序图(重点在消息的时间顺序)(重点在消息的时间顺序)和和协作图协作图(重点在交换消息的对象间的关系)(重点在交换消息的对象间的关系)。交互行为交互行为School of Computer & Information 物理视图物理视图(Physical View),许多系
34、统模型独,许多系统模型独立于最终的实现,在实现方面,必须充分考虑立于最终的实现,在实现方面,必须充分考虑系统的重用性和性能。系统的重用性和性能。UML有两种视图来表有两种视图来表示系统的实现:示系统的实现:实现视图实现视图和和部署视图部署视图,实现视,实现视图将可重用的系统片段打包成图将可重用的系统片段打包成组件组件,部署视图,部署视图描述系统运行时资源的物理分布,这些资源称描述系统运行时资源的物理分布,这些资源称为为结点结点。物理实现物理实现School of Computer & Information 静态视图(类图,对象图),物理视图(实静态视图(类图,对象图),物理视图(实现
35、视图,部署视图)是描述系统的静态结构现视图,部署视图)是描述系统的静态结构。 用例图是描述系统的外部视图。用例图是描述系统的外部视图。 活动图描述系统的外部活动图描述系统的外部/内部视图。内部视图。 交互视图(顺序图,协作图)描述系统的内交互视图(顺序图,协作图)描述系统的内部视图。部视图。 状态图描述单个类的动态行为。状态图描述单个类的动态行为。各种图之间的关系各种图之间的关系School of Computer & Information 模型管理视图模型管理视图(Model Management View),任何大系统必须划分为较小的单元,以使人们任何大系统必须划分为较小的单元,
36、以使人们能在某一时刻只接触有限的信息,不影响团队能在某一时刻只接触有限的信息,不影响团队间的并行工作。模型是利用间的并行工作。模型是利用包包(Package)和和包包的依赖的依赖来进行管理的。包是来进行管理的。包是UML模型中通用模型中通用的层次组织结构,包上的依赖总结了包内容的的层次组织结构,包上的依赖总结了包内容的依赖关系。依赖关系。模型组织模型组织School of Computer & Information 扩展机制扩展机制(Extension Mechanisms),UML能能满足绝大部分系统建模的需要,但任何语言都满足绝大部分系统建模的需要,但任何语言都不是万能的,它必须
37、考虑一定的扩展机制,不是万能的,它必须考虑一定的扩展机制,UML的扩展机制包括的扩展机制包括约束约束、标签值标签值和和原型原型。这些扩展机制可以用来为特定领域剪裁这些扩展机制可以用来为特定领域剪裁UML的配置,这样带来一些好处:根据自身需要来的配置,这样带来一些好处:根据自身需要来使用建模语言。使用建模语言。扩展机制扩展机制School of Computer & Information l一个模型必须首先定义各种事物的内部特征和一个模型必须首先定义各种事物的内部特征和相互之间的关系,下面介绍一些基本的模型元相互之间的关系,下面介绍一些基本的模型元素:素:分类:n类(Class)n接口
38、(Interface)n子系统(Sub System)n执行者(Actor)n用例(Use Cases)n组件(Component)n结点(Node)n注释(Comment)关系:n关联(Association)n泛化(Generalization)n依赖(Dependency)n实现(Realization)n约束(Constraint)静态视图:n类图n对象图静态建模静态建模School of Computer & Information l类类是具有相同属性、操作和关系的对象集合的是具有相同属性、操作和关系的对象集合的总称。通常在总称。通常在UML中类被画成矩形,中类被画成矩形,
39、l包括三个部分:名称、属性和操作。包括三个部分:名称、属性和操作。名称:名称:每个类都必须有一个名字,用来区分其它每个类都必须有一个名字,用来区分其它的类。类名是一个字符串,称为简单名字。路径的类。类名是一个字符串,称为简单名字。路径名字是在类名前加包含类的包名为前缀。例如名字是在类名前加包含类的包名为前缀。例如Wall、java:awt:Wall都是合法的类名。都是合法的类名。 属性:属性:类可以有任意多个属性,也可以没有属性类可以有任意多个属性,也可以没有属性。在类图中属性只要写上名字就可以了,也可以。在类图中属性只要写上名字就可以了,也可以在属性名后跟上类型甚至缺省取值在属性名后跟上类型
40、甚至缺省取值 。 操作:操作:操作是类的任意一个实例对象都可以调用操作是类的任意一个实例对象都可以调用的,并可能影响该对象行为的实现。的,并可能影响该对象行为的实现。 静态建模静态建模-类类School of Computer & Information 类名属性操作School of Computer & Information l接口接口是未给出实现的对象行为的描述,是未给出实现的对象行为的描述,接口包含操作,但没有属性,一个或多接口包含操作,但没有属性,一个或多个类可以实现接口,每个类实现接口的个类可以实现接口,每个类实现接口的操作。操作。StringisEqual(St
41、ring) : BooleanHash() : IntegerHashableComparable接口标记静态建模静态建模-接口接口School of Computer & Information l任何大系统都必须任何大系统都必须划分为较小的单元划分为较小的单元,以便人们在某一,以便人们在某一时刻可以和有限的时刻可以和有限的信息工作,使团队信息工作,使团队的工作不相互影响的工作不相互影响。l包可以包含各种模包可以包含各种模型元素和其它的包型元素和其它的包,包之间还可能存,包之间还可能存在一定的依赖。在一定的依赖。FinancesCreditsAccountsBankInterface
42、静态建模静态建模-子系统(包)子系统(包)School of Computer & Information l执行者执行者是与系统、子系统或类交互的外部是与系统、子系统或类交互的外部人员,进程或事务。在运行时,具体人员人员,进程或事务。在运行时,具体人员会充当系统的多个执行者,不同用户可能会充当系统的多个执行者,不同用户可能会成为一个执行者。会成为一个执行者。StudentProfessorBilling SystemRegistrar静态建模静态建模-执行者执行者School of Computer & Information l用例用例是系统提供的外部可感知的功是系统提供的
43、外部可感知的功能单元,用例的目的是定义清晰的能单元,用例的目的是定义清晰的系统行为,但不解释系统的内部结系统行为,但不解释系统的内部结构。构。l用例可以与执行者关联,也可以参用例可以与执行者关联,也可以参与其他的多种关系,比如扩展、泛与其他的多种关系,比如扩展、泛化和包含等。化和包含等。l用户的动态部分用交互视图来描述用户的动态部分用交互视图来描述,比如顺序图、协作图。,比如顺序图、协作图。l用例用椭圆来表示,用例名标在椭用例用椭圆来表示,用例名标在椭圆下方,用实线与同自身通信的用圆下方,用实线与同自身通信的用户相连。户相连。Maintain Curriculum静态建模静态建模-用例用例Sc
44、hool of Computer & Information lRegistrar - maintain the curriculumlProfessor - request rosterlStudent - maintain schedulelBilling System - receive billing information from registrationMaintain ScheduleMaintain CurriculumRequest Course Roster静态建模静态建模-用例用例School of Computer & Information l用例图
45、用例图描述执行者在各个用例中的参与描述执行者在各个用例中的参与情况。情况。StudentRegistrarProfessorMaintain ScheduleMaintain CurriculumRequest Course RosterBilling System静态建模静态建模-用例图用例图School of Computer & Information l组件组件是可重用的系统片段,具有良是可重用的系统片段,具有良好好 定义接口的物理实现单元。每定义接口的物理实现单元。每个组件个组件 包含了系统设计中某些类包含了系统设计中某些类的实现。的实现。l组件设计的原则组件设计的原则:良好
46、的组件不直:良好的组件不直接接 依赖于其它组件,而是依赖于依赖于其它组件,而是依赖于其它组其它组 件所支持的接口。这样的件所支持的接口。这样的好处是系统好处是系统 中的组件可以被支持中的组件可以被支持相同接口的组件相同接口的组件 所取代。所取代。l一个组件可能是一个组件可能是源代码源代码、可执行程可执行程序序或或动态库动态库。Student静态建模静态建模-组件组件School of Computer & Information l结点结点代表系统运行时的物理对象,结点通常代表系统运行时的物理对象,结点通常拥有运算能力,它可以容纳对象和组件实例拥有运算能力,它可以容纳对象和组件实例。R
47、egistrationDatabaseLibraryDormMain Building静态建模静态建模-结点结点School of Computer & Information l注释注释用于解释设计的思路,便于理解。用于解释设计的思路,便于理解。l一个好的模型应该有详尽的注释。一个好的模型应该有详尽的注释。Representsan incorporated entityCompany注释静态建模静态建模-注释注释School of Computer & Information l关联关联描述了系统中对象和其它实例之间的描述了系统中对象和其它实例之间的离散的连接,关联是有序的,
48、它允许重复离散的连接,关联是有序的,它允许重复,关联的实例是,关联的实例是链链。l关联至对象的连接点称为关联至对象的连接点称为关联端点关联端点,很多,很多信息被附在关联端点上,它拥有角色名、信息被附在关联端点上,它拥有角色名、重数(多少个类的实例可以关联于另一个重数(多少个类的实例可以关联于另一个类的实例),可见性等。类的实例),可见性等。l关联有自己的名称,可以拥有自己的属性关联有自己的名称,可以拥有自己的属性,这时关联本身也是类,称为,这时关联本身也是类,称为关联类关联类。静态建模关系关联静态建模关系关联School of Computer & Information Manage
49、sJobbossworkeremployeeemployer1.*0.1CompanyPersonJobSalary角色名重数关联名称关联类二元关联自关联School of Computer & Information l聚集聚集(Aggregation)用来表达整体部分)用来表达整体部分关系的关联。关系的关联。组合组合(Composition)是一)是一种聚集,是关联更强的形式。种聚集,是关联更强的形式。PolygonPoint13.*pointsContainsPolygonWindowSlider12ScrollbarHeader1Title11Panel1Body聚集组合静态建
50、模关系聚合和组静态建模关系聚合和组合合School of Computer & Information l泛化泛化是一般化和具体化之间的一种关系。是一般化和具体化之间的一种关系。l继承继承就是一种泛化关系,更一般化的描述称为就是一种泛化关系,更一般化的描述称为双亲双亲,双亲的双亲称为,双亲的双亲称为祖先祖先,更具体化的描述,更具体化的描述称为称为孩子孩子,在类的范畴,双亲对应超类,孩子,在类的范畴,双亲对应超类,孩子对应子类。对应子类。TreeOakElmBirch孩子双亲PersonStudentGraduate祖先静态建模关系泛化静态建模关系泛化School of Computer
51、 & Information l多重继承多重继承:一个孩子可以从多个双亲继承属性和:一个孩子可以从多个双亲继承属性和方法。多重继承可能存在方法。多重继承可能存在冲突冲突,因为被继承的双,因为被继承的双亲可能存在相同的类声明,这时,最好显式解决亲可能存在相同的类声明,这时,最好显式解决冲突问题。冲突问题。AssistantTeacherStudent静态建模关系多重继承静态建模关系多重继承School of Computer & Information l依赖依赖指明两个或两个以上模型元素之间的指明两个或两个以上模型元素之间的关系。关系。l依赖有很多种类,比如:实现(依赖有很多种
52、类,比如:实现(realize)、使用、(、使用、(usage)、实例化()、实例化(instantiate)、调用()、调用(call),派生(),派生(derive)、访问)、访问(access)、引入()、引入(import)、友元()、友元(friend)等等。)等等。Application ServerDataBase依赖类型静态建模关系依赖静态建模关系依赖School of Computer & Information l实现实现是依赖的一种,但由于它具有特殊意是依赖的一种,但由于它具有特殊意义,所以将它独立讲述。实现是连接说明义,所以将它独立讲述。实现是连接说明和实现之间
53、的关系。和实现之间的关系。StringisEqual(String) : BooleanHash() : IntegerComparableComparableisEqual(String) : BooleanHash() : Integer实现特殊的实现标记静态建模关系实现静态建模关系实现School of Computer & Information l约束约束用来表示各种限制,如关联路径上的限制用来表示各种限制,如关联路径上的限制,和属性特征检测(存在、所有)。,和属性特征检测(存在、所有)。PersonCommitteeMember-of约束Chair-ofsubset静态建模
54、关系约束静态建模关系约束School of Computer & Information l静态视图静态视图是是UML的基础,静态视图表示为类的基础,静态视图表示为类图,主要是描述类和类之间的关系。图,主要是描述类和类之间的关系。继承关联PersonHouseresidence0.*owner0.*FinancialInstitutionclientcreditor0.*0.*Mortgageprincipalrateterm关联类ordered0.*1BankTrustCompany静态建模类图静态建模类图School of Computer & Information l对
55、象图是系统在某一时刻的快照。对象图是系统在某一时刻的快照。Smith : Personcottage : Househome : Housefirst : Mortgagesecond : MortgageRoyalBank : Bank链静态建模对象图静态建模对象图School of Computer & Information l状态机图状态机图l用例图用例图l活动图活动图l顺序图顺序图l协作图协作图动态建模动态建模School of Computer & Information l状态机图状态机图是对单个类的对象的生命周期进行建模,描述是对单个类的对象的生命周期进行建模,
56、描述了对象时间上的动态行为,每个对象被认为是了对象时间上的动态行为,每个对象被认为是事件驱动事件驱动的孤立实体。的孤立实体。l状态机图是由状态机图是由状态状态和和跃迁跃迁组成的图,通常状态机附属于组成的图,通常状态机附属于类,描述类实例对接受事件的响应。类,描述类实例对接受事件的响应。l事件事件表达对象间的调用、显式信号、值的改变或时间的表达对象间的调用、显式信号、值的改变或时间的推移。推移。 调用事件、变更事件、信号事件、时间事件调用事件、变更事件、信号事件、时间事件l状态状态描述对象生命周期的一段时间,可以是等待其它事描述对象生命周期的一段时间,可以是等待其它事件时所处的时间,或是执行某一
57、活动时所处的时间,状件时所处的时间,或是执行某一活动时所处的时间,状态分为态分为简单状态简单状态和和复合状态复合状态。动态建模动态建模-状态机图状态机图School of Computer & Information l跃迁跃迁定义对象对某一事件发生的反应,通常,定义对象对某一事件发生的反应,通常,迁移具有迁移具有触发事件触发事件、跃迁条件跃迁条件、动作动作和和目标状目标状态态。l跃迁的种类有跃迁的种类有外部跃迁外部跃迁和和内部跃迁内部跃迁。外部跃迁。外部跃迁是最普通的跃迁,会发生状态改变;内部跃迁是最普通的跃迁,会发生状态改变;内部跃迁不发生状态改变。不发生状态改变。l跃迁有两个隐式
58、动作:跃迁有两个隐式动作:进入动作进入动作和和退出动作退出动作。无论何时进入和退出时都要执行,这方便进入无论何时进入和退出时都要执行,这方便进入时进行初始化工作,退出时进行资源的释放工时进行初始化工作,退出时进行资源的释放工作。作。动态建模动态建模-状态机图状态机图School of Computer & Information createdreadystart/master.ready()poll/master.ack()stop/初始状态结束状态状态机状态触发事件动作表达式跃迁School of Computer & Information l用例图用例图描述各个执行者在
59、各个用例中的参与情描述各个执行者在各个用例中的参与情况,描述系统为用户所感知的外部视图。况,描述系统为用户所感知的外部视图。l用例图的功能:用例图的功能: 捕获系统用户需求捕获系统用户需求 描述系统边界描述系统边界 指明系统外部行为指明系统外部行为 指导系统开发者的功能开发指导系统开发者的功能开发 系统建模的起点,指导所有的类图和交互图的设系统建模的起点,指导所有的类图和交互图的设计计 产生测试用例,用户文档产生测试用例,用户文档 估计项目大小和进度。估计项目大小和进度。动态建模动态建模-用例图用例图School of Computer & Information CustomerSa
60、lesmanSupplierSupervisorSaleManagementSupply执行者用例系统边界School of Computer & Information l活动图活动图是用状态机对工作流进行建模的特殊形是用状态机对工作流进行建模的特殊形式,它和流程图很类似,不过它支持并发控制式,它和流程图很类似,不过它支持并发控制。l活动图一般不描述所有的运算细节,它显示活活动图一般不描述所有的运算细节,它显示活动的流,但不显示执行活动的对象。动的流,但不显示执行活动的对象。l活动图处于系统的外部和内部视图之间,所以活动图处于系统的外部和内部视图之间,所以它可以作为设计的起点,为了完
61、成设计,每个它可以作为设计的起点,为了完成设计,每个活动必须扩展成一个和多个操作,每个操作被活动必须扩展成一个和多个操作,每个操作被指派给特定的对象来实现。指派给特定的对象来实现。l将商业组织控制的活动划分在一起,这类划分将商业组织控制的活动划分在一起,这类划分可以通过分隔的区域来表达,由于它们的外观可以通过分隔的区域来表达,由于它们的外观,每个区域称为,每个区域称为泳道泳道(swimlane)。)。动态建模动态建模-活动图活动图School of Computer & Information CustomerSalesStockroomRequestServicePayTake OrderFill OrderDeliver
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业管理资料出国劳务居间合同有资质文档范本
- 临时聘用教师合同
- 2025新版工程合同样式
- 露天场地出租合同范本
- 日用品购销的合同范本
- 2025正规专业工程承包合同范本
- 加盟合同样本模板年
- 抵押借款合同
- 建筑施工流程规划
- 建筑工程绿化与景观设计技术
- 安全生产网格员培训
- 小学数学分数四则混合运算300题带答案
- 林下野鸡养殖建设项目可行性研究报告
- 心肺复苏术课件2024新版
- 2024年内蒙古呼和浩特市中考文科综合试题卷(含答案)
- 大型商场招商招租方案(2篇)
- 2024年山东泰安市泰山财金投资集团有限公司招聘笔试参考题库含答案解析
- 医保按病种分值付费(DIP)院内培训
- 近五年重庆中考物理试题及答案2023
- 全科医医师的临床诊疗思维
- (七圣)七圣娘娘签诗
评论
0/150
提交评论