想要順利通過2013年下半年的全國軟件工程師考試嗎?來唯學網吧,唯學網小編整理的軟件設計師知識點輔導:構建完整的解決方案,可以幫助考生們順利的梳理知識要點。同時,大量的軟件設計師考試相關題型也在其中,可以讓考生們每天都暢游在題海之中。
什么是“完整的解決方案”?
“完整解決方案”顧名思義,就是包含了客戶的所有真實需求,并可以合理實施的方案。定義很簡單,簡單的像圍棋只有黑白二子一樣,唯一的問題就是:可能的變化多了點,不確定性高了點。
相對圍棋而言,軟件的需求和方案的問題簡單很多了。
主要的問題在于,我們的“需求”中忽略了很多客戶的隱形需求。
隱形需求包含哪些呢?一般而言包括:
1.1 維護需求
1.2 升級需求
1.3 易用性需求
1.4 性能需求
基本而言,現(xiàn)在客戶也在不斷成熟,以上需求會或多或少的提到,但是,請注意,很可能不夠全面。 所以我們需要認認真真的考慮一下,這些需求到底應該包含些什么。
維護需求
客戶對維護的要求,一般至少包括這么幾個:
1. 日志需求。 這個比較復雜,后面會單獨考慮。
2. 故障定位的能力。 就是說,當系統(tǒng)出現(xiàn)問題時,客戶希望系統(tǒng)能夠通過某種方式迅速查明故障的原因,并找到解決或者規(guī)避的辦法。
3. 日常維護。 通常包括軟件和硬件的“健康檢查”。
4. 故障報警。 當系統(tǒng)出現(xiàn)嚴重故障時,能夠給出足夠的信息,并觸發(fā)故障處理流程。
升級需求
一般來說,客戶對升級的需求有這么幾點:
1. 可控制的升級。 即檢測是否可升級、是否執(zhí)行升級、多個升級目標的選擇、升級的計劃任務等都是可以控制的,比如可以設定自動檢測是否升級;設定自動升級到最高版本;設定執(zhí)行升級必須為手工設置;設置手工升級時可以立即升級也可以指定計劃任務時間等等。
2. 不影響業(yè)務的升級。 基本上客戶都希望升級這個事情,不要影響他們的業(yè)務。但是有些系統(tǒng)實在太老了,基于這種舊系統(tǒng)的再開發(fā)項目必然受限于原系統(tǒng)的升級方案。這時就考慮:1.能不能通過升級,使系統(tǒng)以后升級不再影響業(yè)務;2.如果不能,怎樣使(本次后以后)升級對業(yè)務的影響最小。
3. 升級的簡單性。升級應該簡單快捷,沒有太多的參數需要配置,沒有太多需要手工干預的步驟。
4. 升級的完整性。尤其是對于分布式系統(tǒng),升級時需要考慮各個部件之間版本的一致性。一個升級方案必須是完整的,不能在升級以后出現(xiàn)由于版本間不兼容的原因而導致系統(tǒng)無法工作。舉個例子:
一個簡單的CS系統(tǒng),采用加密通道進行通訊,現(xiàn)在升級加密算法,該如何設計呢?
假設是互聯(lián)網應用,有上萬個客戶端,該如何設計呢?
從這個例子可以看出,系統(tǒng)的設計,從一開始就必須考慮這些“隱性”需求,否則系統(tǒng)架構可能都要****重來。
易用性需求
通常提到易用性,大家會覺得無非是界面啦,幫助啦。沒錯,但是不全。
讓我們看幾個例子,可以大概理解一下易用性是什么概念。
在桌面系統(tǒng)的競爭中,專業(yè)而強大的Unix敗給了經常被人批評的Windows系列,因為windows安裝簡單,升級簡單,安裝新的游戲或者軟件也很簡單,操作起來更是如此,直觀的圖形界面雖然設計和功能不太豐富和強大,但是相對于unix必須先學習“文件系統(tǒng)”概念,再學習命令行而言,“樹”的概念用戶可以無師自通,拖拽更是沒有命令行可以比擬;
同樣是微軟,C++語言乘微軟之名,挾操作系統(tǒng)之利,語言和開發(fā)環(huán)境都不可謂不強大,但是結果怎樣呢?IDE方面多數人還是用SI,語言方面,微軟更是不得不推出C#來與Java抗衡。就因為SI看代碼的時候查找上下文方便;Java比C++開發(fā)起來方便;
在中文輸入法的競爭中,強大高效的筆畫輸入法敗給了拼音輸入法。現(xiàn)在拼音輸入法大行其道,筆畫輸入幾乎鮮有提起。
最主要的,是業(yè)務模型要和客戶的一致。這個應該算是基礎。業(yè)務模型代表著思維模式(比如輸入法),也就是說,要從客戶的角度來設計系統(tǒng),而不是機械的堆砌數據和流程。
唯學網是一個大型的教育考試培訓平臺,各種不同形式的教育資訊內容與考試信息盡在其中。要想了解更多軟件工程師相關考試信息內容,如軟件工程師考試輔導、軟件工程師考試試題等,請隨時關注唯學網計算機培訓欄目軟件工程師考試培訓頻道,小編會第一時間為大家更新跟進最新內容。如有任何疑問也可在線留言,小編會為您在第一時間解答!