天天看點

面向對象的軟體工程應用淺研

來源:http://www.biyelww.com/

 

  【摘要】随着面向對象研究的不斷深入,面向對象技術的應用越來越廣泛,面向對象的思想被應用到許多不同的領域。在介紹軟體工程方法的基礎上分析了面向對象的軟體工程方法的分析技術、設計及軟體開發方法,進而說明了面向對象技術貫穿于軟體開發的全過程。

【關鍵詞】軟體工程;面向對象;軟體開發

  1.軟體工程的定義

  軟體工程是指導計算機軟體開發和維護的工程學科 采用工程的概念、原理、技術、方法來開發與維護軟體,把經過時間考驗而證明正确的管理技術和目前能夠得到的最好的技術方面結合起來.經濟地開發出高品質的 軟體并有效地維護它.這就是軟體工程軟體工程運用計算機科學、數學及管理科學等原理.借鑒傳統工程的原則、方法,建立軟體以達到提高品質、降低成本的目的 其中,計算機科學、數學用于構造模型與算法,工程科學用于制造規範、評估成本及确定權衡,管理科學用于計劃、資源品質、成本等管理。

  2.軟體工程方法的流程

  2.1軟體計劃

在設計任務确立前.首先要進行調研和可行性研究.了解工作範圍和所花費的代價.然後做出軟體計劃。

2.2軟體需求分析

對使用者要求進行具體分析.确定使用者要求軟體系統做什麼.并用軟體需求規格說明書表達出來.作為使用者和軟體人員之間共同的約定。

2.3軟體設計

根據需求說明建立軟體系統的結構.包括資料結構和子產品結構。這部分又分為總體設計和詳細設計兩個階段。

2.4軟體編碼

按軟體設計的要求為每個子產品編寫程式。

2.5軟體測試

發現和排除程式中留存的錯誤.經過測試排錯.得到可傳遞運作的軟體。軟體測試又分為單元測試和綜合測試兩個階段。

2.6軟體維護

經過測試的軟體仍然可能有錯.另外 使用者的需求和系統的操作環境也可能發生變化,是以,傳遞運作的軟體仍然需要繼續排錯、修改和擴充.這就是軟體的維護。

 3.面向對象的軟體工程方法

  3.1面向對象的軟體工程方法的定義

面向對象技術(OO)是一個非常實用而強有力的開發方法。它是為了提高軟體系統的穩定性、可修改性和可重用性創造出來的一種軟體工具,具有方法的唯一 性、高度連續性等特性,并把面向對象分析、面向對象設計和面向對象程式設計內建到軟體生存周期的相應階段面向對象的軟體工程(OOSE)自上至下、自始至終地 貫徹面向對象思路,可以用于系統分析、系統設計、程式設計.也可以用于其他環境的開發.如資料結構設計、資料庫設計等。

3.2面向對象的軟體工程方法的特征和要點

面向對象軟體工程方法的出發點和基本原則.是盡可能模拟人類習慣的思維方式.使開發軟體的方法與過程盡可能接近人類認識世界解決問題的方法與過程.也 就是使描述問題的問題空間(也稱為問題域)與實作解法的空間(也稱為求解域)在結構上盡可能一緻,是以,面向對象方法有以下的基本特征:

(1)封裝性:對象是資料和有關操作的封裝體。

(2)繼承性和類比性:在對象繼承結構上.下層對象繼承上層對象的特征屬性和操作。不同的對象具有某些相同的屬性時.常常把它們歸并成一類。

(3)動态連接配接性:對象和對象之間所具有的一種統一、友善、動态地連接配接和傳遞消息的能力與機制 動态連接配接性便于在概念上展現并行和分布式結構。

(4)易維護性:任何一個對象都是把如何實作對本對象功能的細節隐藏在該對象的内部。這就增強了對象和整個系統的易維護性。

概括地說.面向對象方法具有下述四個要點:

(1)把對象作為融合了資料及在資料上的操作行為的統一的軟體構件。面向對象程式是由對象組成的.程式中任何元素都是對象.複雜對象由比較簡單的對象組合而成。

(2)把所有對象都劃分成類。每個類都定義了一組資料和一組操作,類是對具有相同資料和相同操作的一組相似對象的定義。資料用于表示對象的靜态屬性.是對象的狀态資訊 而施加于資料上的操作用于實作對象的動态行為。

(3)按照父類(或稱基類)與子類(或稱派生類)的關系,把若幹個相關類組成一個層次結構的系統(也稱類等級)。在類等級中.下層派生類自動擁有上層基類中定義的資料和操作.這種現象稱為繼承。

(4)對象彼此之間僅能通過發送消息互相聯系。對象與傳統資料有本質的差別,它不是被動地等待外界對它施加操作,相反,它是進行處理的主體.必須向它發消息.請求它執行它的某個操作以處理它的資料.而不是從外界直接對它的資料進行處理。

3.3面向對象模組化

為了更好地了解問題.人們常常采用建立問題模型的方法 通常.模型由一組圖示符号群組織這些符号的規則組成.利用它們來定義和描述問題域中的術語和概念。更進一步講.模型是一種思考工具.利用這種工具可以把知識規範地表示出來。

用面向對象方法開發軟體.通常需要建立三種形式的模型.它們分别是描述系統資料結構的對象模型.描述系統控制結構的動态模型和描述系統功能的功能模 型、這三種模型都涉及資料.控制和操作等共同的概念.隻不過每種模型描述的側重點不同。這三種模型從三個不同但又密切相關的角度模拟目标系統.它們各自從 不同側面反映了系統的實質性内容.綜合起來則全面地反映了對目标系統的需求3.4面向對象軟體開發方法的幾個階段實際上.用面向對象方法開發軟體時,階段 的劃分是十分模糊的.通常在分析、設計、實作等階段問多次疊代。

(1)面向對象分析。面向對象分析(通常縮寫為OOA).就是抽取和整理使用者需求并建立問題域精确模型的過程。面向對象分析的關鍵,是識别出問題域内 的對象,并分析它們互相間的關系,最終建立起問題域的簡潔、精确、可了解的正确模型。在面向對象分析中,主要由對象模型、動态模型和功能模型組成。在用面 向對象觀點建立起的三種模型中.對象模型是最基本、最重要、最核心的。

(2)面向對象設計 從面向對象分析到面向對象設計(通常縮寫為OOD)是一個逐漸擴充的過程 或者說.面向對象設計就是用面向對象觀點建立求解域模型的過程 面向對象設計可再細分為系統設計和對象設計。系統設計确定實作系統的政策和目标系統的高層結構。對象設計确定解空間中的類、關聯、接口形式及實作服務的算 法。

(3)面向對象實作。面向對象實作主要包括兩項工作:

第一項工作是把面向對象設計結果.翻譯成用某種程式設計語言書寫的面向對象程式(通常此階段縮寫為OOP);

第二項工作是測試并調試面向對象的程式。面向對象程式的品質基本上由面向對象設計的品質決定.

但是.所采用的程式設計語言的特點和程式設計風格也将對程式的可靠性、可重用性和可維護性産生深遠的影響。

綜上所述.面向對象軟體工程方法可概括為如下的過程:分析使用者需求.從問題中抽取對象模型:将模型細化,設計類。包括類的屬性和類間互相關系.同時考 察是否有可以直接引用的已有類或部件.標明一種面向對象的程式設計語言.具體編碼實作上一階段的設計.并在開發過程中引入測試,完善整個解決方案。

本文轉自左正部落格園部落格,原文連結:http://www.cnblogs.com/soundcode/archive/2012/02/29/2372934.html,如需轉載請自行聯系原作者