Booch

Booch

Booch方法是早期面向對象的軟體開發方法的一種,Booch認為軟體開發是一個螺旋上升的過程,每個周期包括4個步驟,分別是標識類和對象、確定類和對象的含義、標識關係、說明每個類的接口和實現。Booch方法的開發模型包括靜態模型和動態模型,靜態模型分為邏輯模型(類圖、對象圖)和物理模型(模組圖、進程圖),描述了系統的構成和結構。動態模型包括狀態圖和時序圖。該方法對每一步都做了詳細的描述,描述手段豐富而靈活。

Booth不僅建立了開發方法,還提出設計人員的技術要求,以及不同開發階段的人力資源配置。Booch方法的基本模型包括類圖與對象圖,主張在分析和設計中既使用類圖,也使用對象圖。

Booch方法是在UML出現之前比較普及的一種面向對象的軟體設計方法,它包括一個很像UML的圖示語言。如果不仔細看,不好看出一個圖是Booch還是UML。與Booch方法同時存在的,還有至少10種類似於UML的圖示語言、設計方法論等等。UML將這些圖示語言統一了起來,而沒有提及方法論,從而使UML成為一種為所有人都能接受的圖示語言,同時適應於各種的設計方法論。

基本介紹

  • 中文名:Booch
  • 面向:對象的軟體開發方法的一種
  • 認為:軟體開發是一個螺旋上升的過程
  • 包括:4個步驟
模型要素,對於升級需要,根本變化,進行全局審視,低劣質量終結,開發者聖杯,UML,其他,

模型要素

Booch方法所採用的對象模型要素是:封裝、模組化、層次類型、並發。重要的概念模型是類和對象、類和對象的特徵、類和對象之間的關係。使用的圖形文檔包括六種:類圖、對象圖、狀態轉換圖、互動圖、模組圖和進程圖。
自公司從1980年建立以來,Grady Booch就是主要理論軟體科學家。它是統一模型語言(UML)的最初開發者之一。因此,他在從事程式語言、工具和方法論——從機器語言和部件語言,COBOL and FORTRAN 和 ADA 到 C, C++ 和 Java——的不斷發展中,地位是特殊的。
現在,由於微軟要利用它的.NET推動開發世界更進一步發展,使其進入一個分散式Web服務的世界,Rational自然就來填充空隙,並為提供開發人員用於最大限度地利用Web服務模型的工具。
微軟有雄心的NET初步行動提供了很多開發人員用於建立Web服務的基本工具。這包括NET框架,通用語言運行時,一套類庫,新的C#程式語言,一個名為Visual Studio .NET的新版本的微軟集成開發環境和語言。

對於升級需要

但是儘管微軟為初步行動提供了工具,但這決不意味著開發人員向前發展需要所有的工具。為什麼呢?因為隨著世界轉向一個高度分散式的模型,應用程式的靈活性不斷增長,開發人員需要能跨網路中許多計算機擴展的工具。
“.NET將改變你的生活,因為它實際上代表了另一種開發應用程式的方式。” Booch說,“過去的情況是,考慮大的企業系統銀行系統或零售系統,開發團隊必須將所有事物建立在他們自己的作業系統上。”
這就是說,開發人員必須不斷地將程式和管理資源用於編寫所需基本架構的定置部分。中間件和傳輸層技術如COM和COM+簡化了這些技術的複雜性,但開發人中仍需知道這些技術是如何工作的。
.“NET所提供的實際上是那些通過類型服務的規範代碼,每個企業應用程式以一種最終開發者易於獲得的方式使用和交付這些服務。.NET為應用程式構建者提升了抽象層次,使他們能夠在過去必須由自己創建的基礎上進行構建。” Booch說,“這是一個好事情,因為他們現在能將精力集中到能增加價值的事情上及他們具有經驗的領域中,而不必構建所有的基本架構。”
然而,在微軟的基本架構和工具與開發人員創建下一代應用程式的實際需求間仍存在差別。“在過去如果沒有上萬也有上千的項目中,我們的經驗是,要獲得最好的實踐…可視化模型,控制變化等等…,這就是我們工具實際存在的地方。”
在這方面,自從.NET 出現以來,Rational在大約15個月的時間裡作出過一系列關於它與微軟的工具進行高度集成的聲明。上個春天,Rational就宣布它的所有開發周期工具實際上已經集成到了Visual Studio. NET中,這包括需求分析,可視化模型,修改和配置管理及測試。
在Visual Studio .NET的ß版本中已經可以使用Rational's Quantify®的性能造型和PureCoverage®的代碼覆蓋和測試工具了,在將來的發行版本中它們也將包含進IDE。該公司已經宣布Rational Suite也將支持.NET。

根本變化

然而,移植到Web服務模型並不只是減少對於你自己架構的需求,增加抽象性和複雜性。應用程式從用戶桌面轉向網際網路這種做法,最終會開發過程發生根本變化。
例如,由於提供所謂“聯合”服務——應用程式由運行在不同伺服器端上的組件構成,甚至由不同的開發商提供——的伺服器經常位於地理位置不同的地方,對於開發者情況也經常是這樣。經常一個虛擬開發小組位於不同位置、不同時區。至少,這使得安排和管理會議非常困難。因此,有必要發展協作工具,以處理這些差異。
另外,在新的環境中開發應用程式不僅增加了對開發隊伍的需求,就開發隊伍而言,也需要工作一致。
“在你開始了解.NET後,由於連續的變化,你會感到它相當複雜,並且連續的變化意味著你將獲得一個以不同速率變化的以Web為中心的應用程式。” Booch說,“接口部分,中間件部分,後端部分都將以不同速率變化。這就意味著,在開發周期中,你必須同時做多件事,必須同時擁有多個穩定的發行版,特別是當你的客戶基礎相當大時。這就是說,測試過程、發行過程及整個(應用程式開發)過程互相交疊。”
“事實上,微軟的工具是相當優秀的,但我們已有的經驗沒有必要擴展到人們實際上遇到的那樣大的應用程式。” Booch說,“Visual Studio .NET將彌補之間的差別,但是,只有微軟的集成開發環境和Rational的工具相結合,開發人員才能獲得用於成功的企業級能力。”
一套完整的開發周期管理工具需要滿足所有這些要求。Booch強調了一些他認為最重要的Rational的工具。
“Rational ClearCase是一個擴展的非常好的配置管理工具。當你處理大型應用程式,特別是構建於.NET 上的應用程式時,Rational ClearCase是處理多個發行版、持續變化的理想平台,而持續變化是這個領域的遊戲名” Booch說。

進行全局審視

除了配置管理,他還認為需要為單個開發者提供用於使他們理解如何才能與計畫協調的途徑。一個重要產品是公司初次發行的UML可視化模型工具——Rational Rose。“如果我考慮一個分布應用程式——盯住一小段c#代碼,它將告訴我一些局部的東西,但我不會獲得任何這段特定代碼片段和分散式應用程式的整體行為。因此我必須進行一定程度的提取,這使我求助於UML。”
實際上,UML 和 Rational Rose已經結合在一起了,以為整個系統設計提供重點,特別是當大型應用程式包含運行在網路中所有設備上的組件時,兩者相結合尤為重要。
“單個人很容易只關心對局部的最佳化,但是在分散式環境中,對局部作出的決定必須對全局產生影響。最好的做法是,首先擁有結構處理過程,即用於進行構建的拓撲,生存的環境,以及聯結各個部分的基本機制,並且建立特殊的體系結構,並將它交付給可以作出明智局部決定的應用程式開發者。”
這樣,UML自然就成為了.NET應用程式開發中的主要推動力,因為它支持同一系統許多不同的視。
“當考慮更複雜的問題時,我讓更多股東從事系統自身的開發,他們每個人的視都與其它人不同,而有一種通用語言讓這些股東相互通訊。通用語言就是UML,當然,Rational Rose是幫助團隊使用UML進行工作的工具。” Booch說。

低劣質量終結

當然,UML 和 Rational Rose,用於可視化模型的工具,而只是整個開發周期的一部分,在Rational的其它產品線中已經反映出了這種觀點。例如,Rational RequisitePro提供了一種定義、調整和跟蹤應用程式需求的方法。在過去,將一組非常聰明的人集合在一起,匆匆拼湊Excel數據表格去跟蹤應用程式的需求,這種做法曾經受到過懲罰,但分散式應用程式,包括.NET,開發的巨大複雜性使得質量低劣的方法不再有效。
“事實上,在缺乏人力資源和經濟資源的情況下,對構建進行定義,及其優先權與智力進行交換就越來越重要,因此,象Rational RequisitePro之類的工具使你有辦法對正在建立和獲得的項目作出明智的企業決策。” Booch增加道。

開發者聖杯

然而,Rational對於.NET和Web服務的貢獻超出了面向產品的範疇。公司與它的很多夥伴,包括微軟和IBM,一直在從事稱為“可重用資產細則”(即RAS)的設計。其目的是使面向對象的編程及經過了二十年開發者和供應商才了解的組件重用性成為現實。
“其原因是在應用程式中存在很多可重用的部分。RAS告訴你如何通過UML對它們進行描述,因此它只是用於表示複雜系統中不同結構部分的基本規則。” Booch說。一旦完成,公司將把RAS交給對象管理小組——也是檢查UML的標準化組織。“我們考查人們在如.NET之類的平台上進行構建的通用機制,並將它們做成規範,交付給客戶,這樣他們就能加速建立他們的真實系統。”

UML

這些活動的中心當然是UML。而且,隨著它在方案中的地位越來越重要,它是否有可能成為被.NET框架的CLR(通用語言運行時)所支持的語言?
儘管Booch拒絕對產品計畫細節作評論,但他沒有停止過對其計畫的介紹。“現在我們能夠通過Rational Rose的實時產品從狀態設備中生成代碼。在非實時情況下這樣的事情是不是也有可能呢?完全可以。我們見到過客戶採用序列圖表和其它相似的東西——它們表示系統行為的執行緒,並依靠它們生成代碼。”
雖然對將來的產品沒有做詳細描述,但可以肯定的是:隨著微軟交付.NET,Rational意將提供用於設計、構建、測試和擴展分散式的基於Web的應用程式的工具。

其他

Stuart J. Johnston西雅圖一位成功的技術新聞記者,他寫過很多關於微軟產品的文章。最近,他與人合作了一本關於微軟.NET的電子書。他為InfoWorld, Computerworld, Information Week, PC World XML Magazine工作過,為DevX寫過文章。他為PC World的“缺點和修正”專欄供稿,為Information Week的“鑽石表”專欄供過四年稿。

相關詞條

熱門詞條

聯絡我們