对系统工程师的建议:忘掉 7 ± 2

Douglass 博士曾在几百个项目上提供过超过 30 年的咨询。在这一面向基于模型系统工程的十大建模建议清单里,他分享了他的观点及深度经验。在过去 20 年里,系统工程领域经历了重大的改变。尤其是,系统工程从基于文本文档描述分析
转变为基于模型方法,从而实现抽象出系统的核心特性来更好地关注和应用严格的分析工作。这也就是说,很大程度上,得益于统一建模语言(Unified Modeling Language,UML)使用的日渐广泛,导致另一伴随衍生出的标准建模语言,系统建模语言(Systems Modeling Language,SysML)也得以发展。我曾有幸参与到制定这两项标准的工作当中。作为一名工作了很长一段时间的系统和嵌入式软件工程师,我为标准提供了来自系统工程师的分析性和代表性的需求。我的建议同样帮助确定这些建模语言在其制定目标上的适用性,即“支持和
改善系统工程的实践现状”。

在我过去工作的几十年里,我曾工作在多种系统工程环境中,从小型可植入">医疗设备到通讯系统,再到直升机航空电子设备和宇航设备。我曾见过多种不同精确度、完成度、正确性和价值的模型。这一经验和多样性帮助我形成那些适用于系统工程建模的重要观点,以及明确哪些,换句话说是“不那么有效”的观点。我与您分享我相信的,关于为系统工程有效进行建模的十大洞察。当然,这并不完全包括我关于这一主题所有想说的观点,不过还是让我们开始吧。

10:忘掉 7 ± 2

打断我,如果您曾经听到过这句话:“所有模型图都应包括七个元素,或加减二。”("All diagrams should contain seven elements, plus or minus two.")

您是否曾经质疑这句话的出处?

在 1956 年,George Miller 曾在《心理学评论》(Psychology Review)期刊发表过一篇文章,题为“魔法的数字‘七’,或加减二:我们处理信息的极限能力。”("The magical number seven, plus or minus two: some limits on our capacity for processing information.")这篇文章研究关于刺激回忆(stimulus recall)的两个方面。第一方面称为一维绝对判断(one-dimensional absolute judgment),这是关于我们区分一组在一维上发生变化的刺激(例如,尺寸或颜色),并返回一个先前已学会的反应(例如按下按钮)作为结果的能力的度量。另外一个方面的研究是记忆广度(memory span) – 我们回忆一系列展现过后即从眼前移走的物品的能力。巧合的是,这两方面都表明这些物品的数量是有限的(50% 准确度),即七个元素或加减二。

在本文这里一个有趣的问题是,“这跟现在要把多少东西放在一个模型图上有何关系?”

回答是,当然,“毫无关联。”

需要记住的是,与 Miller 博士所做的实验不同的是 – 在他的实验中他展现了一系列元素,随后移除该系列元素,然后在一段时间延迟后让实验参与者根据记忆复述该系列元素的清单 – 而在模型图上的元素在您看图的时候它们仍然在您面前。

另一方面,一个有任意合理尺寸的模型往往会有几百上千个元素。显然,您也同样无法将所有元素都放在一张模型图上。所以您应该怎么做?

作为 Harmony 过程(Harmony Process)的作者之一,我的建议是:每一个模型图都应有一个想要展示的单一概念或问题,并且把所有与该概念相关的元素都展示出来。这也被称为模型图的“任务”。

有些模型图拥有非常清晰的任务。例如一个 UML 或 SysML 的状态图,展现了系统中一个单独的类(class)或模块(block)的状态行为。其他模型图在其用途方面则更灵活。

序列图(Sequence diagram),例如,可以用于 目的 展示在一个用例(use case)的执行过程中,系统在其环境中如何与参与者(actor)进行交互 捕获围绕一个用例的场景(scenario)中的需求 展示一个特定案例中的内部设计元素之间如何交互 展示随着时间而展开的利益之间的协作 定义一个期待的输入-输出(input-output)转换序列 展示一个测试用例(test case) 重现系统在某些特定测试用例里的真实行为 展示一个测试结果

类图(class diagram)或块图(block diagram)还可以更加灵活。类图或块图的常见任务陈述包括:

展示实现一个大规模行为的协作所涉及的设计元素,例如一个用例中的设计元素 展示需求分配到结构化元素或用例上的分配情况 展示一个一般化的分类学(generalization taxonomy) 展示一个模型的组织情况(或称为“包图”,"package diagram")

注解:

UML 及 SysML 标准在区分模型图的类型(types)及其使用(uses)的差别上做得很差。任务图(task diagram)是目的主要是用于展示并发架构的类图(class diagram),正如结构图是目的为了显示类内部结构的类图一样。但两者都是类图。

展示架构方面,例如: 子系统及组件架构 部署架构(不同的工程实践规程的职责分配情况) 并发及资源管理架构 分布式架构 可靠性架构(包括安全性、可靠性及安全保护) 展示设计模式抽象 展示实例快照(也称为“对象图”,"object diagram") 展示软件元素之间的接口 展示工程规程之间的接口 展示一个结构化类的结构(也称为“结构图”,"structure diagram")

任务(mission)的概念表示每一个模型图只应尝试回答一个问题或支持一条特定原因。在我的经验里,多数很差劲的模型图都失败在它们不是没有清晰的任务,就是尝试去回答过多的问题。

我喜欢清晰,并且喜欢在模型图上标注注解来清晰地陈述模型图的任务。图 1-3 展示了一个典型例子。

图 1. 任务:展示用例被分配的需求

图 2. 任务:展示实现一个用例所需要协调的设计元素

图 3. 任务:为用例展示一个使用场景(包括前置条件和后置条件)

这显然表明同样一个元素拥有在不同的图中展示的潜在可能,但这不是个问题。许多优秀的建模工具都会维护一个语义信息的存储库,来作为关于该模型的唯一可信信息来源,而模型图总是描绘许多围绕这些可信信息的子集。

这就是我的清单上的第十条建议。下面您将会了解到第九条,“所有模型都是抽象,但只有一部分是有用的”。敬请期待。

时间: 2024-09-25 18:09:52

对系统工程师的建议:忘掉 7 ± 2的相关文章

9岁微软认证系统工程师:获特批不用天天上学

卡拉桑九岁生日当天吃上了有Windows 7图案的蛋糕 北京时间2月5日下午消息,据外国媒体报道,马其顿一直期望成为巴尔干地区的技术中心,让其感到自豪的是,该国年仅九岁的男孩卡拉桑(Marko Calasan)近期成为世界上最年轻的获微软认证的系统工程师(MCSE). 但问题是,如果没有政府或私人的支持,在这个完全处于陆地的巴尔干国家,卡拉桑的未来并不光明. 卡拉桑在采访中表示:"我想留下来,但这里没有什么我能用的资源.我想去美国,在那里我能找到更多我需要的技术资源.我在这里无法得到发展.我希望

第十五期CSHIA智能家居系统工程师培训浙江大学开班

2017年3月29日,由中国智能家居产业联盟(CSHIA)主办的第十五期CSHIA智能家居系统工程师培训在杭州·浙江大学正式开班.本期培训吸引了来自全国各地的六十余位智能家居一线集成商及工程技术人员参与,展开三天充实的智能家居系统课程学习. 培训首日,CSHIA智能家居系统工程师培训负责人王胜阳作开班致辞.本期"CSHIA智能家居系统工程师"培训课程共计三天两夜,32课时,内容涵盖智能家居技术原理.产品选型.系统集成.方案设计.产品实操.项目施工管理等贴近一线市场的丰富.实用干货. &

第三届CSHIA智能家居系统工程师同学会上海成功举办

2016年7月7日,由中国智能家居产业联盟(CSHIA)主办的第三届CSHIA智能家居系统工程师同学会暨2016中国智能家居区域高峰论坛在上海圣拉维会馆(浦东店)盛大举办. 以"i 智能·一起来"为主题的本届同学会,在前两届活动成功举办的基础上,进一步汇聚了前后12期CSHIA培训学员.2期智能家居技术专项培训学员.区域重点经销商代表.以及联盟理事长.理事单位代表共同参与. 同学会现场 本次活动也得到了鸿雁电器.思创易控.安玛思.中讯威易.万科思自控.爱威影音.影美极.领通科技.派菲克

调查称系统工程师被视为美国最佳职业

CNET科技资讯网3月17日国际报道 如果你是位系统工程师,老是怀疑自己是否选择了对的职业,那现在有个好消息.根据一项调查显示,系统工程师是美国最好的工作. Focus.com可能是在世界各地都能听到类似的牢骚抱怨的刺激下,做出了这个最重要的调查任务. 该网站一开始审视超过七千个工作,然后将焦点放在美国劳工统计局提供的数字上.它选择了根据统计数字,在未来十年会增长10%以上,以及至少需要大学毕业资格的工作. 接下来排除了需要有经验,但是年薪中间值低于65,000美元的工作,也排除了起薪低于10,

马其顿9岁男童成最年轻微软认证系统工程师(图)

卡拉萨在微软斯洛文尼亚分公司做演示卡拉萨九岁生日当天吃上了有Windows 7图案的蛋糕 导语:国外媒体今天撰文称,马其顿9岁男孩马科·卡拉萨(Marko Calasan)可能是全球最为年轻的"微软认证系统工程师". 以下为全文: 在计算机领域,卡拉萨并不只是一个懵懂无知的儿童.在6岁时,马其顿就获得了微软的系统管理员认证,上月,他成为可能是全球最为年轻的"微软认证系统工程师". 微软斯洛文尼亚总经理马蒂伊·普特卡(Matej Potokar)称:"我必须

Google的系统工程师(SA)如何工作,互联网营销

本文根据系统管理领域知名博客 Thomas A. Limoncelli 的 What is system administration like at Google 整理而成,添加了部分笔者观点. Google的系统工程师(System Administrator)如何工作 由于Google的服务已经集群化,系统工程师并不大量接触硬件比如做安装服务器等事情.另外大部分工作也已经自动化了,比如架设LDAP, 负载均衡等.对照而言,国内目前大部分互联网公司SA仍然要做大量重复的底层工作,比如拿一个业

用Ghost备份Windows XP系统几点建议

  微软的Windows XP内置了很强大的多媒体和外设支持功能,界面极其美观,但同时体积庞大.安装时间很长,如果因使用不当而崩溃,再次恢复或安装的时间都会很长.所以要做好XP的备份,虽然微软已经在XP中提供了还原功能,但这种还原需要XP的图形界面,同时占用大量空间.频繁的磁盘读写影响系统速度. 此外即使是安全模式,也属于图形界面的一种,如果XP被破坏得太厉害而导致无法进入GUI,还原功能就无用武之地了.所以,建议你保留一个兼容MS-DOS的Windows 9X,用GHOST的方式备份XP,即构

Linux系统工程师学习方法

学习顺序: 一.至少熟悉一种嵌入式芯片架构 最适合初学者的就是arm芯片 二.uboot的使用与移植 首先要了解uboot的启动流程,根据启动顺序,进行代码的修改.编译与移植 三.linux驱动开发 主要参考两本书:<Linux设备驱动程序> <Linux设备驱动开发详解> 第一本书讲理论,第二本讲实践. 在学驱动开发的时候,会涉及许多内核知识(例如内核定时器.内核链表.并发等),首先先学会使用,千万不要去看它们的实现.并且在看驱动的时候,用到那部分知识,再去查看相关的运用. 四.

Win8系统电脑黑屏开不了机怎么办?

  Win8系统电脑黑屏开不了机怎么办? 具体方法如下: 1.若您的电脑可以正常开机出现品牌LOGO,进入系统时黑屏建议您恢复系统后尝试,排除系统故障. 2.您的机器若自带正版系统备份,建议您开机按F4进入还原界面,选择恢复或完全还原即可.(正常情况下只是还原C盘数据,为了避免重要数据丢失建议您备份好文件) 3.若通过以上方法问题依然存在或者开机已经看不到品牌LOGO,请您带好购机发票.包修卡和机器送到电脑服务中心,由工程师检查机器并处理.