朱進
摘 要: 為了優(yōu)化手機軟件的開發(fā)過程,結(jié)合實踐經(jīng)驗,以Message系統(tǒng)開發(fā)為例,采用領(lǐng)域分析、領(lǐng)域設(shè)計和領(lǐng)域?qū)崿F(xiàn)的步驟,討論了特定領(lǐng)域軟件架構(gòu)(DSSA)。在Message項目開發(fā)過程中,收集可復(fù)用的手機軟件領(lǐng)域的構(gòu)件,增加手機軟件構(gòu)件庫的內(nèi)容,并產(chǎn)生新的手機軟件構(gòu)件;使用Java語言,在Ubuntu Linux平臺下成功開發(fā)。結(jié)果證明,采用DSSA架構(gòu)方法能夠明顯縮短開發(fā)周期,節(jié)約成本。系統(tǒng)尚存在一些不足,比如構(gòu)件的可復(fù)用性不高等等,有待進一步改進。
關(guān)鍵詞: 特定領(lǐng)域軟件架構(gòu); 領(lǐng)域分析; 領(lǐng)域設(shè)計; 領(lǐng)域?qū)崿F(xiàn); 短信/彩信
中圖分類號:TP311.5 文獻標志碼:A 文章編號:1006-8228(2014)04-07-02
Abstract: In order to optimize the mobile software development process, by taking the message system as an example, and applying domain analysis, the field of design and implementation steps in the field, the specific areas of software architecture (DSSA) are discussed. In the message project development process, reusable software in the field of mobile phone components is collected, the content of mobile software component library is increased, and new mobile phone software components are developed. Java language is used in this project, and is successfully developed on the Ubuntu Linux platform. The results show that applying DSSA architecture approach can significantly shorten the development cycle, and reduce the cost. However, there are some shortcomings, for example, low reusability of components, which need improving in future.
Key words: DSSA; domain analysis; the field of design; the field of implementation; message
0 引言
本人所從事的是智能手機系統(tǒng)項目的架構(gòu)與研發(fā)工作,產(chǎn)品面向國外。一般而言,智能手機軟件目前競爭非常激烈,新技術(shù)的市場期比較短,如果項目的開發(fā)周期過長,將導(dǎo)致新技術(shù)的優(yōu)勢逐步喪失。Message系統(tǒng)是整個手機軟件系統(tǒng)中非常重要的一個部分,它的設(shè)計開發(fā)過程對整個手機軟件平臺的開發(fā)起到非常重要的作用。在Message系統(tǒng)的開發(fā)過程中,我們采用了特定領(lǐng)域軟件架構(gòu)(DSSA)的開發(fā)手段。
特定領(lǐng)域軟件架構(gòu)(DSSA)包括領(lǐng)域分析,領(lǐng)域設(shè)計,領(lǐng)域?qū)崿F(xiàn)[1]。領(lǐng)域分析階段的主要目標是獲得領(lǐng)域模型。領(lǐng)域模型描述的需求為領(lǐng)域需求。領(lǐng)域設(shè)計的主要目標是獲得特定領(lǐng)域軟件架構(gòu),特定領(lǐng)域軟件架構(gòu)描述領(lǐng)域模型中表示需求的方案;領(lǐng)域?qū)崿F(xiàn)的主要目標是依據(jù)領(lǐng)域模型和特定領(lǐng)域軟件架構(gòu)開發(fā)和組織、重用信息[2]。本文根據(jù)Message系統(tǒng)開發(fā)的實際經(jīng)歷,就特定領(lǐng)域軟件架構(gòu)中的領(lǐng)域分析、領(lǐng)域設(shè)計、領(lǐng)域?qū)崿F(xiàn)等方面論述并探討基于特定領(lǐng)域軟件架構(gòu)的軟件架構(gòu)設(shè)計與應(yīng)用。
1 領(lǐng)域分析
在Message系統(tǒng)中,其業(yè)務(wù)需求可分為:Message list,Compose,Detail。以下對這幾個部分作進一步的領(lǐng)域分析。
1.1 對Message list的領(lǐng)域分析
Message list是一個顯示所有Message的列表GUI,在Message list中,業(yè)務(wù)需求可分為:Message接收,Message分類顯示,排序,查找,高級設(shè)置等。經(jīng)過分析,其中,Message的接收方式與硬件和底層協(xié)議棧有關(guān),由于硬件與底層協(xié)議棧的不同,所以其接收方式有很大不同,不宜提取為公共構(gòu)件。Message分類顯示,排序,查找與底層硬件沒有關(guān)聯(lián),通過對手機軟件市場的分析,許多手機軟件系統(tǒng)的Message子系統(tǒng)均有類似需求,可將其作為領(lǐng)域需求中的公共需求而分別提取。經(jīng)過領(lǐng)域分析,產(chǎn)生了對Message list的領(lǐng)域模型。
1.2 對Compose的領(lǐng)域分析
Compose是一個可以用來形成某個將要發(fā)送的Message的模塊。通過分析,Compose的業(yè)務(wù)需求可分為:Message發(fā)送,聯(lián)系人選擇,編輯內(nèi)容,添加和預(yù)覽附件(針對彩信),Email模式發(fā)送等功能。其中,Message的發(fā)送與硬件和底層協(xié)議棧有關(guān),由于硬件與底層協(xié)議棧的不同,所以其發(fā)送有很大不同,不宜提取為公共構(gòu)件。對于Email模式發(fā)送,它是指如果輸入了Email地址,那么,將把Compose的內(nèi)容作為Email發(fā)送。許多手機的Message系統(tǒng)并不具有該功能,以往項目也未有過該需求,所以同樣不宜提取為公共構(gòu)件。對于聯(lián)系人選擇,編輯內(nèi)容,添加和預(yù)覽附件,為手機軟件所共有,可將其作為領(lǐng)域需求中的公共需求而分別提取。經(jīng)過領(lǐng)域分析,產(chǎn)生了對Compose的領(lǐng)域模型。
1.3 對Detail的領(lǐng)域分析
Detail主要是用來顯示Message的內(nèi)容,以及與本機用戶相關(guān)的一些信息。通過分析,Detail的業(yè)務(wù)需求可分為:Message內(nèi)容瀏覽,收件人或發(fā)件人大頭貼顯示,前后Message的翻頁,livePim功能,附件的打開與保存等功能。這部分比較明了,除了livePim功能外,其他均可將其作為領(lǐng)域需求中的公共需求而分別提取。經(jīng)過領(lǐng)域分析,產(chǎn)生了對Detail的領(lǐng)域模型。
1.4 其他部分的領(lǐng)域分析
這些部分分散在以上幾個模塊中。業(yè)務(wù)需求包括:回復(fù),轉(zhuǎn)發(fā),打電話,設(shè)置Message提醒,刪除等。其中,Message的回復(fù),轉(zhuǎn)發(fā),刪除都是具有共性的領(lǐng)域需求。
2 領(lǐng)域設(shè)計
特定領(lǐng)域軟件架構(gòu)的第二階段是領(lǐng)域設(shè)計。在這個階段,是對領(lǐng)域分析的再研究,通過分析,最終獲取到一個針對領(lǐng)域分析所得到的共同需求的有效解決方案[3]。開展這個階段的工作必須遵循如下原則:首先,解決方案中所使用的技術(shù)力求穩(wěn)定實用;其次,解決方案的設(shè)計必須嚴格基于領(lǐng)域分析。根據(jù)領(lǐng)域分析,建立了領(lǐng)域模型之后,就可以派生出滿足這些被建模領(lǐng)域需求的特定領(lǐng)域軟件架構(gòu)[4]。在解決方案中使用成熟的技術(shù)有利于系統(tǒng)的開發(fā)和提高系統(tǒng)的可靠性,并且降低開發(fā)成本。嚴格基于領(lǐng)域分析是提高軟件重用性的前提條件[5]。
根據(jù)Message系統(tǒng)的領(lǐng)域分析,分別提取了一些與智能手機軟件有差異的模塊和一些與手機軟件有共性的模塊。其中,有差異的模塊分別為:Message接收,Message發(fā)送,Email模式發(fā)送,livepim,Message地址提取用以打電話,設(shè)置Message提醒等,可以作為項目特有功能而獨自設(shè)計;有共性的模塊為:Message分類顯示,排序,查找,聯(lián)系人選擇,編輯內(nèi)容,添加和預(yù)覽附件,Message內(nèi)容瀏覽,收件人或發(fā)件人大頭貼顯示,前后Message的翻頁,Message的回復(fù),轉(zhuǎn)發(fā),刪除等,可以將其作為標準的手機軟件構(gòu)件,加入到構(gòu)件庫中,以最大程度地提高手機軟件的復(fù)用,當(dāng)其他項目需要時,可以方便使用。
根據(jù)Message系統(tǒng)的領(lǐng)域模型,我們決定采用典型的分層架構(gòu)模式,即表現(xiàn)層、控制層和持久層。這樣的設(shè)計使得各個項目的手機系統(tǒng)的Message子系統(tǒng)邏輯上的差異得到有效的封裝,最大程度地提高軟件的重用。
3 領(lǐng)域?qū)崿F(xiàn)
進入了DSSA的最后階段。通過對領(lǐng)域分析和領(lǐng)域設(shè)計階段獲得的領(lǐng)域模型和DSSA進行進一步的分析和研究,我們一致認為采用面向?qū)ο蟮木幊田L(fēng)格更有利于軟件的變更和提高重用性,故采用Java語言。平臺使用Ubuntu Linux,并使用針對于該項目的模擬器進行調(diào)試。在編程實現(xiàn)過程中,我們堅持高內(nèi)聚、低耦合的編碼原則。對部分系統(tǒng)接口反復(fù)斟酌,例如對Message List和Compose模塊的實現(xiàn),盡量多地抽取出系統(tǒng)接口,大大提高了這些模塊和系統(tǒng)整合上的靈活性,力求使軟件界面與功能符合用戶的多樣化需求。
4 結(jié)束語
通過我們的不懈努力和公司其他部門的多方配合,此次Message子系統(tǒng)的開發(fā)任務(wù)在指定的時間內(nèi)順利完成。在Message的大部分功能模塊實現(xiàn)了可重用性較高的構(gòu)件,極大地縮短了同類項目的開發(fā)周期,節(jié)約了項目研發(fā)成本,增強了市場競爭力。由此可見,DSSA架構(gòu)與方法特別能適用于此類周期短、技術(shù)要求高的智能手機項目,以及一些移動互聯(lián)網(wǎng)軟件項目,其實用前景較好。在本Message項目中,由于出現(xiàn)了大量的新構(gòu)件,使現(xiàn)有的構(gòu)件庫出現(xiàn)了冗余,需要重新設(shè)計現(xiàn)有構(gòu)件庫的結(jié)構(gòu);而且有的可復(fù)用構(gòu)件復(fù)用程度不高,需要做大量修改才能在下一項目復(fù)用它們,這是本次項目開發(fā)遺留的不足,也是后續(xù)項目設(shè)計待完善之處。
參考文獻:
[1] 張友生,李雄.軟件體系結(jié)構(gòu)原理,方法與實踐[M].清華大學(xué)出版社,2009.
[2] 楊芙清,梅宏主編,趙海燕,張偉,麻志毅.面向復(fù)用的需求建模[M].清華大學(xué)出版社,2008.
[3] (美)Carma McClure著,王亞沙,謝冰,趙俊峰譯.軟件復(fù)用標準指南[M].電子工業(yè)出版社,2004.
[4] (美)Donald J.Reifer著,孫艷春,馬亮等譯.軟件復(fù)用實踐[M].機械工業(yè)出版社,2005.
[5] (美)Erich Gamma等著,李英軍,馬曉星,蔡敏,劉建中 譯.設(shè)計模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].機械工業(yè)出版社,2005.