[序]
高原教授團(tuán)隊(duì)的著作《基于模型理論的信息系統(tǒng)開發(fā)基礎(chǔ)》中文譯著終于出版了,這不禁讓我回想起26年前東渡日本,在東京工業(yè)大學(xué)高原研究室作為訪問學(xué)者,與高原教授合作開展“基于一般系統(tǒng)理論的決策支持系統(tǒng)開發(fā)方法”項(xiàng)目研究時(shí)的情景。高原教授不僅對(duì)中國有著深厚的感情,而且熟讀中國古典名著,尤其推崇中國的大思想家和教育家孔子。高原教授一生致力于系統(tǒng)理論研究和人才培育,是日本經(jīng)營情報(bào)學(xué)會(huì)的創(chuàng)始人之一,并曾擔(dān)任會(huì)長,是日本信息系統(tǒng)(information system, IS)領(lǐng)域具有重要影響的學(xué)者。他在系統(tǒng)理論領(lǐng)域取得了豐碩的研究成果,并且培養(yǎng)了一大批出色的從事系統(tǒng)理論研究及信息系統(tǒng)開發(fā)的科技人才。本著作正是在高原教授一系列研究成果基礎(chǔ)上編寫的面向有志于開發(fā)信息系統(tǒng)的大學(xué)生的教科書。
傳統(tǒng)上,信息系統(tǒng)開發(fā)大多基于非形式化的軟件工程方法,缺乏嚴(yán)謹(jǐn)?shù)牟僮骼碚?也沒有形成一個(gè)正式的準(zhǔn)則框架,因此在某種程度上信息系統(tǒng)開發(fā)仍然是一門藝術(shù),更多依賴于開發(fā)者的經(jīng)驗(yàn)。長久以來,信息系統(tǒng)開發(fā)者致力于尋求消除從系統(tǒng)需求、系統(tǒng)設(shè)計(jì)到系統(tǒng)開發(fā)方面的歧義,以期開發(fā)可信的系統(tǒng),但實(shí)際開發(fā)出來的系統(tǒng)在運(yùn)行過程中仍不免存在著許多缺陷。作為一位系統(tǒng)理論研究者,高原教授將信息系統(tǒng)和決策支持系統(tǒng)視為系統(tǒng)理論的研究對(duì)象,并用系統(tǒng)理論的方法來實(shí)現(xiàn)信息系統(tǒng)和決策支持系統(tǒng)的開發(fā);谙到y(tǒng)理論,高原教授及其團(tuán)隊(duì)提出并構(gòu)建了一套獨(dú)特的且更具可操作性的智能信息系統(tǒng)開發(fā)理論方法——“基于模型理論方法的形式化開發(fā)方法”。該方法提供了一套可靠的系統(tǒng)描述,并且能產(chǎn)生可信的系統(tǒng)。它通過提供用戶接口(用于業(yè)務(wù)處理系統(tǒng))和目標(biāo)尋找器(用于問題求解系統(tǒng))作為信息系統(tǒng)開發(fā)的黑箱組件,并結(jié)合自動(dòng)系統(tǒng)生成,從而促進(jìn)可靠的系統(tǒng)實(shí)現(xiàn)和快速的系統(tǒng)開發(fā)。一旦在用戶接口中給出了基于計(jì)算機(jī)可接受集合論的系統(tǒng)描述,就可以在該方法提供的集成平臺(tái)上生成包含業(yè)務(wù)處理系統(tǒng)和問題求解系統(tǒng)的可執(zhí)行智能信息系統(tǒng)。由于系統(tǒng)可以部署在開源軟件上,因此采用該方法開發(fā)系統(tǒng)既可以實(shí)現(xiàn)系統(tǒng)的快速開發(fā),還可以降低開發(fā)成本。該方法的另一個(gè)獨(dú)特之處在于它通過允許用戶使用基本的集合論而不是計(jì)算機(jī)語言來執(zhí)行系統(tǒng)構(gòu)建,從而簡化了最終用戶的系統(tǒng)維護(hù)。
為了讓普通的信息系統(tǒng)開發(fā)者能夠掌握基于模型理論方法的形式化開發(fā)方法,高原教授及其團(tuán)隊(duì)于2007年編寫了這本作為信息管理專業(yè)本科生用的教材,并于2016年進(jìn)行了修訂。本著作從邏輯訓(xùn)練著手,使學(xué)生在學(xué)習(xí)系統(tǒng)理論基礎(chǔ)的同時(shí),最終學(xué)會(huì)采用該方法開發(fā)信息系統(tǒng)應(yīng)用程序。自出版以來,本著作已被日本多所大學(xué)采用,取得了良好的教學(xué)效果,為日本培養(yǎng)了大量信息系統(tǒng)開發(fā)人才。我很樂見本著作引入中國,并相信它將為我國信息系統(tǒng)開發(fā)人才的培養(yǎng)作出貢獻(xiàn)。
中國工程院院士 陳曉紅教授
2020年2月26日
[譯者序]
本書原著的第一作者高原教授,畢業(yè)于日本排名第一的東京大學(xué),1963年去美國凱斯理工學(xué)院[Case Institute of Technology,現(xiàn)名凱斯西儲(chǔ)大學(xué)(Case Western Reserve University)]留學(xué),師從系統(tǒng)管理學(xué)大師M.D.梅薩羅維奇(M.D. Mesarovic)教授,他們一起撰寫了Theory of Hierarchical Multilevel Systems、 Mathematical Theory of General Systems和General Systems Theory: Mathematical Foundations等經(jīng)典著作。由此可見,高原教授也是系統(tǒng)科學(xué)發(fā)展史上早期十分重要的代表人物之一。1972年他回到日本,在東京工業(yè)大學(xué)任副教授、教授,一直到1997年退休成為名譽(yù)教授。本書其他幾位作者,都是高原教授的得意門生。
1985年,我作為國家公派出國留學(xué)研究生,就讀于東京工業(yè)大學(xué)系統(tǒng)科學(xué)研究科,有幸在高原教授的精心指導(dǎo)下,獲得了理學(xué)博士學(xué)位。在讀博的三年里,我逐漸領(lǐng)悟了一些高原教授的系統(tǒng)科學(xué)論觀,其中讓我終生受用的有三個(gè)觀點(diǎn):第一,系統(tǒng)科學(xué)和系統(tǒng)工程是思考問題、分析問題和解決問題的“思想”;第二,復(fù)雜系統(tǒng)皆有層次(階層)性,即使對(duì)象在物理上不存在層次結(jié)構(gòu),也可以用“hierarchical approach”去建模和分析;第三,任何一個(gè)系統(tǒng)都可以看作是輸入-輸出系統(tǒng),是定義在輸入集合X與輸出集合Y的直積上的一個(gè)子集,也就是說一般系統(tǒng)的模型都可以形式化地表達(dá)成SX×Y。
作為數(shù)理一般系統(tǒng)理論的主要奠基人,高原教授認(rèn)為模型理論的核是泛代數(shù)(universal algebra)和范疇論(category theory),一般系統(tǒng)理論只是作為模型理論的一種應(yīng)用。他堅(jiān)信管理信息系統(tǒng)既然是一個(gè)系統(tǒng),當(dāng)然就應(yīng)該是一般系統(tǒng)理論研究的對(duì)象。
在日本,幾乎看不到模型理論的教科書。有一次,高原教授來中國訪問去逛書店時(shí),發(fā)現(xiàn)了《模型論基礎(chǔ)》(王世強(qiáng)著,科學(xué)出版社于1987出版),他感觸頗深。他想中國讀者眾多,如果這類書用中文出版的話,肯定能促進(jìn)模型理論方法的應(yīng)用和發(fā)展。這就是他要把日文原著翻譯成中文出版的初衷。為了實(shí)現(xiàn)這個(gè)夙愿,2019年深秋,他不顧80多歲高齡,車馬勞頓,親臨上海,與上海交通大學(xué)出版社商討翻譯出版的有關(guān)事宜。
1986年,高原教授在我的陪同下首次訪問中國,到西安交通大學(xué)和上海交通大學(xué)講學(xué)。從那以后,他多次來中國講學(xué)和參加學(xué)術(shù)會(huì)議,與中國同行的學(xué)術(shù)交流從未間斷過,后來還被中南大學(xué)聘為特聘教授。他在任教期間招收過許多中國留學(xué)生,其中中國工程院院士、湖南工商大學(xué)校長陳曉紅是他的高徒。因此,我們特邀請(qǐng)陳院士為本書寫了序,在此衷心表示感謝!同時(shí),非常感謝為我們出謀獻(xiàn)策的中南大學(xué)商學(xué)院副院長劉詠梅教授,以及幫助整理原著電子版和中文版中的圖、表、公式的千葉工業(yè)大學(xué)高木徹博士和何主翔同學(xué)。此外,我們也對(duì)為本書的日文翻譯給予很多幫助的上海鼎乾人才服務(wù)有限公司陳建新總經(jīng)理,以及在本書出版過程中負(fù)責(zé)策劃、編輯、校對(duì)等事務(wù)的上海交通大學(xué)出版社科技分社的錢方針社長和編輯們致以誠摯的感謝!
上海交通大學(xué)電子信息與電氣工程學(xué)院教授
趙群飛
2020年4月
[修訂版序]
本書是2007年出版的《基于模型理論的信息系統(tǒng)開發(fā)基礎(chǔ)》的修訂版。出版本書的目的是希望讀者從邏輯訓(xùn)練著手,在學(xué)習(xí)系統(tǒng)基礎(chǔ)理論的同時(shí),應(yīng)用并展開信息系統(tǒng)的開發(fā)。作者認(rèn)為,信息系統(tǒng)不是軟件工程的研究對(duì)象,而是系統(tǒng)理論的研究對(duì)象。本次發(fā)行的修訂版仍然堅(jiān)持了這一立場。
第一版出版8年以來,本書已被用作多個(gè)學(xué)科的教科書。本書的全體作者在“離散數(shù)學(xué)”“信息系統(tǒng)建模”“問題求解方案”“信息處理概述”“應(yīng)用信息處理”以及“研討會(huì)”等本科教學(xué)實(shí)踐中都有顯著的成果。在研究生培養(yǎng)過程中也為學(xué)生提供了合適的研究課題。然而,伴隨著信息技術(shù)的進(jìn)步和社會(huì)形勢的顯著變化,作者也認(rèn)為有必要針對(duì)這些變化在本書的內(nèi)容方面做出相應(yīng)的調(diào)整。經(jīng)過討論后一致決定發(fā)行修訂版。
與第一版相比,修訂版的第一個(gè)大的變更是增加了關(guān)系型數(shù)據(jù)庫建模的利用和仿真系統(tǒng)的開發(fā)這兩章內(nèi)容(第4章和第8章)以滿足教學(xué)上的需要。但為了避免篇幅過長,將第一版中相當(dāng)于操作手冊的部分移到了網(wǎng)站上。模型理論方法的本質(zhì)特征在于通過邏輯和集合定義對(duì)象系統(tǒng)的模型,并使用適合描述該模型的CAST(computer acceptable set theory)語言進(jìn)行編程,提供通過CAST語言直接運(yùn)行該模型的軟件MTASDK(model theory approachsystem development kit)。把詳細(xì)介紹CAST語言規(guī)范(語法等)的第一版第4章“計(jì)算機(jī)可讀表達(dá)”的全部內(nèi)容移到了網(wǎng)站上。此外,第一版第7章“系統(tǒng)開發(fā)環(huán)境”是對(duì)開發(fā)環(huán)境(MTASDK)的安裝說明,在本次修訂中,也對(duì)其部分內(nèi)容進(jìn)行了調(diào)整和變更以適應(yīng)當(dāng)下的技術(shù)發(fā)展。新開發(fā)環(huán)境的獲取和設(shè)置的相關(guān)內(nèi)容放在修訂版的第5章。
修訂版的第二個(gè)大的變更是為了應(yīng)對(duì)社會(huì)形勢的變化。在許多大學(xué),雙學(xué)期制(semester)早已得到了普及,而且每門課的教學(xué)是按每個(gè)學(xué)期而不是每學(xué)年進(jìn)行一次成績考核。教科書的篇幅不宜過長,應(yīng)壓縮成能夠在一學(xué)期之內(nèi)完成的教學(xué)內(nèi)容,同時(shí)也需調(diào)低售價(jià)。因此,日文的修訂版分成了《基于模型理論的信息系統(tǒng)開發(fā)基礎(chǔ)——模型篇》和《基于模型理論的信息系統(tǒng)開發(fā)基礎(chǔ)——實(shí)踐篇》兩冊出版。
修訂版的第三個(gè)大的變更是運(yùn)行環(huán)境的變更。第一版中,各種模型的運(yùn)行環(huán)境都是Unix OS。但是,無論是文科生還是理科生,多數(shù)學(xué)生的個(gè)人計(jì)算機(jī)都不具備運(yùn)行Unix OS的環(huán)境。針對(duì)這一現(xiàn)狀,近年來,已經(jīng)可以使用虛擬機(jī)技術(shù)在一臺(tái)個(gè)人計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)操作系統(tǒng)。因此,修訂版中,增加了如何通過在Windows OS上運(yùn)行虛擬機(jī)軟件,完全實(shí)現(xiàn)模型開發(fā)和運(yùn)行的內(nèi)容(第5章)。但開發(fā)運(yùn)行環(huán)境的基礎(chǔ)仍然是Unix OS。在第一版中的Unix OS采用的是Fedora發(fā)行版,而修訂版中改為多數(shù)學(xué)生們使用的Ubuntu發(fā)行版。不過學(xué)生們一般可以不用在意Unix OS的版本。
綜上所述,與第一版相比,盡管修訂版在內(nèi)容結(jié)構(gòu)上看起來變化很大,但是以系統(tǒng)理論為根本這一初衷是一貫的,并未發(fā)生任何改變。
作者希望可以通過這些調(diào)整讓書變得更加“容易使用”,也非常期待能夠得到讀者的反饋意見。
全體作者
2016年1月吉日
模 型 篇
1 邏輯思考
1.1 命題邏輯
1.1.1 命題定義
1.1.2 復(fù)合命題
1.1.3 真值表和重言式
1.1.4 蘊(yùn)含
練習(xí)題
1.2 謂詞邏輯
1.2.1 量詞與定義域
1.2.2 量詞的轄域
1.2.3 多元謂詞
練習(xí)題
附錄
2 集合表述
2.1 集合的表示及其標(biāo)記法
練習(xí)題
2.2 列表
2.2.1 向量
2.2.2 矩陣
練習(xí)題
2.3 集合的運(yùn)算
練習(xí)題
2.4 直積與關(guān)系的定義
2.4.1 直積的定義
2.4.2 關(guān)系的定義
練習(xí)題
2.5 等價(jià)關(guān)系
練習(xí)題
2.6 順序關(guān)系
練習(xí)題
2.7 函數(shù)
練習(xí)題
3 自動(dòng)機(jī)建模的利用
3.1 自動(dòng)機(jī)建模的基本概念
3.1.1 框圖(輸入與輸出)
3.1.2 狀態(tài)與輸出函數(shù)
3.1.3 狀態(tài)遷移圖
3.1.4 自動(dòng)機(jī)模型定義
3.1.5 計(jì)算機(jī)可讀表達(dá)
3.1.6 計(jì)算機(jī)實(shí)現(xiàn)模型
3.1.7 編譯與運(yùn)行
練習(xí)題
3.2 自動(dòng)機(jī)狀態(tài)為符號(hào)時(shí)的建模實(shí)例
3.2.1 100日元換幣機(jī)(狀態(tài)有1個(gè))
3.2.2 帶按鈕的硬幣換幣機(jī)(狀態(tài)有2個(gè))
3.2.3 出售150日元車票的自動(dòng)售賣機(jī)(狀態(tài)有3個(gè))
練習(xí)題
3.3 自動(dòng)機(jī)狀態(tài)為數(shù)值時(shí)的建模實(shí)例
3.3.1 狀態(tài)數(shù)值化方法
3.3.2 帶有按鈕的自動(dòng)售賣機(jī)(用1個(gè)變量來表示狀態(tài))
3.3.3 可以確認(rèn)零錢的自動(dòng)售賣機(jī)(用向量來表示狀態(tài))
3.3.4 整數(shù)計(jì)算器(一次寫出全部輸入)
練習(xí)題
3.4 自動(dòng)機(jī)的動(dòng)作與物理實(shí)現(xiàn)
3.4.1 輸出序列的計(jì)算
3.4.2 倉庫模型(流程模型)
3.4.3 自動(dòng)機(jī)的物理實(shí)現(xiàn)
3.4.4 自動(dòng)售賣機(jī)的自動(dòng)機(jī)公式化表示與Prolog程序描述
之間的對(duì)應(yīng)關(guān)系
練習(xí)題
4 關(guān)系型數(shù)據(jù)庫建模的利用
4.1 數(shù)據(jù)庫的種類與定義
4.1.1 數(shù)據(jù)庫的種類
4.1.2 關(guān)系型數(shù)據(jù)庫的定義(作為集合定義的關(guān)系)
4.2 數(shù)據(jù)庫的分析與設(shè)計(jì)
4.2.1 數(shù)據(jù)分析
4.2.2 數(shù)據(jù)庫設(shè)計(jì)
4.3 數(shù)據(jù)庫的構(gòu)建與操作
4.3.1 數(shù)據(jù)庫語言
4.3.2 數(shù)據(jù)定義語句
4.3.3 數(shù)據(jù)操作語句
練習(xí)題
附錄
實(shí) 踐 篇
5 系統(tǒng)開發(fā)環(huán)境的實(shí)現(xiàn)
5.1 CAST語言
5.1.1 CAST模型的實(shí)例
5.1.2 CAST的解答與說明
5.2 CAST的獲取與設(shè)置
5.3 MTASDK的安裝與運(yùn)行
5.3.1 安裝VMWare Player
5.3.2 啟動(dòng)VM
5.4 MTASDK的快速入門
5.4.1 MTASDK的啟動(dòng)與結(jié)束
5.4.2 MTASDK的動(dòng)作確認(rèn)
5.4.3 窗口
5.5 MTASDK的操作
5.5.1 系統(tǒng)開發(fā)步驟的概要
5.5.2 運(yùn)行方法
6 問題求解系統(tǒng)的開發(fā)
6.1 問題求解系統(tǒng)的開發(fā)方法
6.1.1 問題描述
6.1.2 問題求解的基本思路
6.1.3 問題求解的流程
6.1.4 基于模型理論方法的問題求解系統(tǒng)的結(jié)構(gòu)
6.1.5 用戶模型的架構(gòu)
6.1.6 問題求解系統(tǒng)的開發(fā)步驟
6.2 開發(fā)示例1:WGC問題
練習(xí)題
6.3 開發(fā)示例2:水壺問題
練習(xí)題
6.4 開發(fā)示例3:旅行推銷員問題
練習(xí)題
7 業(yè)務(wù)處理系統(tǒng)的開發(fā)
7.1 業(yè)務(wù)處理系統(tǒng)的描述
7.2 業(yè)務(wù)處理系統(tǒng)的模型
7.2.1 用于業(yè)務(wù)處理系統(tǒng)開發(fā)的模型
7.2.2 用戶模型
7.3 業(yè)務(wù)處理系統(tǒng)的開發(fā)方法
7.3.1 業(yè)務(wù)處理系統(tǒng)的開發(fā)步驟
7.3.2 運(yùn)行形態(tài)
7.4 開發(fā)示例1:書店賒售管理系統(tǒng)
7.4.1 確定技術(shù)規(guī)格
7.4.2 用數(shù)據(jù)流圖表示技術(shù)規(guī)格
7.4.3 確定MactionName和搭建基本架構(gòu)系統(tǒng)
7.4.4 顯示基本架構(gòu)系統(tǒng)的初始界面
7.4.5 實(shí)現(xiàn)各個(gè)宏操作
7.4.6 實(shí)施整體測試
練習(xí)題
7.5 開發(fā)示例2:酒類批發(fā)店業(yè)務(wù)管理系統(tǒng)
7.5.1 確定技術(shù)規(guī)格
7.5.2 用數(shù)據(jù)流圖表示技術(shù)規(guī)格
7.5.3 確定MactionName和搭建基本架構(gòu)系統(tǒng)
7.5.4 顯示基本架構(gòu)系統(tǒng)的初始界面
7.5.5 實(shí)現(xiàn)各個(gè)宏操作
7.5.6 實(shí)施整體測試
練習(xí)題
附錄
8 仿真系統(tǒng)的開發(fā)
8.1 價(jià)格調(diào)整系統(tǒng)的仿真
8.1.1 自動(dòng)機(jī)模型
8.1.2 用戶模型
8.1.3 運(yùn)行結(jié)果
練習(xí)題
8.2 二體動(dòng)力學(xué)的仿真
8.2.1 自動(dòng)機(jī)模型
8.2.2 用戶模型
8.2.3 運(yùn)行結(jié)果
練習(xí)題
8.3 建模的基礎(chǔ)
附錄
索引