从图中我们可以明确地了解到系统的功能需求.该系统主要有两类用户:普通用户和管理员.“启动系统”用例表明系统初始化时要进行传感器和微处理器等的自检.进入正常工作状态以后,普通用户可以通过“身份验证”用例进行指纹验证.如果是未注册用户则在获得合法II)的前提条件下,通过“注册”用例注册自己的相关信息.系统提供的“开/关门”用例则主要是根据指纹匹配结果,通过信号线将控制信号传输给门的驱动电动机以此来控制门的开关.管理员主要负责系统维护,可以使用 “注册”、“查找”和“删除”等用例进行信息管理操作.由于在该阶段我们对系统还没有充分理解,同时为了控制用例的数目,在这里我们只是给出了系统的总体用例模型,在随后的详细设计阶段我们可以对这些用例进行进一步的细化以精化系统的需求.
2 指纹门禁系统设计
需求分析完成以后,可以依据分析结果和所建立的模型图进一步指导系统的设计.系统设计主要包括了用例详细设计、类设计、数据模型设计等.
2.1 用例详细设计
详细设计阶段需要对系统需求中的每个用例进行详细的分析,并以一种通用的表示来文档化,以便使开发人员更清晰得了解每个用例的具体实现过程 [5].本文以指纹验证用例为实例,对该用例进行更进一步的详细分析,它包含了指纹采集、预处理、图像增强、细化、二值化处理、特征码提取、比对、结果输出等过程,这些过程都可以通过文档清晰地表示.我们在描述系统用例时,是从用户角度出发的,没有涉及系统内部.通过分析得到满足系统需求的类之后,便可根据用例驱动的思想,通过类之间的交互来实现用例.嵌入式系统一般都要与硬件设备如传感器等进行交互,同时还有很强的时间和内存空间的约束.交互图就是用来描述对象间的动态交互行为的,它一步步地显示了使用案例的流程.在UML中定义了两种交互框图:顺序图和合作图.这两种框图显示同一信息,但组织方式不同.顺序图按时间排序,依次显示对象间进行的操作;合作图则以数据流为中心,显示各个对象间的数据交换情况.由于顺序图能更好地说明对象间的交互顺序,有利于我们理解系统,所以本文以“指纹验证”用例的顺序图(见图3)为例来描述对象之间的交互过程.其它用例都可以采用此种方法来详细说明,以便我们更清晰地了解系统每个功能(用例)的具体实现过程.
图3 指纹验证用例顺序图