當(dāng)前位置:首頁 > 公眾號(hào)精選 > 嵌入式軟件實(shí)戰(zhàn)派
[導(dǎo)讀]講點(diǎn)項(xiàng)目上的話題:系統(tǒng)需求分析跟后面要講的軟件需求分析是有區(qū)別的。前者注重系統(tǒng)層面的需求,后者關(guān)注軟件上的需求。能不能說前者包含后者。內(nèi)容上是可以的,但是細(xì)節(jié)、邏輯表達(dá)上是不行的。這導(dǎo)致有些公司,只有需求分析這個(gè)崗位,而不分系統(tǒng)需求還是軟件需求,節(jié)省不少人力成本。但是嚴(yán)格按A-Spice流程做項(xiàng)目是有問題的,對(duì)下面的軟件設(shè)計(jì)和測(cè)試都有非常大的影響。

四大名著之一《水滸傳》,我想很多人都看過吧,你是不是對(duì)“西門慶和潘金蓮的橋段”反復(fù)琢磨呢?哈哈,我想你是個(gè)好學(xué)的人,施耐庵也不惜重墨描繪這一章節(jié)。

王婆的“十分光”計(jì)謀簡直讓我“虎軀一震”,瞬間感慨這婆子肯定是一個(gè)思維縝密的程序員,軟件界少了她都黯淡了不少。

你沒看過《水滸傳》也沒關(guān)系,《金x梅》也有相同的情節(jié),后者算是基于前者的二次開發(fā)了,描述更刺激,對(duì),我是說王婆是個(gè)狠角色。

Note:《水滸傳》的第二十四回“王婆貪賄說風(fēng)情 鄆哥不忿鬧茶肆”和《金x梅》的第三回“定挨光王婆受賄 設(shè)圈套浪子私挑”有相同的情節(jié)。

上車坐穩(wěn)扶好,下面用A-Spice的方式解讀下這個(gè)故事情節(jié)。

為了到了更刺激更震撼的理解體驗(yàn),我們先復(fù)習(xí)下什么是V模型。不要想歪,不是女主的深V也不是大V,是A-Spice里面的V模型,管理設(shè)計(jì)流程用的,或者你戳這文章看《A-Spice中性感的V》。

完全不懂A-Spice或者V-Cycle也沒關(guān)系,你看下圖,按V字母筆順就是產(chǎn)品和軟件的開發(fā)過程。

話說,《水滸傳》是講忠義豪杰的故事的,為了更能讓故事情節(jié)更加“引人入勝”,于是“甲方”提了個(gè)需求:

撮合潘金蓮和西門慶搞點(diǎn)不可描述的事情,以凸顯武松的嫉惡如仇,然后逼上梁山。

要求“乙方”要想辦法實(shí)現(xiàn)這個(gè)需求。

“甲方”的需求往往就這么簡陋無比,作為優(yōu)秀的“乙方”不能看著需求就直接瞎掰,還需要進(jìn)一步去挖掘更多信息。這個(gè)“進(jìn)一步挖掘更多信息的過程”就叫SYS.1 需求挖掘。即在整個(gè)開發(fā)過程保持各方溝通以獲得更多需求信息,保持你做的跟甲方要的是同一個(gè)。

那么這個(gè)故事,怎么挖掘需求?就好像做項(xiàng)目,要知道項(xiàng)目的背景,為什么要搞一段潘金蓮和西門慶之間的齷齪之事。

那你就要去看看《水滸傳》的上一回,就是武松打虎回來之后的事。在這里,挖掘點(diǎn)重要信息:

  1. 潘金蓮原是清河縣某大戶的使女,這大戶想潛規(guī)則她,但她不愿意,向主人婆報(bào)告了這事。這大戶一怒之下,將潘金蓮“送給”了武大郎,不用錢的那種(羨慕吧,不要臆想哈)。
  2. 這武大郎是誰?“矮矬窮”,原文說是“三寸丁谷樹皮”。
  3. 漂亮媳婦配矮丑丈夫容易惹麻煩,從清河縣搬到陽谷縣。
  4. 武松是武大郎弟弟,高大威猛,醉打吊睛白額虎。
  5. 潘金蓮看著武松胸肌勃勃,激發(fā)了其雌性荷爾蒙,芳心蕩漾,想方設(shè)法勾引武松。
  6. 武松是誰,堂堂正正的男子漢,怎么可以做這等勾當(dāng)。于是在他出差之前,告訴他哥哥要看好這媳婦,不要被人勾走了哦。
  7. ...

以上,就是把這些信息挖掘出來,用粗略點(diǎn)的圖示可以大概勾畫出來人物的關(guān)系和行為動(dòng)作:

這還要挖掘下系統(tǒng)硬件上的信息,大戶家和武大郎家是在清河縣住的,而王婆、武松和后面出場(chǎng)的西門慶在陽谷縣住的。

怎么才能客戶的需求順理成章地實(shí)現(xiàn)呢?這就需要做需求分析了,即SYS.2 系統(tǒng)需求分析過程。

其實(shí)系統(tǒng)需求分析和需求挖掘是分不開的。前者注重“分析”,有疑問需要跟甲方溝通,繼續(xù)挖掘更詳細(xì)的信息,即后者注重“挖掘”。做項(xiàng)目過程中一般通過QA的方式跟甲方澄清需求,甲方也會(huì)通過CR方式來增加或變更需求。

那么,系統(tǒng)需求分析,做些啥?

講點(diǎn)項(xiàng)目上的話題:系統(tǒng)需求分析跟后面要講的軟件需求分析是有區(qū)別的。前者注重系統(tǒng)層面的需求,后者關(guān)注軟件上的需求。能不能說前者包含后者。內(nèi)容上是可以的,但是細(xì)節(jié)、邏輯表達(dá)上是不行的。這導(dǎo)致有些公司,只有需求分析這個(gè)崗位,而不分系統(tǒng)需求還是軟件需求,節(jié)省不少人力成本。但是嚴(yán)格按A-Spice流程做項(xiàng)目是有問題的,對(duì)下面的軟件設(shè)計(jì)和測(cè)試都有非常大的影響。

挖掘出的一堆需求,不一定全部都有用,需要提取分析,做好整理。例如清河縣的大戶一家,其實(shí)沒必要關(guān)注的了,只需做個(gè)參考,知道潘金蓮的來歷即可。后面潘金蓮勾引小叔子武松,這條需求有沒有用。有用,可以給潘增加一個(gè)屬性,即不安分、水性楊花等,容易出軌。

武松提醒其大哥,要看好嫂嫂。那么就給了建議,天還沒黑就關(guān)窗拉簾子了。

就在此時(shí),關(guān)鍵信息來了,關(guān)窗的時(shí)候,木棍不小心掉下了,又恰好砸到了西門慶的頭上,那么西門慶抬頭一看,哎呀不得了,就這樣迷上了這小娘子。這西門慶偏偏又是個(gè)破落戶,特點(diǎn)好色。這個(gè)潘金蓮偏偏又是個(gè)水性楊花。

就這樣,故事快要發(fā)生了,差點(diǎn)啥來著。

王婆,就這樣出現(xiàn)了,是武大郎鄰居,干過媒婆角色,業(yè)務(wù)能力奇強(qiáng),沒有撮合不了的。這能力強(qiáng)的人往往表面不表現(xiàn)在這一行的,對(duì),她開個(gè)了茶坊,平時(shí)蒼蠅都沒幾只都無所謂,不影響她是干媒婆角色的。

說到這,系統(tǒng)需求可以整理出哪些?

  1. 潘金蓮水性楊花,不愛武大郎,卻被管住了,按奈不住要出軌;
  2. 西門是個(gè)破落戶,有點(diǎn)錢,特別好色,按奈不住要拈花惹草;
  3. 王婆,拉皮條能力一絕,還貪財(cái);
  4. 武大郎家有個(gè)門窗,木棍是搞活動(dòng)的,容易掉;
  5. 這個(gè)門窗是正對(duì)著外面大街的;
  6. 武大郎家和王婆的茶坊很近,算是鄰居;
  7. 西門慶被潘金蓮木棍砸到,抬頭望,被迷??;
  8. 西門慶跟王婆很熟,常在茶坊喝茶;
  9. 王婆看出西門慶的心事;
  10. 王婆給西門慶獻(xiàn)計(jì)。

這里,做系統(tǒng)需求分析的時(shí)候要做好分類,有靜態(tài)的有動(dòng)態(tài)的,有硬件需求也有軟件需求,同時(shí)要做好需求可行性分析。

我們這里把人物和其活動(dòng)歸類為軟件需求,家、茶坊以及門窗木棍等這類的當(dāng)做是硬件需求。

可行性呢?就是這些需求分析下來,能不能讓王婆撮合這對(duì)J夫Y婦干出不可描述的事。其實(shí)上面的分析已經(jīng)分析出來了,一個(gè)水性楊花,一個(gè)好色,一個(gè)擅長撮合,都是鄰里街坊。你說,可行么?

接下來,要干嘛呢?大家不要猴急,接下來是SYS.3 系統(tǒng)架構(gòu)設(shè)計(jì)

要將上面系統(tǒng)需求表達(dá)到系統(tǒng)框架中,例如這個(gè)靜態(tài)的系統(tǒng)框圖:

那要不要?jiǎng)討B(tài)行為圖呢,我覺得系統(tǒng)層面的,是要的。限于篇幅,我們?cè)佘浖軜?gòu)處在講解吧。

這里還要提的,系統(tǒng)設(shè)計(jì)也有很多要求的,不僅僅是這個(gè)框圖,還有需求的部署,資源預(yù)估,例如干成這勾當(dāng)要多少銀子,買點(diǎn)布料讓潘金蓮做針線等等。還有這系統(tǒng)方案后面怎么實(shí)施,如何測(cè)試驗(yàn)證等。

系統(tǒng)方面的,就簡要講這么多吧。下面講重點(diǎn),軟件過程的設(shè)計(jì)。

接下來就是SWE.1 軟件需求分析了。

也許還是很多人要問,軟件需求跟系統(tǒng)需求的區(qū)別。

軟件需求是來源于系統(tǒng)需求和系統(tǒng)架構(gòu)的,但是側(cè)重點(diǎn)不一樣。

例如,系統(tǒng)需求的1/2/3/7/8/9/10都可以認(rèn)為是軟件需求,對(duì)其加以在軟件層面的分析即可。例如這個(gè)人物的設(shè)計(jì),可以將其設(shè)計(jì)成一個(gè)類,帶著很多屬性(水性楊花、好色等)和方法(開窗、喝茶、獻(xiàn)計(jì)等)。

也許你會(huì)認(rèn)為,這不是軟件設(shè)計(jì)的事情嗎,其實(shí)你是在軟件設(shè)計(jì)的時(shí)候把軟件需求的事干了而已。

這里,我們要重點(diǎn)研究獻(xiàn)計(jì)這個(gè)方法,可以理解它是一個(gè)很重要的算法,在王婆這類里面實(shí)現(xiàn)。

原文說,這個(gè)計(jì)謀叫做“十分光”計(jì)。我把幾千字的計(jì)謀內(nèi)容提煉以下:

  1. 一分光:西門慶送點(diǎn)衣料給王婆做壽衣,王婆約潘金蓮來做針線活,看她肯不肯;
  2. 二分光:做針線的地點(diǎn)約在王婆家,看肯不肯;
  3. 三分光:第二日看潘金蓮是否繼續(xù)愿意在王婆家做針線;
  4. 四分光:第三日,西門慶出現(xiàn),看看潘金蓮是否回避回家;
  5. 五分光:王婆夸西門慶發(fā)善心,西門慶夸潘金蓮針線活好,看能否聊下去;
  6. 六分光:王婆出去買酒,買零食,看潘金蓮是否回避回家;
  7. 七分光:王婆要潘金蓮跟西門慶獨(dú)處,聊聊天,看潘金蓮是否回避回家;
  8. 八分光:吃酒嗑瓜子,看潘金蓮愿不愿意跟西門慶坐同桌;
  9. 九分光:吃到差不多,突然沒酒了,王婆去買酒,把這兩人關(guān)一屋子,看啥反應(yīng);
  10. 十分光:西門慶甜言蜜語、得寸進(jìn)尺,看啥反應(yīng)……

到這一步,軟件分析其實(shí)已經(jīng)很詳細(xì)了,這個(gè)算法思路也很清晰的了。

你按奈不住要寫代碼來實(shí)現(xiàn)這段不可描述的事情了?別急,接下來是SWE.2 軟件架構(gòu)設(shè)計(jì)

軟件架構(gòu)設(shè)計(jì)討論跟系統(tǒng)架構(gòu)設(shè)計(jì)的討論很相似,前者是關(guān)注軟件層面的。

我們可以把每個(gè)類設(shè)計(jì)成一個(gè)組件,并把類的接口定義清楚。

上專業(yè)的設(shè)計(jì)工具EA,為了簡要說明這個(gè)不可描述的情節(jié),部分需求沒有完全體現(xiàn)在這架構(gòu)里面。(這里省略了WuDalang的角色)

還可以通過類圖的Interface來強(qiáng)調(diào)這個(gè)“十分光”計(jì)(TenSteps_Trap)

以上是簡單的靜態(tài)圖描述,還要做動(dòng)態(tài)行為描述:

注意這個(gè)動(dòng)態(tài)時(shí)序的接口要和組件提供的接口一一對(duì)應(yīng),如果前后不一致就是做設(shè)計(jì)不嚴(yán)謹(jǐn)。

除了組件框圖、類圖和時(shí)序圖,還要有其他的設(shè)計(jì),例如資源預(yù)估,線程任務(wù)等。(本文重點(diǎn)討論不可描述的情節(jié),其他工作暫且省略)

接下來,能寫代碼了嗎?看你急的,SWE.3 軟件詳細(xì)設(shè)計(jì)才是下一步(心急吃不了熱豆腐)。

一般,詳細(xì)設(shè)計(jì)用什么方法做呢?類圖和流程圖是最常用的,還有接口描述以及其注意事項(xiàng)。以下挑幾個(gè)來講解:

1. 類圖

2. 接口說明

接口名
bool TenSteps_Trap(int money)
說明
“十分光”計(jì)謀?!暗厕吖庾铍y,十分光時(shí),使錢到九分九厘,也有難成就處?!边@計(jì)謀“端的強(qiáng)如孫武子教女兵,十捉九著?!本褪潜容^費(fèi)錢。
參數(shù)
money 買酒買零食的錢,還有衣料錢,酬謝金等
返回值
成功與否
注意事項(xiàng)
須占一個(gè)線程,非可重入函數(shù)。中途遇到拒絕退出,不可強(qiáng)求。

3. 流程圖

可以寫代碼了嗎?我知道你忍不住了,下面就是Coding了。

從這里看,Coding只占整個(gè)A-Spice很小一部分。所以說走A-Spice流程的項(xiàng)目需要比不需要A-Spice流程的多很多很多時(shí)間。

以上的,“十分光”計(jì)流程圖足夠清晰了嗎?并不是。流程圖里面的01,02...10,以及“不可描述”部分都是一個(gè)單元,應(yīng)該要設(shè)計(jì)對(duì)應(yīng)子函數(shù)的。

對(duì)于“十分光”計(jì)流程圖的邏輯,是不是一眼看出,通過10對(duì)“if-else”語句就搞定了?

其實(shí)這里有N種實(shí)現(xiàn)方法,最原始最直觀最遵守規(guī)則的是這樣的:

bool TenSteps_Trap(int money){ if(do_needlework()) // 01 { if(at_wangpohome(day1)) // 02 { if(at_wangpohome(day2)) // 03 { if(PanJinlian.meet_happy_with(XimenQing)) // 04 { if(PanJinlian.chat_happy_with(XimenQing)) // 05 { if(at_wangpohome(Wangpo_leave)) // 06 { if(PanJinlian.state_along_with(XimenQing)) // 07 { if(at_the_same_table(PanjinLian, XimenQing)) // 08 { if(lock_in_a_room(PanjinLian, XimenQing)) // 09 { if(XimenQing.molest(PanjinLian)) // 10 { run_xxoo_thread() } else { go_exit(); } } else { go_exit(); } } else { go_exit(); } } else { go_exit(); } } else { go_exit(); } } else { go_exit(); } } else { go_exit(); } } else { go_exit(); } } else { go_exit(); } } else { go_exit(); }} 

本文只討論A-Spice的不可描述,其他的函數(shù)實(shí)現(xiàn)方式,另找時(shí)間討論。

以上就是設(shè)計(jì)過程域的內(nèi)容,即V-Cycle左邊的內(nèi)容,那右邊就是測(cè)試的內(nèi)容。

這計(jì)謀設(shè)計(jì)好后,王婆還真按照這套路實(shí)施一遍,還沒啥差錯(cuò),比設(shè)想的更加順暢。小說生活里面的情節(jié)是無法測(cè)試的,運(yùn)行測(cè)試就是真實(shí)執(zhí)行了。

《水滸傳》還真有描述后續(xù)的執(zhí)行情況,而《金x梅》輸出更多不可描述的logs。

我說王婆是個(gè)狠人,她還藏著一個(gè)環(huán)節(jié)沒寫在A-Spice的詳細(xì)設(shè)計(jì)中。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉