【摘 要】 通過分析軟件開發過程中存在的問題,引入軟件工程的概念,并概括了利用軟件工程進行軟件開發中最重要的3個方面。傳統的軟件工程方法將被面向對象的方法所取代,組件技術必將越來越倍受重視,同時更加新穎、更加先進的方法也必將會出現。
【關鍵詞】 軟件工程 需求
Abstract : The paper mainly discusses the applications of software engineering in the development of software.
1.軟件工程的起源
上世紀60年代以來,隨著計算機的廣泛應用,軟件開發所面臨的問題域的復雜性急劇膨脹,系統的規模和復雜度空前擴大。但當時軟件開發基本上還是依賴開發人員的個人技能,沒有可以遵循的原理、原則和方法,同時也缺乏有效的管理;軟件的復雜性和其中包含的錯誤達到了開發人員難以控制的程度。
2.需求分析是軟件開發的關鍵
需求分析工作是整個系統設計中關鍵的一環。有些系統在投入運行后,發現與實際要求差距較大,甚至沒有使用價值,這就是因為需求分析工作沒有做好。
有些開發者在進行需求調查時要求用戶提供應用模型和原始數據,用戶往往不知道應該提供什么,也不知道深度知何,所以經常會出現用戶所提供的需求并沒有真正完全反映應用上的要求。為了克服這種現象,高質量地完成需求分析工作,應建立一套行之有效的規范性需求調查過程,并嚴格按照執行,下面提供一套調查流程以供參考。
2.1開發者與用戶見面,用戶介紹其單位管理流程。
2.2開發者分頭去用戶單位各部門進行需求調查,最好一人只負責3個部門左右。調查時主要做這樣兩方面的工作:一是發放、解釋數據調查表,讓用戶部門主要管理人員填寫,然后回收數據調查表;二是收集各種統計匯總報表。
2.3由系統分析員匯總數據調查表,剔除那些物理意義重復的數據,要特別注意:有些數據在不同的部門有不同的提法而物理意義卻是相同的,這類數據也要注意剔除掉。匯總收集上來的統計匯總報表,檢查報表上所需要的數據是否在數據調查表中有遺漏;并按照這些數據的物理含義和使用部門,對這些需求數據進行分類。
2.4根據用戶介紹的管理流程和需求數據,按各部門的管理范圍畫出粗略的數據流程圖和功能要求清單,征求各部門的意見。
2.5根據需求工作的結果及收集上來的反饋意見,制作一個DEMO演示程序;該程序只是大概反映出功能調用、界面等,請用戶審看,提出意見(這里主要是對功能)。
2.6根據用戶意見進行修改并形成交付用戶審閱的需求分析文件。
3.系統功能確定力求準確
概要設計確定系統功能時,要注意系統是否滿足應用需求;在這個問題上,許多設計者往往只注意是否滿足用戶提出的要求,而忽視了其他伴隨出現的要求。這些容易被忽視的要求通常是為了保證整個系統能夠正常運行的輔助功能,用戶一般不會意識到,這類要求我們稱為“系統需求”。
我們來看下面的例子。
在用戶提出的要求中,有多個數據要求以編碼方式進行存儲時,實際上就隱含著要有一個或多個數據關系表(TABLE)存放編碼和編碼所對應的內容信息,那么在確定系統功能時就應考慮要有一套管理功能對這些數據關系表進行維護。另一方面,還應當對用戶一些自己說不清楚的,同時技術上非常復雜的功能要求要特別慎重。例知,在許多MIS系統的需求中都提出“決策庫”的要求,要求“決策庫”具有動態、自動、模糊等決策比較功能,提的要求標準非常高,而結合他們自身的管理究竟如何實現這些功能,參與決策的信息是那些數據,其計算公式如何則一點也說不清楚。在這種情況下一定要慎重,必要時雙方協商決定。
概要設計文件完成后,開發單位的技術總負責人應嚴格審查其中的功能及如何實現這些功能的描述。如果出現不清楚的描述或根本不可能實現的功能,則屬于設計質量不合格。
4.軟件文檔規范化
在軟件工程的各階段,要產生不同的文檔,文檔標志每個階段的完成和結果,文檔是軟件工程每階段的自然結果。文檔不是在軟件開發之后,而是在軟件開發過程中產生的。在軟件開發完成后,再去補寫文檔,這絕不是軟件工程的方法。
文檔是每階段的結果,在軟件工程中,從一個階段到下一階段就是通過文檔來傳遞,上階段的文檔是下階段的前提和依據。特別是在大型系統中,有多人參加開發工作,文檔是相互協調的最清晰語言。文檔也是軟件測試的根據。
不論大的軟件公司還是軟件開發工作室,都要依據自己的工作,制定軟件文檔規范,以此來要求開發人員生產出高品質的軟件產品,這是非常必要的。把規范流于形式,效果是不會好的。文檔必須嚴格地與各階段的工作一致,準確地反映工作實際,文檔修改時,還要保持文檔本身前后階段的一致。
結束語
傳統的軟件工程方法采用結構化程序設計技術,對小規模的程序開發是一種有效的方法,但將它推廣至大規模的系統開發中往往會失效。相對于傳統的軟件工程方法,面向對象的軟件工程方法帶來了全新的一種風格,具有相當頑強的生命力,并以相當驚人的速度發展壯大,各個領域逐漸地采用這種新的軟件工程方法來取代原有的傳統方法,同時也取得了輝煌的成就。
一直以來,人們夢寐以求軟件工廠的實現,軟件工程師希望能到軟件市場購買各種軟件的“集成電路”來“即插即用”,利用它們拼裝新的軟件系統,而不是一行一行地在自己并不內行的領域低水平地重復他人開發的軟件已經實現了的功能。采用基于組件的軟件開發技術,二進制組件可以被不同的應用程序使用,使軟件組件真正能夠成為“工業零件”,從而能極大地提高軟件生產率。
參考文獻:
[1]鄒宗華, 蔣進, 唐曉暉, 顧茵莉, 何雁, 李彬. 多頻道、多品牌字幕機綜合應用案例分析及病毒隔離創新機制[J]. 現代電視技術, 2010, (10).
[2]黃琨, 王婉秋, 方守恩. 道路安全審計輔助軟件設計分析[J]. 上海公路, 2010, (03).
[3]秦永菊, 張東旭. 提高中小企業信息化效率的途徑分析[J]. 生產力研究, 2010, (10).
[4]張欣. 我的地盤我做主[J]. 中國計算機用戶, 2006, (33).
[5]劉元鼎. UML與需求分析[J]. 海南廣播電視大學學報, 2005, (01).
[6]甘小紅. 不可忽視的軟件需求分析[J]. 科技廣場, 2004, (09).
[7]田茵. 基于UML的軟件需求分析和設計[J]. 實驗技術與管理, 2004, (05).
(作者單位:江西電力職業技術學院)
China’s foreign Trade·下半月2011年2期