基于工程实践的概念模型和需求分析
前言
本文将基于工程实践的离线手写中文签名的智能检索系统,进行用例建模,业务领域建模以及数据建模,最终形成概念原型。
一、工程实践项目背景
脱机/离线手写中文签名的智能检索系统,首先通过人工智能和深入学习技术,搭建一个深度学习网络,再利用数据库对网络进行训练,最后通过自制框架集成到网页端,搭建一个签名检测系统,实现一个在Web端根据输入的签名从签名数据库中根据每个签名的相似度选取出所有正确签名的系统。
二、用例建模
什么是用例
用例(Use Case)的核心概念中首先它是一个业务过程(business process),经过逻辑整理抽象出来的一个业务过程,这是用例的实质。什么是业务过程?在待开发软件所处的业务领域内完成特定业务任务(business task)的一系列活动就是业务过程。
用例的几个基本要素:
A use case is initiated by (or begins with) an actor. 一个用例应该由业务领域内的某个参与者(Actor)所触发。
A use case must accomplish a business task (for the actor).用例必须能为特定的参与者完成一个特定的业务任务。
A use case must end with an actor. 一个用例必须终止于某个特定参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。
用例建模基本步骤
第一步,从需求表述中找出用例,往往是动名词短语表示的抽象用例; 第二步,描述用例开始和结束的状态,用TUCBW和TUCEW表示的高层用例; 第三步,对用例按照子系统或不同的方面进行分类,描述用例与用例、用例与参与者之间的上下文关系,并画出用例图; 第四步,进一步逐一分析用例与参与者的详细交互过程,完成一个两列的表格将参与者和待开发软件系统之间从用例开始到用例结束的所有交互步骤都列举出来扩展用例。
其中第一步到第三步是计划阶段,第四步是增量实现阶段。
下图给出本工程实践的用例图:
用户:
管理员:
三、业务领域建模
业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。开发团队获取业务领域知识的过程一般包括收集业务领域相关信息、执行团队头脑风暴、对业务领域相关的知识概念进行分类,最后用UML类图将业务领域知识图形化展示。
第一步,收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;第二步,头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;第三步,给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系;第四步,将结果用 UML 类图画出来。
四、数据建模
1.用户:
序号 | 字段 | 描述 | 类型 |
1 | user_ID | 用户ID | String |
2 | user_name | 用户名 | String |
3 | account_num | 账号 | int |
4 | user_class | 用户类别 | String |
5 | others | 其他信息 | String |
2.管理员
序号 | 字段 | 描述 | 类型 |
1 | user_ID | 用户ID | String |
2 | user_name | 用户名 | String |
3 | user_class | 用户类别 | String |
3.文件类
序号 | 字段 | 描述 | 类型 |
1 | file_ID | 文件ID | String |
2 | file_format | 文件格式 | String |
3 | file_class | 文件类别 | String |
4.工具类
序号 | 字段 | 描述 | 类型 |
1 | tool_ID | 工具ID | String |
2 | user_ID | 用户ID | String |
5.图片类
序号 | 字段 | 描述 | 类型 |
1 | picture_ID | 图片ID | String |
2 | label_ID | 标签ID | String |
五、概念模型
概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论,而概念原型是一种虚拟的、理想化的软件产品形式,就像程序=算法+数据结构一样,概念原型=用例+数据模型
在我的工程实践中用户通过网页进行账号注册,注册成功后使用账户密码登陆系统。然后根据需求选择相应功能,按照提示输入签名图片,得到对应的文档下载。管理员可以管理用户信息,更换模型版本。
六、总结
通过本次作业对工程实践的需求分析、用户例图和UML进行系统的梳理总结,在实践中体会这种从需求分析到软件设计的基本建模方法,切身体会到从需求分析到用例建模,从业务领域建模再到数据建模,都是紧密联系的,受益良多,相信这会对我接下来的项目开发有很大帮助。