UML在需求分析阶段的应用2Abran和Moore的软件需求工程过程模型(未包括需求管理)用户需求和系统需求需求规格说明用户需求草稿分析模型可行性研究分析建模需求获取需求描述需求有效性验证UML在需求分析阶段中的应用•需求分析阶段:使用用例图描述系统功能(功能模型);使用概念类图建立领域模型(分析对象模型);使用顺序图描述系统与外界的交互过程(动态模型).1、建立功能模型1、找出系统边界2、找出系统的执行者3、根据执行者的目标,找出系统的用例4、为了方便与用户进行交流,可以使用文档对用例进行详细的描述(使用事件流描述用例,包括基本事件流和备选事件流)。非功能需求分析根据用户的需求描述,找出描述中属于系统的非功能需求的部分,将非功能需求记录在文档中。2、建立分析对象模型在进行用例分析的同时,还需要进行领域分析,建立领域模型。此处,领域指的是用户的业务领域,也就是需要解决问题的领域。领域模型分析——找出领域概念领域概念:用来描述现实世界中某个问题的一些名词和术语。要建立领域模型,首先找出描述问题的概念和术语。1、对用例描述进行分析,找出名词、动词、动词词组。名词可能会成为领域模型中的类或类中的属性,动词和动词词组可能会成为类中的方法或类间的关联。领域模型分析——找出领域概念2、对名词列表进行筛选,找出可能的概念类3、对概念类进行泛化处理4、找出类间关联5、根据上面的分析,画出类图6、细化:为类增加属性和方法领域模型分析——找出领域概念3、建立动态模型使用活动图对业务流程进行建模。使用顺序图来描述用例的执行过程。案例:AutoWeight系统AutoWeight系统是一个自动称重系统中的软件部分。自动称重系统能够对移动天车运送的物料进行称重,然后把称重的重量和物料的编号等信息传送给计算机,并由AutoWeight系统进行必要的计算、统计和报表打印。•天车:桥式起重机的别称。•桥式起重机是桥架在高架轨道上运行的一种桥架型起重机,又称天车。桥式起重机的桥架沿铺设在两侧高架上的轨道纵向运行,起重小车沿铺设在桥架上的轨道横向运行,构成一矩形的工作范围,就可以充分利用桥架下面的空间吊运物料,不受地面设备的阻碍。•桥式起重机广泛地应用在室内外仓库、厂房、码头和露天贮料场等处。桥式起重机可分为普通桥式起重机、简易粱桥式起重机和冶金专用桥式起重机三种。•普通桥式起重机一般由起重小车、桥架运行机构、桥架金属结构组成。起重小车又由起升机构、小车运行•机构和小车架三部分组成。案例:AutoWeight系统物料称重系统设备连接示意图天车的工作过程每台天车配备一个操作工人,负责开动天车,搬运物料。天车搬运物料的过程如下:(1)天车操作工人把天车开到指定地点。(2)吊装物料。(3)天车吊起物料。(4)天车吊运物料运行。(5)到达指定的地点,放下物料。(6)天车回到指定地点,准备下一次工作。称重仪表的工作过程(1)通过传感器得到天车吊运物料的重量数据。(2)重量数据显示到称重仪表屏幕中。(3)仪表提供串行输出接口,可以把重量数据发送出去,数据的传输格式符合RS-232标准。用户需求与Autoweight系统相关的人员:(1)操作工人:负责操作天车,吊运物料,使用仪表输入物料编号等。(2)车间主任:车间负责人,查看系统数据。(3)操作员:负责使用计算机、打印机和AutoWeight软件,并负责软件系统的运行和维护、打印报表。(4)系统开发人员:负责开发AutoWeight软件。用户需求1、操作工人(1)输入数据的过程尽量简洁,按键次数越少越好,最好是自动实现或“一键”完成。(2)能够处理吊运过程中的暂停情况。(3)输入数据错误,能够进行修改。用户需求2、车间主任(1)记录每次称重物料的重量和时间。(2)记录每次称重物料的名称和操作工人。(3)按月统计每种物料的重量。(4)按月统计每个操作工人吊运货物的重量。(5)称重数据能够上传到数据库服务器中。(6)系统能够长期可靠的运行。(7)称重数据能够长期保存。用户需求3、操作员(1)显示每次称重物料的记录,不能出现数据传输错误或丢失数据的情况。(2)打印各种统计报表。(3)系统能够方便地启动和运行,维护简单。用户需求4、系统开发人员(1)系统有良好的可扩展性。(2)提供模拟仪表,能够产生数据。方便系统的开发、调试和安装。需求分析与描述序号用户需求软件需求功能需求可以实现1输入数据的过程尽量简洁,按键次数越少越好,最好是自动实现或“一键”完成。X2能够处理吊运过程中的暂停情况√√√3输入数据错误,能够进行修改X4记录每次称重物料的重量和时间√√√5记录每次称重物料的名称和操作工人√√√需求分析与描述序号用户需求软件需求功能需求可以实现6按月统计每种物料的重量√√√7按月统计每个操作工人吊运货物的重量√√√8称重数据能够上传到数据库服务器中√√√9系统能够长期可靠的运行√X√10称重数据能够长期保存√X√需求分析与描述序号用户需求软件需求功能需求可以实现11显示每次称重物料的记录,不能出现数据传输错误或丢失数据的情况部分是X部分是12打印各种统计报表√√√13系统能够方便地启动和运行,维护简单√X√14系统有良好的可扩展性√X√15提供模拟仪表,能够产生数据。方便系统的开发、调试和安装√√√用例分析1、系统边界AutoWeight系统是一个称重软件,可以将其边界定在:•称重仪表和计算机系统之间•计算机系统和数据库服务器之间用例分析2、系统的执行者•物理仪表•模拟仪表•仪表•车间主任•操作员•数据库服务器用例分析3、系统的用例先分析执行者的目标:•仪表:将称重数据发送给系统•车间主任:查看物料的各种分类统计重量•操作员:查看物料的称重记录,打印各种报表。•数据库服务器:得到称重数据用例分析根据执行者的目标,找出系统的用例:•记录称重数据•打印称重记录•按照各种统计物料重量•按照操作工人统计物料重量用例模型图用例描述为了方便与用户进行交流,可以使用文档对用例进行详细的描述。例:对“记录称重数据”用例进行描述。非功能需求分析根据用户的需求描述,找出描述中属于系统的非功能需求的部分,将非功能需求记录在文档中。非功能需求分析例:[需求]称重数据能够长期保存。通过分析得知,可以使用数据库来保存系统中的数据。该系统的对该方面的要求应包括以下几个方面:•粒度:每个对象的大小。在该系统中一条数据的大小大约是200B。•容量:系统需要保存对象的数量。在系统中,每台计算机最多管理6台天车,每台天车每天最多工作50次,则系统每天最多需要保存300条记录,则每年需要保存的数据不超过10万条。非功能需求分析例:[需求]称重数据能够长期保存。通过分析得知,可以使用数据库来保存系统中的数据。该系统的对该方面的要求应包括以下几个方面:•粒度:每个对象的大小。在该系统中一条数据的大小大约是200B。•容量:系统需要保存对象的数量。在系统中,每台计算机最多管理6台天车,每台天车每天最多工作50次,则系统每天最多需要保存300条记录,则每年需要保存的数据不超过10万条。非功能需求分析•检索机制:为了便于检索,需要给每一条数据一个唯一的编号。•数据更新:数据需要长期保存,每次只增加数据,不需要修改和删除。•可靠性:要求数据能够可靠的存储。领域模型分析在进行用例分析的同时,还需要进行领域分析,建立领域模型,绘制系统顺序图,进一步描述系统的静态结构、行为和执行的结果。此处,领域指的是用户的业务领域,也就是需要解决问题的领域。领域模型分析——找出领域概念领域概念:用来描述现实世界中某个问题的一些名词和术语。要建立领域模型,首先找出描述问题的概念和术语。对用例描述进行分析,找出名词、动词、动词词组。名词可能会成为领域模型中的类或类中的属性,动词和动词词组可能会成为类中的方法或类间的关联。领域模型分析——找出领域概念动词和动词词组列表:输入数据按键处理修改数据记录统计上传保存显示打印产生开发安装调试发送接收领域模型分析——找出领域概念对需求描述进行分析,找出下面的名词列表:操作工人输入数据(按)键车间主任物料重量记录重量统计报表物料名称模拟仪表数据库服务器按照种类统计表按照操作工人统计表仪表系统称重数据操作员物理仪表领域模型分析——找出领域概念对名词列表进行筛选,找出可能的概念类。概念类列表如下:概念类名称英文名称概念类名称英文名称概念类名称英文名称操作工人driver模拟仪表simulator系统system物料mater物理仪表actualmeter称重数据weightdata重量记录record仪表meter操作员operator天车hoist领域模型分析——找出概念类领域模型分析——找出概念类领域模型分析——对概念类进行泛化处理领域模型分析——找出类间关联操作工人Driver类:•操作工人需要使用仪表的键盘向仪表中输入数据,Driver类和ActualMeter类有“使用”关系。•操作工人驾驶天车,Driver类和Hoist类有“驾驶”关系。•操作工人负责吊运物料,Driver类和Mater类有“吊运”关系。领域模型分析——找出类间关联根据上面的分析,得到下面的类关系图:领域模型分析——找出类间关联•仪表负责发送称重数据,ActualMeter类与WeightData类是“发送”关系。•仪表向计算机系统发送称重数据,ActualMeter类与System类是“发送称重数据”关系。领域模型分析——找出类间关联根据上面的分析,得到下面的类关系图:领域模型分析——找出类间关联称重数据类WeightData:•称重数据类WeightData中包含物料编号和重量,包含天车操作工人的信息,包含天车信息。•称重数据类WeightData经过处理得到了称重记录Record类。领域模型分析——找出类间关联根据上面的分析,得到下面的类关系图:领域模型分析——细化:为类增加属性和方法天车操作工人Driver类主要属性:•name:姓名•code:编号主要方法:•Input():输入操作工人编号和物料的编号。•Drive():驾驶天车。•Convey():运送物料。领域模型分析——细化:为类增加属性和方法天车操作工人Driver类类图:领域模型分析——细化:为类增加属性和方法称重数据WeightData类主要属性:•materID:物料编号。•weight:物料的重量。•driverID:操作工人编号。•dateTime:工作日期和时间。主要方法:•Check():检查数据是否正确。领域模型分析——细化:为类增加属性和方法称重数据WeightData类类图:领域模型分析——领域模型图AutoWeight系统领域模型图:工作流程分析前面建立的领域模型图描述类系统中各个类之间的静态结构。下面使用活动图、顺序图来描述系统的动态行为。工作流程分析——称重过程天车在吊运物料的过程中,物料的重量通过传感器传递给仪表。当物料的重量数据稳定后,操作工人输入操作工人自身的编号和物料的编号。称重仪表把称重数据和操作工人输入的自身编号和物料编号一起发送给计算机。工作流程分析——称重过程计算机系统对收到的重量数据进行处理,得到处理后的重量记录。计算机系统保存重量记录,并把重量记录显示出来,同时把数据上传到局域网的数据库服务器中。工作流程分析——称重过程使用活动图来对这一过程进行建模:工作流程分析——称重过程使用顺序图来描述用例的执行过程。“记录称重数据”用例用顺序图进行描述如下:工作流程分析——称重过程“打印称重数据”用例用顺序图进行描述如下: