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