本模塊旨在向?qū)W生介紹軟件工程過程、其工具、技能和技術(shù),特別是建模、驗證和設(shè)計。重點將放在從需求建模和分析到設(shè)計的原則性的、面向?qū)ο蟮倪^程上,通過滾動案例研究和課程示例來發(fā)展知識和技能。這篇文章重點解釋了軟件建模以及軟件設(shè)計的含義。

一、什么是軟件建模?
我們所說的軟件建模,并不是指用軟件來表達科學(xué)理論或算法。這就是科學(xué)家傳統(tǒng)上所說的軟件模型。我們所說的軟件建模大于算法或單一方法。軟件建模應(yīng)涉及整個軟件設(shè)計,包括界面、與其他軟件的交互以及所有軟件方法。
軟件模型是軟件設(shè)計的一種表達方式。通常使用抽象語言或圖像來表達軟件設(shè)計。對于面向?qū)ο蟮能浖瑒t使用 UML 等對象建模語言來開發(fā)和表達軟件設(shè)計。有幾種工具可用來開發(fā) UML 設(shè)計。
幾乎在所有情況下,建模語言都用于開發(fā)設(shè)計,而不僅僅是在設(shè)計完成后捕捉設(shè)計。這樣,設(shè)計者就可以嘗試不同的設(shè)計,并決定哪種設(shè)計最適合最終解決方案。把設(shè)計軟件想象成設(shè)計房子。首先要繪制出大致的平面草圖以及房間和樓層布局圖。繪圖是你的建模語言,而繪制的草圖則成為最終設(shè)計的模型。您可以繼續(xù)修改圖紙,直到獲得一個滿足您所有要求的平面圖。只有這樣,您才能開始切割木板或編寫代碼。
同樣,使用建模語言進行設(shè)計的優(yōu)勢在于,您可以及早發(fā)現(xiàn)問題并加以解決,而無需重新編寫代碼。
二、什么是軟件設(shè)計?
軟件設(shè)計是定義軟件方法、功能、對象以及代碼的整體結(jié)構(gòu)和交互的過程,從而使生成的功能滿足用戶需求。您可以在需求頁面找到有關(guān)如何編寫需求的信息。設(shè)計軟件有許多不同的方法,但幾乎所有的方法都涉及開發(fā)初始設(shè)計并根據(jù)需要進行改進。不同的開發(fā)人員喜歡在前期或?qū)嵤╇A段進行不同程度的設(shè)計。一般來說,在開始編碼之前,應(yīng)該對整體設(shè)計進行思考和審查。在 "設(shè)計審查 "部分,您將了解如何審查設(shè)計。提前測試不同的設(shè)計并在開發(fā)周期的早期發(fā)現(xiàn)問題,比在大部分代碼編寫完成后再對設(shè)計進行重大修改要容易得多。
軟件設(shè)計應(yīng)包括對整體架構(gòu)的描述。這應(yīng)包括軟件將使用或與之交互的硬件、數(shù)據(jù)庫和第三方框架。這是對什么在哪里運行以及不同部分之間如何交互的整體描述。
軟件設(shè)計應(yīng)包括您的代碼或調(diào)用您代碼的外部代碼將使用的所有應(yīng)用程序編程接口(API)。正確定義這些應(yīng)用程序接口非常重要,因為一旦這些接口被接受和使用,就很難在不破壞大量他人代碼的情況下對其進行更改。
軟件設(shè)計的一種極端方法是創(chuàng)建一個簡化的設(shè)計和實現(xiàn),然后逐步擴展/修改以包含更多的需求。這種方法涉及大量的重構(gòu)工作,有時會讓人難以把握全局。這種方法通常只能提供適用于有限需求的初始解決方案。
另一個極端是在實現(xiàn)之前盡量設(shè)計出更多的需求。這種方法要求對需求有相當(dāng)全面的了解,但提供的解決方案往往能滿足整個系統(tǒng)的需求,而不是單個子組件的需求。
在這兩個極端之間有許多不錯的選擇。試著從總體上考慮大問題,并開發(fā)出能解決這些問題的設(shè)計。在開始實施設(shè)計時,您可能會發(fā)現(xiàn)新的問題,從而改變或擴展設(shè)計,您可能需要重新修改代碼以適應(yīng)這些變化,但改動應(yīng)該很小。請記住,在開始編碼之前設(shè)計軟件的目的是讓每個人都能一起工作,并構(gòu)建出相同的東西。
海馬課堂專業(yè)課程預(yù)習(xí)
①3500+海外碩博導(dǎo)師,Highmark承諾導(dǎo)師真實教育背景,假一賠三!
③根據(jù)學(xué)生情況進行1V1專屬備課,輔導(dǎo)不滿意隨心退!
②試聽課全面升級!讓留學(xué)生聽得安心!
④課程輔導(dǎo)產(chǎn)品升級贈送考前檢驗。
⑤中英雙語詳細(xì)講解課程中的考點、難點問題,提供多方位的課前預(yù)習(xí)!
如果你對此還有疑問,或者有更多關(guān)于學(xué)業(yè)輔導(dǎo)方面需求的話,可以添加微信號:hmkt131聯(lián)系海馬課堂的Joye老師哦。