閱讀屋>計算機軟體> 計算機軟體複用的探討

計算機軟體複用的探討

關於計算機軟體複用的探討

  計算機軟體作為一門學科得到了迅速發展,相關技術和方法層出不窮,研究領域不斷深入和發展,計算機的應用範圍也得到了很大程度的普及,人們對軟體系統的需求急劇上升,隨之而來的軟體規模越來越大,開發費用越來越高,開發的質量和效率不斷降低的問題日益嚴重,如何解決這些日益複雜的矛盾,滿足高質量、高效率地開發各種各樣日趨複雜、大型的軟體系統的需求,消除所謂的“軟體危機”,成為計算機軟體學科所面臨的重要課題

  軟體複用技術的提出成為消除這種危機的一種解決方案。近年來,特別是20世紀90年代以後,面向物件方法和技術成為主流的軟體開發技術,使得軟體複用被視為解決軟體危機一條現實可行的途徑。與此同時,模型構件技術、分散式系統、領域工程、自動生成技術又為軟體複用注入了新的活力,本文對面向物件系統分析階段軟體複用模型進行了研究和探討

  一、軟體複用?

  軟體複用的概念是在1968年NATO軟體工程會議上被第一次引入的,在其後的幾十年中,進行了許多複用技術的研究和實踐活動,但因技術和非技術方面的種種因素,造成複用技術在整體上對軟體產業的影響不盡人意。面向物件方法和技術的出現及成熟,為軟體複用提供了強有力的技術支援,尤其是軟體構件技術的發展為其注入了新的活力,使得軟體複用研究重新成為熱點,被視為解決軟體危機、提高軟體生產效率和質量的一個現實可行的途徑,同時也成為了避免軟體開發中重複勞動的解決方案,並在一定程度上降低了軟體開發的費用。目前,軟體複用技術主要從兩個方面來考慮:產品複用、過程複用。

  產品複用:所謂產品複用是指複用已有的軟體產品。目前基於構件的和麵向服務的軟體開發模式就是建立在這種軟體複用的基礎上的。這兩種開發模式主要透過對現有的'構件和服務進行合成或整合,從而生成所需要軟體的過程。產品的複用是目前軟體複用技術研究的焦點,在這個複用的過程中涉及到的關鍵技術是構件技術和軟體架構技術,在成熟的構件和架構的技術上,可以使產品複用達到良好的效果

  二、面向物件系統分析(OOA)階段軟體複用模型?

  1.OOA階段可重用性的本質?

  程式設計階段不同型別的程式設計軟體和類有不同深度的可重用性:高深度、中深度、低深度

  所謂高深度重用是指在不進行任何改變就可以直接使用重用產品的重用,像視覺化開發工具中的所有控制元件,就屬於這方面的重用;目前,面向服務的軟體開發技術中對服務的重用,只要程式設計師獲得服務者提供的介面,就可以直接使用別人開發的產品,這種複用也是高深度的複用技術,因此高深度的軟體複用,可重用性最好;所謂中深度的重用,程式設計師可以根據自己的開發經驗,開發出一些比較通用的元件,在具體的使用中,對這些通用的元件只要稍作修改就可以應用於具體的專案中去,這種複用可重用性較好。當然,對於低深度的可重用性就於具體的專案相關,它只能侷限於該專案,可重用性最差。由此可見,可重用性與業務邏輯的相關性是成反比例關係的:越是與業務邏輯無關的重用,重用性越好;反之則越差

  2.OOA階段軟體複用模型研究?

  OOA階段的軟體複用,在一定程度上可以說是建立在許多優秀的系統分析員實踐和經驗基礎之上的複用,是一種思想上的複用。在這個階段的軟體複用更具有通用性和重用性,因此,構造這個階段的軟體複用模型,可以使複用達到更好地效果

  3.正規化抽象?

  所謂正規化就是抽象的解決方案模板,它可在不同具體專案中使用。正規化抽象就是在此基礎上提出的對正規化的設計方法。針對不同的問題域,就應該有與之對應的設計方法,這樣可以使正規化的設計達到很高的重用性。針對OOA階段具體現狀,有三種正規化抽象方法:

  (1)關係抽象。

  在OOA階段,針對具體的專案,會分析出大量的關係模型。例如在學校排課表系統中,需要定義教師類,它包括教師姓名、性別、職稱等有關教師的基本資訊,同時,為了便於教師很快得出自己的上課表,還需要定義一個與教師對應的教師課表類,這個類顯示了一週中教師的課程安排情況;在網上購物系統中,需要定義一個購物者類,包括了購物者的相關資訊,同時為了得到購物者所購的物品,還需定義一個購物車類,該類描述了購物者與所購買的物品的對應關係。這兩個系統的具體業務是不同的,但教師類與教師課表類、購物者類與購物車類的關係卻是基本相同的,都是一個實體對另一個實體的擁有關係,同樣,所進行的操作也基本相同,諸如都涉及到對所擁有實體的查詢操作等。因此可將這種關係抽象出來,定義為擁有關係,然後在此關係的基礎上定義相應的操作。這種關係就可以以正規化的形式儲存起來,在不同的專案中都可重用這種正規化。同樣,還可抽象出許多其他的關係正規化,如實體——內容關係,上下級關係等。這些關係都是不依賴於具體的專案和業務的,可重複使用,只是在針對具體的業務時,在相關屬性和方法上稍作修改就可以了。

  (2)相似物件抽象。

  在不同專案的OOA階段,還會分析出大量的相似物件或類,例如使用者、使用者組、角色、許可權等在所有涉及到許可權管理的系統中都會出現這類物件;在一些相同領域的專案中,由於涉及的領域的標準化,有些物件的相似性以及相同的機率會更大。對於這些相似程度如此大的物件來說,由於其在專案開發中的相對獨立性,把這些物件模型以正規化的形式儲存起來會使分析的結果得到更大的重用

  按照上述思想進行的正規化抽象稱為相似物件抽象,這種抽象依據的是分析階段的物件模型,這種物件模型具有獨立的、高度的相似性,抽象出來的正規化可稱為物件正規化。這種正規化與具體專案之間的相似可稱為表面相似性。表面相似越接近,正規化的重用性就越大

  (3)領域抽象。

  所謂領域抽象是用於某一領域的抽象問題的解決方案。在同一個領域的專案開發過程中往往能夠總結出更多的相似性,包括關係相似性和表面相似性,將二者相結合,可構建出與行業有關的構件。這種構件是建立在具體領域上的一種抽象,稱為領域抽象。領域抽象的過程可藉助領域工程的知識和方法。其中在OOA階段主要用到了領域分析的方法。所謂領域分析是被稱為領域工程更大的學科中的第一項技術活動。當業務、系統或產品域被定義為長期的業務策略,則可以展開持續的建立強健的可複用庫的工作,其目標是能夠在領域中以非常高的可複用構件率來建立軟體。領域分析在領域抽象過程的作用是從OOA得出的物件、關係、行為模型的抽象出與領域相關的領域正規化,其中包括關係正規化、相似物件正規化和處理過程正規化等。這些正規化與前面提到的正規化唯一不同就是有了特定領域的標識,這在同一領域的開發中將達到高度的重用性

  三、總結

  本文透過對軟體複用技術的分析,提出了一種面向物件系統分析階段軟體複用的模型,並對此模型中所涉及到正規化抽象方法做了探討,並把它們應用於具體的專案中去,從而很好地利用的設計思想,大大提高了專案的完成速度。另外,對於正規化庫的研究也為建立在高層上的軟體複用庫管理提出了新的研究課題:例如對於編碼階段複用構件庫的檢索條件也可以擴充套件為以正規化為索引的檢索等。這些都成為下一步的研究課題。

【計算機軟體複用的探討】相關文章: