很多語言实柠,如C水泉,Pascal,Basic等窒盐,都是面向過程的草则。面向過程的程序設計語言主要使用順序,選擇和循環(huán)三種基本結構來編寫程序蟹漓。順序指按照時間軸順訓完成每個處理炕横;選擇指根據(jù)條件的成立與否執(zhí)行不同的條件分支;循環(huán)指根據(jù)一定的條件反復執(zhí)行同樣的代碼葡粒。
在面向對象技術問世以前份殿,程序設計被看做為一個個功能系統(tǒng)的集合。程序員根據(jù)設計文檔實現(xiàn)各個函數(shù)嗽交,完成目標軟件卿嘲。所以,那個年代軟件開發(fā)最關心的是如何從需求中提出要實現(xiàn)的功能夫壁,決定數(shù)據(jù)格式拾枣,并將其組合在一起。舉一個簡單的列子掌唾,假設我們需要實現(xiàn)一個用于管理和采購辦公用品的OA系統(tǒng)放前。在這個OA系統(tǒng)中,我們假設某部門提出采購要求后糯彬,首先要檢查該部門的預算是否夠用凭语。通常的做法是設計申請購買商品的登錄頁面和申請的流程,決定使用的數(shù)據(jù)格式撩扒,定義檢查數(shù)據(jù)正確性的函數(shù)似扔,定義預算數(shù)據(jù)的格式和訪問它的接口吨些,簡單的說就是,整個系統(tǒng)設計的過程就是將需求分解成一個個小的的功能炒辉,同時定義每個功能所需要的數(shù)據(jù)格式豪墅。
但是,需求是無時無刻不在變更的偶器。如,假設需要從紙質文件的購買申請變?yōu)橥ㄟ^網(wǎng)頁來申請缝裤,或者需要新增能根據(jù)部門,物品類型來查看購買歷史紀錄功能,這時候就需要對基于傳統(tǒng)做法生成的軟件進行大幅修改憋飞。軟件的核心是功能霎苗,而需求又非常容易變更榛做,所以圍繞功能設計軟件,會比較難于應對需求的變更检眯,維護成本會比較高厘擂。