成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

必知必會(huì)的數(shù)據(jù)建模思想,都在這了

大數(shù)據(jù) 開發(fā)
在筆者看來,身處數(shù)字化時(shí)代,大家都應(yīng)該懂?dāng)?shù)字化,懂一些軟件的工作機(jī)理。

導(dǎo)讀:在不熟悉軟件開發(fā)的業(yè)務(wù)人員看來,軟件似乎是一種很神秘的事物。因?yàn)閷?duì)軟件不熟悉,這些人對(duì)軟件的看法往往容易走入兩個(gè)極端:要么認(rèn)為軟件很簡(jiǎn)單,要么認(rèn)為軟件是萬能的。如果再加上軟件開發(fā)或數(shù)字化從業(yè)人員不懂或不熟悉業(yè)務(wù),業(yè)務(wù)與IT之間的鴻溝就會(huì)越來越寬、越來越深。在筆者看來,身處數(shù)字化時(shí)代,大家都應(yīng)該懂?dāng)?shù)字化,懂一些軟件的工作機(jī)理。

如果用一個(gè)簡(jiǎn)單的數(shù)學(xué)公式來看軟件,我們可以將軟件理解為:

軟件=數(shù)據(jù)+程序+界面

數(shù)據(jù)指的是我們?nèi)绾稳ッ枋霈F(xiàn)實(shí)中的事物,比如事物叫什么名字、有多重、有多高、什么材質(zhì)、什么顏色等。用軟件的術(shù)語講,就是對(duì)象、對(duì)象的屬性和屬性值。程序就是一段用于操作對(duì)象或?qū)ο髮傩缘挠?jì)算機(jī)代碼,這些操作包括創(chuàng)建、刪除、修改、查詢、計(jì)算等。界面指的是人與軟件的交互界面,包括界面布局、菜單、按鈕、選擇框、文本框等要素。

從軟件設(shè)計(jì)和開發(fā)的過程來看,軟件的設(shè)計(jì)和開發(fā)與汽車或其他機(jī)電產(chǎn)品的設(shè)計(jì)和開發(fā)工作基本是類似的,要有好的架構(gòu),也要考慮功能、交期、成本、質(zhì)量等管理要求。實(shí)際上,軟件開發(fā)的入門不難,難的是開發(fā)出功能復(fù)雜、操作簡(jiǎn)便和性能可靠的軟件,這就取決于當(dāng)事人的軟件設(shè)計(jì)和建模,包括數(shù)據(jù)建模、流程建模、界面建模等。此處以數(shù)據(jù)建模為例,談?wù)勗O(shè)計(jì)和建模思想對(duì)軟件的影響。軟件工程對(duì)數(shù)據(jù)建模的總體要求是完整性、無冗余、復(fù)用性、穩(wěn)定性、開放性、集成性、優(yōu)雅性和可讀性。

1)完整性。數(shù)據(jù)建模的完整性要求對(duì)象和對(duì)象屬性的定義等數(shù)據(jù),應(yīng)該能夠滿足所有的業(yè)務(wù)需求,不能有任何遺漏。

2)無冗余。數(shù)據(jù)建模的無冗余,指的是數(shù)據(jù)庫表和表的字段不能出現(xiàn)重復(fù),應(yīng)該只有一張“臉”,而不是數(shù)出多孔,否則就很難保證數(shù)據(jù)的一致性,也將造成邏輯的混亂和存儲(chǔ)空間的浪費(fèi)。

3)復(fù)用性。復(fù)用性是模塊化思想在數(shù)據(jù)建模的體現(xiàn),指的是數(shù)據(jù)定義可以用于多種業(yè)務(wù)和多個(gè)場(chǎng)景。

4)穩(wěn)定性。穩(wěn)定性比較好理解,指的是數(shù)據(jù)庫表在更新或擴(kuò)充時(shí),原有數(shù)據(jù)能夠保證穩(wěn)定,不出錯(cuò)。

5)開放性。開放性指的是數(shù)據(jù)表和表字段可以根據(jù)業(yè)務(wù)的變化或擴(kuò)展做出相應(yīng)的變化或擴(kuò)展。

6)集成性。集成性指的是數(shù)據(jù)表和表字段與其他系統(tǒng)之間的數(shù)據(jù)交互和集成。

7)優(yōu)雅性。優(yōu)雅性指的是數(shù)據(jù)建模中對(duì)象、對(duì)象類、類層次等之間的包含與被包含關(guān)系清晰、可裝配和可追溯。

8)可讀性??勺x性指的是數(shù)據(jù)建模的內(nèi)容,尤其是概念模型能夠被業(yè)務(wù)和用戶容易地理解。

大體上,軟件的數(shù)據(jù)建模包括三個(gè)步驟:概念建模、邏輯建模和物理建模。

01概念建模

概念建模(Concept Modeling)的主要目的是將業(yè)務(wù)需求轉(zhuǎn)換為數(shù)據(jù)需求,站在軟件的角度將業(yè)務(wù)需求結(jié)構(gòu)化和系統(tǒng)化。通過概念建模,所有的業(yè)務(wù)需求都可以歸結(jié)到對(duì)象(包括對(duì)象屬性的定義)與對(duì)象之間的關(guān)系上。換句話說,通過對(duì)象與對(duì)象之間的關(guān)系,可以描述現(xiàn)實(shí)中任意一個(gè)事物,以及組織對(duì)事物的管理要求。

概念建模是業(yè)務(wù)需求與軟件開發(fā)的橋梁。在保證概念模型中對(duì)象、對(duì)象屬性、對(duì)象之間的關(guān)系被完整清晰定義的前提下,概念模型在形式上也可能容易被業(yè)務(wù)人員所理解,這涉及概念建模的語言和工具的選擇。當(dāng)前,業(yè)內(nèi)常用的概念數(shù)據(jù)建模工具有E-R實(shí)體與關(guān)系模型、UML統(tǒng)一建模語言和OPM對(duì)象過程模型。

(1)E-R實(shí)體與關(guān)系模型

E-R模型以兩類要素—實(shí)體(Element)和關(guān)系(Relationship)為基本構(gòu)件,來描述業(yè)務(wù)需求。其中,實(shí)體類似于面向?qū)ο缶幊讨械膶?duì)象,關(guān)系類似于面向?qū)ο缶幊讨械姆椒ɑ蚴录?/p>

如圖1所示,其中的業(yè)務(wù)對(duì)象有合同工、員工、組織單元、崗位和技能,事件則有雇傭、終止、離職、轉(zhuǎn)崗、晉升、評(píng)價(jià)等。對(duì)象之間還有“被擁有”與“擁有”“管理”“匯報(bào)給”等關(guān)系類型。

圖1 E-R概念數(shù)據(jù)建模方法舉例

(2)UML統(tǒng)一建模語言

UML是一種為面向?qū)ο笙到y(tǒng)的產(chǎn)品進(jìn)行說明、可視化和編制文檔的一種標(biāo)準(zhǔn)語言,在軟件開發(fā)工程師之間比較常用。UML中包括功能模型、對(duì)象模型和動(dòng)態(tài)模型,由模型元素(Model Element)、圖(Diagram)、視圖(View)、通用機(jī)制(General Mechanism)等幾個(gè)部分組成。

(3)OPM對(duì)象過程建模

相比UML統(tǒng)一建模語言,OPM對(duì)象過程建模的方法更簡(jiǎn)單,不僅可以用于軟件開發(fā)領(lǐng)域,也可以用于其他產(chǎn)品的設(shè)計(jì)和建模。

如果從模型學(xué)的角度,世界基本由三種要素構(gòu)成,即物(Object)、事或過程(Process)和關(guān)系(Relationship)。從時(shí)間變遷的角度,物是物理或信息上的靜態(tài)存在(Existence);過程是一種時(shí)間和動(dòng)作序列化的動(dòng)態(tài)存在(Happening);關(guān)系則是物與物之間、過程與過程之間、物與過程之間的相互關(guān)聯(lián),可以表現(xiàn)為結(jié)構(gòu)(Structure)或行為(Behavior)。世界或世界的某部分,都可以用這三方面的要素建構(gòu)或解構(gòu)。在這種思想的指導(dǎo)下,誕生了很多模型方法論,通用性比較強(qiáng)又相對(duì)簡(jiǎn)單的是對(duì)象關(guān)系方法論(Object-Process Methodology,OPM)。

在OPM方法論中,人們(用五官或理性思維)看得見也可言說的關(guān)鍵要素只有兩類,即對(duì)象(Object)和過程(Process)。關(guān)系則只能根據(jù)最終結(jié)果或輸出來意會(huì),難以言說或書面化,它是現(xiàn)實(shí)世界中的“玄”和“玄之又玄”。過程對(duì)對(duì)象的影響主要有三種:

1)過程消耗或消滅對(duì)象,比如制造過程要消耗原材料;

2)過程催生或創(chuàng)造對(duì)象,比如制造過程產(chǎn)生副產(chǎn)品或產(chǎn)成品;

3)過程改變對(duì)象的狀態(tài),比如制造過程將所使用的設(shè)備設(shè)置為“忙”的狀態(tài)。

在制造過程中,人、機(jī)、料(含原材料、在制品和產(chǎn)成品)和環(huán)是對(duì)象,法和測(cè)是過程。此外,對(duì)象還可能是過程的操作者(Operator),過程由對(duì)象觸發(fā)或控制;對(duì)象還可能為過程提供支持(Instrument),過程的推進(jìn)依賴某些工具或設(shè)備。

用OPM的方法描繪的通用制造系統(tǒng)模型如圖2.9所示。

圖2.9 用OPM描述的通用制造系統(tǒng)模型

由圖2.9的模型圖,可以得出以下結(jié)論:

1)制造系統(tǒng)的核心作用是轉(zhuǎn)化,即將能源、人力、原材料等資源轉(zhuǎn)化為產(chǎn)品;

2)制造系統(tǒng)的運(yùn)行過程中還會(huì)產(chǎn)生一定的無價(jià)值副產(chǎn)品,比如排放、返工、等待、工料費(fèi)等;

3)制造系統(tǒng)的改進(jìn)方向是減少資源消耗,杜絕無價(jià)值副產(chǎn)品,增加價(jià)值產(chǎn)品的產(chǎn)出;

4)制造系統(tǒng)的改進(jìn)路徑是優(yōu)化對(duì)象與對(duì)象之間、對(duì)象與過程之間、過程與過程之間的關(guān)系,即結(jié)構(gòu)和行為。

(4)對(duì)象、類和類的層次

選擇什么樣的建模語言或工具,主要取決于當(dāng)事人的偏好,選用任何一種建模工具都不能保證數(shù)據(jù)建模的高質(zhì)量,還要在數(shù)據(jù)模型中的對(duì)象、類,以及類的層次上下功夫,考驗(yàn)的是當(dāng)事人的哲學(xué)思維和架構(gòu)能力。下面以業(yè)內(nèi)知名的物聯(lián)網(wǎng)平臺(tái)—PTC ThingWorx數(shù)據(jù)建模為例,來談?wù)勂渲兴N(yùn)含的數(shù)據(jù)建模思想。

應(yīng)用軟件是解決方案的“母體”,PaaS平臺(tái)是應(yīng)用軟件的“母體”。

從業(yè)務(wù)需求到解決方案,從解決方案到應(yīng)用軟件,從應(yīng)用軟件到PaaS平臺(tái),抽象化越來越高,通用性越來越強(qiáng)。平臺(tái)之所以稱為平臺(tái),就是因?yàn)樗歉叨瘸橄蠡?、模型化的架?gòu)式軟件系統(tǒng),它能衍生出千千萬萬的“子孫”—應(yīng)用軟件。

PaaS平臺(tái)是模型和架構(gòu)思維在IT行業(yè)的具體實(shí)例,其模型化、架構(gòu)化的程度越高,平臺(tái)的生命力就越強(qiáng)。在PTC ThingWorx平臺(tái)中,基本架構(gòu)要素如圖2所示,主要有七個(gè):Thing Shape、Thing Template、Thing、屬性、服務(wù)、事件和訂閱。

圖2 PTC ThingWorx平臺(tái)中的架構(gòu)要素

Thing是物聯(lián)網(wǎng)中對(duì)象的統(tǒng)稱,可以代表智能設(shè)備、資產(chǎn)、產(chǎn)品、IT系統(tǒng)、人員、流程等。簡(jiǎn)而言之,在物聯(lián)網(wǎng)世界中,萬事萬物都是Thing。

Thing Shape和Thing Template是Thing的類,是在Thing之上更高層面的模塊化。Thing可以繼承Thing Shape和Thing Template的各種屬性和方法。一個(gè)Thing需要分配一個(gè)Thing Template,也可同時(shí)分配一個(gè)或多個(gè)Thing Shape。

Thing Shape可以理解為迷你型Thing Template。Thing Shape可以分配給Thing Template,反之則不行。分配給Thing Template或Thing的Thing Shape可以為一個(gè)或多個(gè),而分配給Thing Template或Thing的Thing Template則只能為一個(gè)。

屬性、服務(wù)、事件、訂閱等用于描述物聯(lián)網(wǎng)中各種Thing的特性和方法。屬性、服務(wù)、事件和訂閱可以分配給Thing Shape和Thing Template,然后再間接繼承到相關(guān)的Thing,也可以直接將其分配給Thing。

屬性是對(duì)Thing的描述,可以是靜態(tài)的,也可以是動(dòng)態(tài)的。

服務(wù)是由一段代碼所構(gòu)成的方法或功能,以幫助Thing完成某個(gè)特定的活動(dòng)。

事件是觸發(fā)器,用于觸發(fā)Thing的狀態(tài)變化,也可以驅(qū)動(dòng)某個(gè)業(yè)務(wù)邏輯或活動(dòng)。

訂閱是伴隨著事件的活動(dòng),可用于業(yè)務(wù)的優(yōu)化或自動(dòng)化。

根據(jù)業(yè)務(wù)需求,應(yīng)用PTC ThingWorx平臺(tái)進(jìn)行業(yè)務(wù)建模,基本遵循以下過程(如圖3所示):

圖3 PTC ThingWorx中的數(shù)據(jù)建模過程

1)業(yè)務(wù)需求的準(zhǔn)確性、完整性記錄和澄清;

2)將業(yè)務(wù)需求分解成相對(duì)獨(dú)立的用戶故事;

3)將用戶故事的內(nèi)容拆分成業(yè)務(wù)對(duì)象(實(shí)例,Instance)和對(duì)象之間的關(guān)系(Relationship);

4)將關(guān)系的內(nèi)容和性質(zhì)進(jìn)一步拆分成屬性、服務(wù)、事件和訂閱;

5)將第4步中的屬性、服務(wù)、事件、訂閱等進(jìn)行歸納和分類;

6)根據(jù)第5步的分類,定義必要的Template或Shape,并將所有的屬性、服務(wù)、事件、訂閱等分配給Template或Shape;

7)將第3步實(shí)例清單中的實(shí)例與第6步的Template或Shape進(jìn)行關(guān)聯(lián);

8)用Template、Shape、Thing、屬性、服務(wù)、事件、訂閱等要素,以相互之間的分配與繼承關(guān)系完整地描繪第2步的所有用戶故事。

利用ThingWorx對(duì)物聯(lián)網(wǎng)業(yè)務(wù)場(chǎng)景進(jìn)行建模,就是從特殊到一般、從個(gè)體到模型的過程,其中的關(guān)鍵是實(shí)例與實(shí)例之間關(guān)系的整理和結(jié)構(gòu)化。將關(guān)系拆分成不可分割的屬性、服務(wù)、事件或訂閱,然后再合并同類項(xiàng),最終完成從關(guān)系到屬性和方法、從屬性和方法到模型化的過程。

02邏輯建模

邏輯建模(Logical Modeling)是將概念建模的內(nèi)容進(jìn)行數(shù)據(jù)結(jié)構(gòu)化。在邏輯建模中,對(duì)象、對(duì)象屬性等要素用數(shù)據(jù)庫表和表字段來表示,包括創(chuàng)建多少數(shù)據(jù)庫表,每一個(gè)數(shù)據(jù)庫表有哪些列(字段)、主鍵和外鍵,每一列的標(biāo)識(shí)、名稱、數(shù)據(jù)類型、長(zhǎng)度和業(yè)務(wù)規(guī)則,等等。

03物理建模

物理建模(Physical Modeling)是將邏輯建模的內(nèi)容落實(shí)到具體的數(shù)據(jù)管理系統(tǒng)中。這時(shí),數(shù)據(jù)庫管理系統(tǒng)的選擇還要考慮數(shù)據(jù)庫性能、訪問控制、存儲(chǔ)空間、硬件要求等。

綜上所述,概念建模、邏輯建模和物理建模是數(shù)據(jù)建模的三個(gè)步驟和主要工作內(nèi)容。其中,邏輯建模和物理建模純粹是技術(shù)活,概念建模則更多地考驗(yàn)建模者對(duì)需求的理解程度,以及將業(yè)務(wù)需求轉(zhuǎn)化為數(shù)據(jù)需求的哲學(xué)思辨和架構(gòu)思維的能力,是決定軟件質(zhì)量的根本所在。

關(guān)于作者,丁少華,字肇之,現(xiàn)任杭州三之一智聯(lián)科技有限公司首席顧問。資深數(shù)字化專家,擁有20多年的企業(yè)信息化和數(shù)字化咨詢服務(wù)經(jīng)驗(yàn)。?

責(zé)任編輯:張燕妮 來源: 數(shù)倉(cāng)寶貝庫
相關(guān)推薦

2019-09-10 13:38:56

人工智能無人駕駛機(jī)器人

2020-07-10 07:58:14

Linux

2022-08-19 10:31:32

Kafka大數(shù)據(jù)

2024-11-15 11:11:48

2024-01-03 07:56:50

2021-06-09 11:06:00

數(shù)據(jù)分析Excel

2024-01-09 13:58:22

PandasPython數(shù)據(jù)分析

2022-05-18 09:01:19

JSONJavaScript

2019-11-06 10:56:59

Python數(shù)據(jù)分析TGI

2018-10-26 14:10:21

2019-04-08 15:30:22

MySQL優(yōu)化架構(gòu)

2017-07-12 15:32:12

大數(shù)據(jù)大數(shù)據(jù)技術(shù)Python

2021-04-15 10:01:18

Sqlite數(shù)據(jù)庫數(shù)據(jù)庫知識(shí)

2023-04-20 14:31:20

Python開發(fā)教程

2023-12-26 12:10:13

2023-05-08 15:25:19

Python編程語言編碼技巧

2021-04-12 10:00:47

Sqlite數(shù)據(jù)庫CMD

2024-07-26 08:32:44

panic?Go語言

2018-03-19 14:43:28

2015-10-20 09:46:33

HTTP網(wǎng)絡(luò)協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久久高清 | 欧美国产中文 | 国产高清视频在线观看 | 日韩一区二区三区在线播放 | 日韩中文在线视频 | 成人午夜影院 | 久久高潮 | 欧美视频在线观看 | 国产免费一区二区三区 | 国产精品久久片 | www.婷婷亚洲基地 | 夜夜爽99久久国产综合精品女不卡 | 亚洲一区二区三 | 亚洲高清在线观看 | 3p视频在线观看 | com.色.www在线观看 | 欧美色综合网 | 欧美乱码精品一区二区三区 | 成人av观看 | 欧美日韩精品中文字幕 | 亚洲欧美综合精品另类天天更新 | 亚洲精品视频一区 | 欧美综合久久 | 免费看一区二区三区 | 欧美性精品 | 激情 一区 | 综合精品在线 | 亚洲一区三区在线观看 | 涩涩视频网站在线观看 | 久久久成人动漫 | 久久精品91久久久久久再现 | 国产日韩欧美激情 | 国产在线精品一区二区 | 伊人网在线看 | 久久精品国产免费高清 | 日韩欧美三级 | 一区二区三区国产好的精 | 亚洲一二三区免费 | 日韩在线视频观看 | 一区二区三区高清 | 国产福利视频网站 |