- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
再利用的設計 以可再利用的元件建構軟體 本章目的 瞭解軟體元件再利用的好處以及可能產生的問題。 瞭解可再利用的不同類型元件與再利用的設計程序。 瞭解應用程式系列產品是軟體再利用最有效的應用。 瞭解模式(pattern)如何成為高階的抽象表示,並且在物件導向開發中提升設計的再利用。 本章內容 元件開發 應用程式系列產品 設計模式 軟體再利用 在大部分的工程領域中,系統的設計都是由一些已經在其他系統使用過的元件組合而成。 軟體工程在過去大都著重於原始的開發方式,現在卻致力於建構出更好、速度更快、價格更便宜的軟體,所以必須採用以系統化再利用(systematic reuse)為主的設計程序。 以重複利用為主的軟體工程 應用系統的再利用 整個應用程式系統可能都可以再利用,不用做任何改變就可以納入其他系統(如COTS產品的再利用),或是開發應用程式系列產品時的再利用。 元件再利用 應用程式的元件從子系統到單一的物件都可以拿來再利用。 功能再利用 被製作成單一功能的軟體元件也可以拿來再利用。 再利用的實踐 應用系統的再利用 被廣泛運用的軟體系統通常會被實作成應用程式的系列產品(application families),例如COTS產品的再利用就越來越普遍。 元件再利用 以元件為主的軟體工程被視為是有效而普遍的再利用方式,但這種方式的發展卻還不夠成熟。 功能再利用 常見於一些應用領域(例如,工程領域),這些領域都已經建立了可再利用功能的專門領域知識庫。 再利用的好處 增加可靠性 元件可以直接運用在實際運作的系統 降低處理風險 降低開發成本的不確定因素 有效的利用專家 重複利用元件而不是專家 符合標準 可再利用的元件以內含標準 加速開發 避開原始的開發方式,加速產品的問市 以再利用方式進行軟體設計的需求 必須找到適當的可再利用元件。 必須讓使用可再利用元件的使用者有信心,讓這些元件依指定的方式執行並且具可靠性。 所有元件都必須有相關的文件說明,以幫助使用者了解這些文件的用法並且做適當的修改。 軟體再利用的相關問題 增加維護成本 缺乏支援工具 非自創症候群(Not-invented-here syndrome) 元件庫的維護 找尋與改寫可再利用元件 以產生器為主的再利用 程式產生器包含標準模式和演算法的再利用 這些都內含在產生器,然後以使用者指令做參數設定,程式因此可以自動產生。 以產生器為主的再利用只有在該領域的抽象化和對應的可執行碼被識別出來時才有可能。 使用特定領域的語言可以構成及控制這些抽象化。 程式產生器的類型 程式產生器的類型 商業資料處理系統的應用程式產生器 語言處理系統的剖析器產生器 CASE工具集的程式碼產生器 以產生器為主的再利用是非常符合成本效益的,但是它的適用性卻僅限於幾個應用領域。 與其他元件式再利用的方式比較,終端使用者可以很容易的使用產生器來開發程式。 以產生器為主的再利用 元件式開發 元件式軟體開發工程(CBSE)是一種仰賴再利用的軟體系統開發方式。 它的產生是由於物件導向開發方式未如預期的對軟體再利用有很好的效果。物件導向中的每一個物件類別都太過詳細且特定。 元件則比物件類別更為抽象,而且它可以被視為獨立的服務提供者。 元件(Components) 元件可以提供服務,不管該元件是在何處執行或是使用哪一種程式語言開發 元件是一個獨立的可執行實體,它可以由一個或多個可執行的物件所組成。 元件會對外開放他們的介面,而且所有的互動都是透過公開的介面來進行。 元件可以是小至簡單的函數大至整個應用程式系統 元件介面(interface) 元件介面 提供介面(Provides interface) 定義元件提供給其他元件的服務 需求介面(Requires interface) 指定使用此元件的系統應該提供的服務 列印服務元件 元件抽象化 功能性抽象(Functional abstraction) 元件只實作一個單一功能,例如一個數學函數。 隨意編組(Casual groupings) 元件是由一群關係鬆散的實體所組成, 這些實體可能是資料宣告或函式等。 資料抽象(Data abstraction) 元件代表物件導向程式語言中的一個資料抽象化或是類別。 叢集抽象(Cluster abstraction) 元件代表一起運作的相關類別所成的群組。 系統抽象(System abstraction) 元件是一個完全自給自足的系統。 CBSE的程序 元件式開發可以藉由將一個再利用活動加入到程序中的方式與標準的軟體系統程序做整合。 不過以可再利用的方式進行開發時,系統需求必須針對元件做修改,才能讓元件使用。 元件式軟體開發工程(CBSE)的程序通常包含一個雛形化或增量式的開發程序,而程式庫中被引用的元件通常會使用 scripting
文档评论(0)