軟件開發流程是經過一系列步驟保證軟件產品的順利完成,是軟件產品在生命週期內的管理學。編程
軟件開發流程的本質是軟件開發流程與具體技術無關,是開發團隊必須遵照開的規則。架構
常見的軟件開發流程模型包括即興模型、瀑布模型、增量模型、螺旋模型、敏捷模型。框架
即興模型的特色:ide
A、與用戶交流後當即進行開發模塊化
B、沒有需求分析和需求發掘過程工具
C、沒有總體設計和規劃測試
D、沒有軟件文檔,可維護性差優化
瀑布模型的特色:spa
A、自上而下的進行軟件開發架構設計
B、開發過程不可逆
瀑布模型的開發流程包括:需求分析、架構設計、開發實現、系統測試、發佈
增量模型的特色:
A、將系統功能分解爲互不重疊的子功能
B、每次全力實現一個子功能
C、子功能所有完成後系統開發完成
螺旋模型的特色:
A、採用迭代方法開發
B、軟件項目分解爲多個不一樣版本完成
C、每一個版本的開發過程須要用戶參與
D、根據前一個版本的反饋設計下一個版本
敏捷模型的特色:
A、一切從簡
B、擁抱變化
C、高效工做
D、持續開發
Valgrind內存分析工具
Valgrind是用於構建動態分析工具的探測框架,包括一個工具集,每一個工具執行某種類型的調試、分析或相似的任務。Valgrind的架構是模塊化的,因此能夠容易地建立新的工具而又不會擾亂現有的結構。
重構是以改善代碼質量爲目的的代碼重寫,使軟件的設計和架構更加合理,提升軟件的擴展性和維護性。
代碼實現是按照設計編程實現,重點在於功能實現,不考慮架構的好壞,只考慮功能的實現。
代碼重構是以提升代碼質量爲目的的軟件架構優化,不能影響已經實現的功能,只考慮架構的改善。
軟件的代碼重構通常在功能實現並經過功能測試後進行。