最近一直在想一個問題,如果目標是煮一頓飯,事件應該如何劃分。
例如,這頓飯的目標是做三個菜,番茄炒雞蛋,紅燒排骨,小炒黃牛肉。那麼做飯這件事,有兩種事件劃分方式,應該選擇哪一種:
方式1:
買菜->洗菜->炒菜->裝盤->上桌
方式2:
爲三個並行的事件:
番茄炒雞蛋:買菜->洗菜->裝盤->上桌
紅燒排骨:買菜->洗菜->裝盤->上桌
小炒黃牛肉:買菜->洗菜->裝盤->上桌
後面仔細用需求分析的思路發現,不一定,我們要看那個做菜的人實際是怎麼做菜的。
首先我們找這個活動裏面的主題域,我們設置爲:菜市場,廚房,和食廳。在這三個地方要做的事情(業務範疇)是完全不一樣的。
然後我們看下做一頓飯,需要做什麼事
是下面這種嗎,我想這種應該更多見於初學者:
高手都是下面這樣的:
這裏想提出的一個問題是:洗菜是否也可以叫做事件?如果可以的話,那麼洗菜的活動步驟是怎樣的,而每個步驟要如何寫用例呢?
題外話
突然在想什麼是沉浸式的體驗。以往的軟件系統都是一個黑盒子,加蓋了一個大屏幕,人類與之交互,都是通過這個大屏幕,這種交互就很機械化,因爲人永遠都在系統的外部。但是當我們把菜市場,廚房,食廳也當成是一個個的小系統的時候,那麼人和這些系統的交互,都是在這個環境裏面的,系統不一定是一個真的有形的實物了,人也不再是獨立於系統的外部,人的存在,也是系統的一部分,例如人炒菜,其實炒菜的過程除了廚房本身的爐竈,鍋之外,也需要人的炒的參與,我想,這應該就是沉浸式體驗的比較好的解釋了。