善用PowerDesigner提昇軟體開發效率

救星啊...

转至http://www.runpc.com.tw/content/main_content.aspx?mgo=183&fid=E23n

 

 

PowerDesigner以DataModeling工具起家,歷經多個版本演進,目前已是一個包含不同設計模型的綜合性CASE工具。尤其從PowerDesigner 15這個版本,加入企業架構模組,相較於以往,算是非常大的增進。然筆者發現,不少的使用者仍然只使用了大約60%的功能,雖然已經及格,且實務上也足夠,但是總覺得其實可以更好。因此本文就讓筆者告訴大家,有哪些不錯的功能,可以善加使用。這些功能,有些不會增加太多的勞力,但是有很好的效果,另外有些功能讀者必須知道,當實務上碰到需要時,可以知道如何解決,甚至簡化平常所需繁瑣的工作。


首先必須知道,PowerDesigner基本可以讓你設計哪些模組,這樣才知道我們該如何利用它帶來效益。就目前PowerDesigner 15來看,整體的架構如圖1所示。


圖1:PowerDesigner 15架構圖。(來源:http://www.sybase.com/products/modelingdevelopment/powerdesigner/powerdesigner15)



組成架構
整個架構建構於Repository內,Repository提供一個中央儲存設備,可儲存其內所設計的模組文件,並且在多人開發的環境中,做到版本控制和建構管理。

整體的核心是需求管理模組(Requirements Model),顧名思義,就是用來蒐集和管理需求,所有的模組設計都是起源於需求,所以位於中央的需求管理模組,就是為了便於和其他模組作雙向連結,以利追蹤和同步。

位於上方的企業架構模組(Enterprise Architecture Model),則是用來表達高階的企業架構模型,它可做為IT和業務間溝通的工具。筆者喜歡用一個範例來說明此模型的最佳使用案例,就是每當企業資訊長CIO跟企業主申請資訊費用,用以建構新的資訊系統,由於資訊系統包含了軟體,在成效的評估中,不是非常容易呈現,因此,善用企業架構模組來表達整體資訊架構,以圖像化呈現,就易為企業主所理解和評估,費用的申請也將較為順利。


City Planning Diagram
讀者可以參考圖2,這是企業架構模組其中一種架構圖,叫做City Planning Diagram,這個圖把軟體系統圖像化,表達軟體的功能和所扮演的角色。左方的部分,就是資料模組(Data Models),以資料分析的完整步驟來看,包含了概念資料模組(Conceptual DM)、邏輯資料模組(Logical DM)以及實體資料模組(Physical DM)。


圖2:企業架構模組:City Planning Diagram。


概念資料模組主要用來設計初步E-R Model;邏輯資料模組則是更進一步分析,資料正規化則可在此模組設計。至於實體資料模組則是實際DBMS內的映射,可表達和設計實際DBMS運作的資料物件,也就是最後的產出。圖2左下方還有一個模組,叫做Information Liquidity Model,用來表達資料流動的情形,這可用來表達資料移動、複製的情況,通常適用於Replication Server之類的軟體。

圖2右方的部分,主要表達程式架構(Application Architecture Models),與程式架構有關的,主要就是UML模組語言。在PowerDesigner內,用來規畫UML各圖形的模組,叫做物件導向模組(Object-Oriented Model,簡稱OOM),目前可規劃UML 2.0的圖形。至於跟程式間,有關資料交換的格式定義,主要使用XML,所以PowerDesigner也包含了一個XML Model,名稱就是如此。

圖2的右下方顯示了一個模組,叫做企業流程模組(Business Process Model),在分析階段,這可用來繪製流程圖,表達企業內部不同層級的流程示意圖;至於設計階段,則可產生各種流程語言,例如ebXML的BPSS或是WSBPEL等等,可結合SOA系統的設計。

各模組之間,也包含不同的關連,如前述提到的需求連結外,還包括物件和資料的對應關係(O-R Mapping),以及物件的轉換(import/export),這些筆者建議可以多加利用,除了便利外,更可讓你的設計合理化以及具有可追溯的效果。

接下來各主題,筆者將補充描述PowerDesigner其它功能,這些功能橫跨不同模組,並沒有受限特定模組。假如善用這些功能,對於模組的呈現,或是進一步的功能推進,將有顯而易見的效果,並且有機會增加你設計的彈性,以及工作上的效率。


圖庫管理
以往PowerDesigner的符號,表達的圖案都是PowerDesigner既有的圖案,假如要修改符號,你必須自行準備圖檔來置換。在PowerDesigner 15,考量製作或是準備圖檔的繁瑣,已經內含一個圖庫,裡面內含上千種的圖案供你選擇,因此可以大幅增加顯示圖案的多樣性,更能精準表達你想要表達的含意,這對於溝通上有很大的效果。

PowerDesigner的圖庫管理,是在「Select Image」的視窗中管理,如圖3開啟此視窗有以下方式:
●在menu中選擇Edit→Import Image,用來匯入圖檔,除了開啟Select Image視窗,也可以加入你自己的圖案檔。
●在任意符號上按滑鼠右鍵,例如BPM的Process程序,然後選擇Change Image選項,這個功能可以置換你的圖案,也會跳出Select Image視窗。
●在任意符號上按滑鼠右鍵,選擇Format,切換到Fill頁面,在裡面點選Modify按鈕,即可開啟。用來設定符號的底圖。
●在任意符號上按滑鼠右鍵,選擇Format,切換到Custom shape頁面,並勾選Enable Custom Shape,讓Browse按鈕可以點選,接下來點選此按鈕即可開啟。用來改變符號的圖案。


圖3:圖庫管理畫面。


在圖3左方,已經針對不同的圖案屬性,做不同的分類,特別一提的是,它把Office以及作業系統所使用的圖案,在這裡也列入進來,可以和你以往使用的圖案風格一致。右方則是圖案的清單,此畫面目前顯示的是之前使用過的圖案,這是為了方便你重複選取。

假如你要新增自己的圖案,只要點選上方(Add Directory[Ctrl+A]),即可加入你要的圖案。基本上它讓你選擇目錄,所以建議讀者可將你的圖案檔,統一放在某目錄,這樣便於管理。假如你的目錄不用的話,只要點選該目錄,再點選上方的Remove Directory按鈕,即可移除。

以產品叫修流程為例,對於客戶使用產品發生問題並尋求解決,假如客服當下處理完成,即回報客戶,萬一是產品問題,則回報原廠商處理。讀者可以參考圖4和圖5的範例,圖4是原本BPM顯示的流程圖,將各符號修改後,結果顯示在圖5,就可讀性而言,圖5的可讀性將大幅增加了。


圖4:未修改圖案的產品叫修流程圖。



圖5:修改圖案後的產品叫修流程圖。



OLE automation與VBScript
有不少工作,例如產生報表,寄發給相關人員、或是將最新的資料庫schema利用PowerDesigner匯出成DDL檔案等,都是人工行為,並且需要經常執行,非常繁瑣。假如我們能夠將這些動作自動化,將大幅減低繁瑣的工作,人力因而能更有效運用。PowerDesigner有提供使用OLE Automation或是VBScript的方式,就能做到上述自動化的功能,以下分別說明作法。

OLE automation是一種由外部應用程式來控制PowerDesigner的方法,目前只要能夠支援COM的語言,就可以藉由OLE automation來和PowerDesigner溝通,例如PowerBuilder、C++、VB,甚至Word和Excel的巨集;至於VBScript,是微軟的Script語言,基本上像Java或是C#這類的Script語言,也可以和PowerDesigner來溝通,只是目前PowerDesigner整合在工具內,可以讓你直接撰寫和執行測試的,只有VBScript。

究竟可以和PowerDesigner做哪些溝通呢?筆者列出較重要且實用的功能如下:
●建立和維護模組。
●模組檢查。
●對資料庫和程式執行正反向工程。
●新增或維護模組的延伸屬性(Extended Model Definition)。
●對Repository操作。
●對report產生HTML或是RTF檔案。
●對Workspace的操作和維護。

整個PowerDesigner的模組,都是在所謂的MetaModel架構之上,PowerDesigner特別提供一個MetaModel.OOM(位於%POWERDESIGNER%/examples),用來描述這個架構,你所設計的任何物件,在此模組都可找到相關的屬性和函數,供你參考呼叫。前述的OLE automation和VBScript,就是以這個架構,來和PowerDesigner互動。建議讀者可以先了解PowerDesigner提供Ole Automation和VBScript的程式範例,並同時參考MeatModel.OOM模組,這是學習上最快的道路。相關的範例各包含在PowerDesigner安裝目錄下的/Ole Automation以及/VB Scripts子目錄中。

我們就以圖5的BPM為範例,將此BPM轉換成符合UML標準的Activity Diagram。假設一個企業內有非常多的BPM需要轉換,就可利用OLE automation或是VBScript,寫一個程式來自動轉換,大幅降低重複性的工作。若是以VBScript撰寫,需放置在前述/VB Scripts子目錄內,提供檔案名稱例如BPM-Activity.vbs。讀者可在PowerDesigner內,開啟某BPM,然後找到menu→Tools→Execute Commands→Edit/Run Script,在此視窗執行BPM-Activity.vbs程式。(圖6)


圖6:自動將BPM轉換成Activity Diagram。


OLE automation和VBScript的方式雖然需要撰寫程式,可是筆者強調一點,就是它的應用可以非常多樣,重點在於這些程式是你寫的,所以你要如何應用皆可。例如你可以將讀取的模組寄發email給相關人員,或是自動排程產生報表,並寄出;接下來自動產生最新的資料庫DDL檔案,再交付給DBA;執行物件關聯分析,並將分析結果產生到Excel檔案等,相信聰明的讀者可以想出更多的應用模式。


資源檔案
PowerDesigner不少模組的產生,都有參考所謂的資源檔案(Resources File),若修改這些檔案,將會改變這些模組產生的行為。例如,各種不同的正反向工程,包括資料庫和PDM之間、物件導向程式碼和OOM之間、XML和XML模組,以及流程語言和BPM之間等正反向工程。

另外,報表所使用的語言、報表樣板、模組的延伸屬性以及PD所使用的轉換表(Conversion Table)等,這些全部都會用到資源檔案。可以想見,我們對PowerDesigner不少的操作,事實上都跟這些檔案息息相關,也由於PowerDesigner開放讓我們碰觸這些資源檔案,所以讓PowerDesigner變的非常有彈性。假如我們對這些檔案有適當的了解,這在某些情況下非常有幫助。

PowerDesigner提供一個編輯器讓我們以圖示化的方式來維護這些檔案,只要從menu中的Tools→Resources,然後選擇你要的資源檔案類型即可,這些資源檔案預設都是存放在[%PowerDesigner 15%/Resource Files/]目錄。一般而言,筆者不建議修改。以下有2個應用案例,當遇到此類問題時,可以試著用這個方法解決。

首先請參考圖7,這是AS/400資料庫資源檔被開啟的視窗,類型為DBMS,目前看到的畫面,是停留在Table物件的SqlListQuery屬性。圖7右方說明這是用來列出所有Table物件的SQL查詢命令,而右下方就是一段SQL命令。從這個命令來看,它是對資料庫的systables表格查詢資料,systables表格的資料包含此資料庫目前所有的表格,由此推論PowerDesigner對AS/400資料庫做反向工程時,所產生的Table物件,事實上是經由此段SQL命令查詢而來。

假設我們要對反向工程的規則有所改變,則可以修改此SQL。例如目前所讀取的表格是一般關連性資料庫的表格,要將AS/400的Physical File和Logical File的資料也要讀取出來,則SQL的where子句要將原本的「where table_type='T'」,改成「where table_type in ('T','P','L'),如此就可以將所有類型的資料讀取出來了。


圖7:AS/400的資源檔案。


另外一個常見的範例就是PowerDesigner所產出報表的語言類型(Report Languages),目前PowerDesigner預設有所謂Traditional Chinese的報表語言,可是裡面的慣用口語是大陸的用法,我們也可以利用資源檔的編輯器,開啟Traditional Chinese報表語言後,修改成我們習慣的口語。

參考圖8,目前的位置在[ZH-TW::Report Titles/Physical Data Model/Table/Procedures list],裡面針對Procedure List的描述是「表格%PARENT%的過程清單」,由於我們習慣將Procedure說成「預儲程序」,而非「過程」,所以可以將此段話修改成「表格%PARENT%的預儲程序清單」,更能表達產出報表的涵義。


圖8:Traditional Chinese報表語言的資源檔。



Extended Model Definitions
在某些情況下,PowerDesigner預設的模組,仍無法表達你要的屬性,你可能想要針對某個設計物件,加入自己新的屬性頁面,或是加入新的屬性,以表達你系統的特殊設計,或是既有選項不夠,你希望能加入新的選項,以便爾後維護模組時可以使用。諸如此類的機制,用來擴展既有模組的定義,就是所謂Extended Model Definition的功能。

要擴展模組的定義,你必須建立新的模組定義檔,並且在維護模組的時候,將此定義檔匯入到該模組,該模組才有新的屬性定義可以使用。模組定義檔的副檔名為.xem,建立的方法要從menu中,選擇Tools→Resources→Extended Model Definitions,選擇你要擴展的模組類型後,即可新增一個全新的定義檔案。

這裡我們舉一個範例,說明使用的方式。例如針對Sybase IQ的資料庫,既有的Table屬性,並沒有設定所在的dbspace,所以我們針對Table屬性,定義一個新的延伸屬性,用來定義該Table所處的dbspace位置。我們按照前述的步驟,選擇Physical Data Models的類型,並定義此屬性檔案的名稱為IQSpace,並且將該檔案存放於PowerDesigner,預設定義檔存放路徑%POWERDESIGNER%/Resource Files/Extended Model Definitions目錄。接下來我們新增一個MetaClasses,並選擇Table物件,表示我們要針對Table新增一個屬性,如圖9。


圖9:新增一個Table的Metaclass。


接下來在新增的Table Metaclass,按滑鼠右鍵,新增一個延伸屬性(Extended Attribute),並且將資料型態設定成String,以便輸入dbspace名稱。我們可以參考圖10的設定畫面。


圖10:新增DBSpace的Extended Attributes。


這些屬性設定是針對所有實體資料模組,並沒有限制該模組的DBMS類型,最後也會存回IQSpace.xem檔案。

接下來,我們可以新增一個實體資料模組,按照劇本,DBMS選擇Sybase IQ。由於既有實體資料模組的表格屬性,並無法輸入該表格所在dbspace,所以我們必須匯入IQSpace.xem,用來擴展此模組的屬性,以便輸入表格的dbspace名稱。

我們可以在開啟的實體資料模組,從menu中找到Model→Extended Model Definitions,然後選擇「Import An Extended Model Definition」,將IQSpace.xem選擇進來。接下來,我們開啟任一個表格屬性,將會出現一個全新的頁面,叫做「Extende Attributes」,並且裡面已有一個既有屬性設定,叫做「DBSpace」,如圖11所示。


圖11:Extended Attributes設定。



總結
這篇文章內容較為深入,但是要能善加利用PowerDesigner,一定要往這個方向走。尤其前述所提到的MetaModel,是整個PowerDesigner底層設計的核心,諸如前述提到的OLE Automation和VBScript、Resource File以及Extended Model Definitions,另外像是PowerDesigner檔案類型(XML格式),都是圍繞在這個MetaModel上,所以可以多花時間了解。

使用CASE Tool來進行軟體開發,筆者認為有三個複雜度:一是符號的複雜度,也就是符號解讀要有共識,要能正確,尤其是UML;二是方法論的複雜度,就是要有一套合理、嚴謹的流程,讓軟體的產出具備良好的品質;第三個複雜度就是工具的複雜度,要能夠善用工具,將所設計的藍圖能夠正確的顯示出來。以工具而言,不應該影響前兩者,而是輔助的角色。所以多了解工具可帶來的功能,將能降低前述兩者的複雜度,進而增進專案的品質,這就是此篇文章的目的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PowerDesigner是一款广泛使用的数据建模工具,它能够帮助用户设计、构建、调整和维护企业级应用程序的结构。 PowerDesigner支持多种数据建模标准,如UML、BPMN、ERD等,并且可以与多种关系型数据库和NoSQL数据库进行集成。此外,它还供了自动生成文档、数据字典、数据流程图、数据架构等功能,方便用户进行数据建模和管理。 ### 回答2: PowerDesigner是一种功能强大的数据建模和业务流程建模工具。它供了一个直观易用的界面,支持多种数据建模方法,包括概念模型、逻辑模型和物理模型。通过PowerDesigner,用户可以以图形化的方式设计和管理数据库结构,包括表、列、关系等。同时,它还支持自动化生成数据库脚本,供了一种方便的方式来创建和维护数据库。 除了数据建模功能,PowerDesigner还具有业务流程建模的能力。用户可以使用PowerDesigner来创建和管理各种业务流程图,包括流程图、活动图、用例图等。这些流程图可以帮助用户理解和优化业务流程,并供了一种可视化的方式来展示和交流。 PowerDesigner还支持与其他工具的集成,例如数据库管理系统、代码开发工具等。用户可以通过PowerDesigner来直接连接到数据库,执行查询和修改等操作。此外,PowerDesigner还可以生成各种代码,包括数据库表的创建和修改语句、业务流程图的执行代码等。 总的来说,PowerDesigner是一个功能强大的数据建模和业务流程建模工具,供了丰富的功能和易于使用的界面。它可以帮助用户更有效地设计和管理数据库结构,优化业务流程,并与其他工具进行集成,高工作效率。 ### 回答3: PowerDesigner是一款开发和设计软件的工具,可用于帮助开发人员、数据库管理员和企业架构师在软件开发和数据库设计过程中的各个阶段进行建模和设计。 PowerDesigner可以支持多种开发技术,包括对象关系型数据库、数据仓库、企业应用、业务流程、数据流和UML等。它供了一套丰富的工具和功能,可以帮助用户进行数据建模、流程建模和系统建模等任务。 在数据建模方面,PowerDesigner可以帮助用户根据需求分析和业务规则设计数据模型,包括实体关系图、类图和层次图等。用户可以通过图形界面轻松地创建、修改和管理数据模型,同时可以生成相应的数据库脚本以及其他相关文档。 在流程建模方面,PowerDesigner可以帮助用户设计和分析业务流程图,包括流程图、活动图和状态图等。用户可以使用可视化工具绘制流程图,并进行模拟和分析,以便优化业务流程。 在系统建模方面,PowerDesigner可以帮助用户设计和管理软件系统的体系结构和组件。用户可以使用UML工具来建立复杂系统的各个组成部分,并对其进行可视化和文档化。 总之,PowerDesigner是一款功能强大的软件建模和设计工具,可以帮助用户在软件开发和数据库设计过程中进行各种建模和设计任务,高开发效率并降低错误率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值