軟件工程流程是軟件開發(fā)系統(tǒng)中起主導(dǎo)作用的形式化流程,對(duì)于將輸入轉(zhuǎn)化為輸出的彼此相關(guān)的資源活動(dòng)起到指導(dǎo)和規(guī)范軟件的作用,其中輸入為用戶要求、輸出為軟件產(chǎn)品,包括相關(guān)資源開發(fā)人員、軟硬件工具和時(shí)間等,圖1給出的框圖模型描述了軟件流程在軟件開發(fā)、系統(tǒng)研發(fā)中所扮演的重要角色。

圖1軟件開發(fā)、系統(tǒng)研發(fā)的流程
一般來(lái)說(shuō),軟件工程流程的具體內(nèi)容包括:
軟件工具和軟件開發(fā)的方法的選用,所選工具和方法的使用順序和要求交付的文檔資料,為了使用變化所需要的管理和質(zhì)量保證,以及軟件開發(fā)各個(gè)階段的里程碑。顯然,采用什么樣的生產(chǎn)流程決定了軟件產(chǎn)品具有什么樣的流程質(zhì)量,因?yàn)檐浖こ塘鞒痰闹R(shí)本身及其應(yīng)用效果都將凝聚在軟件產(chǎn)品中,成為其組成要素。銳智互動(dòng)軟件公司也給出了軟件工程流程的一個(gè)參考模型,該模型關(guān)注的是軟件工程流程的本質(zhì),它包括兩方面的內(nèi)容: -是利用工具,二是固化軟件開發(fā)的最佳實(shí)踐。模型 把最佳實(shí)踐定義為“一組經(jīng)過(guò)組織整理并形成文檔的準(zhǔn)則、方法和流程,能夠提高軟件開發(fā)的質(zhì)量和與效率”,并且例舉了一些最佳實(shí)踐具體內(nèi)容,
其中包括:
1、采用迭代開發(fā)(UscIterativeDevelopment) ;
2、管理需求(ManageRequirements) ;
3、使用基于組件的架構(gòu)(UseComponentArchitectures) ;
4、可視化建模(ModeIVisually) ;
5、持續(xù)驗(yàn)證質(zhì)量(ContinuouslyVerifyQuality) ;
6、控制變更(ControlChange);
軟件工程流程模型如圖2所示。

圖2軟件開發(fā)、系統(tǒng)研發(fā)的流程模型
在以上模型中,最佳實(shí)踐指導(dǎo)工具的使用,工具用來(lái)支持最佳實(shí)踐,兩者之間相輔相成。注意軟件工具一般是通用的,而不同的軟件開發(fā)企業(yè)則有不同的最佳實(shí)踐,后者取決于企業(yè)的成長(zhǎng)歷史及其員工所積累的經(jīng)驗(yàn)。