




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、論軟件產品設計中的需求分析軟件產品是指軟件開發商根據市場需要開發的、具有一定適用性和潛在客 戶的、可銷售的軟件成品。它區別于應特定客戶需求或根據訂單開發的軟件商 品,通常應具有更高的通用性和適應性。但它的通用性和適應性不是輕而易舉 就能達到的。要實現軟件的產品化,就必須在軟件產品的設計上下一番功夫。本文結合一個 "多媒體遠程教學系統 "實例,探討軟件產品設計中的一些經驗 與看法。、軟件產品設計的重要意義所謂軟件產品設計,在本文中指對軟件產品的功能與架構進行設計。用傳 統的軟件工程術語來說,它覆蓋軟件工程的可行性研究、需求分析、系統設計 幾個階段。用RUP(RationalU
2、nifiedProcess-統一軟件過程)術語來說,它是需 求定義與軟件構架設計的結果。軟件產品設計包括了需求分析、功能定義、技術方案以及需求管理的策 略。我們可以看見很多這樣的例子:企業做完一個產品后,便不得不長期甚至 地投入幾個人(通常還是曾參與研發的技術骨干)對產品進行維護、跟蹤和服 務;企業在做同類項目時,還不得不投入幾乎相等的資源;系統集成企業或以管理類項目為主的研發企業長期為工程所困,良好的市場需求并不能帶來利潤 回報的規模增加,等等。造成以上現象,一是由于企業的軟件過程成熟度不 高,另一個原因,就是缺乏清晰、深入的軟件產品設計。的產品設計可能是軟 件企業發展的重要契機。好的產品設
3、計可能使企業走向產品系列化、服務規范 化、內部管理規范化的良性發展之路;而差的產品設計不僅將造成現實的資源 浪費,甚至有可能使產品從此成為軟件企業的一個枷鎖。其實,產品設計的來源終都是市場。設計的好與不好,反映了設計者對技 術、業務、以及用戶需求諸方面的現狀以及變化規律把握的結果。下面從功能 定位入手,探討怎樣進行產品設計。我們所舉的例子的主體假設是一個典型的 系統集成企業,在多媒體系統集成項目上有較多的工程經驗,在軟件研發上也 小有積累,市場研究認為多媒體技術在培訓、教學領域將大有可為。二、軟件產品的分類及定位與一般的針對用戶明確需求的軟件項目的需求分析稍有不同,軟件產品的 功能定義更多的是
4、一種 "定義 ",而不象面向特定用戶的系統,其需求定義是一種 記錄、歸納和分析的過程。它看起來的自由度比較大。正是這種自由度可以帶 來產品的升華,使工程產品化。即使對于特定用戶的軟件需求,我們也有必要 在滿足特定用戶的特定需求的同時,對相關技術和業務進行適當的分析和預 期,使得項目的成果具有更好的適用性和重用價值。軟件產品可以分為兩種:面向終用戶的和面向軟件開發或集成商的。種主 要指面向不限于計算機技術人員、完成一定應用功能的系統;后者指供專業的 軟件開發人員使用、用于構造種產品的 "中間 "產品,它可能是一個完整的系統平 臺,也可能是一個開發包或一個小
5、的程序工具。不同種類的產品具有不同的特 性要求:面向集成商 / 開發商的產品要求可靠、可擴充、有詳盡的技術說明、有 一定的技術適應性;面向終用戶的產品則要求功能完整、可靠、可維護、有較 好的應用適應性。其實,設計人員還可以根據市場形式開發介于以上二者之間的"半產品 ",即 通過簡單定制可以 "生產"出應用系統的 "半成品 ",但又不同于嚴格意義上的開發 平臺或是零散的開發工具包。這種 "半成品 "很實用,不僅可以提高本企業的生產 率,為產品系列化打好伏筆,還可以在適當的市場時機作為商品提供給系統集 成商,為企業帶來
6、額外的利益。到底要開發什么類型的產品,是軟件產品設計的個重要決策。我們假設的 "多媒體遠程教學系統 "定位在"半成品 "上,希望開發出能直接用于某種應用場合(如企業培訓),但可以根據應用需要進行定制、擴充,廣泛 應用于其他相關應用,如專業培訓機構、網絡化學校教育等。三、軟件產品的非功能性需求定義軟件產品的需求可以分為功能性需求和非功能性需求。其中軟件產品的非 功能性需求是常常被輕視、甚至被忽視的一個重要方面。其實,軟件產品非功 能性定義不僅決定產品的質量,還在很大程度上影響產品的功能需求定義。如 果事先缺乏很好的非功能性需求定義,結果往往是使產品在非功能
7、性需求面前 捉襟見肘,甚至淹沒功能性需求給用戶帶來的價值。所謂非功能性需求,是指軟件產品為滿足用戶業務需求而必須具有的、除 功能需求以外的特性。軟件產品的非功能性需求包括系統的性能、可靠性、可 維護性、可擴充性、對技術和對業務的適應性,等等。下面對其中的某些指標 加以說明。1、系統的完整性指為完成業務需求和系統正常運行本身要求而必須具有的功能,這些功能 往往是用戶不能提出的。典型的功能有:聯機幫助、數據管理、用戶管理、軟 件發布管理、在線升級,等等。并不是所有的系統都必須包括以上所有的功能,而是可以根據產品的使用 環境和企業的產品發展決策進行挑選。例如,在線升級、軟件發布管理適用于 具有因特網
8、或內網環境的軟件產品;而數據管理對于產生數據存儲的產品則是必須的,設計人員不應假設用戶同時是一個合格的DBA,而且系統所產生信息的分布、關系,也不是DBA所應該了解的內容。因此,完整的系統應該包括數 據備份、恢復、日志管理、垃圾數據清除等基本功能,哪怕這些功能的核心只是一條語句或命令。用戶管理功能是另一項必不可少的功能,它定義哪些用戶 可以以什么樣的功能使用系統。好的用戶管理功能不僅可以有效控制用戶對系 統的使用,使系統處于一個安全、負載合理的運行狀況,還能提高系統的應用 適應性。2、系統的可擴充性與可維護性指系統對技術和業務需求變化的支持能力。當技術變化或業務變化時,不 可避免將帶來系統的改
9、變?D不僅要進行設計實現的修改,甚至要進行產品定義 的修改。好的軟件設計應在系統構架上考慮能以盡量少的代價適應這種變化。常用的技術方法有面向對象的分析與設計以及設計模式。3、技術適應性與應用適應性系統的適應性與系統的可擴充性和可維護性的概念相似,也表現產品的一 種應變能力,但適應性強調的是在不進行系統設計的修改的前提下對技術與應 用需求的適應能力。軟件產品的適應性通常表現為產品的可配置能力。好的產 品設計可能要考慮到運行條件的變化,包括技術條件(網絡條件、硬件條件、 軟件系統平臺條件等)的變化和應用方式的變化,如在具體應用中界面的變 化、功能的剪裁、不同用戶的職責分配和組合等。對以上重要的非功
10、能性需求進行逐一分析后,就可以開始進行產品功能設 計了。實際上,非功能性需求定義將反映到系統的功能設計中,表現為系統的 架構。下一節中將會描述怎樣實現系統的適應性。四、軟件產品的功能設計要點1、產品核心功能的選取軟件產品的設計,一定有一個明確的目標:或是為了解決某個或某類具體的應用問題,或是為解決問題提供一個或一組工具。產品的目標決定了產品的 核心功能,產品的其他功能都是對這一功能的補充或圍繞這一功能提供的相關 服務。適當選取核心功能,有幾點原則:1)規模適當,不貪大求全,堅持 " 有所不為 "。具體來說,在一個產品中,非核心功能盡量的簡化和弱化。以 "多媒體遠程
11、教學系統 "為例,核心功能應 該是基于網絡的多媒體遠程教學,包括同步教學和非同步教學。與教學相關的 學籍管理、教務管理、答疑考試、收費管理等輔助功能則采取小化原則進行設 計。這樣既可以突出產品的技術特點,又可以避免以己之短搏人之長,顯得產 品在培訓教育方面不夠專業。等到核心功能穩定在產品中以后,再專門針對不 同的應用要求研制不同的產品系列,如 "網校版 "、"中學版 "、"企業版"等等。2)了應用要求以外,還可以根據關鍵技術進行版本規劃。由于不同的技術對設備會有不同要求、并產生不同的應用效果,因此可以在相同的業務框架 下構造
12、基于不同技術的不同產品。例如,微軟與多媒體相關的技術有流媒體技 術、DirectShow、Direct Play、TAPI等,RealNetworks也有完整的流媒體技術開發 平臺。這些技術分別具有一定的功能和性能特點,同時也各有其局限。利用它 們的組合可以形成面向不同細分市場的產品。例如,針對以 "灌輸"為主、對交互 性和實時性沒有要求的單向式培訓,設計以流媒體為主要技術的產品版本;針對實時性和交互性要求很高的教學和培訓,設計以DirectShow和Direct Play為核 心技術的產品版本。3)盡量遵從標準協議和行業標準。除了計算機系統有多種技術標準和協議外,各行各業
13、還有自己的行業標準。例如,對于 "多媒體遠程教學系統 "而言,牽涉的標準和協議有媒體格式 MPEG標準、流媒體傳輸和控制協議等;在應用 領域有國家教委頒布的關于遠程教育的建議標準。這些都應該充分考慮。有時 不參照標準或自定義一些協議處理解決方案帶來一時的快捷,但往往生命力和 可靠性經不起時間的考驗,在系統與其他相關系統聯合使用時就會帶來問題。2、多重可重用性的分析與設計可重用性是現在軟件設計較為重視的一個特性。可重用性不僅應該在系統 設計中考慮,還應該在系統分析時就加以考慮,使系統達到多重可重用性。這 就要求我們不僅要采用面向對象的思想來進行系統分析,用對象概念構造系統 行
14、為,還要求我們在更高層次上對系統的操作模式或應用模式進行抽象,發現 更高級的可重用性。仍舊以 "多媒體遠程教學系統 "為例。如果僅在系統設計時考慮可重用性,則 產品可能達到部件級的可重用,即系統的某些核心特性可以在反復用于相關產品的設計之中;而如果我們加入對應用操作模式的抽象,對于"直播"、"流媒體 與課件同步 " 、" 現場控制 " 等構成應用的操作環節進行面向對象的分析,就可以 獲得更好的可重用性。?D如果設計得當,一個產品可以同時滿足直播教學、培 訓、股評、案例研討等含有相同應用模式的多種不同應用環境,甚至連
15、一行代 碼也不用重寫。多重的可重用性實際上就實現了非功能性需求中的應用適應性。無論我們 設計面向哪些用戶(終用戶 /系統集成商 / 軟件開發商)的產品,進行一些多重可 重用性的分析都是有益無害的。3、輔助功能的設計這里提到的 "設計得當 ",就包括輔助功能的設計這一重要因素。前面所述的 非功能性需求有一些就反映在輔助功能的設計中。在我們把終業務用戶作為產 品的一用戶時,我們把全部注意力放在產品的主要功能設計上;當我們把產品的用戶范圍擴大到系統管理人員、數據維護人員以及系統集成商/ 軟件開發商 時,我們就必須對產品的輔助功能給予足夠的關注。對于應用軟件產品,重要的輔助功能至少
16、有以下這些:1)在線幫助功能:這仍然是面向業務用戶(當然也要面向其他用戶)的一項功能,用于使系統更為友好。在線幫助功能通常設計成能獨立運行的文檔 形式,如 html 格式。2)數據管理:面向數據維護人員。雖然數據庫管理系統都有現成的數據管理功能,但專門設計的數據管理可以更簡便、易于使用,而且可以完成數據 庫管理系統本身所不能完成的工作。3)日志管理:面向系統管理人員。良好設計的日志功能可以作為系統管理人員或產品設計人員監視系統狀態、追蹤系統問題,以及作為用戶使用系統 的審計依據。4)用戶管理:面向系統管理人員。用戶管理與下面的兩項功能一起使用,可以使系統適應不同的用戶功能分配需求。系統管理人員
17、可以限度地靈活指定不同用戶所能執行的不同功能項,消除通常造成軟件產品在用戶手中"水土 不服"的主要的因素。5)功能定義及功能表的自動生成:面向系統管理人員,定義系統的所有可操作功能項,并在用戶進入系統時自動生成由管理員為之分配的功能表作為 其"主菜單" 。這一功能對于含有數據庫和 Web 界面的系統特別適用,它使得系統具有"自動演化"的能力?D?D即系統在運行時即可替換其部分功能,并且所有 的功能權限在統一的控制之下。這正是系統可維護性的 "境界"。6)系統配置:面向高級用戶或專職的IT 人員,根據實際需求定義系統的技術參數和應用模式。經過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 火花線切割機床項目投資可行性研究分析報告(2024-2030版)
- 中國醫用純化水設備行業發展監測及發展戰略規劃報告
- 中國汽車平衡塊行業市場全景評估及發展戰略規劃報告
- 中國電容器用薄膜市場調查報告
- 2025年中國氣瓶光面環規行業市場發展前景及發展趨勢與投資戰略研究報告
- 2025-2030年中國全鋼中央臺項目投資可行性研究分析報告
- 中國川烏頭行業市場深度評估及投資戰略規劃報告
- 中國回光燈市場發展前景預測及投資戰略咨詢報告
- 早教班老師培訓課件
- 同城配送合同
- 產后出血患者血液管理專家共識
- 2024年3月2日湖北遴選筆試真題及解析(地市級卷)
- 中英文對照報價單模板
- 能源經營產品技術規范-三輪兩輪電動車鋰電池組技術規范V1.0
- 大學專業選擇演講課件
- 茂名酒店行業報告
- 富士康大過管理制度
- 小區物業工程部修理工作標準及細節要求
- 加強高風險作業的安全管理
- 2024屆貴州省黔東南州物理高一下期末統考模擬試題含解析
- 《指數函數與對數函數》單元課時教學設計
評論
0/150
提交評論