软件工程-需求分析与概念原型
本文使用软件工程的方法对我的工程实践项目进行分析,主要包括了用例建模,业务领域建模,数据建模等。本项目需要设计一个工业互联网平台,完成用户管理,设备管理(包括设备状态监测和设备控制)以及系统故障报警等功能。
一.用例建模
基于软件工程的方法分析本项目,首先需要进行需求分析和用例建模。
1.1 用例介绍:
用例是应用程序开发中的一个关键技术,主要用来捕获系统的高层次(High Level)用户功能性需求。用例是一个业务过程,经过逻辑整理抽象出来的业务过程。其中业务有三个基本要素:
一个用例应该由业务内的某个参与者所触发
用例必须能为特定的参与者完成一个特定的业务任务
一个用例必须终止于某个特定参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。
1.2 用例建模基本步骤:
从需求表述中找出用例,往往是动名词短语表示的抽象用例;
描述用例开始和结束的状态,用TUCBW和TUCEW表示的高层用例;
对用例按照子系统或不同的方面进行分类,描述用例与用例、用例与参与者之间的上下文关系,并画出用例图;
逐步分析用例与参与者的详细交互过程,完成一个两列的表格将参与者和待开发软件系统之间从用例开始到用例结束的所有交互步骤都列举出来扩展用例。
1.3 准确提取用例的基本方法
为了准确地提取用例,我们必须遵循一些原则和方法:
1 从需求中寻找业务领域相关的动名词和动名词短语,比如做什么事、什么事情必须被完成,或者执行某任务等;
2 验证这些业务领域相关的动名词和动名词短语到底是不是用例。验证业务领域相关的动名词或动名词短语是不是用例的标准是满足四个必要条件:
a 必要条件一 :它是不是一个业务过程?
b 必要条件二:它是不是由某个参与者触发开始?
c 必要条件三:它是不是显式地或隐式地终止于某个参与者?
d 必要条件四: 它是不是为某个参与者完成了有用的业务工作?
如果以上四个必要条件都满足的话,那么该业务领域相关的动名词或动名词短语就是一个用例。
3 在需求中识别出参与者、系统或子系统。
参与者会触发某个用例开始,用例也会显式地或隐式地终止于某个参与者; .
用例会属于系统或子系统。
1.4 基于上述方法进行建模
本系统设计完成之后需要交付给一家大型工厂。因此该系统主要包括两类用户,系统管理员和值班人员,应该具备人员管理,设备管理(包括设备状态监测和设备控制)以及系统故障报警等功能。
系统管理员应该具备以下功能:
注册登录
用户信息维护
管理值班人员(包括创建,注销和查看)
设备添加,删除和信息修改
设备状态监测
设备控制
故障信息接收
值班员应该具备以下功能:
登录
用户信息维护
设备状态监测
设备控制
故障信息接收
基于此分析,我们可以找出相应的动名词,结合是否满足用例的四个必要条件来提取出用例,进而创建用例模型:


二.业务领域建模
2.1 业务领域建模
业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工
程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。
开发团队获取业务领域知识的过程一般包括收集业务领域相关信息、执行团队头脑风暴、对业务领域相关的知识概念进行分类,最后用UML类图将业务领域知识图形化展示。
2.2 业务领域建模的基本步骤
收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚合关系和关联关系。
将结果用 UML 类图表述。
2.3 工程实践中的业务领域建模
经过了业务领域建模的基本步骤,将本项目中的业务领域概念分类,抽取出了如下类:
系统管理员:用户编号 ID,姓名,密码,邮箱,用户级别等属性
值班员:用户编号 ID,姓名,密码,邮箱,用户级别等属性
机器:机器编号ID,类别,所属区域,当前状态等属性
类与类之间的继承关系、聚合关系和关联关系等通过UML图来表示。

三.业务数据建模
基于上述分析,可以得到以下数据表:
用户表:
| 字段 | 类型 | 注释 |
| ID | String | 用户编号 |
| name | String | 姓名 |
| password | String | 登录密码 |
| String | 邮箱 | |
| grade | int | 用户等级,标识管理员或值班员 |
设备表:
| 字段 | 类型 | 注释 |
| ID | String | 设备编号 |
| class | String | 设备类型 |
| area | int | 所属区域 |
| state | int | 设备状态 |
| IPaddress | String | IP地址 |
区域表(网关表):
| 字段 | 类型 | 注释 |
| areaId | int | 区域编号 |
| IPaddress | String | 对应网关IP地址 |
| discribe | String | 描述信息 |
四.概念原型
概念原型是一种虚拟的、理想化的软件产品形式。具体的讲,概念原型 = 用例 + 数据模型。
通过上述分析,我们已经获得了本项目的用例和数据模型,并总结项目的工作过程如下:
用户成功登录后,我们根据用户等级为其赋予不同的功能。对于系统管理员,可以进行维护信息,用户管理,设备管理,接受报警信息等操作。对于值班员可以进行维护信息,设备管理,接受报警信息等操作,但设备管理中不能创建,删除以及修改设备信息。

浙公网安备 33010602011771号