日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 嵌入式軟件實(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)目是有問題的,對下面的軟件設(shè)計(jì)和測試都有非常大的影響。

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

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

你沒看過《水滸傳》也沒關(guān)系,《金x梅》也有相同的情節(jié),后者算是基于前者的二次開發(fā)了,描述更刺激,對,我是說王婆是個(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)系和行為動作:

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

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

其實(shí)系統(tǒng)需求分析和需求挖掘是分不開的。前者注重“分析”,有疑問需要跟甲方溝通,繼續(xù)挖掘更詳細(xì)的信息,即后者注重“挖掘”。做項(xiàng)目過程中一般通過QA的方式跟甲方澄清需求,甲方也會通過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)目是有問題的,對下面的軟件設(shè)計(jì)和測試都有非常大的影響。

挖掘出的一堆需求,不一定全部都有用,需要提取分析,做好整理。例如清河縣的大戶一家,其實(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)在這一行的,對,她開個(gè)了茶坊,平時(shí)蒼蠅都沒幾只都無所謂,不影響她是干媒婆角色的。

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

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

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

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

可行性呢?就是這些需求分析下來,能不能讓王婆撮合這對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)框圖:

那要不要動態(tài)行為圖呢,我覺得系統(tǒng)層面的,是要的。限于篇幅,我們再軟件架構(gòu)處在講解吧。

這里還要提的,系統(tǒng)設(shè)計(jì)也有很多要求的,不僅僅是這個(gè)框圖,還有需求的部署,資源預(yù)估,例如干成這勾當(dāng)要多少銀子,買點(diǎn)布料讓潘金蓮做針線等等。還有這系統(tǒng)方案后面怎么實(shí)施,如何測試驗(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)為是軟件需求,對其加以在軟件層面的分析即可。例如這個(gè)人物的設(shè)計(jì),可以將其設(shè)計(jì)成一個(gè)類,帶著很多屬性(水性楊花、好色等)和方法(開窗、喝茶、獻(xiàn)計(jì)等)。

也許你會認(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)圖描述,還要做動態(tài)行為描述:

注意這個(gè)動態(tài)時(shí)序的接口要和組件提供的接口一一對應(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ì)謀。“但凡捱光最難,十分光時(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ì)對應(yīng)子函數(shù)的。

對于“十分光”計(jì)流程圖的邏輯,是不是一眼看出,通過10對“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)容,那右邊就是測試的內(nèi)容。

這計(jì)謀設(shè)計(jì)好后,王婆還真按照這套路實(shí)施一遍,還沒啥差錯,比設(shè)想的更加順暢。小說生活里面的情節(jié)是無法測試的,運(yùn)行測試就是真實(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)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉