軟件架構理論與實踐》 —3.4 其他建模方法

      網友投稿 525 2025-03-31

      3.4 其他建模方法

      3.4.1 文本語言建模方法

      文本語言建模即通過文本文件描繪架構[69-70]。文本文件通常需要符合某些特殊的句法格式,就像.c和.java文件分別需要符合C語言和Java語言規范一樣。(當然,架構決策也可以用自然語言進行文檔化,這種情況下建模需要受到該語言的語法和拼寫規則等的限制。)

      針對只由一個組件—Web瀏覽器構成的Web客戶機,圖3-25和圖3-26顯示了兩種對其架構進行描述的方法。其中圖3-25使用了xADL本身的XML文本建模,圖3-26使用了xADLite文本建模。這是一個應用不同文本建模方法來描述同一模型的例子。使用XML文本建模方法具有易讀性和易操作性,并且可以用XML工具進行句法驗證。而xADLite文本建模方法在描述同一模型時,在閱讀性方面做了優化。

      圖3-25 XML文本建模方法

      使用文本語言建模有如下優勢:它可以在單個文檔中描述整體架構,并且存在眾多文本編輯器以方便用戶與文本文檔的交互。由于對結構化文本的語法分析、處理和編輯等相關技術的研究已經持續數年,當使用一種元語言(如BNF(Backus-Naur Form))來定義文本的句法時,許多工具能夠生成程序庫來對使用該語言的文本文檔進行句法分析和檢查。許多編輯器附帶額外的開發支持工具,如當用戶輸入時可實現自動補全或語法檢查等。

      圖3-26 xADLite文本建模方法

      然而文本語言建模也有如下問題:文本符號可以很好地描述線性和層次結構(例如在C語言和Java語言中,線性順序可用從上至下的行表示,層次結構可用括號和縮進表示),然而用文本語言建模方法表示類圖結構不易理解。另外,文本編輯器通常限于顯示連續滿屏的文本,很難以其他方式組織文本(也有一些環境允許代碼折疊,使得用戶可以將某個文本塊限制在一行之內)。

      文本語言建模方法不僅要能夠描繪模型,也要方便用戶與模型之間的互動,如編輯、修改等,一般來說可使用一個普通的文本編輯器或字處理器,也可使用專門的工具或平臺。為了使文本更易閱讀和理解,原始的方法是使用分隔符、空白符和換行符等使得程序結構更加突出。另外還有一些裝飾方法,如可以使用不同的字形、字體和顏色(例如,關鍵字用粗體表示,評論用斜體表示,不同字體大小表示不同的嵌套等級等),還可以使用表格或提綱。文本語言建模方法中一些先進的機制有語法高亮顯示、文本的靜態檢查、自動補全、代碼折疊等。

      1.語法高亮顯示

      語法高亮顯示是文本編輯器在顯示文本尤其是顯示源代碼時的重要特性之一,它根據不同類型顯示不同的顏色和字體[69]。這一特性使得編寫結構化語言如程序語言或標記語言時,其結構錯誤和語法錯誤能夠明顯區分開來。高亮不會影響文本本身的含義,它僅僅方便相關人員的閱讀和編輯。

      2. 文本的靜態檢查

      靜態程序分析是指在不實際執行程序的情況下對計算機軟件進行分析(在執行程序過程中的分析被稱為動態分析)[70]。大多數情況下是通過源代碼進行分析,然而在某些情況下也會根據目標代碼進行分析。該術語通常指自動化工具的分析,人工分析被稱為程序理解或代碼審查。

      3. 自動補全

      許多工具,如Web瀏覽器、電子郵件程序、搜索引擎接口、源代碼編輯器、數據庫查詢工具、文字處理軟件、命令行解釋器等,都提供自動補全這一功能。一般的文本編輯器也逐漸集成這一功能。自動補全需要程序在用戶沒有完全輸入時已能夠預測用戶想要輸入的單詞或短語。當可以根據輸入記錄來預測當前輸入的詞語時,這一特性是非常有效的,如只有有限個可用的或常用的短語(常出現在電子郵件程序、Web瀏覽器或命令行的解釋器等情況中),或輸入的文本是高度結構化并易于預測的語言(例如在源代碼編輯器中)。文本編輯器可根據一種或多種語言的單詞列表進行預測。許多自動補全程序在用戶輸入某個單詞若干次后會自動學習。許多自動補全的程序都能夠在學習新單詞后(如用戶寫了幾次之后),基于個人用戶的學習習慣提出其他建議。自動補全或單詞預測均可加快書寫速度,非常適合使用環境中的人機交互。

      《軟件架構理論與實踐》 —3.4 其他建模方法

      4.代碼折疊

      代碼折疊是文本編輯器、源代碼編輯器以及集成開發環境(IDE)的一個特殊功能,允許用戶選擇性地隱藏和顯示當前編輯的文件的某些部分。它允許用戶在任意時刻管理大量文本的同時只需要關注那些相關文本。這一特性有利于開發人員管理源代碼文件。區別于文本折疊,代碼折疊還需要遵循相關標記語言或程序語言的句法。

      軟件開發 架構設計 軟件

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:90度旋轉插入圖表(如何旋轉圖表)
      下一篇:w10系統怎么保存到u盤里
      相關文章
      亚洲男人电影天堂| 亚洲精品自产拍在线观看动漫| 亚洲成AV人片久久| 久久亚洲伊人中字综合精品| 亚洲日产无码中文字幕| 国产国拍精品亚洲AV片| 亚洲欧洲日产国码一级毛片| WWW亚洲色大成网络.COM| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲av永久中文无码精品| 亚洲AV无码专区国产乱码不卡| 亚洲精品欧美综合四区| 亚洲AV香蕉一区区二区三区| 亚洲heyzo专区无码综合| 婷婷国产偷v国产偷v亚洲| www.91亚洲| 亚洲国产一区二区视频网站| 亚洲精品乱码久久久久久不卡 | 亚洲人成电影福利在线播放| 亚洲短视频男人的影院| 97久久精品亚洲中文字幕无码| 亚洲色图视频在线观看| 91亚洲自偷在线观看国产馆| 久久精品亚洲AV久久久无码| 亚洲人成www在线播放| 亚洲色无码专区一区| 亚洲AV无码成人精品区狼人影院| 精品亚洲国产成人av| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产亚洲人成网站在线观看| 国产性爱在线观看亚洲黄色一级片 | 亚洲综合激情另类专区| 在线A亚洲老鸭窝天堂| 亚洲AV永久无码区成人网站| 久久亚洲AV成人无码软件| 亚洲1234区乱码| 国产偷国产偷亚洲高清人| 亚洲午夜福利精品久久| 亚洲va久久久噜噜噜久久天堂| 精品日韩亚洲AV无码| 国产午夜亚洲精品|