1、系統分析是什么?
系統分析工作是解決一個問題的工作,目標是將一個對計算機應用系統的需求轉化成實際的物理實現,其中復雜就復雜在實際的面太多.在系統分析過程之中注意問以下的問題,可能會所進行的系統分析設計工作有幫助。
1)您所完成的系統目的是什么?注意不是功能要求,而是目的.也就是為什么要建設、為什么要現代建設。
2)您所完成的系統有哪些方面參與,各方面的初衷是什么?那些人可能在系統建設中起重要作用,他們會采取什么樣的態度?你對他們有多少影響力?
3)您的系統是否有一個明確的評價標準?最好從參與的各方面都進行考慮。
4)你的系統設計思想是什么?是否能夠得到各方面的認可。
5)你對參與系統設計開發的人員了解嗎?他們的特長在哪里,是否愿意與你合作,為什么?你對他們有足夠的影響力嗎?
6)你的系統開發計劃是否完善?你的計劃表有明確的階段嗎?任何一階段都應該怎樣完成?如何對這一階段完成的情況進行評價?
7)你對所采用的系統開發方法以及工具是否熟悉?你的伙伴是否熟悉?
8)你所完成的系統是否有原型?計算機的或者物理的。
以上的幾個問題都是在系統分析以及系統規劃時涉及到的,供各位參考。
“需求分析實際應該是問題分析”。我們的軟件系統要解決的是問題。而不是用戶提出的需求。經常發現系統完成后,客戶說“我的問題還沒有解決“。可是,需求分析稿上的目標都搞定了。
既然是問題分析,所以,熟悉目標系統的知識就是必要的。甚至,可以說,一個好的系統分析員也應該是好的業務專家。
在中國作分析重要的是人氣,因為中國的企業級信息系統的建設在很大程度上可以說并非確有需求,而是迫于某種壓力。用戶在很多時候考
慮的不是系統的長遠發展,而只是短期的成果,要求開發單位在很短的時間內完成一個很大的系統的開發,沒有時間對系統進行周密的分析,在這種情況下,很多開
發商就會粗分析,粗設計,盡快進入編碼階段,這樣的系統的生命周期肯定不會很長。說了這么多,只是想說,系統分析員確實應是業務和管理專家,并且需要有很
好的語言組織能力,他需要根據問題域中存在的問題去盡力說服用戶,引導用戶需求,畢竟,我們是專家,如果讓用戶牽著鼻子走,系統不會是成功的系統。(當然
了,這要建立在用戶是可引導的前提下)
2、基本素質
a、系統分析員基本功
好的系統分析員都是從優秀的程序員中產生的,堅實的編程功底、豐富的經驗是今后做系統分析的基礎。
沒有對系統本身進行過透徹剖析過,很難領會到其中一些難以言述的精華。但并不等于好的程序員就能夠成為好的系統分析員。
合理的知識結構。語言能力、文字表達能力、技術的全面性等是對系統分析員的基本要求。比如說c/s和3層開發,如果僅僅對
netscape公司的產品熟悉還不夠,還需要了解比如微軟等產品,并且要了解他們中產生歷史,發展思路,技術優劣,以應付各種窮追猛打的提問。但更重要
的是,這是你為應用定制技術要求的前提。
?
b、任務難度的預測能力
系統分析員要具備快速的任務難度預測能力以及具備快速確定開發小組人員構成和任務劃分的能力。(我將這條歸為思想,而不是能力)昆
蟲自然會長出翅膀,而思想卻需要長期的浸潤。要做到這點,需要大量的思考、學習。設計遠比編程重要。當今軟件業的發展,各種開發工具的出現,編程已經不是
什么問題,
程序員的工作某種程度上講是將別人現成的東西拼湊堆砌起來。系統分析員要清楚的認識到,現在大多數程序員沒有學會怎么去整體的了解
一個系統,有些甚至不了解編程(這不是說他們不會寫代碼)。可視化的開發工具加五花八門的控件,程序員可以偷點懶了。(這可不是夸大,我好幾年的管理工
作,接觸過大量的程序員)基于技術,跳出框架。基于現有技術結合用戶需求思考問題,設計時跳出框架。?
c、系統分析員思想
系統分析員要有面向用戶的思想。系統分析員應當有能力將自己扮演成用戶,來了解要交付的項目看起來想什么樣式,感覺想什么,從而了
解用戶的想法并挑選出合理部份去開發。從這個意義上說,系統分析員才能獲得有意義的見解去引導他的開發組成員。系統分析員頭腦中要對項目結局有一個清楚的
認識,并保證項目不偏離方向。系統分析員要有根植于技術,高于技術思考問題的思想。純粹的程序員通常對最終結果考慮的不是很多,當一種新的技術在市場上出
現時,他們對能否按時交付的考慮就比較少,而強烈希望他們的計劃能夠建立在新的技術之上。因此,系統分析員的想法和行動要象一個用戶,又要能夠站在技術的
高度,成為真正的用戶、程序員之間的代言人。
??
d、系統分析員的關鍵
獲得信任。系統分析員最重要的素質是獲得信任,這是成為優秀系統分析員的關鍵。成熟最為關鍵。成熟可以為整個項目組提供正確的支持,能夠理解技術怎樣才能解決用戶的需求。
3、葵花寶典
設計的過程就是將事務處理抽象成計算機模型的過程
1. 首先要明白設計遠比編程重要。
2. 平時注重訓練自己的思維嚴謹性和從全局考慮問題的能力。建立冷靜思考問題的處事態度。
3. 設計時(尤其是數據庫設計時)不要完全被規矩約束,設計好比作詩,懂得韻律是對的,但完全被韻律所束縛,就作不出好詩了。
4. 多做設計,經常總結自己的不足之處和成功之處,向他人請教。
5. 專門去找別人設計的漏洞和不足,也是提高自己設計水平的重要手段。
6. 經驗是重要的,但如果觀念老化而不善于總結提高,所謂的經驗就成為束縛自己進步的枷鎖。
7. 學好數學特別是理論數學如數學分析、運籌學、數學模型等。多玩策略性經營游戲也是有益的。推薦《帝國時代》和《模擬首都3000》以及《大富翁》。(但不要沉陷在里面)
8. 根據項目情況和開發平臺工具的特點確定最佳的設計方法。模塊化設計方法和面向對象設計。兩種設計方法的結合使用。
9. 將復雜無序的過程用模塊化的方法進行分解,但要注重事務間的聯系,并且用開放的眼光去設計。
10. 設計時對嚴謹性、靈活性、開發效率、客戶要求四個方面做衡量取舍。
11. 設計時還要根據整個工程的進度安排和客戶對軟件的要求而決定是否設計得足夠靈活和嚴謹。
12. 復雜而無條理是最糟的設計,簡單實用并不一定是最好的,但一定不是最壞的。
13. 訓練自己良好的表達能力,能用清晰明確而且簡單的描述表達出自己的基本思路。
14. 在一個項目中建立統一的系統分析模式和文檔模板,這其中包括今后軟件變量、字段命名規則等。同時,一個項目中必須至少有一個人對整個系統設計進行檢查和進行全局的考慮。
http://www.sawin.cn/doc/SA/SATech/blueski1178.htm