介绍:在不熟悉软件开发的业务人员看来,软件似乎是一个很神秘的东西。由于不熟悉软件,这些人对软件的看法往往会陷入两个极端:要么认为软件简单,要么认为软件无所不能。如果再加上软件开发或数字从业者对业务不了解或不熟悉,业务与IT之间的差距就会越来越大。在我看来,在数字时代,每个人都应该了解数字化和一些软件的工作机制。如果我们用一个简单的数学公式来看待软件,我们可以将软件理解为:软件=数据+程序+界面数据指的是我们在现实中如何描述事物,比如事物的名称是什么,它有多重,它有多高,什么材料,什么颜色等。在软件术语中,它是一个对象,它的属性和属性值。程序是一段计算机代码,用于对对象或其属性进行操作,如创建、删除、修改、查询、计算等。界面是指人与软件交互的界面,包括界面布局、菜单、按钮、选择等框、文本框和其他元素。从软件设计和开发过程来看,软件的设计和开发与汽车或其他机电产品的设计和开发基本相似。要有一个好的结构,我们还必须考虑功能、交货日期、成本和质量的管理。要求。其实,软件开发入门并不难,难的是开发出功能复杂、操作简单、性能可靠的软件,这取决于参与方的软件设计和建模,包括数据建模、流程建模,以及界面建模等。这里以数据建模为例,谈谈设计和建模思想对软件的影响。软件工程对数据建模的总体要求是完备性、无冗余性、可重用性、稳定性、开放性、集成性、优雅性和可读性。1)完整性。数据建模的完整性要求对象定义、对象属性等数据能够满足所有业务需求,没有任何遗漏。2)没有冗余。数据建模的非冗余性是指数据库表和表的字段不能重复。应该只有一个“面”,而不是数孔。否则将难以保证数据的一致性,还会造成逻辑混乱和存储空间的浪费。3)可重用性。可重用性是模块化思维在数据建模上的体现,即数据定义可以在多个业务、多个场景中使用。4)稳定性。稳定性更容易理解。意味着在更新或扩容数据库表时,可以保证原有数据稳定无差错。5)开放性。开放性是指数据表和表字段可以随着业务的变化或扩展而变化或扩展。6)整合。集成是指数据表和表字段与其他系统之间的数据交互和集成。7)优雅。优雅是指数据建模中对象、对象类、类层次等之间的关系清晰、可组装、可追溯。8)可读性。可读性是指数据建模的内容,尤其是概念模型容易被业务和用户理解。一般来说,软件数据建模包括三个步骤:概念建模、逻辑建模和物理建模。01ConceptModelingConceptModeling的主要目的是将业务需求转化为数据需求,从软件的角度将业务需求结构化和系统化。通过概念建模,可以将所有的业务需求归结到对象(包括对象属性的定义)以及对象之间的关系。也就是说,通过对象之间的关系,可以描述现实中的任何事物,以及组织对事物的管理要求。概念建模是业务需求和软件开发之间的桥梁。在保证概念模型中的对象、对象属性、对象之间的关系被完整清晰地定义的前提下,概念模型在形式上也可以很容易被业务人员理解,这就涉及到概念化语言和工具的选择。造型。目前业界常用的概念数据建模工具有E-R实体和关系模型、UML统一建模语言和OPM对象过程模型。(1)E-R实体和关系模型E-R模型使用两类元素——实体(Element)和关系(Relationship)作为基本组件来描述业务需求。其中,实体类似于面向对象编程中的对象,关系类似于面向对象编程中的方法或事件。如图1所示,业务对象包括合同工、员工、组织单位、职位、技能,事件包括录用、离职、离职、调动、晋升、考核。对象之间还有“拥有”和“拥有”、“管理”和“报告给”等关系类型。图1 E-R概念数据建模方法示例(2)UML统一建模语言UML是一种用于描述、可视化和文档化面向对象系统产品的标准语言,在软件开发工程师中比较常用。UML包括功能模型、对象模型和动态模型,它们由模型元素(ModelElement)、图(Diagram)、视图(View)和通用机制(GeneralMechanism)等几部分组成。(3)OPM对象过程建模与UML统一建模语言相比,OPM对象过程建模方法更为简单,不仅可以用于软件开发领域,还可以用于其他产品的设计和建模。从建模的角度来看,世界基本上是由三个元素构成的,即Object、Process和Relationship。从时间变化的角度来看,对象是物理的或信息的静态存在(Existence);过程是在时间和动作上序列化的动态存在(Happening);关系是对象之间、进程之间、进程之间的关系,对象和进程之间的相互关系可以表示为结构或行为。可以用这三个元素来构建或解构世界或世界的一部分。在这种思想的指导下,诞生了很多模型方法论,其中Object-ProcessMethodology(OPM)更为通用,也相对简单。在OPM方法论中,人们可以看到和说出(使用五种感官或理性思维)的关键要素只有两个,即对象和过程。关系只能根据最终的结果或输出来理解,很难表达或写下来。它在现实世界中“神秘莫测”、“神秘莫测”。过程对客体的影响主要有三方面:1)过程消耗或破坏客体,例如制造过程消耗原材料;2)过程促进或创造对象,如制造过程产生副产品或成品;3)过程改变了对象的状态,如制造过程将使用过的设备设置为“忙碌”状态。在制造过程中,人、机器、材料(包括原材料、半成品和成品)和环境是客体,方法和检测是过程。另外,对象也可能是流程的操作者(Operator),流程由对象触发或控制;对象也可能为过程(Instrument)提供支持,过程的推进依赖于一定的工具或设备。OPM方法描绘的一般制造系统模型如图2.9所示。图2.9 OPM描述的一般制造系统模型从图2.9的模型图可以得出以下结论:1)制造系统的核心功能是转换,即转换能源、人力、和原材料转化为产品;2)制造系统在运行过程中,会产生一些无价值的副产品,如排放、返工、等待、人工和材料成本等;3)制造系统的改进方向是减少资源消耗,淘汰无价值的副产品,增加有价值产品的产出;4)制造系统的改进路径是优化对象之间、对象与过程之间、过程与过程之间的关系,即结构和行为。(4)对象、类、类层级选择什么样的建模语言或工具,主要取决于各方的喜好。选择任何建模工具都不能保证数据建模的高质量。在不同的对象、类、类层次上下功夫,考验的是各方的哲学思维和架构能力。下面以业界知名物联网平台PTCThingWorx的数据建模为例,谈谈其中包含的数据建模思想。应用软件是解决方案的“矩阵”,PaaS平台是应用软件的“矩阵”。从业务需求到解决方案,从解决方案到应用软件,从应用软件到PaaS平台,抽象度越来越高,通用性越来越强。一个平台之所以被称为平台,是因为它是一个高度抽象和模型化的架构软件系统,可以产生成千上万的“后代”——应用软件。PaaS平台是IT行业模型和架构思维的一个具体例子。建模和架构的程度越高,平台的生命力就越强。在PTCThingWorx平台中,基本架构元素如图2所示。有七个主要元素:ThingShape、ThingTemplate、Thing、Attribute、Service、Event和Subscription。图2 PTCThingWorx平台中的架构元素Thing是物联网中对象的总称,可以代表智能设备、资产、产品、IT系统、人员、流程等。简而言之,在物联网中世界上,一切都是事物。ThingShape和ThingTemplate是Thing的类,它们是在Thing之上的更高级别的模块化。Thing可以继承ThingShape和ThingTemplate的各种属性和方法。一个Thing需要分配一个ThingTemplate,也可以同时分配一个或多个ThingShapes。ThingShape可以理解为一个迷你的ThingTemplate。事物形态可以分配给事物模板,但反之则不行。可以有一个或多个事物形态分配给一个事物模板或一个事物,但只有一个事物模板分配给一个事物模板或一个事物。属性、服务、事件、订阅等用于描述物联网中各种事物的特性和方法。属性、服务、事件和订阅可以分配给ThingShapes和ThingTemplates,然后间接继承给相关的Things,也可以直接分配给Things。属性是对事物的描述,可以是静态的也可以是动态的。服务是由一段代码组成的方法或功能,用来帮助一个物体完成特定的活动。事件是触发器,用于触发Thing的状态变化,也可以驱动一定的业务逻辑或活动。订阅是伴随事件发生的活动,可用于业务优化或自动化。根据业务需求,应用PTCThingWorx平台进行业务建模,基本遵循以下流程(如图3所示):图3 PTCThingWorx数据建模流程1)业务需求记录的准确性、完整性和澄清性;2)将业务需求分解成相对独立的用户故事;3)将用户故事的内容拆分为业务对象(实例,Instance)和对象之间的关系(Relationship);4)关系的内容和性质进一步拆分为属性、服务、事件和订阅;5)对步骤4中的属性、服务、事件、订阅等进行归纳和分类;6)根据步骤5中的分类定义需要的Template或Shape,并将所有属性、服务、事件、订阅等赋值给Template或Shape;7)将步骤3中实例列表中的实例与步骤6中的Template或Shape相关联;8)使用Template、Shape、Thing、attributes、Elements如services、event、subscriptions等,完整描述步骤2中的所有用户故事,具有相互赋值和继承关系。使用ThingWorx对物联网业务场景进行建模是一个从特殊到通用、从个体到模型的过程,关键是对实例之间的关系进行组织和结构化。将关系拆分为不可分割的属性、服务、事件或订阅,然后将相似的项组合起来,最终完成从关系到属性和方法,从属性和方法到建模的过程。02逻辑建模逻辑建模(LogicalModeling)是将概念建模的内容结构化为数据。在逻辑建模中,对象和对象属性等元素用数据库表和表字段来表示,包括创建多少个数据库表,每个数据库表有哪些列(字段)、主键和外键,以及标识、名称、数据类型、长度、业务规则等。03物理建模物理建模(PhysicalModeling)是将逻辑建模的内容实现到具体的数据管理系统中。这时,数据库管理系统的选择还要考虑数据库性能、访问控制、存储空间、硬件要求等。综上所述,概念建模、逻辑建模和物理建模是数据建模的三个步骤和主要工作内容.其中,逻辑建模和物理建模是纯粹的技术活动,而概念建模更多的是考验建模者对需求的理解,以及哲学思维和架构思维将业务需求转化为数据需求的能力。软件质量的根源。作者简介丁少华,字兆智,现任杭州三易智联科技有限公司首席顾问。资深数字化专家,拥有20多年企业信息化和数字化咨询服务经验。
