1、面向对象程序设计面向对象程序设计与系统开发与系统开发第6章 项目需求分析 2驱动驱动任任务务一一 分析ATM机项目角色、功能,并绘制出用例图。3目标及知识点目标及知识点项目需求分析过程项目需求分析过程 1 1UML用例用例图图基本符号基本符号24系统角色系统角色v 了解需求的第一步,我们必须要掌握到底是哪几种人或哪些设备要使用这个项目,既“为谁做”这个软件,使用系统的这几种人或设备我们称之为角色 n 谁将使用该系统的主要功能谁将使用该系统的主要功能n 谁将需要该系统的支持以完成工作。谁将需要该系统的支持以完成工作。n 谁将需要维护、管理该系统,以及保持该系统谁将需要维护、管理该系统,以及保持该
2、系统处于工作状态。处于工作状态。n 系统需要处理哪些硬件设备系统需要处理哪些硬件设备n 与该系统交互的是什么系统与该系统交互的是什么系统n 谁或什么系统对本系统产生的结果感兴趣。谁或什么系统对本系统产生的结果感兴趣。5UML图中的角色符号图中的角色符号 v 在UML图中采用一个小人儿来表示角色 如我们分析一个财务软件,里面存在着两种角色。6用例分析用例分析v 在角色分析的同时要分析,他(它)们到底要用这个软件系统来“做什么”,这里角色采用软件系统完成的功能就是我们所说的用例v 在UML图中采用一个椭圆进行表示。7角色与用例之间的关系角色与用例之间的关系 v 角色和用例如果割裂开来基本是没有意义
3、的,只有他们两者在一起才能表述谁要用这个系统干什么。这就形成了需求分析当中非常关键的用例图。用例图示例用例图示例8角色与角色之间的关系泛化泛化 继承继承 9用例之间的关系用例之间的关系 v 包含(include)关系 当A用例的完成的过程包含了B用例,我们就称A包含B。比如我们在使用ATM机取款的时候,系统不会只做取款操作而是先查询你有没有这么多钱,然后再判断让不让你取。在UML图上如下图表示:10用例之间的关系用例之间的关系 v 扩展(extend)关系 当用例A完成以后可以选择是否去完成B,完成A不一定要完成B,但如果要完成B则必须要完成A,我们称这种关系为扩展关系。在UML图上如下图表示:打印凭条持卡用户取款11用例之间的关系用例之间的关系 v 泛化(generalization)关系 泛化我们可以理解为继承关系,如打印凭条在ATM机中可以有转账凭条和取款凭条,它们的基本功能是一致的,可以看成是从打印凭条这个用例继承过来的。在UML图上如下图表示:打印凭条打印取款凭条打印转账凭条12任务实现任务实现1分析角色分析角色23分析用例分析用例分析隐藏功能分析隐藏功能 4分析用例抽象出共通的用例分析用例抽象出共通的用例13课堂总结课堂总结