来历:公众号「数仓宝物库」
转载请联络微信:zj06220_0
原文链接:mp.weixin.qq.com/s/M1nDbJlKn…
导读:在不熟悉软件开发的事务人员看来,软件似乎是一种很奥秘的事物。由于对软件不熟悉,这些人对软件的看法往往简略走入两个极端:要么认为软件很简略,要么认为软件是万能的。假如再加上软件开发或数字化从业人员不懂或不熟悉事务,事务与IT之间的鸿沟就会越来越宽、越来越深。在笔者看来,身处数字化年代,大家都应该懂数字化,懂一些软件的作业机理。
假如用一个简略的数学公式来看软件,咱们能够将软件了解为:
软件=数据+程序+界面
数据指的是咱们如何去描绘实际中的事物,比方事物叫什么姓名、有多重、有多高、什么材质、什么颜色等。用软件的术语讲,**便是目标、目标的特点和特点值。**程序便是一段用于操作目标或目标特点的计算机代码,这些操作包含创建、删除、修正、查询、计算等。界面指的是人与软件的交互界面,包含界面布局、菜单、按钮、挑选框、文本框等要素。
从软件规划和开发的进程来看,软件的规划和开发与汽车或其他机电产品的规划和开发作业底子是相似的,要有好的架构,也要考虑功用、交期、本钱、质量等办理要求。实际上,软件开发的入门不难,难的是开发出功用杂乱、操作简便和功用可靠的软件,这就取决于当事人的软件规划和建模,包含数据建模、流程建模、界面建模等。此处以数据建模为例,谈谈规划和建模思想对软件的影响。软件工程对数据建模的总体要求是完整性、无冗余、复用性、稳定性、开放性、集成性、高雅性和可读性。
1)完整性。数据建模的完整性要求目标和目标特点的界说等数据,应该能够满意一切的事务需求,不能有任何遗失。
2)无冗余。数据建模的无冗余,指的是数据库表和表的字段不能呈现重复,应该只要一张“脸”,而不是数出多孔,否则就很难保证数据的一致性,也将造成逻辑的紊乱和存储空间的糟蹋。
3)复用性。复用性是模块化思想在数据建模的表现,指的是数据界说能够用于多种事务和多个场景。
4)稳定性。稳定性比较好了解,指的是数据库表在更新或扩充时,原有数据能够保证稳定,不出错。
5)开放性。**开放性指的是数据表和表字段能够依据事务的改动或扩展做出相应的改动或扩展。
6)集成性。集成性指的是数据表和表字段与其他体系之间的数据交互和集成。
7)高雅性。高雅性指的是数据建模中目标、目标类、类层次等之间的包含与被包含联系明晰、可装配和可追溯。
8)可读性。可读性指的是数据建模的内容,尤其是概念模型能够被事务和用户简略地了解。
大体上,软件的数据建模包含三个步骤:概念建模、逻辑建模和物理建模。
01 概念建模
概念建模(Concept Modeling)的首要意图是将事务需求转换为数据需求,站在软件的视点将事务需求结构化和体系化。经过概念建模,一切的事务需求都能够归结到目标(包含目标特点的界说)与目标之间的联系上。换句话说,经过目标与目标之间的联系,能够描绘实际中恣意一个事物,以及安排对事物的办理要求。
概念建模是事务需求与软件开发的桥梁。在保证概念模型中目标、目标特点、目标之间的联系被完整明晰界说的前提下,概念模型在形式上也可能简略被事务人员所了解,这触及概念建模的言语和东西的挑选。当时,业界常用的概念数据建模东西有E-R实体与联系模型、UML一致建模言语和OPM目标进程模型。
(1)E-R实体与联系模型
E-R模型以两类要素—实体(Element)和联系(Relationship)为底子构件,来描绘事务需求。其间,实体相似于面向目标编程中的目标,联系相似于面向目标编程中的办法或事情。
如图1所示,其间的事务目标有合同工、员工、安排单元、岗位和技能,事情则有雇佣、停止、离职、转岗、晋升、点评等。目标之间还有“被具有”与“具有”“办理”“报告给”等联系类型。
图1 E-R概念数据建模办法举例
(2)UML一致建模言语
UML是一种为面向目标体系的产品进行阐明、可视化和编制文档的一种标准言语,在软件开发工程师之间比较常用。UML中包含功用模型、目标模型和动态模型,由模型元素(Model Element)、图(Diagram)、视图(View)、通用机制(General Mechanism)等几个部分组成。
(3)OPM目标进程建模
相比UML一致建模言语,OPM目标进程建模的办法更简略,不只能够用于软件开发领域,也能够用于其他产品的规划和建模。
假如从模型学的视点,世界底子由三种要素构成,即物(Object)、事或进程(Process)和联系(Relationship)。从时刻变迁的视点,物是物理或信息上的静态存在(Existence);进程是一种时刻和动作序列化的动态存在(Happening);联系则是物与物之间、进程与进程之间、物与进程之间的相互相关,能够表现为结构(Structure)或行为(Behavior)。世界或世界的某部分,都能够用这三方面的要素建构或解构。在这种思想的指导下,诞生了许多模型办法论,通用性比较强又相对简略的是目标联系办法论(Object-Process Methodology,OPM)。
在OPM办法论中,人们(用五官或理性思想)看得见也可言说的要害要素只要两类,即目标(Object)和进程(Process)。联系则只能依据最终成果或输出来意会,难以言说或书面化,它是实际世界中的“玄”和“玄之又玄”。进程对目标的影响首要有三种:
1)进程耗费或消除目标,比方制作进程要耗费原材料;
2)进程催生或创造目标,比方制作进程发生副产品或产制品;
3)进程改动目标的状态,比方制作进程将所使用的设备设置为“忙”的状态。
在制作进程中,人、机、料(含原材料、在制品和产制品)和环是目标,法和测是进程。此外,目标还可能是进程的操作者(Operator),进程由目标触发或操控;目标还可能为进程提供支撑(Instrument),进程的推进依靠某些东西或设备。
用OPM的办法描绘的通用制作体系模型如图2所示。
图2 用OPM描绘的通用制作体系模型
由图2的模型图,能够得出以下定论:
1)制作体系的核心作用是转化,行将能源、人力、原材料等资源转化为产品;
2)制作体系的运行进程中还会发生一定的无价值副产品,比方排放、返工、等待、工料费等;
3)制作体系的改善方向是削减资源耗费,杜绝无价值副产品,添加价值产品的产出;
4)制作体系的改善路径是优化目标与目标之间、目标与进程之间、进程与进程之间的联系,即结构和行为。
(4)目标、类和类的层次
挑选什么样的建模言语或东西,首要取决于当事人的偏好,选用任何一种建模东西都不能保证数据建模的高质量,还要在数据模型中的目标、类,以及类的层次上下功夫,考验的是当事人的哲学思想和架构才能。下面以业界知名的物联网渠道—PTC ThingWorx数据建模为例,来谈谈其间所蕴含的数据建模思想。
使用软件是解决方案的“母体”,PaaS渠道是使用软件的“母体”。
从事务需求到解决方案,从解决方案到使用软件,从使用软件到PaaS渠道,抽象化越来越高,通用性越来越强。渠道之所以称为渠道,便是由于它是高度抽象化、模型化的架构式软件体系,它能衍生出千千万万的“后代”—使用软件。
PaaS渠道是模型和架构思想在IT职业的详细实例,其模型化、架构化的程度越高,渠道的生命力就越强。在PTC ThingWorx渠道中,底子架构要素如图2所示,首要有七个:Thing Shape、Thing Template、Thing、特点、服务、事情和订阅。
图2 PTC ThingWorx渠道中的架构要素
Thing是物联网中目标的统称,能够代表智能设备、财物、产品、IT体系、人员、流程等。简而言之,在物联网世界中,万事万物都是Thing。
Thing Shape和Thing Template是Thing的类,是在Thing之上更高层面的模块化。Thing能够承继Thing Shape和Thing Template的各种特点和办法。一个Thing需求分配一个Thing Template,也可一起分配一个或多个Thing Shape。
Thing Shape能够了解为迷你型Thing Template。Thing Shape能够分配给Thing Template,反之则不行。分配给Thing Template或Thing的Thing Shape能够为一个或多个,而分配给Thing Template或Thing的Thing Template则只能为一个。
特点、服务、事情、订阅等用于描绘物联网中各种Thing的特性和办法。特点、服务、事情和订阅能够分配给Thing Shape和Thing Template,然后再间接承继到相关的Thing,也能够直接将其分配给Thing。
特点是对Thing的描绘,能够是静态的,也能够是动态的。
服务是由一段代码所构成的办法或功用,以协助Thing完结某个特定的活动。
事情是触发器,用于触发Thing的状态改动,也能够驱动某个事务逻辑或活动。
订阅是伴随着事情的活动,可用于事务的优化或自动化。
依据事务需求,使用PTC ThingWorx渠道进行事务建模,底子遵从以下进程(如图3所示):
图3 PTC ThingWorx中的数据建模进程
1)事务需求的准确性、完整性记录和澄清;
2)将事务需求分解成相对独立的用户故事;
3)将用户故事的内容拆分红事务目标(实例,Instance)和目标之间的联系(Relationship);
4)将联系的内容和性质进一步拆分红特点、服务、事情和订阅;
5)将第4步中的特点、服务、事情、订阅等进行概括和分类;
6)依据第5步的分类,界说必要的Template或Shape,并将一切的特点、服务、事情、订阅等分配给Template或Shape;
7)将第3步实例清单中的实例与第6步的Template或Shape进行相关;
8)用Template、Shape、Thing、特点、服务、事情、订阅等要素,以相互之间的分配与承继联系完整地描绘第2步的一切用户故事。
利用ThingWorx对物联网事务场景进行建模,便是从特别到一般、从个体到模型的进程,其间的要害是实例与实例之间联系的收拾和结构化。将联系拆分红不可分割的特点、服务、事情或订阅,然后再兼并同类项,最终完结从联系到特点和办法、从特点和办法到模型化的进程。
02 逻辑建模
逻辑建模(Logical Modeling)是将概念建模的内容进行数据结构化。在逻辑建模中,目标、目标特点等要素用数据库表和表字段来表明,包含创建多少数据库表,每一个数据库表有哪些列(字段)、主键和外键,每一列的标识、名称、数据类型、长度和事务规则,等等。
03 物理建模
物理建模(Physical Modeling)是将逻辑建模的内容落实到详细的数据办理体系中。这时,数据库办理体系的挑选还要考虑数据库功用、拜访操控、存储空间、硬件要求等。
综上所述,概念建模、逻辑建模和物理建模是数据建模的三个步骤和首要作业界容。其间,逻辑建模和物理建模纯粹是技术活,概念建模则更多地考验建模者对需求的了解程度,以及将事务需求转化为数据需求的哲学思辨和架构思想的才能,是决议软件质量的底子地点。
关于作者,丁少华,字肇之,现任杭州三之一智联科技有限公司首席参谋。资深数字化专家,具有20多年的企业信息化和数字化咨询服务经历。
本文摘编于《建模:数字化转型思想》,转载请标明文章来历。
引荐理由:本书从模型思想下手,协助相关人员建立起对数字化的体系性思想,让事务人员快速了解数字化,让IT人员快速了解事务。引荐架构师、事务咨询参谋、数字化咨询参谋等相关人员阅览。