自動軟體設計

2021-04-15 03:24:53 字數 864 閱讀 4164

在2023年,美國人peter freeman在他的文章《自動軟體設計(automating software design)》中有這樣的假設:如果有這樣一台機器 ,當我們告訴它我們需要什麼軟體的時候,它立刻就會滿足我們的要求,自動生成我們需要的程式。這台機器我稱之為萬能機。

當我們提出需求的時候,需要關注的僅僅是如何描述清楚我們的需求。如何實現是萬能機內部的事情,和我們沒有關係也不需要了解。我們關心的只有一件事情:如何將我們的需求描述得足夠清晰、準確、全面、細緻、沒有二意性。只有這樣萬能機才能最大限度的生成滿足我們需要的程式來。

如果將提出需求的我們比作客戶,將萬能機比作軟體提供商。軟體提供商可以開發出高質量的任意的軟體產品,只要客戶能說清楚有什麼要求。這樣兩者關注的焦點只有乙個,那就是客戶的需求!客戶的業務!

uml(統一建模語言,unified modeling language)是一種定義良好、易於表達、功能強大且普遍適用的視覺化建模語言。它的出發點就是建模,從使用者如何使用系統的角度建立模型。也就是使用者對系統提出的需求。用例建模是uml建模的一部分,它也是uml裡最基礎的部分。

mda也是以商業模型為驅動的架構。mda核心的思路是希望通過對商業模型(比如企業資訊化或建築領域的解決方案)的領域研究,進而提煉出乙個相對核心的領域模型,同時抽象出乙個pim(平台無關模型)。根據不同的開發平台,應用平台形成相應的 p**(平台相關模型)。最後依照相應的工具,可以完整地生成相應的**和軟體系統。mda注重的是建立與實現平台無關的模型,以模型為驅動,利用工具自動實現**。

soa提出的是面向服務的架構。從服務的角度講,soa也是面向業務(需求)的。因為無論是萬能機還是軟體**商都是為客戶提供服務的。這些服務必須能滿足客戶提出的需求。而服務如何提供、用什麼方法實現則是提供者需要考慮的事情。

軟體設計原則

開閉原則 ocp 軟體設計的最大原則 這個原則說的是 對擴充套件開放,對修改關閉。其實意思是說,給系統新增新的功能,但不修改原有 如果能做到呢,關鍵在於抽象化,也就是封裝變化,抽象層不變,讓具體實現依賴抽象隨需求變化。使得系統具有很強的擴充套件性和可維護性。黎克特制代換原則 任何基類可以出現的地方,...

軟體設計原則

高內聚 低耦合 乙個軟體系統要有乙個穩定的架構,不會隨需求的改變而發生巨大的變動。因此,高內聚 低耦合是乙個軟體系統設計中必須遵循的基本原則 面向抽象程式設計 在面向過程的軟體開發中,上層元件呼叫下層元件,就意味著上層元件依賴於下層元件,當下層元件發生劇烈變化時,上層元件也要跟著一起發生變動,這將導...

軟體設計文件

軟體設計文件的清單 1。結構文件。描述程式設計的文件,包括軟體所主要部分的描述以及相互之間的互動方式。2。資料流圖。表示資料在程式中如何流動的正規示意圖,戲稱 泡泡圖 3。狀態轉化圖。把軟體分解為基本狀態或者條件的一種正規示意圖。4。流程圖。用圖形描述程式邏輯的傳統方式。一旦投入使用,根據詳細的流圖...