当前位置:首页 > 公众号精选 > 嵌入式软件实战派
[导读]讲点项目上的话题:系统需求分析跟后面要讲的软件需求分析是有区别的。前者注重系统层面的需求,后者关注软件上的需求。能不能说前者包含后者。内容上是可以的,但是细节、逻辑表达上是不行的。这导致有些公司,只有需求分析这个岗位,而不分系统需求还是软件需求,节省不少人力成本。但是严格按A-Spice流程做项目是有问题的,对下面的软件设计和测试都有非常大的影响。

四大名著之一《水浒传》,我想很多人都看过吧,你是不是对“西门庆和潘金莲的桥段”反复琢磨呢?哈哈,我想你是个好学的人,施耐庵也不惜重墨描绘这一章节。

王婆的“十分光”计谋简直让我“虎躯一震”,瞬间感慨这婆子肯定是一个思维缜密的程序员,软件界少了她都黯淡了不少。

你没看过《水浒传》也没关系,《金x梅》也有相同的情节,后者算是基于前者的二次开发了,描述更刺激,对,我是说王婆是个狠角色。

Note:《水浒传》的第二十四回“王婆贪贿说风情 郓哥不忿闹茶肆”和《金x梅》的第三回“定挨光王婆受贿 设圈套浪子私挑”有相同的情节。

上车坐稳扶好,下面用A-Spice的方式解读下这个故事情节。

为了到了更刺激更震撼的理解体验,我们先复习下什么是V模型。不要想歪,不是女主的深V也不是大V,是A-Spice里面的V模型,管理设计流程用的,或者你戳这文章看《A-Spice中性感的V》。

完全不懂A-Spice或者V-Cycle也没关系,你看下图,按V字母笔顺就是产品和软件的开发过程。

话说,《水浒传》是讲忠义豪杰的故事的,为了更能让故事情节更加“引人入胜”,于是“甲方”提了个需求:

撮合潘金莲和西门庆搞点不可描述的事情,以凸显武松的嫉恶如仇,然后逼上梁山。

要求“乙方”要想办法实现这个需求。

“甲方”的需求往往就这么简陋无比,作为优秀的“乙方”不能看着需求就直接瞎掰,还需要进一步去挖掘更多信息。这个“进一步挖掘更多信息的过程”就叫SYS.1 需求挖掘。即在整个开发过程保持各方沟通以获得更多需求信息,保持你做的跟甲方要的是同一个。

那么这个故事,怎么挖掘需求?就好像做项目,要知道项目的背景,为什么要搞一段潘金莲和西门庆之间的龌龊之事。

那你就要去看看《水浒传》的上一回,就是武松打虎回来之后的事。在这里,挖掘点重要信息:

  1. 潘金莲原是清河县某大户的使女,这大户想潜规则她,但她不愿意,向主人婆报告了这事。这大户一怒之下,将潘金莲“送给”了武大郎,不用钱的那种(羡慕吧,不要臆想哈)。
  2. 这武大郎是谁?“矮矬穷”,原文说是“三寸丁谷树皮”。
  3. 漂亮媳妇配矮丑丈夫容易惹麻烦,从清河县搬到阳谷县。
  4. 武松是武大郎弟弟,高大威猛,醉打吊睛白额虎。
  5. 潘金莲看着武松胸肌勃勃,激发了其雌性荷尔蒙,芳心荡漾,想方设法勾引武松。
  6. 武松是谁,堂堂正正的男子汉,怎么可以做这等勾当。于是在他出差之前,告诉他哥哥要看好这媳妇,不要被人勾走了哦。
  7. ...

以上,就是把这些信息挖掘出来,用粗略点的图示可以大概勾画出来人物的关系和行为动作:

这还要挖掘下系统硬件上的信息,大户家和武大郎家是在清河县住的,而王婆、武松和后面出场的西门庆在阳谷县住的。

怎么才能客户的需求顺理成章地实现呢?这就需要做需求分析了,即SYS.2 系统需求分析过程。

其实系统需求分析和需求挖掘是分不开的。前者注重“分析”,有疑问需要跟甲方沟通,继续挖掘更详细的信息,即后者注重“挖掘”。做项目过程中一般通过QA的方式跟甲方澄清需求,甲方也会通过CR方式来增加或变更需求。

那么,系统需求分析,做些啥?

讲点项目上的话题:系统需求分析跟后面要讲的软件需求分析是有区别的。前者注重系统层面的需求,后者关注软件上的需求。能不能说前者包含后者。内容上是可以的,但是细节、逻辑表达上是不行的。这导致有些公司,只有需求分析这个岗位,而不分系统需求还是软件需求,节省不少人力成本。但是严格按A-Spice流程做项目是有问题的,对下面的软件设计和测试都有非常大的影响。

挖掘出的一堆需求,不一定全部都有用,需要提取分析,做好整理。例如清河县的大户一家,其实没必要关注的了,只需做个参考,知道潘金莲的来历即可。后面潘金莲勾引小叔子武松,这条需求有没有用。有用,可以给潘增加一个属性,即不安分、水性杨花等,容易出轨。

武松提醒其大哥,要看好嫂嫂。那么就给了建议,天还没黑就关窗拉帘子了。

就在此时,关键信息来了,关窗的时候,木棍不小心掉下了,又恰好砸到了西门庆的头上,那么西门庆抬头一看,哎呀不得了,就这样迷上了这小娘子。这西门庆偏偏又是个破落户,特点好色。这个潘金莲偏偏又是个水性杨花。

就这样,故事快要发生了,差点啥来着。

王婆,就这样出现了,是武大郎邻居,干过媒婆角色,业务能力奇强,没有撮合不了的。这能力强的人往往表面不表现在这一行的,对,她开个了茶坊,平时苍蝇都没几只都无所谓,不影响她是干媒婆角色的。

说到这,系统需求可以整理出哪些?

  1. 潘金莲水性杨花,不爱武大郎,却被管住了,按奈不住要出轨;
  2. 西门是个破落户,有点钱,特别好色,按奈不住要拈花惹草;
  3. 王婆,拉皮条能力一绝,还贪财;
  4. 武大郎家有个门窗,木棍是搞活动的,容易掉;
  5. 这个门窗是正对着外面大街的;
  6. 武大郎家和王婆的茶坊很近,算是邻居;
  7. 西门庆被潘金莲木棍砸到,抬头望,被迷住;
  8. 西门庆跟王婆很熟,常在茶坊喝茶;
  9. 王婆看出西门庆的心事;
  10. 王婆给西门庆献计。

这里,做系统需求分析的时候要做好分类,有静态的有动态的,有硬件需求也有软件需求,同时要做好需求可行性分析。

我们这里把人物和其活动归类为软件需求,家、茶坊以及门窗木棍等这类的当做是硬件需求。

可行性呢?就是这些需求分析下来,能不能让王婆撮合这对J夫Y妇干出不可描述的事。其实上面的分析已经分析出来了,一个水性杨花,一个好色,一个擅长撮合,都是邻里街坊。你说,可行么?

接下来,要干嘛呢?大家不要猴急,接下来是SYS.3 系统架构设计

要将上面系统需求表达到系统框架中,例如这个静态的系统框图:

那要不要动态行为图呢,我觉得系统层面的,是要的。限于篇幅,我们再软件架构处在讲解吧。

这里还要提的,系统设计也有很多要求的,不仅仅是这个框图,还有需求的部署,资源预估,例如干成这勾当要多少银子,买点布料让潘金莲做针线等等。还有这系统方案后面怎么实施,如何测试验证等。

系统方面的,就简要讲这么多吧。下面讲重点,软件过程的设计。

接下来就是SWE.1 软件需求分析了。

也许还是很多人要问,软件需求跟系统需求的区别。

软件需求是来源于系统需求和系统架构的,但是侧重点不一样。

例如,系统需求的1/2/3/7/8/9/10都可以认为是软件需求,对其加以在软件层面的分析即可。例如这个人物的设计,可以将其设计成一个类,带着很多属性(水性杨花、好色等)和方法(开窗、喝茶、献计等)。

也许你会认为,这不是软件设计的事情吗,其实你是在软件设计的时候把软件需求的事干了而已。

这里,我们要重点研究献计这个方法,可以理解它是一个很重要的算法,在王婆这类里面实现。

原文说,这个计谋叫做“十分光”计。我把几千字的计谋内容提炼以下:

  1. 一分光:西门庆送点衣料给王婆做寿衣,王婆约潘金莲来做针线活,看她肯不肯;
  2. 二分光:做针线的地点约在王婆家,看肯不肯;
  3. 三分光:第二日看潘金莲是否继续愿意在王婆家做针线;
  4. 四分光:第三日,西门庆出现,看看潘金莲是否回避回家;
  5. 五分光:王婆夸西门庆发善心,西门庆夸潘金莲针线活好,看能否聊下去;
  6. 六分光:王婆出去买酒,买零食,看潘金莲是否回避回家;
  7. 七分光:王婆要潘金莲跟西门庆独处,聊聊天,看潘金莲是否回避回家;
  8. 八分光:吃酒嗑瓜子,看潘金莲愿不愿意跟西门庆坐同桌;
  9. 九分光:吃到差不多,突然没酒了,王婆去买酒,把这两人关一屋子,看啥反应;
  10. 十分光:西门庆甜言蜜语、得寸进尺,看啥反应……

到这一步,软件分析其实已经很详细了,这个算法思路也很清晰的了。

你按奈不住要写代码来实现这段不可描述的事情了?别急,接下来是SWE.2 软件架构设计

软件架构设计讨论跟系统架构设计的讨论很相似,前者是关注软件层面的。

我们可以把每个类设计成一个组件,并把类的接口定义清楚。

上专业的设计工具EA,为了简要说明这个不可描述的情节,部分需求没有完全体现在这架构里面。(这里省略了WuDalang的角色)

还可以通过类图的Interface来强调这个“十分光”计(TenSteps_Trap)

以上是简单的静态图描述,还要做动态行为描述:

注意这个动态时序的接口要和组件提供的接口一一对应,如果前后不一致就是做设计不严谨。

除了组件框图、类图和时序图,还要有其他的设计,例如资源预估,线程任务等。(本文重点讨论不可描述的情节,其他工作暂且省略)

接下来,能写代码了吗?看你急的,SWE.3 软件详细设计才是下一步(心急吃不了热豆腐)。

一般,详细设计用什么方法做呢?类图和流程图是最常用的,还有接口描述以及其注意事项。以下挑几个来讲解:

1. 类图

2. 接口说明

接口名
bool TenSteps_Trap(int money)
说明
“十分光”计谋。“但凡捱光最难,十分光时,使钱到九分九厘,也有难成就处。”这计谋“端的强如孙武子教女兵,十捉九着。”就是比较费钱。
参数
money 买酒买零食的钱,还有衣料钱,酬谢金等
返回值
成功与否
注意事项
须占一个线程,非可重入函数。中途遇到拒绝退出,不可强求。

3. 流程图

可以写代码了吗?我知道你忍不住了,下面就是Coding了。

从这里看,Coding只占整个A-Spice很小一部分。所以说走A-Spice流程的项目需要比不需要A-Spice流程的多很多很多时间。

以上的,“十分光”计流程图足够清晰了吗?并不是。流程图里面的01,02...10,以及“不可描述”部分都是一个单元,应该要设计对应子函数的。

对于“十分光”计流程图的逻辑,是不是一眼看出,通过10对“if-else”语句就搞定了?

其实这里有N种实现方法,最原始最直观最遵守规则的是这样的:

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的不可描述,其他的函数实现方式,另找时间讨论。

以上就是设计过程域的内容,即V-Cycle左边的内容,那右边就是测试的内容。

这计谋设计好后,王婆还真按照这套路实施一遍,还没啥差错,比设想的更加顺畅。小说生活里面的情节是无法测试的,运行测试就是真实执行了。

《水浒传》还真有描述后续的执行情况,而《金x梅》输出更多不可描述的logs。

我说王婆是个狠人,她还藏着一个环节没写在A-Spice的详细设计中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭