一、什么是系統分析
在具體的研究需求分析之前,我們先了解一下軟件工程這個概念。軟件工程分為三個層次,過程層、方法層、工具層。在最基礎的過程層,最重要的就是一組被稱為關鍵過程區域(KPAs)的框架(KPA的概念在討論CMM的書中有詳細的概念說明)。關鍵過程區域構成了軟件項目的管理控制的基礎,并且確立了上下文各區域的關系,其中規定了技術方法的采用、工程產品的,模型、文檔、數據、報告、表格等,等的產生、里程碑的建立、質量的保證及變化的適當管理。方法層主要是過程在技術上的實現。它解決的問題是如何做。軟件工程方法涵蓋了一系列的任務:需求分析、設計、編程、測試、維護。同時他還包括了一組基本原則,控制了每一個的關鍵過程區域。工具層就很好理解了,他對過程層和方法層提供了自動和半自動的支持。這些輔助工具就稱為CASE。事實上需求分析是跨越了軟件工程的三個層次的。這一點是和其他的過程是一樣的。
可以看到需求分析的位置,它是我們軟件開發的第一步。是對用戶需求的定義,對軟件系統的描述。系統分析的任務:將用戶的業務邏輯轉化為程序邏輯,計算時間和成本。根據開發人員的理論知識和實際的經驗,人們會采用各種滿足實際情況的系統分析、開發方法、步驟以及文檔等等。一般情況下,在系統分析書中應該有以下內容(視項目而定):
1、 系統需求說明 說明系統是一個什么樣的系統,用市場上現有的系統來類比,用客戶(或是我們自己)需要一個什么樣的系統進行說明,力求完整。并對系統的發展可擴充性進行描述(現在沒有哪個系統是一次OK的)。說明與現有的系統有什么相同什么不同,說明未來系統的發展方面以及可移值性等能預見的事情。
2、 系統資源說明 對系統所需要的軟件、硬件資源進行說明。描述系統所需要的所有的TCO成本。包括人員、時間、設備、系統、一次性投入資金、持續性投入資金這樣的所有資源。
3、 系統可行性分析 對系統的實施中的資源進行分析,說明投入的合理性和必然性,對其中的所有不可預見性的投入進行合理的量化說明,來說明系統的實施的可行性。
?
二、系統分析員與程序員
大家應該對這兩個詞很熟悉了,但是對詞里包含的意義可能并不是特別清楚。首先必須說明的是,程序員和系統分析員不存在誰高級誰低級的分別,他們是兩種職業,對職業技能的要求完全不同。所以厲害的程序員就是系統分析員的說法是不對的。當然,系統分析員的技能要求他必須要懂得如何寫程序,但是他的重心在于如何把一個很大的項目切割成適合個人的小塊,然后將這些小塊組織起來。程序員的職責就是如何更好更快的實現這些小塊。
?
三、系統分析的方法和工具
UML全稱:Unified Modeling Language,統一建模語言,是面向對象的建模語言,主要用于軟件系統的面向對象建模。
UML是以面向對象圖的方式來描述任何類型的系統,具有很廣泛的應用領域。特別是在建立軟件系統模型中,它支持從系統需求、系統分析到系統設計的整個建模過程。由于UML建模是一門專門的科學,而我們這門課程的任務是數據庫系統開發,所以對于UML我們將有限的注意力集中在認識UML各種圖示上。
?
可以使用Rational Rose 2003來建立UML模型
1)? 建立角色
2)? 創建用例
3)? 創建角色用例關系圖
4)? 創建時序圖
5) 創建協作圖
?????? 四、QQ文本圖形留言器系統分析的實現舉例
?
1)需求分析總體圖:
? 
2)各模塊細分分析圖:
顯示模塊需求分析圖

查詢模塊需求分析圖

添加數據模塊需求分析圖

安全設置模塊分析圖

系統設置模塊分析圖

3)基本功能模塊流程圖(舉例)

在這樣的分析基礎上,再進行編程,我們就可以有規律可依,做到有條不紊了。