摘要:JSD方法是英國(guó)人M.A.Jackson首先提出的。JSD方法是屬于面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。該文介紹了JSD的方法基礎(chǔ),利用JSD方法開(kāi)發(fā)外事檔案管理系統(tǒng),給出了實(shí)現(xiàn)的主要過(guò)程。
關(guān)鍵詞:JSD方法;數(shù)據(jù)結(jié)構(gòu);外事管理系統(tǒng)
中圖分類(lèi)號(hào):TP315 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)32-8926-02
JSD Method Development Using the File Management System of Foreign Affairs
JIN Hong-jie
(Chinese Communist Party School in Harbin Hulan District, Harbin 150500, China)
Abstract: JSD method is first proposed by the British M.A.Jackson. JSD methods are data-oriented architecture design approach. This article describes the methodological basis of the JSD andusing the JSD method development of foreign affairs file management system, given the realization of the main process.
Key words: JSD method; data structure; foreign affairs management system
JSD(Jackson Structured Design)方法是英國(guó)人M.A.Jackson首先提出和倡導(dǎo)的,該方法屬于面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法,可以用于軟件開(kāi)發(fā)過(guò)程中的分析與設(shè)計(jì)階段[1]。而外事檔案管理就要是管理某個(gè)地區(qū)的出國(guó)人員的檔案管理,基本處理的數(shù)據(jù)是出國(guó)人員的基本資料,數(shù)據(jù)結(jié)構(gòu)比較清晰,適合用JSD方法進(jìn)行開(kāi)發(fā)。本文首先介紹JSD方法基本內(nèi)容,然后給出利用JSD方法開(kāi)發(fā)外事檔案管理系統(tǒng)的主要內(nèi)容。
1 JSD方法基礎(chǔ)
1.1 Jackson圖
Jackson在提出JSD方法的同時(shí),提出一種配套使用的表達(dá)工具,稱(chēng)為Jackson圖。Jackson圖有3種最為常用的表達(dá)結(jié)構(gòu),由方框、連線和一些附加的標(biāo)記組成。如圖1所示,有3類(lèi)圖,分為順序、選擇和重復(fù)結(jié)構(gòu)。(a)表示A由B和C兩部分組成;(b)表示A可以包含B或C;(c)表示A由B重復(fù)任意次(含0次)構(gòu)成。
Jackson圖的最大好處是即可以表示數(shù)據(jù)結(jié)構(gòu)又可以表示程序結(jié)構(gòu)。再輔以Jackson的偽代碼,就可以很方便地表示的程序處理過(guò)程。
1.2 Jackson方法分析和設(shè)計(jì)的步驟[1]
JSD方法不直接利用數(shù)據(jù)流圖,因此不區(qū)分變換型結(jié)構(gòu)或事務(wù)型結(jié)構(gòu)。而且,JSD方法的最終目標(biāo)是生成軟件的過(guò)程性描述,沒(méi)有特別考慮程序模塊化結(jié)構(gòu),模塊只是作為過(guò)程的副產(chǎn)品而出現(xiàn)的,模塊獨(dú)立性也沒(méi)有特別強(qiáng)調(diào)。
步驟如下:
1) 用Jackson圖畫(huà)出輸入數(shù)據(jù)和輸出數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
2) 找出輸入數(shù)據(jù)結(jié)構(gòu)和輸出數(shù)據(jù)結(jié)構(gòu)中有對(duì)應(yīng)的數(shù)據(jù)關(guān)系的數(shù)據(jù)單元,并按照下列映射規(guī)則導(dǎo)出相應(yīng)的程序結(jié)構(gòu),仍用Jackson圖表示。
① 為每一對(duì)在輸入結(jié)構(gòu)與輸出結(jié)構(gòu)中有對(duì)應(yīng)關(guān)系的單元畫(huà)一個(gè)處理框。
② 為輸入數(shù)據(jù)結(jié)構(gòu)中每一個(gè)剩于的數(shù)據(jù)單元畫(huà)一條處理框。
③ 為輸出數(shù)據(jù)結(jié)構(gòu)中每一個(gè)剩于的數(shù)據(jù)單元畫(huà)一條處理框。
④ 所有處理框在程序結(jié)構(gòu)圖上的位置,應(yīng)也由它處理的數(shù)據(jù)單元在數(shù)據(jù)結(jié)構(gòu)Jackson圖上的位置相對(duì)應(yīng)。
第2) 步是整個(gè)Jackson方法的關(guān)鍵是要準(zhǔn)確地找出有對(duì)應(yīng)關(guān)系的所有數(shù)據(jù)單元。
3) 用Jackson偽代碼寫(xiě)出程序結(jié)構(gòu)圖對(duì)應(yīng)的過(guò)程性表示。
2 利用JSD方法開(kāi)發(fā)外事檔案管理系統(tǒng)
外事管理系統(tǒng)主要是對(duì)出境人員的檔案管理,需要出境人員的個(gè)人基本信息,出境的目的地,原因,時(shí)間,家庭主要人員情況,還要檢索刑事犯罪數(shù)據(jù)庫(kù),以防罪犯出境,要利用計(jì)算機(jī)完成出境人員資料錄入、修改,出境人員的各種情況查詢(xún)及打印等基本功能。
2.1 依據(jù)JSD方法,根據(jù)系統(tǒng)的需求,得到主要的幾個(gè)表(實(shí)體):基本信息表、簽證表、出國(guó)記錄表、罪犯表
各表的結(jié)構(gòu)如下:
基本信息表Base(身份證號(hào),姓名,性別,生日,籍貫,家庭住址,,工作單位,政治面貌,職務(wù),家庭電話,其他聯(lián)系方式,個(gè)人經(jīng)歷,主要社會(huì)關(guān)系等)
簽證表visa(簽證號(hào),姓名,身份證號(hào),出訪國(guó)家,簽證類(lèi)別,出訪天數(shù),出訪時(shí)間等)
出國(guó)記錄表Out_record(簽證號(hào),回國(guó)時(shí)間等)
罪犯表criminal(身份證號(hào),姓名,類(lèi)型,內(nèi)容,時(shí)間等)
畫(huà)出各個(gè)基本表的輸入文件的數(shù)據(jù)結(jié)構(gòu)圖。
以查詢(xún)某人的基本信息及出國(guó)記錄為例,得到輸出文件的數(shù)據(jù)結(jié)構(gòu)圖。
2.2 根據(jù)數(shù)據(jù)結(jié)構(gòu)圖,得到的程序結(jié)構(gòu)圖
在轉(zhuǎn)化過(guò)程中,由于這個(gè)例子只用了Base和Out-Record兩個(gè)輸入文件,其他未用,所以可不必將其他兩表內(nèi)容也映射到程序結(jié)構(gòu)圖上。
2.3 根據(jù)得到的程序圖,可以寫(xiě)出偽代碼,完成設(shè)計(jì)
處理查詢(xún)出國(guó)人員 Seq
Open Base
Open Out-record
Times:=0
FirstDates:=9999
LastDates:=1900
Get 身份證號(hào)
產(chǎn)生表頭 Seq
產(chǎn)生出國(guó)人員信息查詢(xún)
打印:出國(guó)人員信息查詢(xún)
End 產(chǎn)生同國(guó)人員信息查詢(xún)
End 產(chǎn)生表頭
產(chǎn)生基本信息 Seq
定位Base數(shù)據(jù)庫(kù) ID=身份證號(hào)
IF EOF(Base)不為真
產(chǎn)生字段行 Seq
打印:姓名,身份證等基本信息
End 產(chǎn)生字段行
End If
End 產(chǎn)生基本信息
產(chǎn)生出國(guó)記錄 Seq
產(chǎn)生字段行 Seq
打印:簽證號(hào),出國(guó)日期,歸國(guó)日期,出訪國(guó)等字段名
End 產(chǎn)生字段行
產(chǎn)生表體 Seq
產(chǎn)生每個(gè)人 Seq
循環(huán) Out-record庫(kù)中每一個(gè)記錄,直到庫(kù)結(jié)束
If 身份證號(hào)=ID的記錄
印出簽證號(hào),出國(guó)日期,歸國(guó)日期,出訪國(guó)等數(shù)據(jù)
Times =Times+1
If 出國(guó)日期>LastDatesLastDate=出國(guó)時(shí)間
If 出是日期 結(jié)束循環(huán) End 結(jié)束每個(gè)人 End 產(chǎn)生表體 End 產(chǎn)生出國(guó)記錄 產(chǎn)生統(tǒng)計(jì) Seq 產(chǎn)生統(tǒng)計(jì)表頭 Seq 打印:出國(guó)次數(shù),首次時(shí)間,最近時(shí)間 End產(chǎn)生統(tǒng)計(jì)表頭 打印:Tims End 產(chǎn)生統(tǒng)計(jì) End處理查詢(xún)出國(guó)人員 2.4 根據(jù)第3步得到的偽代碼,可以很方便地進(jìn)行編程實(shí)現(xiàn)。 通過(guò)前面的實(shí)例可以看出,利用JSD方法可以很容易地解決了外事管理系統(tǒng)的開(kāi)發(fā)工作,而且分析與設(shè)計(jì)用的工具都是相同的,這也是JSD方法的最大優(yōu)點(diǎn)。JSD方法是面向數(shù)據(jù)結(jié)構(gòu)的開(kāi)發(fā)方法,在數(shù)據(jù)庫(kù)管理開(kāi)發(fā)上有很大的優(yōu)越性,但同時(shí)也要清楚,不是所用的軟件開(kāi)發(fā)都能用JSD方法解決的,要注意JSD方法適用的環(huán)境。 參考文獻(xiàn): [1] 史濟(jì)民.軟件工程[M].北京:高等教育出版社,2005. [2] 張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,2003.