軟件必備模塊-軟件設(shè)計(jì)

為什么寫這篇?

我想設(shè)計(jì)一個(gè)安卓,iOS或者Web應(yīng)用的時(shí)候,開始做軟件的步驟是什么,有個(gè)想法,做個(gè)需求分析,然后開始設(shè)計(jì)軟件。這篇講的是設(shè)計(jì)軟件這一步。我想好了要做個(gè)什么,然后開始干了,不能擼起袖子開始一個(gè)接口一個(gè)接口寫,一個(gè)界面一個(gè)界面開工。該怎么做一個(gè)整個(gè)項(xiàng)目的設(shè)計(jì)圖呢?這篇主要想解決的是蓋樓如何有個(gè)基本圖紙。

為什么建筑師要畫圖紙?

UML是當(dāng)時(shí)上大三的時(shí)候的一門課,印象比較深,這是一門選修,沒幾個(gè)人交作業(yè),讓花一打UML圖,沒幾個(gè)人交作業(yè)。為什么沒幾個(gè)人交作業(yè)呢?大部分人對(duì)于為什么要花UML圖沒什么概念,如同讓不蓋樓的人去畫一份圖紙。為什么建筑師要畫圖紙是一個(gè)好問題,因?yàn)槿巳丝梢赞鹗^卻不能蓋起摩天大樓。UML圖是成千上萬的工程師積累蓋樓的經(jīng)驗(yàn)總結(jié)的圖紙。首先我需要蓋一座大樓,所以我需要畫一份圖紙。大部分人停留在摞石頭的狀態(tài)所以自然畫不好幾張UML圖。當(dāng)自己需要設(shè)計(jì)一個(gè)自己的軟件的時(shí)候,自然需要這么一份圖紙。

有其形無其實(shí),有其實(shí)無其形

當(dāng)時(shí)印象比較深,時(shí)常很糾結(jié)UML該用那個(gè)箭頭,用圓的還是用方塊。其實(shí)這個(gè)東西感覺也不用那么糾結(jié),能背下來那么一套復(fù)雜的標(biāo)準(zhǔn)自然好,在幾百人合作的項(xiàng)目中可能確實(shí)需要這種規(guī)范,但是小項(xiàng)目可能并不用那么精細(xì),能符合固然好,不能那么細(xì)致也是可以接受的,不要太拘泥于此細(xì)節(jié)。就和倚天屠龍記里面,張三豐問張無忌忘了嗎,很多事情在于有其實(shí)無其形,如果生搬硬套全把精力花費(fèi)在用那個(gè)三角方塊上可能反而背離了初衷有其形而無其實(shí)。下面寫的是一個(gè)思路,其實(shí)需要了就花畫不需要也可以不畫。UML其實(shí)從另一個(gè)方面告訴我們?nèi)绾伍_始設(shè)計(jì)自己的軟件。

uml圖.png

五個(gè)大部分

用例圖

用例圖是核心,為什么用例圖最重要,用例圖是用戶的使用過程,哪怕你懶到一定地步后面的圖都不花也應(yīng)該花一張這個(gè)。你一定要用這張圖描述明白,誰干了什么,第一步是什么,第二步是什么。你做這個(gè)東西要解決一個(gè)什么問題。Use case View:對(duì)系統(tǒng)用例進(jìn)行描述,典型的視圖為用例視圖(use case diagram)。

靜態(tài)圖

這部分主要描述靜態(tài)的關(guān)系,對(duì)象圖,類圖,這個(gè)講的是開發(fā)過程中的抽象。Logic View:對(duì)系統(tǒng)各個(gè)組成部分進(jìn)行抽象描述,其焦點(diǎn)在于系統(tǒng)是如何構(gòu)成的以及構(gòu)成系統(tǒng)的各個(gè)部分之間是如何互動(dòng)的。我們常用的類視圖(class digram),對(duì)象圖(object diagram),順序圖(sequence diagram)/通信圖(communication diagram)都屬于Logic View。

動(dòng)態(tài)圖

描述的是各種狀態(tài)。Process View:描述系統(tǒng)中的各種活動(dòng),典型的視圖為活動(dòng)圖(activity diagram)。個(gè)人認(rèn)為活動(dòng)圖和流程圖非常類似,且目的都是為了將系統(tǒng)中的活動(dòng)描述清楚。

部署圖

這個(gè)有利于自己部署好這個(gè)系統(tǒng),從0.1到1.0到2.0如果進(jìn)行部署。這塊可以寫清楚如何部署,是直接部署,部署在幾個(gè)機(jī)器上部署,用虛擬機(jī),還是docker,如何理清楚部署過程進(jìn)行自動(dòng)構(gòu)建。Development View:從開發(fā)者的角度描述系統(tǒng)的構(gòu)成,典型的視圖為構(gòu)件視圖(component diagram)。

物理圖

Physical View:該視圖關(guān)注軟件構(gòu)件在硬件上的top結(jié)構(gòu),以及構(gòu)件之間的通信。典型的視圖為部署視圖(deployment diagram)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們?cè)谶M(jìn)行項(xiàng)目的時(shí)候,通過使用 UML 的面向?qū)ο髨D的方式來更明確、清晰的表達(dá)項(xiàng)目中的架設(shè)思想、項(xiàng)目結(jié)構(gòu)、執(zhí)行順序...
    充滿活力的早晨閱讀 5,060評(píng)論 2 34
  • 最近在大學(xué)聽了幾堂課,看了幾本老師推薦的書等,從對(duì)整個(gè)世界格局、當(dāng)期國(guó)內(nèi)社會(huì)的主要情況以及明年馬上到來的就業(yè)選擇都...
    新區(qū)早餐閱讀 515評(píng)論 0 1
  • 我缺乏一些基本哲學(xué)和心理學(xué)知識(shí)的熏陶,所以一看到“心”、“性”、“意”、“本體”、”本我“等詞就有點(diǎn)犯暈,但對(duì)于雨...
    鑲潤(rùn)_讀書閱讀 348評(píng)論 2 4

友情鏈接更多精彩內(nèi)容