[請益] 一份好的設計規劃應該怎麼寫

作者: icetofux   2023-03-10 09:18:04
我目前從事販賣機的軟體開發,需求主幹很簡單:
1.用戶選定商品、檢查商品庫存。
2.提示付款、依據使用者付款方式檢查付款是否成功。
3.投放商品。
4.控管存放庫的溫度。
主幹的描述跟流程圖可以很快的寫出來,但問題在於細節的實施,比方說步驟2.,付款方式百百種,而且常常開發到一半就需要增減某種付款方式;又比方步驟4.,不同商品可能有不同的控管邏輯。
只要遇到需求變更,就得修改文件重畫流程圖,導致後來我也養成便宜行事的壞習慣,先把程式寫完,出版後再來按code寫規劃文件。
雖然目前也沒遇到什麼太大的問題,但違背了先畫流程圖跟寫規格書的原則,心裡總是留一根刺。
想向各位先進請教,像這種情形有沒有什麼好的建議或改善方向呢?
謝謝。
作者: SHANGOYANYI (彥一)   2023-03-10 09:39:00
泳道圖
作者: leolarrel (真.粽子無雙)   2023-03-10 10:40:00
問GPT
作者: abccbaandy (敏)   2023-03-10 11:09:00
修改規格本來就很平常阿...便宜行事是你們的問題吧?不過我也沒碰過的照"規定"走的,一堆出張嘴就改的XD
作者: f26724309 (番薯)   2023-03-10 11:25:00
所以你寫的東西最好要有擴充彈性
作者: lazarus1121 (...)   2023-03-10 12:07:00
找一個SA來做,PG兼SA 文件很容易會脫節寫完code後你會沒動力修文件或是你只寫文件,讓PG來看文件改這樣看能抵擋幾次需求變更而PG還不爆炸XD
作者: DrTech (竹科管理處網軍研發人員)   2023-03-10 12:14:00
正常不會先畫流程圖吧,會先寫人與系統互動流程的文字。正式一點的說法是 use case。改文字比改圖方便多了很多圖根本是形式,重點是流程紀錄清楚比較重要。等到專案快結束,或沒事做時,才會根據合規要求,補各種說明文件與圖。
作者: MoonCode (MoonCode)   2023-03-10 13:47:00
好讚喔 是做什麼國家的需求 很好奇
作者: APTON (瑋瑋)   2023-03-10 14:38:00
不考慮狀態圖嗎?
作者: remember69 (玻璃心先生)   2023-03-10 16:12:00
PM的需求情境跟業務範圍是否完整 設計的範圍才比較聚焦如果開發只依照你4點的需求主幹往下直接開發 那沒問題才是問題吧XD
作者: jackflu (jackflu)   2023-03-10 17:31:00
樓上有講跟沒講一樣XD
作者: sp063439 (Isk)   2023-03-10 17:35:00
Gherkin
作者: jej (晃奶大馬桶)   2023-03-10 18:15:00
幾百年前的做法供你參考把需求的use case寫出來然後畫Active Diagram(就是上面說的泳道圖)然後再把DFD或是class Diagram畫出就可以開始coding了當然有些比較雞巴的地方會要求你維護sequence Diagram現在這世代的做法應該也差不多吧至於需求變更 看你的案子採用那種軟工手法若是瀑布式 就要和使用者重談需求 勾稽需求 然後改文件如果是使用scrum就下一個spint再說了
作者: hegemon (hegemon)   2023-03-10 18:30:00
流程圖可以切割,主幹引用到細節例如主幹跑到付款那段的時候,標示說請見付款細節,付款細節那邊有統一的interface的話,你對一種付款模式就是多一個付款模式的細節圖溫度控制那邊也可以看看能不能使用類似的做法,只要主幹跟細節圖之間的關聯讓人可以很快找到的話,適度的切割沒什麼不對
作者: WaterLengend (Leeeeeeeeooooooo)   2023-03-10 19:12:00
通常有需求之後我會畫流程圖或活動圖,當作確認需求跟文件紀錄
作者: s29940 (阿賜)   2023-03-10 19:13:00
Mermaid 畫流程圖很方便
作者: GoalBased (Artificail Intelligence)   2023-03-10 23:23:00
你要先找到為什麼你說違背了你的原則,心裡會有刺的背後真正的原因,再來看怎麼處理你說的原則是為了什麼,還是只是無意義的個人原則,xy問題
作者: viper9709 (阿達)   2023-03-11 00:08:00
修改規格本來就很平常+1
作者: enthos (影斯作業系統)   2023-03-11 14:48:00
設計一套DSL(Domain Specific Languages),可用LUA修改我個人喜歡這種 https://github.com/zevv/zForth文章代碼(AID): #1VclyWaS (CompilerDev) [ptt.cc]不同商品對應到不同的 bytecode, 容易更新.
作者: alan3100 (BOSS)   2023-03-11 14:52:00
你舉的例子哪裡需要改流程圖..隨便找個範例改吧
作者: burgess   2023-03-12 09:52:00
你的主流程(購買行為)不應該包含副流程(付款方式)的內容,副流程自己一張這樣就不會一直修改
作者: overhead (overhead)   2023-03-12 22:43:00
你要想why。為什麼該先畫流程圖?為什麼你們想便宜行事?在我看來,開發中的設計草稿和發行時的定稿是兩件事,前者重修改效率,後者重後人的易理解性。前者挑順手的工具畫個內部人能釐清的圖,發行時再花心思讓圖變成標準圖。

Links booklink

Contact Us: admin [ a t ] ucptt.com