設(shè)計是要把腦子里關(guān)于產(chǎn)品的構(gòu)想表達出來被冒。而軟件產(chǎn)品的設(shè)計除了核心價值點的定義军掂,需要對業(yè)務(wù)流程、交互界面昨悼、數(shù)據(jù)模型進行充分定義蝗锥,形成可用于指導(dǎo)開發(fā)的詳細設(shè)計說明。
詳細設(shè)計說明的編寫率触,目的是建立用戶需求與開發(fā)人員之前的橋梁终议。因此,簡單實用且技術(shù)化應(yīng)該是這份文檔的特點葱蝗。
過去軟件系統(tǒng)也會有詳細設(shè)計說明書穴张,但是多是流于形式。開發(fā)人員拿到文檔也不知道從何入手两曼。只能依靠開發(fā)人員的經(jīng)驗進行皂甘,最后完成成什么樣子一開始沒有辦法預(yù)知。
對于詳細設(shè)計說明書悼凑,自己一直比較贊同將它用于特定的模塊偿枕、組件或是功能這樣細粒度的開發(fā)。不宜站在系統(tǒng)角度進行思考和開發(fā)户辫,但是需要基于總體需求規(guī)格渐夸、概要設(shè)計、數(shù)據(jù)庫設(shè)計渔欢、接口設(shè)計所明確的內(nèi)容和設(shè)計原則墓塌。
內(nèi)容上主要分為五個方面。
一是需求整理膘茎,這部分內(nèi)容是把用戶的業(yè)務(wù)目標(biāo),特定業(yè)務(wù)需求酷誓,完全站在用戶角度對需求進行客觀描述披坏。
二是流程定義⊙问基于需求描述棒拂,一項重要的事情是業(yè)務(wù)流程及子流程的梳理。能夠通過流程圖展現(xiàn)業(yè)務(wù)流轉(zhuǎn)過程,如果是涉及到多用戶協(xié)作的流程帚屉,需要采用泳道圖谜诫。流程圖需要基于業(yè)務(wù)目標(biāo)罚勾,把達成業(yè)務(wù)目標(biāo)所要完成的業(yè)務(wù)步驟以圖形化的方式進行呈現(xiàn)推盛。如果是后端業(yè)務(wù)模型,用流程圖附以描述即可用來與客戶對需求進行初步確認(rèn)躏啰。確認(rèn)好流程后再進行進一步設(shè)計牢屋。
三是原型定義且预,對于有人機交互的系統(tǒng),原型設(shè)計最能直觀表達用戶需求烙无。如果說流程圖是業(yè)務(wù)流程的抽象表達锋谐,那么原型則更為具象,實際上原型設(shè)計之前應(yīng)該還有一個初步的IPO分析截酷,重點是提取輸入和輸出信息涮拗,這個階段本質(zhì)是一個IO分析,具體實現(xiàn)細節(jié)不做細化迂苛。
而原型是用來與用戶進行進一步確認(rèn)最佳載體三热。不僅能驗證業(yè)務(wù)流程,還能確認(rèn)IO的詳細信息灾部。
四是數(shù)據(jù)模型定義康铭。在確定了系統(tǒng)流程和界面原型,確定了每個階段輸入輸出后赌髓,系統(tǒng)所涉及的數(shù)據(jù)模型及其也就浮出水面从藤。剩下的工作就是圍繞每個環(huán)節(jié)的輸出進行存儲設(shè)計。對于關(guān)系型數(shù)據(jù)設(shè)計數(shù)據(jù)表和相關(guān)索引外鍵等屬性锁蠕,對于文件型數(shù)據(jù)根據(jù)概要設(shè)計定義的文件數(shù)據(jù)存儲規(guī)則定義具體存儲細節(jié)夷野。這里可以引用概要設(shè)計的內(nèi)容。數(shù)據(jù)庫設(shè)計地輸出能夠指導(dǎo)開發(fā)人員完成建表和存儲環(huán)境的搭建荣倾。
最后是接口定義悯搔,基于前面IPO分析,已經(jīng)提取了每個環(huán)節(jié)及其子環(huán)節(jié)的輸入和輸出舌仍,這些輸入輸出整好作為接口的參數(shù)和返回值妒貌。而為了能夠把實現(xiàn)細節(jié)交代清楚,需要對接口內(nèi)部邏輯進行描述铸豁,如果需要調(diào)用第三方接口或模型也需要交代清楚灌曙。
其實不管復(fù)雜還是簡易都不是重點,而是需要考慮在用戶和開發(fā)人員之間节芥,需求和功能之間在刺,現(xiàn)實對象各抽象模型之間架起一座橋梁逆害。理解我們寫的是給誰看的,關(guān)注他們能讀懂蚣驼,是否站在受眾角度去編寫魄幕,能否正確傳遞信息,實用才是關(guān)鍵颖杏。