當(dāng)前位置:工程項目OA系統(tǒng) > 房地產(chǎn)OA系統(tǒng) > 相關(guān)系統(tǒng) > 房地產(chǎn)項目管理軟件
質(zhì)量管理:軟件質(zhì)量之路-軟件質(zhì)量框架
什么才是一個高質(zhì)量的軟件
在討論軟件質(zhì)量原型之前,我們先回答第一個問題。一個軟件之所以被認定為質(zhì)量優(yōu)秀,并不是因為它獲得了一個省級或部級獎,而是它的內(nèi)在具備了這樣一些特性:
滿足用戶的需求。這是最重要的一點,一個軟件如果不能夠滿足用戶的需要,設(shè)計的再好,采用的技術(shù)再先進,也沒有任何的意義。所以這一點非常的樸實,但卻是軟件質(zhì)量的第一個評判標(biāo)準。
合理進度、成本、功能關(guān)系。軟件開發(fā)中所有的管理都是圍繞著這幾個要素在做文章的,如何在特定的時間內(nèi),以特定的成本,開發(fā)出特定功能的軟件。三者之間存在一種微妙的平衡。在Planning XP一書中,專門有一個章節(jié)討論它們。一個高質(zhì)量的軟件的開發(fā)過程中,項目成員一定能夠客觀的對待這三個因素,并通過有效的計劃、管理、控制,使得三者之間達成一種平衡,保證產(chǎn)出的最大化。
具備擴展性和靈活性,能夠適應(yīng)一定程度的需求變化。當(dāng)今的社會已經(jīng)變成一種變化速度極快的設(shè)計了。變化就會對軟件產(chǎn)生沖擊,所以一個質(zhì)量優(yōu)秀的軟件,應(yīng)該能夠在一定程度上適應(yīng)這種變化,并保持軟件的穩(wěn)定。
能夠有效的處理例外的情況。寫過軟件的人都知道,實現(xiàn)主體功能的工作量其實不大,真正的工作量都在處理各種例外。所以,一個軟件如果能夠足夠的強壯、足夠的魯棒,能夠承受各種的非法情況的沖擊,這個軟件就是高質(zhì)量的。
保持成本和性能的平衡。性能往往來源于客戶的非功能需求,是軟件質(zhì)量的一個重要的評價因素。但是性能問題在任何地方都存在,所以需要客觀的看待它。例如,一段性能不錯的代碼可能可讀性很差,這就需要進行平衡,如果這段代碼的性能是整個軟件的關(guān)鍵,那么取高性能而舍棄可讀性,反之則取可讀性而舍棄高性能。一個優(yōu)秀的軟件能夠保持成本和性能之間的平衡。
能夠可持續(xù)的發(fā)展。很少有軟件組織只開發(fā)一個軟件的,所以,一個優(yōu)秀的軟件在開發(fā)完成后,可以形成知識沉淀,為軟件組織的長期發(fā)展貢獻力量。這是一個優(yōu)秀的軟件應(yīng)該要能夠做到的。
軟件質(zhì)量框架的組成
軟件質(zhì)量框架不是理論,而是優(yōu)秀軟件開發(fā)思想的一個應(yīng)用,是對軟件開發(fā)過程的有效管理實踐。它以敏捷方法論為基礎(chǔ),并將先進的軟件開發(fā)技術(shù)融入其中。您可能在之前聽說過,學(xué)習(xí)過,嘗試過各種軟件技術(shù),但是缺少一個統(tǒng)一整體的認識。所以,軟件質(zhì)量框架的目的是將您原先在腦海中就存在的思路進一步的整理,將一副完整的圖像(big picture)展現(xiàn)在你面前。軟件質(zhì)量框架偏重應(yīng)用,所以不會涉及太多的理論,但是,它是基于理論的,所以,在需要理論支持的地方,我們會簡單的描述理論,并給出必要的鏈接,供有興趣的讀者進一步閱讀。
軟件質(zhì)量框架并不復(fù)雜,它由幾個部分組成,第一部分是前提,說明了軟件框架的適用范圍,以及適合的環(huán)境,和方法學(xué)一樣,沒有泛之四海皆準的方法學(xué),所以軟件質(zhì)量框架也需要一個上下文環(huán)境。第二部分是價值觀,價值觀說明了軟件質(zhì)量框架中強調(diào)的價值,在軟件框架的結(jié)構(gòu)和實踐中,都將充分的的表現(xiàn)出一開始我們定義的價值。第三部分是結(jié)構(gòu)。結(jié)構(gòu)定義了軟件質(zhì)量框架的組成部分,以及軟件質(zhì)量框架和開發(fā)過程之間的關(guān)系。第四部分是文章中著墨最多的部分,即優(yōu)秀實踐。優(yōu)秀實踐通過具體、實際的分析、舉例,深入闡述了軟件質(zhì)量框架的價值觀和結(jié)構(gòu)。
在本文剩下的篇幅中,將會對前三個部分進行闡述,并對軟件質(zhì)量開發(fā)的實踐進行簡單的描述。在剩余的篇章中,將會針對這些實踐進行細致的分析。
軟件質(zhì)量框架的前提
平臺前提:由于軟件質(zhì)量框架的實踐將會涉及具體的技術(shù)和代碼,所以我們首先為軟件質(zhì)量框架定義了平臺。軟件質(zhì)量框架將會運行在J2EE平臺上,使用對象分析技術(shù)(并不一定是面向?qū)ο蠹夹g(shù),我們可以采用以數(shù)據(jù)為中心的技術(shù))。
組織前提:執(zhí)行軟件質(zhì)量框架需要投入,需要付出,軟件質(zhì)量框架最難的地方不是學(xué)習(xí),而是執(zhí)行。在一個組織中,需要評估應(yīng)用軟件質(zhì)量框架需要多少的投入,對目前的開發(fā)過程有多大的助益。一般來說,組織的規(guī)模越大、其開發(fā)過程和產(chǎn)品越復(fù)雜,就越適合采用軟件質(zhì)量框架。
方法學(xué)前提:在敏捷方法學(xué)中,對規(guī)則和秩序有兩種不同的觀點,一種是強調(diào)規(guī)則和秩序,以XP為代表,它對代碼都有要求;另一種則不那么強調(diào),以自適應(yīng)軟件開發(fā)為代表,它不要求程序員的具體行為。軟件質(zhì)量框架采用第一種觀點,要求組織中存在嚴謹?shù)囊?guī)則和秩序。
軟件質(zhì)量框架的價值觀
明確具體:對軟件的管理必須是明確具體的。軟件開發(fā)是工程、也是藝術(shù),需要緊密的協(xié)作和溝通,任何一個含糊的指令都可能導(dǎo)致軟件開發(fā)中出現(xiàn)錯誤,所以,在軟件開發(fā)中,任何一個指令都應(yīng)該是相對明確的。為什么說是相對呢?是和成本相對,指令越明確,成本就越高。例如,你可以把需求文檔寫的非常的具體,但是你需要付出制作和維護的代價。所以我們的明確性是一個考慮成本前提下的特性。
明確具體要從綜合上考量。怎么理解呢?例如,XP中的用戶故事是非常不精確的,按道理說它是不明確,也是不具體的。但是在整個開發(fā)周期中,將會有迭代、測試、現(xiàn)場用戶等多種手段使得用戶故事明確具體起來,所以從整體上看,它并不違反我們的價值觀。產(chǎn)品質(zhì)量是一個系統(tǒng)工程,決不僅僅是QA部門的工作,這個道理適用于制造業(yè),也適用于軟件開發(fā)業(yè)。
容錯:軟件開發(fā)是人的工作,人是無法避免錯誤的。所以,軟件質(zhì)量框架中允許犯錯。因為不犯錯是天方夜譚。你就算做了這方面的強制規(guī)定也無法避免它的出現(xiàn),反而會引發(fā)其它的問題,例如隱瞞錯誤,或為了隱瞞錯誤而導(dǎo)致的額外成本。所以正確的態(tài)度是允許發(fā)生錯誤,并建立一套監(jiān)測、管理、反饋、修改錯誤的體制。
規(guī)范:在前提中,我們已經(jīng)提到了,規(guī)范是軟件質(zhì)量框架的基本態(tài)度。所以,軟件質(zhì)量框架中強調(diào)規(guī)范,并使用規(guī)范來推動框架的運作。
測試:軟件質(zhì)量框架非常強調(diào)測試,測試是保證質(zhì)量的必由之路。測試要盡可能的多,盡可能的頻繁、測試結(jié)果要盡可能快的反饋。這是軟件質(zhì)量框架對測試的基本態(tài)度。測試是綜合性的,軟件開發(fā)過程中的所有工件,都需要伴隨著相應(yīng)的測試工件。這是基于一個簡單的理念,如果你不能夠為你的工作制定一個完成的標(biāo)準,你又該如何開展你的工作呢?
上圖表現(xiàn)了軟件質(zhì)量框架的結(jié)構(gòu)。處于結(jié)構(gòu)核心的是技術(shù)架構(gòu)和管理架構(gòu)。軟件質(zhì)量框架既不是方法學(xué),也不是一個軟件,更像是兩者的結(jié)合體。技術(shù)架構(gòu)和管理架構(gòu)的融合體現(xiàn)了這一特性。軟件質(zhì)量框架并不關(guān)心單個開發(fā)人員的效率,它關(guān)注的是開發(fā)團隊整體的效率。因此,管理架構(gòu)在框架中的意義在于它定義了一套軟件管理的方法,能夠?qū)﹂_發(fā)人員及其他們的工作進行管理。從這一點來看,它的作用和軟件工程方法學(xué)是一樣的。但是,在現(xiàn)實中我們發(fā)現(xiàn)軟件組織在邁向軟件過程的途中往往因為現(xiàn)實的困難而止步不前。其中一個主要的原因是在引入方法學(xué)的過程中生產(chǎn)效率降低了,而引起組織成員對變革的懷疑和不滿。
所以,除了管理架構(gòu)之外,軟件質(zhì)量框架還提供了一個技術(shù)架構(gòu),其目的是明確的定義如何應(yīng)用組織中涉及的軟件技術(shù),以及管理軟件技術(shù)的方法。技術(shù)架構(gòu)是具體的代碼,相比起方法學(xué)來說,它更加的具體,更容易為開發(fā)人員所理解。而技術(shù)架構(gòu)存在的目的,一方面是進行技術(shù)積累,另一方面也是為管理架構(gòu)服務(wù)。
技術(shù)架構(gòu)和管理架構(gòu)的下一層是支撐框架。支撐框架包括代碼、組件、文檔,目的是為技術(shù)架構(gòu)和管理架構(gòu)提供底層的支持。
處于結(jié)構(gòu)最頂層的是業(yè)務(wù)架構(gòu)。這個部分對于任何一個軟件組織來說都是不同的,因為不同的軟件組織的業(yè)務(wù)不同。業(yè)務(wù)架構(gòu)的目的是對業(yè)務(wù)進行建模和抽象,提取出可重用的部分,以提高軟件組織的生產(chǎn)率。本文中不涉及該部分的內(nèi)容。
軟件質(zhì)量框架的優(yōu)秀實踐
每日創(chuàng)建:一個組織應(yīng)當(dāng)擁有一個有效的工作流程,這個工作流程能夠指導(dǎo)軟件開發(fā)的進行。這個流程應(yīng)當(dāng)是具體的、可操作的。隨意的計劃和從來不遵循的進度決不是一個有效的工作流程。日創(chuàng)建實踐提出了一種對開發(fā)過程進行精細管理的方法,它是量化軟件管理的基礎(chǔ)。有了日創(chuàng)建,你會發(fā)現(xiàn)計劃的制定和進度的監(jiān)控是非常容易的一件事情。
測試驅(qū)動開發(fā):軟件質(zhì)量的根源來源于測試,測試做好了,軟件質(zhì)量就會好。這是毫無疑問的。問題的關(guān)鍵在于怎么做測試,才能保證測試的投入能夠帶來軟件質(zhì)量的有效提升。測試驅(qū)動開發(fā)正是為了解決這個問題而出現(xiàn)的。它不是一個完整的方法論,可以和任何一種開發(fā)流程進行融合。測試驅(qū)動開發(fā)不但能夠改善測試效果,還能夠改進軟件的設(shè)計。
建立核心框架:框架是一種具有高度重用性的軟件,這個特性決定了它非常適合成為軟件組織積累知識的一種有效手段。傳統(tǒng)的知識積累的方法是文檔,但是文檔容易產(chǎn)生歧異,開發(fā)人員往往也不愿意去閱讀和理解文檔??蚣芴峁┑氖且环N綜合的手段,包括文檔、模型和代碼。更容易理解,更重要的是,開發(fā)人員必須在日常的工作中使用框架,這使得他們對框架中的知識非常的熟悉,并根據(jù)工作的需要來改進框架。
面向組件編程:有效的組織在于有效的分工。體力活動容易進行分工,腦力勞動則比較難,而軟件開發(fā)似乎就更難了。所以,長久以來我們都習(xí)慣采用以功能塊為單位的粗粒度劃分方式。面向組件編程采用更加細密的劃分方式,并以服務(wù)作為組件之間相互依賴的契約,不但定義了組件和組件之間的關(guān)系,也規(guī)定了組件開發(fā)者、組件使用者、組件測試者的權(quán)利和義務(wù)。從而能夠進行軟件開發(fā)工作的分配、管理、QA等工作。
以上的幾個優(yōu)秀實踐看起來似乎并沒有多大的關(guān)系,他們的提出者也大都不同。但是有一點卻是共同的,就是他們都能夠?qū)浖|(zhì)量的改進起積極的作用。此外,他們?yōu)檐浖|(zhì)量框架結(jié)構(gòu)的實現(xiàn)提供了一個明確的實現(xiàn)方式。從軟件結(jié)構(gòu)的角度來看,日創(chuàng)建和測試驅(qū)動開發(fā)似乎偏向于管理架構(gòu),而建立核心框架和面向組件編程則偏向于技術(shù)架構(gòu)。事實上,他們既包含了技術(shù)架構(gòu),也包含管理架構(gòu),彼此之間也有相互關(guān)聯(lián)。例如,面向組件編程在合理劃分組件之后,就需要一個有效的核心框架來集成組件,通過每個組件都需要采用測試驅(qū)動開發(fā)方法來保證質(zhì)量,同時,日創(chuàng)建將會以組件為單位來進行每日的創(chuàng)建,從而為進度估算提供有效數(shù)據(jù)。
隨著軟件設(shè)計技術(shù)的發(fā)展,新的實踐將會出現(xiàn),取代舊的實踐。因此,以上的實踐也會落伍,當(dāng)可以肯定的是,以上的實踐和具體的技術(shù)并沒有直接的關(guān)系,更側(cè)重于開發(fā)思想,因此他們的生命力會很長。而隨著新技術(shù)的出現(xiàn),他們更可能將新的技術(shù)融合如自身,呈現(xiàn)出一種嶄新的形態(tài)。例如,未來的一種可能性是UML2.0和MDA技術(shù)的普及,以上的幾個實踐從以代碼為核心轉(zhuǎn)變?yōu)橐栽O(shè)計為核心,而另一種可能性是隨著以AspectJ為代表的AOP技術(shù)的普及和J2SE1.5中引入的元數(shù)據(jù)機制,面向組件編程將把Aspect作為組件的一種,而測試驅(qū)動開發(fā)也會加入測試Aspect的相關(guān)內(nèi)容,在日創(chuàng)建中也會增加相應(yīng)的處理AOP的步驟。
- 12015年安全工程師考試《安全產(chǎn)生技術(shù)》練習(xí)題(7)
- 2火電廠建設(shè)施工技術(shù)質(zhì)量驗評施工監(jiān)理工程試驗全套表格(1999版)
- 3我國綠色建筑材料未來發(fā)展趨勢分析
- 4河南某電廠主廠房上部混凝土結(jié)構(gòu)施工質(zhì)量策劃(魯班獎)
- 5劉頌梅:未來酒店的定位應(yīng)滿足個性化和主題化需求
- 62015年安全工程師考試《安全生產(chǎn)技術(shù)》測試試題3
- 72015年安全工程師考試《相關(guān)法律》自測題(5)
- 82015安全工程師考試《安全生產(chǎn)管理知識》備考測試6
- 92015年安全工程師考試《安全產(chǎn)生技術(shù)》模擬題(43)
- 10任志強:新型商業(yè)建筑更具吸引力
- 11楊力:建筑與自然,構(gòu)成了我們的“生活場”
- 12安全工程師考試法律法規(guī)相關(guān)知識精選習(xí)題(26)
- 13邵爽:餐廳設(shè)計以人為本
- 14安全工程師考試《安全生產(chǎn)管理知識》全真習(xí)題(9)
- 15[山東]高層住宅樓項目質(zhì)量、安全策劃書(市優(yōu)工程)
- 162015年安全工程師考試《安全產(chǎn)生法》模擬題(41)
- 172015年安全工程師考試《安全產(chǎn)生法》模擬題(24)
- 18[湖北]框剪結(jié)構(gòu)博物館質(zhì)量創(chuàng)優(yōu)匯報(創(chuàng)魯班獎)
- 192015年安全工程師考試《安全產(chǎn)生法》練習(xí)題(52)
- 20北京某裝飾公司管理規(guī)定與表格匯編
- 21火電企業(yè)檔案分類表
- 22某科研樓工程確?!板X江杯”優(yōu)質(zhì)工程質(zhì)量方案
- 23內(nèi)蒙古某博物館工程質(zhì)量創(chuàng)優(yōu)策劃(草原杯 魯班獎)
- 24安全工程師考試法律法規(guī)相關(guān)知識習(xí)題精講班(16)
- 25天津某塔樓鋼結(jié)構(gòu)施工詳圖設(shè)計創(chuàng)優(yōu)方案
- 26安全工程師考試《安全生產(chǎn)管理知識》全真試題(3)
- 27安全工程師考試《生產(chǎn)法及法律知識》預(yù)測試題(15)
- 28武漢市某醫(yī)院綜合病房大樓工程創(chuàng)優(yōu)策劃書(黃鶴杯 魯班獎 圖文并茂)
- 29把IT這條路走穿
- 302015年安全工程師考試《案例分析》模擬題(14)
成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓