天天看點

軟體工程詳解

一般來說,一個完整的軟體項目的出爐需要有項目經理(Project Manager)、系統架構師(System Architect)、系統分析員(System Analyst)、分析程式員(A/P Analyst Programmer)和初級程式員(Junior Programmer)的參與。我們先從軟體工程的角度來看看他們各自是如何分工的。

  按照軟體工程學劃分,一個完整的軟體項目的前期工作可以劃分為軟體定義時期和軟體開發時期。軟體定義時期通常劃分成三個階段,即問題定義、可行×××和需求分析。開發時期通常由下述四個階段組成:總體設計、詳細設計、編碼和單元測試、綜合測試。

  具體來說,各個階段的任務如下。

  問題定義:在這個階段,需要提出關于問題性質、工程目标和規模的書面報告。項目經理通過對系統的實際使用者和使用部門負責人的通路調查,扼要地寫出對問題的了解,并和使用者進行良好溝通,進行修改,最後得出一份雙方都滿意的文檔。

  可行×××:這一階段需要系統架構師進行一次大大壓縮和簡化了的系統分析和設計過程,就是在較抽象的高層次上進行分析和設計的過程,導出系統的高層邏輯模型,并且在此基礎上更準确、更具體地确定工程規模和目标。然後更準确地估計系統的成本和效益。對系統進行仔細的成本、效益分析是這個階段的主要任務之一。

  需求分析:使用者了解他們所面對的問題,知道必須做什麼,但通常不能完整準确地表達出他們的要求,更不知道怎樣利用計算機解決他們的問題;軟體開發人員知道怎樣用軟體實作人們的要求,但是對特定的具體要求并不完全清楚。是以,在需求分析階段,系統架構師必須和使用者密切配合,充分交流資訊,以得出經過使用者确認的系統邏輯模型,在經過使用者确認之後才能進入下一個階段。

  總體設計:系統分析員首先考慮出幾種可能的方案,并估計出每種方案的成本和效益,并在充分權衡各種方案利弊的基礎上,推薦一個較好的系統方案,并且制定實作所推薦系統的詳細計劃。如果使用者接受系統分析員推薦的系統,則可以着手完成下一項主要工作,也就是設計軟體結構,确定程式由哪些子產品組成以及子產品間的關系。

  詳細設計:在這個階段,分析設計員設計出程式詳細的規格說明。它們應該包含必要的細節,初級程式員可以根據它們寫出實際的程式代碼。

  編碼和測試單元:這個階段的關鍵任務是寫出正确的容易了解、容易維護的程式子產品。初級程式員應該根據目标系統的性質和實際環境,選取一種适當的進階程式設計語言,把詳細設計的結果翻譯成用標明的語言書寫的程式,并且仔細測試編寫出的每一個子產品。 

  內建測試:這個階段的關鍵任務是通過各種類型的測試使軟體達到預定的要求,并確定各子子產品之間不互相沖突及影響。這一步的工作由專門的測試員根據項目測試計劃來完成。

  從哪裡開始

  成為初級程式員往往是步入軟體行業的開始。一個初級程式員應該具備的基本素質包括良好的編碼能力、認識和運用資料庫的能力和較強的英語閱讀和寫作能力,并要對軟體工程和項目過程有一定了解。

繼續閱讀