任務粒度 軟體粒度

2021-04-02 23:54:47 字數 887 閱讀 4891

公司的乙個專案有三個子系統,其中a子系統最先開發,開發採用每個窗體類由乙個開發人員來開發的方式,結果整個a子系統開發下來出現了很多問題。

主要有兩個,首先是時間看來沒有預先計畫的那麼充足(似乎公司裡的所有軟體專案都是如此);由於開發過程中相互間缺乏溝通,每個窗體類中相同的功能卻有不同的實現,導致執行時的呈現也稍有不同,當然,對於實現起來比較複雜的地方顯然存在人力的浪費。

隨後b子系統的開發由我來負責,借鑑a子系統的開發經驗和教訓以及敏捷軟體開發的思想,b子系統的開發我做幾個重要調整。

軟體工程當中好像有個軟體粒度的概念,其實我並不很理解。但由此我想到了任務粒度,我們可以這樣理解,

比方說寫乙個窗體類,如果整個窗體類的開發是乙個較粗的任務粒度,那麼該窗體類中要處理的資料顯示、資料校驗、資料匯出等則是較細的任務粒度。我將窗體類要處理的任務粒度細化,將細化後的任務力度交由不同的開發者來研究實現的方式,然後交流給大家,這樣就避免了多人在相同或類似的功能點上尋求解決方案。有點分層開發的味道,但很有區別。分層開發要求不同的人開發不同的層,彼此的交匯點只在介面、引數。我很像是在要求乙個人來燒磚而另外乙個人制瓷片一樣,但每個人又都是建築師,需要瓷片或是磚頭時只需拿來就好了。

當測試的時候,我則從「結對程式設計」中獲得靈感,我制定了「結對測試」的策略。「結對程式設計」是敏捷軟體開發中的概念,定義為所有的產品軟體都是由兩個程式設計師、併排坐在一起在同一臺機器上構建的。

結對非但不會降低開發團隊的效率,而且會大大減少缺陷率。同樣,我要求每兩個開發者要坐在一起,邊聊天邊測試,找出盡可能多的bug。結果證明兩個人測試反而更容易測出問題,而且也更深入,那些比較隱蔽的bug也被暴露無遺。

b系統的開發因為採用了一些開發方法和思想,是三個子系統開發中唯一能夠保質、按時交付的系統。很感謝我的搭檔,他們肯採納我的建議,並且積極將建議落實處理。

希望對觀此文者有所幫助。

粗粒度與細粒度許可權控制

粗粒度許可權管理,對資源型別的許可權管理。資源型別比如 選單 url連線 使用者新增頁面 使用者資訊 類方法 頁面中按鈕。粗粒度許可權管理比如 超級管理員可以訪問戶新增頁面 使用者資訊等全部頁面。部門管理員可以訪問使用者資訊頁面包括 頁面中所有按鈕。細粒度許可權管理,對資源例項的許可權管理。資源例項...

記憶體分配粒度

使用getsysteminfo函式可以帶回乙個system info結構體,這個結構體中就包含記憶體分配粒度 這個結構體還包含cpu數量 記憶體分配粒度 就是一次分配記憶體的最小值 在表示堆的結構體中就是以分配粒度為基本單位來表示堆塊大小 類似於磁碟管理的基本單位是簇,乙個簇又是2的n次方個扇區。如...

PE對齊粒度

按照記憶體對齊粒度讀取到記憶體,不足的用0填充。檔案對齊粒度 記憶體對齊粒度 對齊後的大小 以dwalignment 對齊dwoperatenum 值,也就是讓dwoperatenum為dwalignment的整數倍 dword alignmentnum dword dwoperatenum,dwo...