軟件產(chǎn)品是指軟件開發(fā)商根據(jù)市場需要開發(fā)的、具有一定適用性和潛在客戶的、可銷售的軟件成品。它區(qū)別于應(yīng)特定客戶需求或根據(jù)訂單開發(fā)的軟件商品,通常應(yīng)具有更高的通用性和適應(yīng)性。但它的通用性和適應(yīng)性不是輕而易舉就能達到的。要實現(xiàn)軟件的產(chǎn)品化,就必須在軟件產(chǎn)品的設(shè)計上下一番功夫。
本文結(jié)合一個"多媒體遠程教學(xué)系統(tǒng)"實例,探討軟件產(chǎn)品設(shè)計中的一些經(jīng)驗與看法。
一、軟件產(chǎn)品設(shè)計的重要意義
所謂軟件產(chǎn)品設(shè)計,在本文中指對軟件產(chǎn)品的功能與架構(gòu)進行設(shè)計。用傳統(tǒng)的軟件工程術(shù)語來說,它覆蓋軟件工程的可行性研究、需求分析、系統(tǒng)設(shè)計幾個階段。用RUP(Rational Unified Process-統(tǒng)一軟件過程)術(shù)語來說,它是需求定義與軟件構(gòu)架設(shè)計的結(jié)果。
軟件產(chǎn)品設(shè)計包括了需求分析、功能定義、技術(shù)方案以及需求管理的策略。
我們可以看見很多這樣的例子:企業(yè)做完一個產(chǎn)品后,便不得不長期甚至永久地投入幾個人(通常還是曾參與研發(fā)的技術(shù)骨干)對產(chǎn)品進行維護、跟蹤和服務(wù);企業(yè)在做同類項目時,還不得不投入幾乎相等的資源;系統(tǒng)集成企業(yè)或以管理類項目為主的研發(fā)企業(yè)長期為工程所困,良好的市場需求并不能帶來利潤回報的規(guī)模增加,等等。造成以上現(xiàn)象,一是由于企業(yè)的軟件過程成熟度不高,另一個原因,就是缺乏清晰、深入的軟件產(chǎn)品設(shè)計。優(yōu)秀的產(chǎn)品設(shè)計可能是軟件企業(yè)發(fā)展的重要契機。好的產(chǎn)品設(shè)計可能使企業(yè)走向產(chǎn)品系列化、服務(wù)規(guī)范化、內(nèi)部管理規(guī)范化的良性發(fā)展之路;而差的產(chǎn)品設(shè)計不僅將造成現(xiàn)實的資源浪費,甚至有可能使產(chǎn)品從此成為軟件企業(yè)的一個枷鎖。
其實,產(chǎn)品設(shè)計的來源最終都是市場。設(shè)計的好與不好,反映了設(shè)計者對技術(shù)、業(yè)務(wù)、以及用戶需求諸方面的現(xiàn)狀以及變化規(guī)律把握的結(jié)果。下面從功能定位入手,探討怎樣進行產(chǎn)品設(shè)計。我們所舉的例子的主體假設(shè)是一個典型的系統(tǒng)集成企業(yè),在多媒體系統(tǒng)集成項目上有較多的工程經(jīng)驗,在軟件研發(fā)上也小有積累,市場研究認為多媒體技術(shù)在培訓(xùn)、教學(xué)領(lǐng)域?qū)⒋笥锌蔀椤?BR>二、軟件產(chǎn)品的分類及定位
與一般的針對用戶明確需求的軟件項目的需求分析稍有不同,軟件產(chǎn)品的功能定義更多的是一種"定義",而不象面向特定用戶的系統(tǒng),其需求定義是一種記錄、歸納和分析的過程。它看起來的自由度比較大。正是這種自由度可以帶來產(chǎn)品的升華,使工程產(chǎn)品化。即使對于特定用戶的軟件需求,我們也有必要在滿足特定用戶的特定需求的同時,對相關(guān)技術(shù)和業(yè)務(wù)進行適當(dāng)?shù)姆治龊皖A(yù)期,使得項目的成果具有更好的適用性和重用價值。
軟件產(chǎn)品可以分為兩種:面向最終用戶的和面向軟件開發(fā)或集成商的。第一種主要指面向不限于計算機技術(shù)人員、完成一定應(yīng)用功能的系統(tǒng);后者指供專業(yè)的軟件開發(fā)人員使用、用于構(gòu)造第一種產(chǎn)品的"中間"產(chǎn)品,它可能是一個完整的系統(tǒng)平臺,也可能是一個開發(fā)包或一個小的程序工具。不同種類的產(chǎn)品具有不同的特性要求:面向集成商/開發(fā)商的產(chǎn)品要求可靠、可擴充、有詳盡的技術(shù)說明、有一定的技術(shù)適應(yīng)性;面向最終用戶的產(chǎn)品則要求功能完整、可靠、可維護、有較好的應(yīng)用適應(yīng)性。
其實,設(shè)計人員還可以根據(jù)市場形式開發(fā)介于以上二者之間的"半產(chǎn)品",即通過簡單定制可以"生產(chǎn)"出應(yīng)用系統(tǒng)的"半成品",但又不同于嚴格意義上的開發(fā)平臺或是零散的開發(fā)工具包。這種"半成品"很實用,不僅可以提高本企業(yè)的生產(chǎn)率,為產(chǎn)品系列化打好伏筆,還可以在適當(dāng)?shù)氖袌鰰r機作為商品提供給系統(tǒng)集成商,為企業(yè)帶來額外的利益。
到底要開發(fā)什么類型的產(chǎn)品,是軟件產(chǎn)品設(shè)計的第一個重要決策。
我們假設(shè)的"多媒體遠程教學(xué)系統(tǒng)"定位在"半成品"上,希望開發(fā)出能直接用于某種應(yīng)用場合(如企業(yè)培訓(xùn)),但可以根據(jù)應(yīng)用需要進行定制
項目經(jīng)理勝任力免費測評PMQ上線啦!快來測測你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html