軟件工程包括三個要素:方法、工具和過程。
軟件工程方法為軟件開發提供了“如何做”的技術。它包括了多方面的任務,如項目計划與估算、軟件系統需求分析、數據結構、系統總體結構的設計、算法過程的設計、編碼、測試以及維護等。
軟件工具為軟件工程方法提供了自動的或半自動的軟件支撐環境。目前,已經推出了許多軟件工具,這些軟件工具集成起來,建立起稱之為計算機輔助軟件工程(CASE)的軟件開發支撐系統。CASE將各種軟件工具、開發機器和一個存放開發過程信息的工程數據庫組合起來形成一個軟件工程環境。
軟件工程的過程則是將軟件工程的方法和工具綜合起來以達到合理、及時地進行計算機軟件開發的目的。過程定義了方法使用的順序、要求交付的文檔資料、為保證質量和協調變化所需要的管理、及軟件開發各個階段完成的里程碑。