您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程与 UMLswchapter2
统一软件开发过程RUP与统一建模语言UML第二章《软件工程与UML》重点了解•模块化、抽象、逐步求精这三个软件开发的一般性的方法•统一软件开发过程是用例驱动,构架优先,迭代和增量式的过程•统一软件开发过程的五个核心工作流:需求捕获、分析、设计、编码、测试•统一软件开发过程的四个工作阶段:初始阶段、细化阶段、构造阶段、移交阶段•软件开发过程可以因任务而不断变化,也就是说过程可载剪待续重点了解•开发过程的改进是提高软件质量和开发效率的主要手段•UML是一个通用的可视化建模语言•学习UML要掌握基本构造块,支配这些块如何放在一起的规则,运用于整个语言的一些公共机制三个方面•UML的基本构造块是:事物,关系、图•UML有4种事物:结构事物、行为事物、分组事物、注释事物•UML中有4种关系:依赖、关联、泛化、实现待续重点了解•UML中有9种图最常用:类图、对象图、用例图、顺序图、协作图、状态图、活动图、构件图、实施图(又称布署图),组合这些图可从不同角度对系统建模•UML不是一种编程语言,但使用代码生成器工具,可将UML模型映射成编程语言代码,如Java,C++,VisualBasic等。或使用反向生成工具将编程语言代码转换为UML模型。如RationalRose等UML建模工具都支持这两种转换。2.1软件开发的几个指导原则•软件开发工作应分阶段进行•将一个大的软件开发任务合理划分成相对独立的小块任务•从抽象到具体逐步深入解决问题模型的概念•模型是人们对现实世界理解的抽象表达•模型可能有许多种类型,在某些领域中,一个模型可能是一组数学方程式;而在另一些领域中,一个模型可能是计算机仿真程序;在建筑领域,模型是一个按比例缩小的实物;当然还有像深圳的世界之窗公园里将著名风景缩小变成的模型。•一个RUP过程的模型是一组UML图,为了理解和开发一个软件系统,用户、开发人员、分析人员、测试人员、管理人员及其他涉及项目的人员可以检查、获取、修改这些图。2.2统一软件开发过程RUP•统一开发过程(RationalUnifiedProcess,RUP)是一套软件工程方法,它集成了许多软件开发模型的优点,具有很好的可操作性和实用性,是目前最有效的软件开发过程模型。•它描述了软件开发过程不同时期应是某个角色,采取什么行为,经过几个工作流,得到某种产品或达到某个目标。是将用户需求转化为一个软件系统的一系列活动的总称。2.2.1统一过程概述•统一过程是基于构件的•统一过程使用统一建模语言(UML)来建模。进行思考和沟通。•统一过程是用例驱动的•统一过程采用构架优先方法•统一过程是迭代和增量的过程•统一过程有四个工作阶段•统一过程有五个核心工作流2.2.2统一过程的四个工作阶段1初始阶段2细化阶段3构造阶段4移交阶段1初始阶段确定系统的核心功能、最主要的风险、构架雏形、整个项目的粗略估计。·确定系统向每个主要用户提供的基本功能是什么?即区分关键的系统用例和主要的操作场景,对目前所了解的用例区分优先级。·确定项目的软件范围和边界条件,包括验收标准及产品中应包括什么和不应包括什么的清晰理解,系统与其它系统的接口。·确定系统的构架看起来是什么样子?在有些主要的场景中至少演示一个候选的构架。尤其是系统中全新的,带有风险的,较难实现的部分。这时仅仅需要确信构架能够建立而已。·识别出那些影响系统建造能力的重大风险。并且断定是否可以找到方法缓解这些风险。在初始阶段,只考虑那些对系统的成功开发有威胁的风险·估计整个项目的成本及大致的进度。有关概念•用例:用例是从用户的角度出发对如何使用系统的描述。•操作场景:就是用例的操作步骤序列•构架:系统的框架性结构2细化阶段细化阶段是4个阶段中最关键的。细化阶段的活动必须确保构架,需求和计划足够稳定,风险得到充分的缓解,完成开发的成本和进度能在一个可接受的范围内被预测。•迅速地定出实用的构架(其中所有的变更能被合理地处理、跟踪和维护)。•规划完成项目的活动,估算完成项目所需的资源。•为构造阶段定出高精确度的计划•细化初始阶段的模型3构造阶段•在这个阶段将消耗项目所需的大部分资源•实现管理层和用户达成共识的产品的所有用例•一个移交阶段的高精度计划•关键特性和核心功能得到实现•产品发布的验收标准•初步的用户手册•对产品质量的详细分析4移交阶段•这个阶段包括产品进入测试版(ß版)后的整个阶段•试用产品,并改正试用中发现的缺陷•制作安装版,并培训用户•提供在线支持2.2.3统一过程的五个核心工作流1捕获需求2分析3设计4实现5测试1捕获需求•需求捕获阶段的主要工作是建立并通过多次迭代来完善待开发系统的用例模型。•进行初步的用户界面设计。•主要考虑谁是用户以及可以通过用例来完成什么业务或任务2分析•对需求捕获阶段所描述的用例模型进行精细化和组织•解决多个用例共享资源时的并发与冲突的细节•多个用例间的冗余•在捕获需求阶段得到的用例是采用面向用户的语言表达的,在分析阶段要采用面向开发人员的语言进行描述3设计•构造系统,联系具体的编程语言,确定的构件类,具体的操作系统,还结合分布与并行技术,数据库技术,用户界面技术,事务管理技术等相关问题,将系统划分成子系统、接口和类,并设计类中方法的实现算法,接口的具体规范。4实现•在实现阶段,将基于设计的结果,探讨如何用源代码,脚本,二进制代码,可执行体等构件来实现系统•对构件进行单元测试,通过编译和连接把它们集成为一个或多个可执行程序,之后再进行集成和测试5测试•设计测试用例:确定要测试什么功能或性能;测试时用什么输入数据,应该得到什么输出结果•选择测试测试环境,测试工具。•创建测试脚本,规划执行哪些测试动作及动作的执行顺序。或创建使测试自动化的可执行的测试构件。设计测试:就是执行各种测试并系统地处理每个测试的结果,发现有缺陷的构造要重新测试,甚至可能要送回给其它核心工作流(如设计和实现),这样才能修复严重的缺陷实现测试:2.2.4统一软件开发过程的生命周期第1次迭代第2次迭代第3次迭代捕获需求分析设计实现测试捕获需求分析设计实现测试捕获需求分析设计实现测试图2-1迭代经历从捕获需求到测试的所有工作流统一软件开发过程中的一次迭代包括的核心工作流和整个软件生命周期中的迭代2.2.4统一软件开发过程的生命周期图2-2软件整个生命周期的阶段划分和迭代迭代的次数不是固定的,它随不同的项目变化初始阶段细化阶段构造阶段提交阶段第1次迭代第n次迭代第n-1次迭代第2次迭代软件生命周期软件生命周期各阶段划分和迭代2.2.5RUP开发过程的特点•统一过程是用例驱动的•统一过程采用构架优先方法•统一过程是增量和迭代的•特别适合现代软件开发•统一过程采用UML作为开发过程中的建模语言2.3UML概述•UML(UnifiedModelingLanguage)译为“统一建模语言”•UML是一种用于对软件系统进行可视化、详述、构造和文档化的建模语言•RUP中采用UML作建模语言•UML不是一门程序设计语言•UML从面向对象的角度对系统建模•UML独立于软件开发过程•UML是面向对象方法的一部分2.4UML结构2.4.1UML中的事物UML中有4种事物:结构事物,行为事物,分组事物,注释事物结构事物:共有7种结构事物。即类、接口、协作、用例、主动类、构件和节点,是UML模型中可以包含的基本结构事物,它们也有变体,如参与者,信号,实用程序(一种类),进程和线程(两种主动类)、应用文档、文件、库、页和表(一种构件)等。行为事物:是UML的动态部分,它们是模型中的动词,描述了跨越时间和空间的行为。共有2类主要的行为事物:交互和状态机分组事物:是UML模型的组织部分。在所有的分组事物中,最主要的分组事物是包注释事物:是UML模型的解释部分。这些注释事物用来描述、说明和标注模型中的任何元素。有一种主要的注释事物,称为注解一结构事物之1:类windowsoriginsizeopen()close()类名类的属性类的方法类windows类的简略表示EventQueue{version=3.2}{author=hu}.....add(){order}remove()flush()标记值约束类的另一种表示类是对一组具有相同属性、操作、关系和语义的对象的描述一结构事物之2:接口•接口定义了一组操作的特征标记,而不是操作的实现Ispelling接口一结构事物之3:协作•协作定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其它元素构成的一个群体,这些协作行为大于所有元素的各自行为总和。因此,协作有结构、行为和维度。协作表示为包含名称的虚线椭圆Chainofresponsibility协作一结构事物之4:用例用例是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者有价值而且可以观察到的结果。也就是从使用者的角度看到的系统的功能。用例Placeorder一结构事物之5:主动类主动类是这样一种类,其对象至少拥有一个进程或线程,它能启动控制活动主动类EventManger...suspend()一结构事物之6:构件•构件是系统中的物理的、可替代的部件,如源代码文件。构件表示为带有小方框的矩形orderform.java构件一结构事物之7:节点•节点是运行时存在的物理元素,它表示了一种可计算的资源,它通常至少具有记忆能力和运行能力。一个构件可以驻留在一个节点内,也可以从一个节点迁移到另一个节点。server结点二行为事物•共有2类主要的行为事物:交互和状态机display交互状态Waiting三分组事物•分组事物是UML模型的组织部分。在所有的分组事物中,最主要的分组事物是包。包是模型元素的集合。为了方便,为了对系统进行模块划分,用包将模型元素分组。包可以嵌套在其它的包中,它也有变体,如框架,模型和子系统等。包businessrule四注释事物•注释事物是UML模型的解释部分。这些注释事物用来描述、说明和标注模型中的任何元素。有一种主要的注释事物,称为注解。注释returncopyofself2.4.2UML中的关系•UML中有4种关系:依赖、关联、泛化、实现。•这4种元素是UML模型中可以包含的基本关系事物,它们也有变体,例如,依赖的变体有精化,跟踪,包含和延伸。依赖关联泛化实现0..1employeremployee*角色多重性CompanyDepartment1*整体部分聚合CompanyDepartment1*整体部分组合2.4.3用UML对系统建模UML中的图:类图:显示一组类、接口、协作、以及它们的关系。对象图:显示一组对象以及它们的关系。用例图:显示一组用例,参与者以及它们的关系。顺序图:显示一个交互,强调消息的时间排序。协作图:显示一个交互,强调发送消息和接收消息的对象的结构组织。状态图:显示一个状态机,强调一个对象的按事件排序的行为。活动图:显示一个状态机,强调从活动到活动的流。构件图:显示一组构件以及它们的关系。布署图:显示一组节点以及它们的关系。UML模型•用例模型:它包括一至多张用例图。•静态模型:它是指一组图,包括类图,对象图,构件图,布署图。•动态模型:它是另一组图,包括状态图,顺序图,活动图,协作图。用例图也描述了系统的动态特性。•一个模型可以有多种图,因为不同模型的所有图均为同一个系统的描述,它们之间不能矛盾。UML视图•每一个视图是在特定的方面对系统的组织和结构进行的描述。•有5种最重要的互补视图:•用例图•设计视图•进程视图•实现视图•实施视图UML规则•命名•范围•可见性•执行•省略•不完全性•不一致性UML中的公共机制在UML中有4种贯穿整个语言且一致使用的公共机制:•规格说明•修饰•通用划分:“抽象”和“实例”划分;“接口”和“实现”的分离•扩展机制:1)构造型2)标记值3)约束包含更多信息的结构事物包含更多信息的结构事物包含更多信息的行为事物包含更多信息的行为事物类图中常见的关联符号2.5.2类图Customername:Stringphone:Stringadd(name,phone)Owne
本文标题:软件工程与 UMLswchapter2
链接地址:https://www.777doc.com/doc-213027 .html