『壹』 電腦應該怎麼改善硬體和軟體可以提高電腦速度
1、首先得承認你的電腦配置確實該更新換代了,內存過小,主頻很低,硬碟轉數過低,CPU也過時很久了。等等,所以說硬體方面沒的說,就是該換了。
2、操作系統方面:由於你的硬體配置過低,所以更換系統就不要考慮了。
3、使用習慣上:安裝360衛士,又安裝了其他的殺毒軟體,一定會影響電腦處理速度,個人建議把360衛士和殺毒軟體都卸載掉,電腦管家式集電腦維護和殺毒為一身的很好的軟體,推薦安裝。
4、電腦開機後會有很多後台程序在運行,有的是系統文件,有的是可有可無的,可以選擇性的關閉一些沒有用的後台程序以此來釋放一些內存。
『貳』 物業如何從硬體軟體上提高服務質量
提高物業管理服務水平的整體設想及策劃整體構想和管理策劃思路概括為:一個中心,兩個基本點,三個效益,四個滿意,五項達標,六項保證。一個中心---以用戶為中心,站在用戶的立場上研究和設計服務,重視用戶的意見,並順應用戶需求趨勢,不斷完善服務系統,為用戶提供高品質管家式服務。基本點---一手抓服務質量,一手抓成本管理。順應用戶-需求,制定服務項目,確定服務標准,在保證服務品質的同時,積極開拓創新,節能挖潛,控製成本。三個效益---環境效益、社會效益、經濟效益三者是密不可分,物業管理是一個微利行業,更應重視三者的有機結合,三種效益齊抓並舉。四個滿意---根據服務項目,制定服務標准,加強日常管理和服務,面向社會和企業內部,招聘適當的人在適當的崗位,為用戶提供高質量的服務,為企業創造良好的社會口碑和經濟效益,最終實現用戶滿意、社會滿意、員工滿意、企業滿意。五項指標---根據《全國物業管理示範大廈標准及評分細則》有關要求,結合自身管理實際和大廈的軟硬體設施設備情況,設定了設備運行維護達標、環境管理達標、公共秩序維護達標、無重大安全事故達標、用戶滿意率(95以上)達標。
六項措施---B措施一:超前化服務啟動某物業公司特別重視物業管理的前期介入,在工程施工期,物業管理工程部的人員深入現場,積極與施工方接觸,並根據大廈使用功能,結合設計、施工、用戶入駐後的使用和方便管理的角度,提出意見和建議,從而保證了大廈使用功能的充分發揮。措施二:個性化服務設計某物業公司每承接一個新的項目,都不是原有模式簡單的「克隆」、「拷貝」,而是在延續公司企業文化基礎上的再創新、再升華,在考慮區域因素、施工單位要素、用戶要素以及需求的基礎上,為項目度身定做「時尚且適合」的管理方案。某大廈的硬體設施在某市的各個辦公大廈中都堪稱一流。某物業公司在某市的物業管理
『叄』 如何狠抓規章制度落實,不斷提升制度執行力
一、構建好的制度,保證制度的嚴肅性。公共選擇管理理論認為:在好的制度和制度環境下,壞人可以做好事;在壞的制度和制度環境下,好人可以做壞事。把制度制定好,是制度建設的重要前提。
(1)成立專門的建章立制機構。具體負責制度體系的設計和制度制定的審定工作,相當於人大立法機關。
企業成立獨立於其他業務部門的立制機構的目的,就是要解決政出多門,各行其是的問題,保持制度的公正性,避免個別部門把設立制度作為利益切割、維護本部門利益的工具。
(2)精簡制度,建立精幹高效的制度體系。制度不是越多越好,而是要符合實際、滿足需要、解決實際問題。制度過多反而會形成「文山會海」,增加管理成本,降低組織效率。
對內容空泛、缺乏約束力的制度該取消的取消;對帶有部門利益保護色彩的該廢止的廢止。
(3)要注重調查研究。制度要符合實際需要,突出企業特色,制度出台前必須開展調查研究、廣泛徵求各方意見,達成廣泛共識,為制度執行打下良好的群眾基礎。
(4)提升制度的親和力。制度建設要遵循「人本精神」,體現制度對人的情感、公平關懷。對一些特殊情況要作出相應的規定。
二、抓制度落實,提高制度執行力。
首先,制度的生命力在於執行。制度一旦建立就必須不折不扣地執行,維護制度的權威性,否則再好的制度也會形同虛設。在一定意義上執行制度比制定製度更重要。執行制度實際上是排除執行干擾、解決制度梗阻的問題。
對制度執行干擾程度最大的是權力集中、管錢、管物的關鍵崗位和要害部門,這些崗位和部門可以利用手中的權力干擾某些制度的執行,擺脫制度的約束,謀求制度外的待遇和利益。
其次,各職能部門作為制度的制定者,他們可以發揮獲取制度信息的優勢和熟知業務運作的能力,採取規避和變通的辦法,維護本部門、本業務系統的利益。
公正執法就是要做到「制度面前人人平等」,幹部職工一視同仁,人情面前堅持原則。通過剛性公正執法,消除制度執行中的權力干預、部門干預和人情干預,解決制度執行不力的問題。
要提高執「法」隊伍的整體素質。把原則性強、作風正派、素質高、能力強的人員不斷充實到企業執「法」隊伍中,進一步提升制度執行的能力和水平。
三、建立制度執行獎懲、制度監督和制度評價機制,為制度執行提供保障。
(1)建立制度執行考核獎懲機制。制度考核是檢驗制度執行的重要手段,要保證制度落實,必須把制度考核納入績效考核體系,建立制度執行考核獎懲機制,對制度執行好的單位和個人進行表彰獎勵,執行差的給予經濟處罰。
(2)建立制度執行監督機制。權力缺乏監督會產生腐敗,制度缺乏監督會導致群體「失約」、行為「失常」,因此制度缺乏監督比權力缺乏監督造成的危害更大。
要加強上下級監督,做到責任層級清晰化,一級抓一級,逐級抓落實。加強平行監督,以新的內控制度為平台,建立各業務部門分工明確、互相制約、互相監督的制衡機制。
(3)建立制度評價機制。制度實施後,針對制度執行情況和執行效果,定期組織各業務部門進行分析評價,認真查找制度本身和制度執行方面存在的問題和缺陷,並給予完善。
通過建立制度評價機制,形成持續改進、不斷創新的制度運行機制,努力構建科學合理、可操作性強的制度管理體系。
四、建設制度執行文化,創造高效執行力。
制度執行必須依賴執行文化的力量,執行文化是企業提高執行力所要追求的最高境界。建設制度執行文化其核心就是營造尊重製度、以制度作為行動最高准則的文化氛圍。
培育團隊執行文化。制度的最終執行,需要一個單位和組織的全體人員共同遵守。「木桶原理」認為:木桶的最大容量不取決於長的木板,而取決於最短的那塊木板。
同樣制度執行力不取決執行力最好的員工,而取決於執行力最差的員工。「木桶原理」告訴我們要提升整體執行力,必須提升每個個體的執行力,不斷縮小個體執行力之間的差異。
每個員工要樹立集體和團隊意識,學習上互相提高,工作上密切配合協作,形成執行合力,努力完成共同的工作目標,最終建立起團隊執行力文化。
五、加強制度管理應處理好三個關系
1、是行政指令與制度管理的關系。制度的制定、執行離不開行政指令,而行政指令代替不了制度管理。行政干預過多本身就說明了制度管理的缺失或制度執行的弱化。
在制度健全的情況下,應盡量減少行政干預,把注意力放在如何提高制度執行力上。
2、是活動安排與制度管理之間的關系。活動安排具有階段性,是制度管理的一個輔助工具,相當於計算機軟體上的一個補丁。制度管理不到位,一些企業和部門經常通過開展集中整治和專項治理活動來彌補。
如果活動安排過多,不僅會給基層帶來額外的工作負擔,同時也反襯出制度執行力的弱化。
3、 三是文化管理與制度管理的關系。文化管理是企業管理的最高境界,建設執行力文化不是一朝一夕的事情,它需要一個漫長的實踐過程;
只有在執行文化理念深入到每個員工心裡,轉化為自覺行動,形成執行合力的時候,才能最終建立起有效的團隊執行力文化。
(3)如何抓硬軟體規范提升的擴展閱讀
重要性
企業的規章制度是體現企業與勞動者在共同勞動,工作中所必須遵守的勞動行為規范的總和.依法制定規章制度是企業內部的」立法」,是企業規范運行和行使用人權的重要方式之一,企業應最大限度地利用和行使好法律賦予的這一權利。
聰明的企業都看到了這一點,但實踐中還有很多企業並未對此予以重視,認為反正有國家法律,法規,出了事按國家法律,法規處理就行,其不然賣國家法律,法規是大法,不可以針對某個單位的具體情況,而企業的具體是千變萬化的。
成功的企業多制度其效果是使企業運行平穩,流通,高效,並可基本上防患於未然.俗話說:」不成規矩,何以成方圓」,成功的企業及規章制度,50%更是直接因它而產生.
可以說規章制度的主要功能是:
1. 規范管理,能使企業經營有序,增強企業的競爭實力.
2. 制訂規則,能使員工行為合矩,提高管理效率.
它的重要意義是:
制定企業規章制度是建立現代企業制度的需要.
制定企業規章制度是規范指引企業部門工作與職工行為需要.
企業的規章制度是完善」勞動合同制」,解決勞動爭議不可缺少的有力手段。
『肆』 如何進行軟硬體設置,使系統性能達到最優化
全面優化你的電腦,先用優化大師或超級兔子優化後,再挑選以下辦法進行再優化。
一、系統屬性設置
1、進BIOS由默認值改為優化設置值,將開機啟動順序設硬碟為第一啟動。
2、禁用閑置的IDE通道
右鍵點擊「我的電腦-屬性」--「硬體」--「設備管理器」,在其中展開「IDE ATA/PATA控制器」然後分別右擊「主要」和「次要」IDE通道--「高級設置」--將「設備類型」設置為「無」,將「傳送模式」設為「DMA(若可用」。
3、優化視覺效果
右鍵單擊「我的電腦」--「屬性」—「高級」,在「性能」欄中,點擊「設置」--「視覺效果」,調整為最佳性能,或去掉一些不需要的功能。
4、優化性能
右鍵單擊「我的電腦」--「屬性」—「高級」,在「性能」欄中,點擊「設置」—「高級」—將「處理器計劃」、「內存使用」,均選「程序」。
接著單擊「虛擬內存」區「更改」--在驅動器列表中選中系統盤符--自定義大小--在「初始大小」和「最大值」中設定數值,然後單擊「設置」按鈕,最後點擊「確定」按鈕退出。虛擬內存最小值物理內存1.5—2倍,最大值為物理內存的2—3倍。
5、啟動和故障恢復
"我的電腦"--"屬性"--"高級"--"啟動和故障修復"--「設置」,在「系統失敗區中,去掉"將事件寫入系統日誌","發送管理警報","自動重新啟動"前邊的勾;將"寫入調試信息"設置為"無";點擊"編輯",在彈出記事本文件中:
[Operating Systems] timeout=30 把 30 秒改為 0 秒。
6、禁用錯誤報告
"我的電腦"--"屬性"--"高級"--點"錯誤報告",選擇"禁用錯誤匯報",勾選「但在發生嚴重錯誤時通知我」—確定。
7、關閉系統還原功能
單擊「開始」--右鍵單擊「我的電腦」--「屬性」—「系統還原」,為了兼顧系統性能和系統安全,建議關閉 XP系統盤以外的分區磁碟的系統還原功能,點擊「設置」,將「要使用的磁碟空間」設為最小。
8、關閉自動更新
單擊「開始」--右鍵單擊「我的電腦」--「屬性」—-「自動更新」--選擇「關閉自動更新」或選擇「有可用下載時通知我……」。
9、關閉遠程桌面
開始--右鍵單擊「我的電腦」--「屬性」--「遠程」,去掉「遠程協助」和「遠程桌面」里的「允許從這台計算機發送遠程協助邀請」和「允許用戶遠程連接到這台計算機」前邊的勾--確定。
10、禁用消休眠功能
單擊「開始」--「控制面板」--「電源管理」--「休眠」,將「啟用休眠」前的勾去掉。
二、設置顯示屬性能
1、右擊桌面空白處—屬性 –將「背景」和「屏幕保護程序」設為「無」;去掉「開啟桌面壁紙自動轉換」前邊的勾;
2、右擊桌面空白處—屬性 –-外觀—效果—去掉「為菜單和工具提示使用下列過渡效果」前邊的勾,勾選「使用下列方式使屏幕字體邊緣平滑」—確定。
3、右擊桌面空白處—屬性 –設置—「屏幕解析度」可設為800×600或1024×768;「顏色質量」一般不要設的太高,以設「中」為好。
4、右擊桌面空白處—屬性 –設置—高級—監視器—將「屏幕刷新率」純平設為「75—85HZ」,液晶自動。
5、右擊桌面空白處—屬性 –設置—高級—「疑難解答」—將「硬體加速」調到「全」—確定。
三、關閉「Internet時間同步」功能
右擊任務欄通知區時間—選「調整日期/時間」--「Internet時間」,取消「自動與Internet時間伺服器同步」前的勾—確定。
四、關閉一些啟動程序 開始-運行-msconfig---啟動 ,除殺毒軟體、輸入法外一般的程序都可以關掉。
五、禁用多餘的服務組件
右鍵單擊「我的電腦」--「管理」--「服務和應用程序」--「服務」,在右窗格將不需要的服務設為禁用或手動。
六、關閉華生醫生Dr.Watson
單擊「開始」--「運行」--輸入「drwtsn32」命令,或者「開始」--「所有程序」--「附件」--「系統工具」--「系統信息」--「工具/Dr Watson」,調出系統里的華生醫生Dr.Watson ,只保留「轉儲全部線程上下文」選項,否則一旦程序出錯,硬碟會讀很久,並佔用大量空間。
七、修改注冊表
1、加快開機及關機速度
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],將字元串值[HungAppTimeout]的數值數據更改為[200],將字元串值[WaitToKillAppTimeout]的數值數據更改為1000.另外在[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control],將字元串值[HungAppTimeout]的數值數據更改為[200],將字元串值[WaitToKillServiceTimeout]的數值數據更改1000.
2、自動關閉停止響應程序
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],將字元串值[AutoEndTasks]的數值數據更改為1,重新啟動即可。
3、清除內存內被不使用的DLL文件
在[開始]-->[運行]-->鍵入[Regedit]-->[HKKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Windows]-->[CurrentVersion],在[Explorer]增加一個項[AlwaysUnloadDLL],默認值設為1。註:如由默認值設定為[0]則代錶停用此功能。
4、加快菜單顯示速度
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],將字元串值[MenuShowDelay]的數值數據更改為[0],調整後如覺得菜單顯示速度太快而不適應者可將[MenuShowDelay]的數值數據更改為[200],重新啟動即可。
5、加快自動刷新率
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control]-->[Update],將Dword[UpdateMode]的數值數據更改為[0],重新啟動即可。
6、加快預讀能力改善開機速度
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager]-->[MemoryManagement],在[PrefetchParameters]右邊窗口,將[EnablePrefetcher]的數值數據如下更改,如使用PIII 800MHz CPU以上的建議將數值數據更改為4或5,否則建議保留數值數據為默認值即3。
7、利用CPU的L2 Cache加快整體效能
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager],在[MemoryManagement]的右邊窗口,將[SecondLevelDataCache]的數值數據更改為與CPU L2 Cache相同的十進制數值:例如:P4 1.6G A的L2 Cache為512Kb,數值數據更改為十進制數值512。
8、在啟動計算機時運行Defrag程序
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Dfrg]-->[BootOptimizeFunction ],將字元串值[Enable]設定為:Y等於開啟而設定為N等於關閉。
9、關機時自動關閉停止響應程序
在[開始]-->[運行]-->鍵入[Regedit]-->[HKEY_USERS]-->[.DEFAULT]-->[Control Panel],然後在[Desktop]右面窗口將[AutoEndTasks]的數值數據改為1,注銷或重新啟動。
10、加快寬頻接入速度
在[開始]-->[運行]-->鍵入[regedit]-->在[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Policies]-->[Microsoft] -->[Windows],增加一個名為[Psched]的項,在[Psched]右面窗口增加一個Dword值[NonBestEffortLimit]數值數據為0。
11、加快寬頻網速
打開注冊表編輯器,找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip \ parameters, 右擊parameters在右邊空白處,選擇左「新建」—>DWORD值邊,將其命名為「DefaultTTL」,右擊滑鼠選出擇「修改」,值改為 80(十六進制),或128(十進制)。
將 GlobalMaxTcpWindowSize 的值改為7FFF。
12、加速網上鄰居
打開注冊表編輯器,找到HKEY_LOCAL_MACHINE/sofew
are/Microsoft/Windows/Current Version/Explore/RemoteComputer/NameSpace,刪除
其下的{2227A280-3AEA-1069-A2DE08002B30309D}(列印機)和{D6277990-4C6A-11CF8D87- 00AA0060F5BF}(計劃任務)。
『伍』 三維動作捕捉軟硬體要求
這個帖子沒人回答估計大家都覺得難度很大。我來嘗試下。不保證我對你幫助怎樣,我盡力而為。三維動畫捕捉只是三維軟體裡面的一種功能或插件。用來實現動畫捕捉。3dmax,maya都可以做到。maya是專業的三維動畫軟體。您電視或網路看到的大型科幻片,動畫片。都是它的傑作。至於硬體方面,目前配的3,4千的電腦都可以正常運行。如果您要配專業機,最少要准備12000左右。我工作的專業機就是DELL。最少2G內存。(內存取決於您製作當中的渲染速度)CUP跟顯卡要求較高。當然還有行業專業的動作捕捉軟體,boujou.這個軟體估計很少人接觸,它是攝像機跟蹤軟體電影特效的幕後英雄。也可以跟蹤一些三維的動畫捕捉。我上學的時候學過一個星期,因為不是主流軟體。也沒好好學。其他就沒什麼了,大概就是這些。不知道樓主滿意不滿意。
『陸』 如何測試軟硬體配置的正確性給最佳答案
有硬體和軟體兩種方式
硬體可以用debug卡,市面上有買,你可以咨詢裝機公司,有不同型號
軟體可以在網上下載,會顯示你機器的各種配置
『柒』 軟體與硬體是怎麼結合的
軟體(中國大陸及香港用語,台灣稱作軟體,英文:Software)是一系列按照特定順序組織的計算機數據和指令的集合。一般來講軟體被劃分為系統軟體、應用軟體和介於這兩者之間的中間件。軟體並不只是包括可以在計算機(這里的計算機是指廣義的計算機)上運行的電腦程序,與這些電腦程序相關的文檔一般也被認為是軟體的一部分。簡單的說軟體就是程序加文檔的集合體。
硬體(英文名Hardware)是計算機硬體的簡稱(中國大陸及香港用語,台灣作硬體),是指計算機系統中由電子,機械和光電元件等組成的各種物理裝置的總稱。這些物理裝置按系統結構的要求構成一個有機整體為計算機軟體運行提供物質基礎。
簡言之,硬體的功能是輸入並存儲程序和數據,以及執行程序把數據加工成可以利用的形式。從外觀上來看,微機由主機箱和外部設備組成。主機箱內主要包括CPU、內存、主板、硬碟驅動器、光碟驅動器、各種擴展卡、連接線、電源等;外部設備包括滑鼠、鍵盤等。
實際上軟體需要硬體的支撐才能使用,而同樣硬體本身需要驅動程序和操作系統等軟體支持才能使用。這形成了一個相互聯系,協同作戰的局面。人們把不裝備任何軟體的計算機機稱為硬體計算機或裸機。裸機由於不裝備任何軟體,所以只能運行機器語言程序,它的功能顯然得不到充分而有效的發揮。普通用戶面對的一般不是裸機,而是在裸機之上配置若干軟體之後所構成的微機系統。有了軟體,就把一台實實在在的物理機器變成了一台具有抽象概念的邏輯機器,從而使人們不必更多地了解機器本身就可以使用計算機,軟體在計算機和使用者之間架起了橋梁。正是由於各種完成不同任務的軟體包(若干軟體的集合),才使得計算機的應用領域日益廣泛。當然,計算機硬體是支撐計算機軟體工作的基礎,沒有足夠的硬體支持,軟體也無法正常地工作。實際上,在計算機技術的發展過程中,計算機軟體隨硬體技術的迅速發展而發展,反過來,軟體的不斷發展與完善又促進了硬體的新發展,兩者的發展密切地交織在一起,缺一不可。
『捌』 如何從軟硬體層面提升 Android 動畫性能
動畫放映過程中每幀畫面可能都要重繪。如果使用視圖層,,渲染過的視圖可以存入離屏緩存以待將來重用,而無需每幀重繪。
此外,硬體層緩存與 GPU 中,這使得動畫放映中的某些操作更加快速。簡單的轉換(平移,旋轉,縮放,開端)可通過硬體層快速渲染。由於許多動畫只是這些轉換的組合,使用硬體層可大大提高動畫性能。
『玖』 如何提高軟體的質量
一、什麼是質量? 作為軟體產品的銷售人員,市場人員或維護人員經常會受到客戶這樣那樣的指責或抱怨,客戶說:你們產品的質量太差,不穩定等等。那麼什麼是質量呢?我們該如何來衡量質量呢? 質量具有三個維度: �6�1 符合目標。目標是客戶所定義的,符合目標即判斷我們是不是在做需要做的事情。 �6�1 符合需求。即產品是不是在做讓它做的事情。 �6�1 符合實際需求。實際的需求包括用戶明確說明的和隱含的需求。 ISO 關於質量的定義表示如下: 「 一個實體(產品或服務)的所有特性,基於這些特性可以滿足明顯的或隱含的需要。 」 注意,在這個定義中包含明顯的需求和隱含的需求。而往往我們會忽略隱含的需求。因此在控制一個產品的質量的過程中必須關注這些隱含的需求,並給予應有的驗證。 另一方面因為我們的產品是為客戶提供服務的,因此凡是不滿足客戶需求的,我們都認為是一個失效( failure )。所以我們的產品必須始終圍繞著客戶的需求進行開發和驗證。 這里我們談到客戶,其實在一個軟體的需求收集過程中需要關注客戶和用戶。而我們經常會忽略客戶與用戶之間的區別。那麼誰是客戶?誰是用戶呢?簡單的來說,客戶是真正能夠決定是否購買你軟體的人,而用戶是實際使用軟體的人。了解了這個區別,對於你在分析需求的重要性的時候就可以進行參考。同時在產品質量驗證的時候也可以做出不同的權衡。另一方面我們在考慮我們用戶需求的時候,往往只考慮了實際使用軟體的人員,而忽略了其它一些人員對軟體的要求或對軟體造成的潛在競爭,這包括維護人員的要求、系統管理人員的要求、軟體上下遊人員的要求、先前版本的情況、市場上競爭對手的軟體情況等。 每個人提到質量的時候,經常會遇到下列矛盾,在這些矛盾中隱含著對質量的承諾【 5 】: �6�1 質量需要一個承諾,尤其是高層管理者的承諾。但為了得到質量,高層管理者必須和其僱用的員工進行緊密合作; �6�1 許多人相信沒有缺陷的產品和服務是不可能的。但是控制在一定級別的缺陷數是正常並可接受的; �6�1 質量經常是和成本緊密聯系在一起,一個高質量的產品同時也意味著高投入。這是設計的質量和一致性質量的一個矛盾; �6�1 一個高的質量要求需求規格說明書足夠詳細,以便產品可以根據這些規格說明書進行定量的分析。然而許多組織沒有能力或者不願意產生如此詳細程度的規格說明書; �6�1 技術人員經常相信規范和標准會束縛他們的創造力,因此就不遵照標准做事。然而如果要得到高質量的產品,就必須遵循良好定義的標准和過程。 二、流程對質量的貢獻 好了,既然已經了解了什麼是質量,那麼怎麼才能改進軟體產品的質量呢?從一個企業的長遠發展來看,首先應當從流程抓起,規范軟體產品的開發過程。這是一個軟體企業從小作坊的生產方式向集成化、規范化的大公司邁進的必經之路,也是從根本上解決質量問題,提高工作效率的一個關鍵手段。 軟體產品的開發同其它產品(如汽車)的生產有著共同特性,即需要按一定的過程來進行生產。在工業界,流水線生產方式被證明是一種高效且能夠比較穩定地保證產品質量的一種方式。通過這種方式,不同的人員被安排在流程的不同位置,最終為著一個目標共同努力,這樣可以防止人員工作間的內耗,極大的提高工作效率。並且由於其過程來源於成功的實例,因此其最終的產品質量能夠滿足過程所設定的范圍要求。軟體工程在軟體的發展過程中吸取了這個經驗並把它應用到了軟體開發中,這就形成了軟體工程過程,簡單的說就是開發流程。 無論做什麼事情,都有一個循序漸進的過程,從計劃到策略再到實現。軟體流程就是按照這種思維來定義開發過程,它根據不同的產品特點和以往的成功經驗,定義了從需求到最終產品交付的一整套流程。流程告訴我們該怎麼一步一步去實現產品,可能會有那些風險,如何去避免風險等等。由於流程來源於成功的經驗,因此,按照流程進行開發可以使得我們少走彎路,並有效的提高產品質量,提高用戶的滿意度。 目前流行的流程方法有很多種,不同的過程模型適合於不同類型的項目。瀑布模型是應用的最為廣泛的一種模型,也是最容易理解和掌握的模型,然而它的缺陷也是顯而易見的。遺漏的需求或者不斷變更的需求會使得該模型無所適從。然而,對於那些容易理解但很復雜的項目,採用瀑布模型會是比較適合的,因為你可以按部就班的去處理復雜的問題。在質量要求高於成本和進度要求的時候,該模型表現的尤其突出。 螺旋模型是也是一個經典模型,它關注於發現和降低項目的風險【 8 】。螺旋型項目從小的規模開始,然後探測風險,制定風險控制計劃,接著確定下一步項目是否還要繼續,然後進行下一個螺旋的反復。該模型的最大優點就是隨著成本的增加,風險程度隨之降低。然而螺旋模型的缺點是比較復雜,且需要管理人員有責任心,專注以及有管理方面經驗。 RUP ( Rational Unified Process )是 Rational 公司提出的一套開發過程模型,它是一個面向對象軟體工程的通用業務流程【 9 】。它描述了一系列相關的軟體工程流程,它們具有相同的結構,即相同的流程構架。 RUP 為在開發組織中分配任務和職責提供了一種規范方法,其目標是確保在可預計的時間安排和預算內開發出滿足最終用戶需求的高品質的軟體。 RUP 具有兩個軸,一個是時間軸,這是動態的。另一個是工作流軸,這是靜態的。在時間軸上, RUP 劃分了四個階段:初始階段、細化階段、構造階段和發布階段。每個階段都使用了迭代的概念。在工作流軸上, RUP 設計了六個核心工作流程和三個核心支撐工作流程,核心工作流軸包括:業務建模工作流、需求工作流、分析設計工作流、實現工作流、測試工作流和發布工作流。核心支撐工作流包括:環境工作流、項目管理工作流和配置與變更管理工作流。具體可以參考圖 1 。 RUP 匯集現代軟體開發中多方面的最佳經驗,並為適應各種項目及組織的需要提供了靈活的形式。作為一個商業模型,它具有非常詳細的過程指導和模板。但是同樣由於該模型比較復雜,因此在模型的掌握上需要花費比較大的成本。尤其對項目管理者提出了比較高的要求。 圖1 RUP 工作流程示意圖 IPD ( Integrated Proct Development )流程是由 IBM 提出來的一套集成產品開發流程,非常適合於復雜的大型開發項目,尤其涉及到軟硬體結合的項目。 IPD 從整個產品角度出發,流程綜合考慮了從系統工程、研發(硬體、軟體、結構工業設計、測試、資料開發等)、製造、財務到市場、采購、技術支援等所有流程。是一個端到端的流程。在 IPD 流程中總共劃分了六個階段(概念階段、計劃階段、開發階段、驗證階段、發布階段和生命周期階段),四個個決策評審點(概念階段決策評審點、計劃階段決策評審點、可獲得性決策評審點和生命周期終止決策評審點)以及六個技術評審點,具體可以參考圖 2 。 IPD 流程是一個階段性模型,具有瀑布模型的影子。該模型通過使用全面而又復雜的流程來把一個龐大而又復雜的系統進行分解並降低風險。一定程度上,該模型是通過流程成本來提高整個產品的質量並獲得市場的佔有。由於該流程沒有定義如何進行流程回退的機制,因此對於需求經常變動的項目該流程就顯得不大適合了。並且對於一些小的項目,也不是非常適合使用該流程。 圖2 IPD 流程示意圖 三、流程與技術 流程和成功不是等價的。沒有流程就成功是不可能得到保證,但有了流程並不意味著肯定能夠成功。這恐怕是很多迷信於流程的人所不能接受的。但這的確是個事實。記得有個做了將近 30 多年的需求分析專家說過:即使是一個已經達到 CMM4 級的公司,也完全有可能做不好需求分析。為什麼?技術,技術是成功的另外一個必要條件。就好比現在你要從上海到北京去,流程給你指出了最短的路徑,技術提供給你最快的交通工具。兩者結合就是完美。 對於軟體開發來說,要保證軟體的質量,需要掌握多方面的技術,包括分析技術、設計技術、編碼技術和測試技術等等。在國內有一個普遍的非正常現象,就是大家覺得只有編程能力才是玩電腦的真正技能。就好像造一套房子,其它都不重要,只要磚瓦匠有高超的技能就行了。盡管這個比喻會打擊很多程序員的自尊心,但這的確是一個事實。我們缺少系統級的工程師,在分析和設計方面的工作做得很不扎實。 需求是一個項目的靈魂。模稜兩可的需求帶來不可避免的後果便是返工 —— 重做一些你認為已做好的事情。返工會耗費開發總費用的 4 0 % ,而 7 0 % ~ 8 5 % 的重做是由於需求方面的錯誤所導致的( l e ff i n g w e l l1 9 9 7 )【 10 】。想像一下如果你能減少一半的返工會是怎樣的情況?你能更快地開發出產品,在同樣的時間內開發更多、更好的產品,甚至能偶爾回家休息休息。在《軟體需求》一書中關於如何進行需求分析給出了比較詳細的介紹【 7 】, RUP 中關於需求的指導也是很實用的。 設計是最能體現一個工程師能力和水平的環節。一個好的設計基本上決定了產品的最終質量。設計是把需求轉換成系統的一個關鍵步驟,它需要從自然語言描述的需求中尋找出設計的基礎單元,構建出整個系統的構架。在 RUP 中關於系統構架師和設計師的定位是相當高的。關於設計方面的技能涉及面是很廣的,包括傳統的結構化設計到面向對象設計。設計人員需要掌握一定的建模技術。 UML 是國際上比較流行的一種建模語言【 11 】。在嵌入式方面, SDL 也是一種非常好的選擇。《設計模式》是在設計思想方面總結的非常出色的一本書【 6 】,作為一名設計人員(尤其是面向對象設計人員)必須要好好研究一下。但是對這些模式的應用應當講究一種自然的應用,千萬不要因為模式而去設計模式,否則會適得其反。 現在的程序員熱中於掌握多種編程語言,或者講究語言的過分技巧化,而往往忽略了編程語言的規范化。不規范的語言應用給程序的可理解性、可維護性以及可測試性帶來了大的傷害,進而損害了產品的質量。某公司曾對中國程序員和印度程序員做過一個測驗,這個測驗要求參加者對一組數進行排序。測試結果發現,印度程序員設計的程序使用的演算法並不是最優,但卻是最不容易出錯的,並且幾個程序員寫出來的代碼如出一轍。而幾個中國程序員寫出的代碼,有的非常漂亮,很精練,效率很高;有的卻很冗雜,還有錯誤。如果大家是在做研究性的項目或純粹興趣性的項目,那麼充分發揮自己的編程天才也無可厚非。然而,對於一個軟體公司,產品最終是要交給用戶的,需要遵循的是一個軟體產品的開發工程。因此這類軟體的開發需要遵循一定的編程規范,畢竟開發的軟體不是自己用,還需要和別人的集成,還需要給以後版本重用和維護。 測試的技術將在第五節進行闡述。總之流程很關鍵,技術也很重要,我的觀點是:魚和熊掌,兩者都不能放。 四、全面質量管理 自從 Deming 的全面質量管理( TQM )原則在日本工業界獲得了巨大成功之後,這個原則迅速被傳播到了世界各個地方,同樣,全面質量管理原則也被應用到了軟體開發當中。如前面提到的,軟體開發也是一個工程性的工作,因此必須提高整個工程的質量。產業界的大量研究( TRW 、 Nippon Electric 和 Mitre Corp. 以及其它一些公司)表明設計活動引入的錯誤占軟體過程中出現所有錯誤(和最終的缺陷)數量的 50 %到 65 %。根據 IBM 的研究表明,假定在分析階段發現的錯誤其改正成本為 1 個單位的話,那麼在測試之前(設計編碼階段)發現一個錯誤的修改成本約為 6.5 個貨幣單位,在測試時(集成測試,系統測試和驗收測試)發現一個錯誤的修改成本約為 15 個貨幣單位,而在發布之後(已經交到用戶手上)發現一個錯誤的修改成本約為 60 到 100 個貨幣單位。同樣該比例也適用用於發現一個錯誤需要的時間。我們可以看下面兩條曲線圖: 圖3 缺陷代價曲線 為了提高產品質量,縮短產品開發進度,節約產品開發成本,必須盡早的進行產品質量控制。全面質量控制要求在過程的每個階段每個步驟上都要進行嚴格的驗證和確認活動。 什麼是驗證? 驗證 就是要用數據證明我們是不是在正確的製造產品。注意這里強調的是過程的正確行【 12 】。 什麼是確認? 確認 就是要用數據證明我們是不是製造了正確的產品。注意這里強調的是結果的正確性。 IEEE 給出的驗證和確認過程可以用下圖來表示。驗證和確認是一個廣泛的概念,感興趣的讀者可以參考 IEEE Std 1012-1998 。
圖4 驗證和確認模型 五、關注測試 軟體測試是軟體質量控制中的關鍵活動。業界的統計數據表明,測試的成本大約占軟體開發總成本的 50 %左右。 軟體測試的目的是要發現軟體中的錯誤。一個好的測試是發現至今沒有被發現的錯誤。傳統的軟體測試專注於動態測試范疇,如:單元測試,集成測試和系統測試。而測試工程的發展已經進入到了全流程的測試,包括開發過程前期的靜態測試。 一般我們可以把測試分為白盒測試和黑盒測試。 白盒測試 :顧名思義,白盒測試應當是透明的。的確,該類測試是根據程序代碼的內部邏輯結構來設計測試用例進行測試。那麼什麼是測試用例? 一個 測試用例 就是一個文檔,描述輸入、動作、或者時間和一個期望的結果,其目的是確定應用程序的某個特性是否正常的工作。 黑盒測試 :看了白盒測試的解釋,我想你很快就能猜出黑盒測試是不考慮程序內部結構情況的。事實上也是這樣。黑盒測試是根據規格說明書進行的測試。 規格說明書 記錄了用戶的需求。比如用戶希望在編輯器中增加查找功能,那麼我們把該需求寫入規格說明書,根據該項要求,直接調用應用程序的該項功能進行測試,而不管其內部是用什麼演算法實現的。 白盒和黑盒這兩類測試是從完全不同的出發點,並且是兩個完全對立點,反映了事物的兩個極端,兩種方法各有側重,不能替代。但是在現代測試理念中,這兩種測試往往不是決然分開的,一般在白盒測試中交叉使用黑盒測試的方法,在黑盒測試中交叉使用白盒測試的方法。 常見的白盒測試是單元測試。 單元測試 是測試中最小單位的測試。簡而言之,就是拿一個函數出來,加上驅動模塊,樁模塊,讓它能夠運行起來,然後設計一些用例測試其內部的控制點(如:條件判斷點,循環點,選擇分支點等)。 驅動模塊 是模擬調用被測函數的函數。 樁函數 是模擬當前測試函數所調用的函數。 常見的黑盒測試包括:集成測試,系統測試。 集成測試 是在單元測試的基礎上,將所有模塊按照設計要求(如根據結構圖)組裝成為子系統或系統,進行集成測試。實踐表明,一些模塊雖然能夠單獨地工作,但並不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實現。 系統測試 的目的在於通過與系統的需求定義作比較,發現軟體與系統定義不符合或與之矛盾的地方。系統測試的測試用例應根據需求分析說明書來設計,並在實際使用環境下來運行。系統測試的內容極其廣泛,包括功能測試、協議測試、性能測試、壓力測試、容量測試等等。有關測試方面的概念可以參考本人已出版的《軟體測試技術概論》。 軟體測試是產品最終交付到用戶之前的最後一道防線,有著舉足輕重的地位。然而,做好軟體測試卻是不容易的,一方面你需要同時掌握軟體開發的技能和軟體測試方面的技能;另一方面產品必須給予測試充分的獨立性和資源保證。 六、成功的鐵三角 在一個軟體企業中,如果能夠良性的發展,必須關注組織,流程和人三者之間的關系。組織是流程成功實施的保障,好的組織結構能夠有效的促進流程的實施;流程對於產品的成功有著關鍵的作用,一個適合於組織特點和產品特點的流程能夠極大的提高產品開發的效率和產品質量,反之則會拖延產品開發進度,並且質量也無法得到保證;對企業來說,人是最寶貴的財富,它們是技術的載體。對於一個軟體公司來說,無論是開發人員還是測試人員,都非常關心其今後的發展通道,如果有一條清晰的技術發展線為其指明今後的職業發展方向的話,這可以大大激勵員工的士氣和工作積極性。另外技術發展的方向應該與現在的開發流程和規范相結合,這樣有利於專業技能的提高。 總之,組織,流程和人這三者是一個企業成功的鐵三角,理想的情況下它們彼此促進,糟糕的情況下它們彼此制約。 七、國際上流行的質量標准 最早進入國內的質量標準是 ISO 系列。在軟體方面主要使用 ISO9000 系列標准。 ISO9000 是一個非常完整的標准,並且定義了供應商設計和交付一個有質量產品的能力所需要的所有元素。 ISO9002 涵蓋了對供應商控制設計和開發活動所認為重要的質量標准。 ISO9003 用於證明供應商在檢視和測試期間檢測和控制產品不一致性的能力。 ISO9004 描述和 ISO9001 、 ISO9002 和 ISO9003 相關的質量標准,並提供了一個完整的質量查檢表。 軟體能力成熟度模型是目前國內軟體企業中非常受歡迎的一個質量標准。並且該標准已經成為業界一個事實上的標准。 CMM 為軟體組織提供了一個指導性的管理框架。在這個框架的指導下: �6�1 軟體組織可以對其軟體開發、維護過程獲得控制。 �6�1 軟體組織可以推進其軟體工程更為科學、推進軟體過程管理更為卓越。 �6�1 CMM 通過確定當前軟體過程管理的成熟度,通過標識軟體的質量和過程改進中關鍵的、要害的問題,可以指導軟體組織選擇正確的軟體過程改進策略。 �6�1 CMM 將其焦點,聚焦在一系列具體的軟體過程活動上,並以侵略方式( Aggressively )達到這些活動。一個軟體組織就可以穩定地、持續地改進其整個軟體組織過程,使得其軟體過程管理能力取得持續地、持久地不斷爭長提高。 在 CMM 中,把軟體工廠分為五個等級:初始級、可重復級、已定義級、管理級和優化級。其中: 初始級 :軟體過程是未加定義的隨意過程,項目的執行是隨意甚至是混亂的。也許,有些企業制定了一些軟體工程規范,但若這些規范未能覆蓋基本的關鍵過程要求,且執行沒有政策、資源等方面的保證時,那麼它仍然被視為初始級。 可重復級 :人們根據多年的經驗和教訓,總結出軟體開發的首要問題不是技術問題而是管理問題。因此,第二級的焦點集中在軟體管理過程上。一個可管理的過程則是一個可重復的過程,可重復的過程才能逐漸改進和成熟。可重復級的管理過程包括了需求管理、項目管理、質量管理、配置管理和子合同管理五個方面;其中項目管理過程又分為計劃過程和跟蹤與監控過程。通過實施這些過程,從管理角度可以看到一個按計劃執行的且階段可控的軟體開發過程。 已定義級: 要求制定企業范圍的工程化標准,並將這些標准集成到企業軟體開發標准過程中去。所有開發的項目需根據這個標准過程裁剪出與項目適宜的過程,並且按照過程執行。過程的裁剪不是隨意的,在使用前必須經過企業有關人員的批准。 管理級 :所有過程需建立相應的度量方式,所有產品的質量(包括工作產品和提交給用戶的最終產品)需要有明確的度量指標。這些度量應是詳盡的,且可用於理解和控制軟體過程和產品。量化控制將使軟體開發真正成為一種工業生產活動。 優化級: 的目標是達到一個持續改善的境界。所謂持續改善是指可以根據過程執行的反饋信息來改善下一步的執行過程,即優化執行步驟。如果企業達到了第五級,就表明該企業能夠根據實際的項目性質、技術等因素,不斷調整軟體生產過程以求達到最佳。 美國國防部規定,重要性級別高的軟體應該由質量級別高的企業承擔。不同等級的軟體公司提交的軟體,其軟體質量也相差很大,國外的一份統計資料如下: 表 1 、 CMM 級別與軟體質量關系表格 每千行軟體的缺陷數目
軟體過程成熟度等級
軟體准時提交的百分比
每人每月生產的程序行數
軟體需要返工的百分比
平均軟體失效時間(近似)
大於 10
初始級
<=50
Z
>=45
2 到 60 分鍾
小於 10
可重復級
90
1.5Z
20
1-160 小時
小於 1
已定義級
99
2.5Z
10
不確定
小於 0.1
管理級
降低開發時間到 1/2
5 Z
5
不確定
小於 0.01
優化級
降低開發時間到 1/4
10Z
<=2
近似完全可靠
對於很多已經推行或者准備推行 CMM 的公司來說, CMM 的起步是很難的,因此 Humphrey 又提出了 PSP ( Person Software Process )和 TSP ( Team Software Process )【 2 】【 3 】。 CMM 是過程改善的第一步,它提供了評價組織的能力、識別優先改善需求和追蹤改善進展的管理方式【 1 】。企業只有開始 CMM 改善後,才能接受需要規劃的事實,認識到質量的重要性,才能注重對員工經常進行培訓,合理分配項目人員,並且建立起有效的項目小組。然而,它實現的成功與否與組織內部有關人員的積極參加和創造性活動密不可分。 PSP 能夠指導軟體工程師如何保證自己的工作質量,估計和規劃自身的工作,度量和追蹤個人的表現,管理自身的軟體過程和產品質量。經過 PSP 學習和實踐的正規訓練,軟體工程師們能夠在他們參與的項目工作之中充分運用 PSP ,從而有助於 CMM 目標的實現。 TSP 結合了 CMM 的管理方法和 PSP 的工程技能,通過告訴軟體工程師如何將個體過程結合進小組軟體過程,並將後者與組織進而整個管理系統相聯系;通過告訴管理層如何支持和授權項目小組,堅持高質量的工作,並且依據數據進行項目的管理,向組織展示如何應用 CMM 的原則和 PSP 的技能去生產高質量的產品。 軟體的生產過程及其它的許多子過程、軟體的開發者和用戶、以及系統的使用中存在著巨大的變化和不同,要使一個軟體過程對軟體生產的改善真正有所幫助,其框架應是由 CMM 、 TSP 和 PSP 組成的一個完整體系,即從組織、群組和個人三個層次進行良好的軟體工程和管理實踐的指導和支持。總而言之,單純實施 CMM ,永遠不能真正做到能力成熟度的升級,只有將實施 CMM 與實施 PSP 和 TSP 有機地結合起來,才能發揮最大的效力。 八、如何起步? 質量改進需要花費成本,因此改進的途徑需要視不同公司的規模、業務、財務狀況、人員技術水平等多方面綜合進行考慮。一般建議中型以上的較大的軟體公司實施 CMM 體系。而對於一些小型的軟體公司可以採取比較實際的,相對成本較少,且容易操作的方面進行,這些方面大致如下: �6�1 實施簡潔的開發過程體系,根據不同業務特點可以選擇瀑布模型,迭代模型等,並在這些模型上進行適當的變化以適應於短平快的產品開發特點。 �6�1 提高需求分析和設計方面的技術,例如:原型法技術,分析模式,設計模式,面向對象設計, UML 等; �6�1 加強文檔化工作。文檔是經驗的保留,對於一個企業要想獲得長期的發展,必須加強文檔化工作; �6�1 加強編程規范工作; �6�1 進行適當的測試工作,建議進行單元測試和系統測試; �6�1 實施配置管理工作,加強版本控制; �6�1 開展走讀、評審和檢視活動,尤其要加強代碼走讀,建議進行每日交叉走讀活動; �6�1 進行簡單的度量分析獲得;建議實施 PSP 活動;