摘要:敏捷開發是以人為核心、迭代、循序漸進的開發方法。用友UAP總結了七個不可忽略的關鍵步驟。第一,積极參与。第二,簡單地建模。第三,丟棄臨時模型。第四,為交流建模。第五,為理解建模。第六,測試優先設計。第七,重構。
技術日新月異,軟體開發同樣如此,各種實時的變化和不確定因素都會影響軟體開發的進程和效果。比如,用戶對需求描述不準確,或從需求到開發較長的鏈條中出現信息丟失,都會導致軟體開發出現偏差,產品交付後需要重新設計;即便最初需求準確,在移動互聯網世界中,用戶的需求在不斷變化。軟體開發的速度必須足夠快,才能緊跟需求,不斷滿足用戶需求。
這就要求研發團隊每個個體提升能力、開發過程每個環節提高效率、提升整個軟體開發的彈性,讓軟體在快速變化中能夠很快適應,及時應對。「敏捷開發」是很多開發者想到的一種方法。它以人為核心、迭代、循序漸進的開發方法。在敏捷開發中,軟體項目的構建被切分成多個子項目,各個子項目的成果都經過測試,具備集成和可運行的特徵。換言之,就是把一個大項目分為多個相互聯繫,但也可獨立運行的小項目,並分別完成,在此過程中軟體一直處於可使用狀態。
用友UAP作為面向大型企業與組織的計算平台,涵蓋了支撐軟體應用的全生命周期和IT服務管理過程。用友UAP能夠支撐企業信息化各個階級應用,滿足企業管理變化快並及時響應市場需求的目標。用友UAP正是用了敏捷開發方法,在敏捷開發實踐中,用友UAP總結了七個不可忽略的關鍵步驟。
第一,積极參与。開發人員需要和用戶保持現場的接觸;現場的用戶要有足夠的許可權和能力,提供目前建構中的系統相關的信息;及時、中肯的做出和需求相關的決策;並決定它們的優先順序。
第二,簡單地建模。當你考慮所有你能夠使用的圖表(UML圖、用戶界面圖、數據模型等)時,你很快會發現,大部分時候你只需要這些圖表符號的一部分。一個簡單的模型能夠展示你想要了解的主要功能,例如,一個類圖,只要能夠顯示類的主要責任和類之間的關係就已經足夠了。不錯,編碼的標準告訴你需要在模型中加入框架代碼,比如所有的get和set操作,這沒有錯,但是這能提供多少價值呢?恐怕很少。
第三,丟棄臨時模型。你創建的大部分的模型都是臨時使用的模型,如設計草圖,低精度原型,索引卡片,可能架構/設計方案等等,在它們完成了它們的目的之後就再不能提供更多的價值了。模型很快就變得無法和代碼同步,這是正常的。你需要做出決定:如果「同步更新模型」的做法能夠給你的項目增添價值的話,那就同步更新模型;或者,如果更新它們的投入將抵消它們能夠提供的所有價值(即負收益),那就丟棄它們。
第四,為交流建模。建模的次要原因是為了和團隊之外的人交流或建立合同模型。因為有些模型是給團隊之外的客戶的,你需要投入時間,使用諸如文字處理器,畫圖工具包,CASE工具來美化模型。
第五,為理解建模。建模的最重要的應用就是探索問題空間,以識別和分析系統的需求,或是比較和對照可能的設計選擇方法,以識別可能滿足需求的、最簡單的解決方案。根據這項實踐,你通產需要針對軟體的某個方面建立小的、簡單的圖表,例如類的生命周期圖,或屏幕順序,這些圖表通常在你完成目的(理解)之後就被丟棄。
第六,測試優先設計。這是一項開發實踐。在你開始編寫你的業務代碼之前,你要先考慮、編寫你的測試案例。從AM的觀點來看,這項實踐強制要求你在寫代碼之前先通盤考慮你的設計,所以你不再需要細節設計建模了。
第七,重構。這是一項編碼實踐。重構,就是通過小的變化,使你的代碼支持新的功能,或使你的設計儘可能的簡單。從AM的觀點來看,這項實踐可以保證你在編碼時,你的設計乾淨、清楚。
用友UAP的開發平台具有很好地敏捷性。它提供可視化的領域建模工具,將客戶需求直接轉換為領域模型,通過代碼生成將領域模型轉換為開發成果,快速響應需求的變化。領域模型是開發人員和客戶交流的有效工具。

用友UAP開發平台提供了自動代碼框架,在此框架下,基於DSL自動生成的代碼與程序員的手工代碼通過介面隔離,兩類代碼存於不同的程序文件中,從而使二者解耦。在此框架下DSL可以重複生成代碼,用戶對模型的修改可隨時生成代碼且不影響手工代碼的邏輯結構。基於UAP開發平台可以做到對已有系統的變更(如果只涉及領域模型的變化)只需手工調整領域模型後重新生成代碼,再重複構造和發布即可。
用友UAP基於DSL模型的代碼自動生成
敏捷開發提倡在不改變系統功能的前提下對代碼進行重構,通過重構提升程序可維護性,可擴展性。單元測試代碼是保證重構質量的有效手段,用友UAP開發平台可為領域模型自動生成測試代碼,程序員也可以創建自己的測試用例,在IDE環境中提供測試用例運行支持。另外,用友UAP開發平台提供完整的組件構造和運行環境配置功能,幫助程序員方便的構造出組件並生成安裝盤
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/294730.html