本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。
系统工程是为了最好地实现系统的目的,对系统的组成要素、组织结构、信息流、控制机构等进行分析研究的科学方法。它运用各种组织管理技术,使系统的整体与局部之间的关系协调和相互配合,实现总体的最优运行。系统工程不同于一般的传统工程学,它所研究的对象不限于特定的工程物质对象,而是任何一种系统。它是在现代科学技术基础之上发展起来的一门跨学科的边缘学科。 [1]
中文名
系统工程
外文名
Systems Engineering
定名时间
1957年前后
从系统观念出发,以最优化方法求得系统整体的最优的综合化的组织、管理、技术和方法的总称。钱学森教授在1978年指出:“‘系统工程’是组织管理‘系统’的规划、研究、设计、制造、试验和使用的科学方法,是一种对所有‘系统’都具有普遍意义的科学方法。”(《论系统工程》,1982年) [2]
它产生于第二次世界大战期间,在战后50年代,开始有了初步发展。60年代,美国的阿波罗登月计划成功地运用了系统工程的科学方法,按预定目标第一次把人送到了月球。以此为转机,系统工程受到了世界各国的高度重视,获得迅速发展,被广泛应用到自然科学和社会科学的各个领域,开创了系统工程发展的新时期。系统工程是运用系统方法,对系统进行规划、研究、设计、制造、试验和使用的组织管理技术。1930年,美籍奥地利生物学家L·V·贝塔朗菲的系统论思想,对系统工程的形成产生了直接的影响。作为一门横跨许多学科的高度综合性的新兴技术,系统工程的形成还与一系列基础科学有着十分密切的联系。这些基础学科主要有:运筹学、控制论、信息理论、基础数学和计算机科学。60年代以来,系统工程发展的显著特点是开始突破自然科学和工程技术领域,向社会科学领域不断渗透。随着70年代的“大系统理论”的兴起,使系统工程与社会科学的联系更加密切了。系统工程已在经济、社会、人口、军事、行政、法制、科学、教育、人才、情报和未来研究等社会科学领域得到越来越广泛的运用, 充分显示了它无限广阔的发展前景。80年代,系统工程发展的显著趋势是巨大化、复杂化、社会化,它意味着系统工程将进一步向社会科学各领域广泛渗透,社会工程的开发与研究,将成为今后系统工程发展的主要方向之一。 [3]
系统工程是在现代化的“大企业”、“大工程”、“大科学”出现后,产品构造复杂、换代周期短、生产社会化、管理系统化、科学技术高度分化又高度综合等历史背景下产生的。在本世纪40年代末,首先由美国贝尔电话公司在研制电话自动交换中提出“系统工程”这一名词。1957年美国密执安大学高德和迈克两教授写了第一本《系统工程——大系统导论》。1965年美国学者编写了《系统工程手册》,至此初步形成了较完整的理论体系。 [2]
系统工程的步骤和方法因处理对象不同而异。对一般步骤和方法的研究比较有影响的是美国贝尔电话公司系统工程师A·D·Hall于1969年提出的三维空间法:(一)时间维。表示工程活动从规划到更新阶段按时间顺序安排的7个阶段,即规划阶段;拟定计划方案阶段;研制阶段(并制订生产计划);生产阶段(生产系统零件、提出安装计划);安装阶段;运动阶段;更新阶段。(二)逻辑维。指完成上述7个阶段工作的思维程序。包括:明确问题,即搜集本阶段资料,提供目标依据;系统指标设计,即提出目标的评价标准;系统综合,即设计出所有待选方案或对整个系统进行综合;系统分析,即运用模型比较方案,进行说明;实行优化,即从可行方案中选优;进行决策;实施计划。(三)知识维。完成各步工作需要的各种知识、技能。 [2]
这一方法,在逻辑上,把运用系统工程解决问题的整个过程分成问题阐述、目标选择、系统综合、系统分析、最优化、决策和实施计划七个环环紧扣的步骤;在时间上,把系统工程的全部进程分为规划、设计、研制、生产、安装、运行和更新七个依次循进的阶段;在专业知识上,运用系统工程除需要某些共性知识外,还需要使用各科专业知识,如工程、医药、建筑、商业、法律、管理、社会科学和艺术等等。与此同时,在系统工程发展中还确立了一系列系统技术方法。主要有:模拟技术、最优化技术、评价技术和计算机技术。 [3]
三维结构图法:一、逻辑维(解决问题的逻辑过程)。在使用系统工程方法解决问题时,可按下述七个步骤进行;(一)提出问题;(二)选择目标;(三)系统综合;(四)系统分析;(五)选择解决问题的最佳方案;(六)决策;(七)实施计划。二、时间维(工作阶段)。对一个具体工程,从规划到更新,全部程序分为:(一)规划制定阶段,指调研、程序设计等;(二)初步设计阶段,即具体计划阶段;(三)研制阶段,即系统开发阶段;(四)生产阶段;(五)安装阶段;(六)运行阶段;(七)更新阶段。三、知识维(专业学科知识)。系统工程除有某些共性知识外,还涉及各种专业知识,这些专业知识称为知识维。 [1] [1]
系统工程方法的主要特点是:一、把研究对象作为一个整体来分析,分析总体中各个部分之间的相互联系和相互制约关系,使总体中的各个部分相互协调配合,服从整体优化要求;在分析局部问题时,是从整体协调的需要出发,选择优化方案,综合评价系统的效果;二、综合运用各种科学管理的技术和方法,定性分析和定量分析相结合;三、对系统的外部环境和变化规律进行分析,分析它们对系统的影响,使系统适应外部环境的变化。 [1]
系统工程与一般工程技术的区别是:系统工程不仅研究物质系统,也研究非物质系统,如教育、文化、新闻宣传等系统,应用广泛;而一般工程技术以具体的物质系统为对象。系统工程从全局、整体上处理系统。要以系统论、控制论、信息论为理论基础,又必须具备每一类系统工程的专业理论;而一般工程技术主要处理具体技术门类,以专业理论为主。系统工程工作者是系统工程师,是决策人的委托人、参谋、助手,为社会服务;而一般工程师是专门技术人员。二者有不同的业务素质要求。
已剪辑自: https://mp.weixin.qq.com/s/9uTG1QyjOzIfeMuvioNkWw
工程,是日常生活和工作时经常使用的一个词语,例如土木工程、电子工程、机械工程、系统工程,以及法制工程、希望工程、菜篮子工程;也有三峡工程、载人航天工程、探月工程等;还有“创新是一项系统工程”“改革是一项系统工程”等说法。这个词语本身并没有令人费解的地方,但在不同的语境中,却体现出迥然不同的内涵,如果不加以辨析和区分,就会导致一些基本概念的混淆。例如,对于“系统工程”到底是什么,就有各种定义和多种不同的解释,甚至大相径庭。“工程”是辨析“系统工程”本质的钥匙。本文将通过对“工程”的语意分析,辨析系统工程的本质。
*在与科学、技术的对比中理解工程*
1986年,美国国家科学委员会首次提出“STEM”教育概念,STEM 是科学(science),技术(technology),工程(engineering),数学(mathematics)四门学科英文首字母的缩写,旨在强调在科学、技术、工程和数学领域综合发展,以提升美国未来人才的科技能力,从而提高美国全球竞争力。而中国人常常把科学和技术混在一起说成“科技”,而工程的概念也非常模糊,其实科学、技术和工程是不同层次和范围的概念。
科学(science)源于拉丁文“scientia”,本义是知识和学问的意思。科学以探索发现为核心,主要是发现、探索研究事物运动的客观规律。科学活动由好奇心驱使,最典型的活动形式是基础科学研究,包括科学实验和理论研究。进行科学活动的主要社会角色是科学家。科学活动的成果即科学知识,其主要形式是科学概念、科学定律、科学理论甚至科学假说,科学知识与其本身是否有用、能否带来经济效益和道德上的善恶无关。科学知识的成果形式是论文、著作。
技术(technology)由希腊文“techne”(工艺、技能)和“logos”(词,讲话)构成,意为工艺、技能。技术以发明革新为核心,着重解决“做什么和怎么做”的问题。技术活动由问题(problem)驱使,最典型的活动方式是技术开发,其主要社会角色是技术员、发明家。技术知识的基本形式是技术原理和操作方法,表现形式为技巧、技能、技艺。技术活动成果形式主要包括专利、图纸、配方、诀窍等。
工程(engineering)最早产生于 18世纪的欧洲,其本义是兵器制造、军事目的的各项劳作,后扩展到许多领域,如制造机器、架桥修路等。工程以集成建造为核心、以新的存在物为标志,着重解决“做出了什么”的问题,强调改造客观世界的实际效果。工程活动由产品驱使,主要社会角色是工程师。工程活动的成果主要是各类人造系统(man-made systems)。将实际改造世界的物质实践活动和建造实施过程知识化,形成的就是工程方法,是一种面向实践的技能和方法,主要成果形式是工程原理、设计和施工方案等。
在汉语中,“工程”一词古已有之,原意是“土木构筑”,即建筑施工,后演化为“用比较大而复杂的设备进行的工作”或“需要较多人力、物力来进行的大而复杂的工作”。“工程”这里含义是工作、任务或事业(work,task,enterprise),强调其复杂性、艰巨性。例如,口语中常说的“这可是个大工程啊!”就是这个意思。但一旦工程被设定了明确目标并加以时间、经费等约束条件,“工程”的含义就扩展到了“项目”(project 或 program)了。例如,三峡工程、南水北调工程,以及曼哈顿工程(Manhattan Project)和阿波罗工程(Apollo Project)、载人航天工程(China Manned Space Program)……所以,汉语中的“工程”对应了多个含义,需要在不同语境下加以区分,识别真正的内涵。系统工程常见于这样的说法,“某某工作是一项系统工程”。例如,“解决就业问题是一项系统工程”“安全生产是一项系统工程”等,以及日常生活中老百姓的对话,“孩子的教育是一项系统工程”等。这些话语中的“系统工程”不是我们研制卫星、飞机、舰船的系统工程(systems engineering,SE)方法,其背后的含义是首先强调这是一个复杂、艰巨的任务,即“工作、任务或者事业”(work,task,enterprise),其次是强调对于这样复杂艰巨的工作和任务,必须使用系统思维,必须整体考虑、处理好方方面面的关系,才能完成好这项工作,推动事业发展。
工科高等院校里的工程学科专业,就是前面与科学、技术进行对比的工程,即“engineering”,例如,电子工程(Electronic Engineering,EE)、机械工程(Mechanics Engineering,ME)或软件工程(Software Engineering,SE)等,传授与研究的就是我们非常熟悉的关于工程的技能和方法,培养的就是各个方面的工程师(engineer)。
**明确系统工程与系统科学和系统思维的区别****
就工程活动来看,系统工程与电子工程、机械工程、软件工程等一样,均是为实现项目目标,应用各类技术研制产品而实施的工程活动,只不过电子工程、机械工程或软件工程等是应用电子、机械或软件等专业技术实现电子线路、机械结构和装置、软件程序代码等的专业活动,而系统工程则是对各种专业活动进行控制、集成和协调的总体活动;电子工程、机械工程或软件工程等是各专业工程师的工作,而系统工程则是系统工程师的工作或总体工作。因此,把系统工程混同于科学层面的系统科学,以及哲学层面、方法论层面的系统思维,都是错误的。但是无论是在大学的教科书中,还是系统工程的专业著作中,我们经常看到这样的说法:“系统工程是系统科学的一个分支”“系统工程是研究复杂系统设计的科学。”这等于将科学与工程划了等号。
系统科学(systems science)是一门总结复杂系统的演化规律,研究如何建设、管理和控制复杂系统的科学。系统科学汇集系统各个方面的研究,以识别、探索和理解跨越学科多个领域和应用的诸多范围的复杂性特征模式为目的。系统科学所包括的理论主要有一般系统论、信息论、控制论和耗散结构论、协同学、突变论等。
还有很多教材和著作,将系统工程称为“系统工程学”也存在类似的问题。钱学森曾在《论系统工程》中明确地说:系统工程“不宜像有些人说的那样泛称为科学”,以及“提‘系统工程学’这样一个词就太泛了”“强调系统工程是要改造客观世界的,是要实践的。”系统思维或者系统思考(systems thinking)是把认识对象作为系统,从系统和要素、要素和要素、系统和环境的相互联系、相互作用中综合地考察认识对象的一种思维方法。它将面对的问题视为整个系统的组成部分,并考虑到问题的潜在影响,而不仅是对特定部分结果或事件作出反应。系统思维是整体性的思维,帮助管理者以整体的视野去认识和处理管理复杂性问题,避免“只见树木”和只顾眼前利益带来的片面性。
系统思维在工程领域的实践应用是系统工程,但是不等于系统工程。既然是工程,就不能同时又是思想。所以经常有人说:“要用‘系统工程’思想作指导,把我们的单位搞得更好。”或者“要用‘系统工程’理论,把这个项目做好”的说法也有问题。系统工程不是思想、理论,系统工程就是工程方法。这些语言里面的本意,其实是系统思维或者系统论的观点和方法,能够指导单位建设、组织管理的是考虑整体、注重关系、避免局部和片面的系统思维。
****目标系统范围确定系统工程作用范围******
系统工程产生于第二次世界大战后期,20世纪五六十年代霍尔(Arthur D. Hall)等的研究,特别是随着美国“曼哈顿工程”和“阿波罗工程”等重大项目的成功实践,系统工程得以快速发展,形成了一套成熟的方法体系,成为研制卫星、飞机、舰船等目标系统(systems of interest, SOI)的重要方法,得到了越来越多研究与应用。本文不妨称这些项目为工程项目,而所研制的卫星、飞机、舰船等都是人造系统(man-made systems)。人造系统一直是系统工程讨论的目标和范围。国际系统工程协会(INCOSE)在其系统工程手册中指出:“ISO/IEC/IEEE15288和本手册中所考虑的系统是人造的,被创造并使用于明确的环境中提供的产品和服务,使用户和其他利益攸关方受益。”
1978年,钱学森在《文汇报》上发表《组织管理的技术——系统工程》,指出“系统工程是组织管理系统的规划、研究、设计、制造、试验和使用的科学方法,是一种对所有系统都具有普遍意义的方法。”这其中的“所有系统”是关键词,它将系统工程所瞄准的人造系统产品扩展到了社会系统,涉及到了“人”这个最活跃也最复杂的因素。以此为标志,中国的系统工程被推广到了管理领域,这篇文章也成为系统工程在中国发展的一个里程碑,掀起了全国研究和应用系统工程的热潮。随后出现了军事系统工程、农业系统工程、法制系统工程,以及环境系统工程、交通系统工程、教育系统工程、人口系统工程等,不下十几种。此后,对很多学者来说,系统工程的主攻方向转到了研究社会经济系统的组织管理问题。
这些领域都提高了以系统思维指导的自觉性,更加注重工作的整体性以及处理好各个元素的关系。以“交通系统工程”为例,仍然是原有交通管理专业的内容,但加强了交通规划的整体性以及统筹协调,这些都充分体现了系统思维的强大作用。扩展到社会系统的系统工程,其本质都是系统思维而不是系统工程在这些领域组织管理中的应用,它们与系统工程是“兄弟”关系而不是“父子”关系。
******工程项目中的系统工程定义与特点********
在国际上,美国电子工业协会标准 EIA/IS632定义系统工程是一个综合全部技术工作的跨学科方法。INCOSE 定义系统工程是成功研制系统的一种跨学科的方法(approach)和手段(means)。美国国家航空航天局(NASA)的系统工程手册认为系统工程是设计实现一个系统并对其进行技术管理、运行和退役处置的严格方法(approach)。欧洲空间局(ESA)的航天标准化组织(ECSS)将系统工程定义为一个跨学科的方法(approach),综合协调将需求转化为实际系统的全部技术工作。
中国航天系统工程方法是从需求出发,综合多种专业技术,通过全寿命周期分析—综合—试验的反复迭代过程,开发出一个满足使用要求、整体性能优化的系统。中国商飞系统工程的定义是:以满足客户需求为目的,围绕产品全生命周期,通过产品集成与过程集成,实现全局最优的一种跨专业、跨部门、跨企业的技术和管理方法。
总结上述系统工程定义可以看出:系统工程是途径、步骤、方法(不是思想、科学、理论);相对于具体专业,系统工程是跨学科、跨专业的总体方法:系统工程通过全局优化致力于满足用户要求;系统工程面向目标系统的全生命周期。
********工程的扩展含义论与项目管理的关系**********
将系统工程与项目管理混淆起来的现象也非常普遍。现在有很多专著、书籍和教材,以“系统工程项目管理”命名,内容将两个联系紧密但又有区别的知识体系混淆起来,其主要原因可能是汉语的“工程”包含了“项目”的含义造成的,因此必须加以区分。
项目是为创造独特的产品、服务或成果而进行的临时性工作。项目管理的主要职能是对项目的计划、组织、指导、协调和控制。系统工程更多地关注所研制的系统(SOI)本身,更多地关注技术本身的问题,而项目管理致力于项目的全面成功,除了产品本身,也要考虑经费、进度以及团队多方面的成功。
工程项目的实施需要开展两类工作,一类是技术工作,表现为工程活动,例如需求分析、软硬件设计、软件编码、部件加工制造、集成和组装、试验与测试等,其主要责任人是工程师;另一类是管理工作,是为保障支撑技术研制活动而开展的计划、组织、协调和控制工作,例如,制定各类工作计划,监控项目成本和进度,实施采购和进行团队建设等,主要由管理人员完成。
在一个工程项目的实施中,系统工程方法首先体现为总体技术。现代几乎所有人造系统都是多个专业技术共同实现的系统,以复杂技术系统为研制目标的工程项目在这一点上更为突出。但系统工程不研究具体的专业技术问题,侧重于对系统总体问题(即系统构成要素、结构、信息交换和反馈机制等)的研究。系统工程方法一方面从需求及大系统约束条件出发,经过权衡和综合得到系统体系架构和各层级功能、性能要求;另一方面从部件、分系统到系统逐级集成并验证,最终得到满足用户需求的系统产品。
同时,系统工程管理又是系统工程方法的重要组成部分。总体技术涉及多个门类的专业技术,综合集成成千上万甚至更多的部件和元器件,历经由多个阶段组成的生命期,需要不同团队人员的参与和协作,因此总体技术活动的有序开展,离不开充分的管理工作保证。例如,研制工作计划制定、技术需求管理、技术风险控制、技术状态控制等。技术管理过程是项目管理和技术团队之间的纽带。
系统工程管理是项目管理的一部分,是项目管理中的技术管理。项目管理中的进度管理、经费管理以及质量管理和利益攸关方的管理等,是系统工程方法中定义用户技术需求、确定系统架构、开展技术评估评审和决策、开展验证和确认等技术过程和管理过程的输入和约束条件;系统工程又从技术管理层面提出了对项目人力资源管理、采购管理、沟通管理等的要求。
工程研制项目包括两类工作,一类是技术工作,一类是管理工作;系统工程方法包括技术和管理两个方面;系统工程技术是各类专业技术中的总体技术,系统工程管理是项目管理中的技术管理。
由于概念的外延不清晰,系统工程呈现出“打包拼盘”的情况,更有甚者将系统工程无限拔高,系统工程变成了一种无所不包、无所不能的“学问”,这样“包治百病”的拔高无异于对系统工程的“捧杀”,这很可能造成原本清晰的系统工程方法被淹没和异化,特别是系统工程的源头——航天等国防科技工业部门反倒说不清什么是系统工程了,从而在型号任务中不能顺利地实践系统工程。因此,必须还原各个概念,界定其内涵和外延,系统工程才能与系统科学、系统思维以及项目管理等各个层次各个专业的学科一起健康发展。
**作者简介:**曹松,中国航天系统科学与工程研究院,中国科学院国家空间科学中心,副研究员,研究方向为项目管理与系统工程。
已剪辑自: https://chinese.freecodecamp.org/news/what-is-systems-engineering/
原文:What is Systems Engineering? A Beginner’s Guide,作者:Tiago Monteiro
我最近在读 J. Martin 的书《Systems Engineering Guidebook – A Process for Developing Systems and Products》(《系统工程指南–开发系统和产品的过程》)[1]。 从中我了解到,系统工程可以降低 40% 的制造成本——你知道吗?
我以前也不知道。即使在上了一堂以系统工程为主题的课后,我也只有在了解其在现实生活中的应用时才明白其相关性。
是的!
一些大名鼎鼎的公司使用系统工程来改进他们的产品。
事实上,谷歌有自己的学科,叫作工程生产力.
Facebook 也有自己的,叫作生产工程.
另外,亚马逊雇佣了一个团队 的工程师来帮助建立其云计算基础设施。
为了了解什么是系统工程以及它的重要性,我们来回答四个问题。
一个系统是许多“东西”的组合,它们像一个整体一样一起工作。
比如说:
这些例子中的每一个都有许多组件(行星、树叶、部门),它们共同构成一个整体。
这些组件也可以是子系统。例如,我们的太阳系有我们的星球。我们的地球有自己的系统,如地圈、生物圈,等等。
地质圈是地球上的一个 子系统。[2]
有关系统的例子
在编程中,你可以把程序看作是系统。
例如,某个程序中的一个函数可以被看作是系统中的一个元素。
通过为你的程序的不同组成部分布置一个系统,你不仅会做出一个更有效的程序,而且它也会变得更容易维护和在未来添加功能。
因此,你可以把程序的系统看作是其中的一种架构。
这里有一个编程中的系统的例子:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cJ4OZa9W-1655045998582)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206122241012.png)]
文件树来自 htm5up 网站模板
图片显示了一个网站模板项目的目录(或文件夹)的结构。
许多这些目录包含多个 .html、.css 和 .js 文件。
这些文件都有组件和特性,与项目内的其他文件相互作用。从本质上讲,你在这里有一个系统。
整个项目是一个系统。这个项目中的子系统是指方向。一个目录内的每个文件都有许多组件,它们构成了一个项目的整体。
通过学习如何创建一个系统,你将学会如何更好地创建和管理项目。
项目的生命周期指的是某个项目的各个阶段——从想法到项目的创建,到最终的使用和最后的制造。
通常情况下,项目的生命周期包括:
下面是一个例子,解释了如何应用系统工程为一个公司开发网站。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lw0EdKko-1655045998582)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206122241075.jpeg)]
Photo by Eduardo Dutra from Pexels
假设你正在经营一家软件公司,一个客户要求你为他们公司开发一个网站。
在这里,你需要与客户进行对话,以确定项目将如何发展,并了解客户对项目的实际需求。
与客户讨论未来可能出现的问题也是一个好主意,无论是技术还是财务问题。
这是迄今为止项目整个生命周期中最重要的阶段。
不了解客户的需求,你就无法完成他们想要的项目。无论你的技术知识如何,这一点都是真实的。
下一步是在了解客户的需求后,计划所有需要的步骤,把计划变成一个真正的项目。
举例来说,你要计划出你将在哪里启动网站,在哪里部署网站,等等。
在这个阶段,你建立客户想要的项目。这也是一个极其重要的步骤。
它允许你根据客户的要求来设计网站。
我们现在正处于生产阶段。在这个阶段,项目将被测试,任何技术问题将被修复。
如果有技术问题,应该是小问题,而且不应该对网站的大部分内容产生不利影响。
然而,一旦项目交给客户,维护工作就应该由客户来处理。
在这最后一步,网站将被停用。
它要么被另一个网站取代,要么客户结束他们的公司并关闭该网站,等等。
我们已经看到,一个系统是许多 东西
的组合,它们作为一个整体一起工作。
我们还看到,系统有生命周期。
那么,在项目开始前和执行过程中对这些生命周期进行规划的行为被称为系统工程。
让我们想象一下,你已经知道客户想要什么。
想象一下,他们让你设计一个电子商务网站,该网站将承载来自卖家的成千上万张照片。
该网站需要一个中央服务器来托管和传递大量来自用户的图片。例如,你的网站可能以其销售的产品图片为特色。
你需要创建一个高效且易于维护的系统,在短时间内为网站请求图片。
你如何能实现这一点?
难以回答吧?毫无疑问,这是一个具有挑战性的问题。
一个需要对系统进行规划以最大限度地提高效率,并尽可能地易于维护的问题。
如果你想了解更多关于这个问题,你可以查看这篇文章。
虽然这是一个大的技术问题,但还有其他更严重的问题。
例如,管理一个大型开源图书馆的增长的最佳方法是什么?
它的架构究竟如何,才能做到高效和易于使用?
这里 是对 Python 中一个流行的库架构的概述,matplotlib。
当你计划一个系统时,你可以创建和管理程序的架构。
这样,开发者就不必担心功能目标的缺失、严重的缺陷,或在生产和维护上花费大大超过预期。
正是由于这个原因,谷歌、Facebook、亚马逊和其他许多公司都有专门的系统工程师团队。
通过系统工程,我们可以制定一种“计划”,以接近完美的方式实现我们的目标或公司的目标。
好了,现在你明白了:
谢谢你阅读本文!
系统工程在工业界是始于航天工业。对于一个复杂系统,单独某个方面的工程师是无法掌控整体系统的设计的。举个例子,如果一个功能用硬件或软件都可以实现,但是他们实现的代价不同,这时候就需要系统工程师在整体框架下对不同的解决方案进行权衡,试图定义一个在成本,性能,安全性,用户体验诸方面最均衡的设计。
更为重要的是,系统工程对于产品设计的质量是至关重要的。 在整个设计控制过程中,系统工程师负责定义设计参数与要求,管控设计风险,处理不同模块之间的设计冲突。在很多公司里,系统工程师还需要支持设计转化,产品更改甚至产品注册。
个人经验是系统工程师并不适合新手工程师去做,这个职位需要的是对本行业与产品有一定的了解,并对公司各个职能都有联系–因为系统工程师在进行总体设计时是需要来自方方面面的信息,同时也要与不同职能的同事合作以实现设计目标。
1.你关于系统工程的第一印象是什么?
第一印象就是:这玩意是聪明绝顶的人用来制造复杂机器,实施复杂项目或者复杂工程的秘密武器。
2.系统工程的工程师们都应该做什么?
他们基本上就是要一览众山小地全局观,统筹各个子系统互相协调,然后和外界相互协调,然后整个大系统正常运行。
3.系统工程师们应该对什么事负责任?
对整个项目负责,上到战略,计划执行,下到一个螺丝钉买没买对~
系统工程之大局观:写点关于系统工程大局观的东西,在一个大型研发项目中,系统工程处于什么地位,在各个阶段主要做什么,与其它部分的关系是什么。不同领域有不同的研发过程标准,这里仅举美国DoD的例子,DoD的系统范围比较广,从复杂的航母到简单的枪支都有,不像NASA那样比较单一,便于不同行业的人理解;DoD也比较强势,能够整合三军的标准,整个研发过程各个标准协调一致性很好;DoD有两张教学挂图(就是下面两张),非常完整地展示了整个武器系统采购中各个系统之间的关系。在这两张图上,横轴代表研发阶段,分为:装备方案分析阶段(目标是选择满足能力需求的方案,主要活动是执行多方案分析),技术成熟和风险规避(目标是技术成熟减少风险,主要活动是竞争样机)、工程研制(目标是生产的设计,证明产品是可生产的,活动是详细设计和系统演示) 、生产部署(目的是证明生产线并生产和部署系统,活动是生产、初始作战使用评估和部署)和使用保障阶段,生产部署和使用保障有所重叠。纵轴是各个系统,包括三大块,第一是JCID(联合能力整合与开发系统),这个系统是分析需求的,最初美国国防是基于威胁来采购产品,后来经过改革是基于国家战略来采购能力,能力可以是非装备的,例如通过改装现役装备或者培训部队来达到某种能力;第二块是PPBE(计划和预算执行系统),这个系统是管钱的;第三块是DAS(国防采购系统),这里面有项目管理、签合同、系统工程、软件、试验和评估、生产、后勤保障等,国防采购系统的主要产品包括AoA(多方案分析)、装备方案、Prototypes(样机)以及产品;在方案分析阶段,系统工程的主要任务是分析需求、规定性能指标、评估可选方案,在技术成熟和风险规避阶段,系统工程的主要任务是对成本性能进行权衡、计划技术方法、管理技术风险、建立系统架构,在工程研制阶段,系统工程的主要任务是最终定稿设计和制造规范、策划小批量生产,之后的阶段主要任务是评估生产准备状态、评估系统功能、改进系统等。以上三个系统的驱动方式不同,JCID是需求驱动,PPBE是时间驱动,DAS是事件(评审、产品的交付等事件)驱动。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Nr0xV3C-1655045998582)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206122247024.jpeg)]
有很多人问有哪些系统工程专业大学可以选,转个地址吧:https://www.incose.org/academic-affairs-and-careers/se-education/world-wide-programs。里面有个下载文件,可以查。
------------------------------------------------------------------------------------------
更新201808
写一个影响了世界的系统工程项目:Semi-Automatic Ground Environment (SAGE),翻译过来叫半自动地面环境。这个项目为计算机时代和互联网时代奠定了基础。在第二次世界大战的时候,英国在伟大的不列颠空战中利用一项全新的技术:雷达取得了胜利,当时各个雷达站收集的信息被汇总到指挥中心,由操作员观察敌军的动向,并指挥迎击,但当时的信息有5min延迟,对于第二次世界大战的飞机还够用,但到了冷战时期,美国面临苏联的战略轰炸机的危险,这个延迟就太大了,为此美国国防部授权空军去改进防空系统,而美国空军又找到了麻省理工去做这个事情。当时的假设情景是苏联的战略轰炸机会从高空过来,然后在最后一段航程潜入低空,由于水平线的限制,地面雷达很难发现目标(当时还没有空中雷达),而且当时雷达站之间用无线电通讯,会被核打击的脉冲电磁波干扰。为此,MIT列出了两个核心问题: 第一,要能将各个雷达站的数据传输到中央计算机;第二,要有可以实时分析数据的计算机。今天看起来这两个问题很好解决,但当时是1950年,既没有互联网,也没有计算机。当时的美国空军一个实验室开发了一个将雷达模拟信号转换成数字编码的早期形式的调制解调器,而MIT的伺服机构实验室也为飞行仿真开发过一个计算机,但这个计算机仅仅有5个字的RAM和27个字ROM,还不如我们现在最简单的手持计算器,为此MIT成立一个数字计算机实验室开发了磁芯存储器。这个项目的成本超过了原子弹的曼哈顿项目。有趣的是,这个项目由于苏联搞了战略导弹,其在军事上作用有限,但这个项目的成果包括存储器、调制解调器、软件工程却对世界产生了革命影响,通过这个项目成长起来的IBM在1954去搞一个微缩版的SAGE系统,叫作半自动业务相关环境SABRE,用于航空订票系统(应该是我们的12306的祖先吧),最后从一个制表器公司成为世界计算机行业巨头;MIT林肯实验室成为美国雷达科技最先进的研发中心 ;兰德公司的一个系统工程部门“系统开发公司”为SAGE开发软件,后来推动了软件工程和信息技术的发展 。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E6QGdOzY-1655045998583)(https://raw.githubusercontent.com/xkyvvv/blogpic3/main/img/202206122247455.jpeg)]
--------------------------------------------------------------------------------------------
更新,写一个涉及验证、软件工程和控制工程、可靠性、故障追踪方面的例子。那是在很多年以前,刚参加工作不久,当时碰到一个产品,交付后可靠性很低。先介绍一下这个产品的背景,这是个控制系统,采用一种类似脉冲调宽PWM控制方法,也就是说控制器送给执行器的不是个比例信号,而是个脉冲,经典PWM仅仅调制脉冲宽度,而我们更复杂,还要调制脉冲的中心,其原理就是计算机根据所需控制量大小生成脉冲上升沿和下降沿,最早用模拟电路做,后来用软件实现,当时还是汇编。学过控制的大概都清楚,大学里面通常学得都是周期性线性控制,至于脉冲调制控制,很少学到,在这个系统中脉冲边沿的生成与控制解算周期是异步执行的,控制专业对这个异步执行的行为缺少 认知,而软件编码的人对异步执行中的数据更新也缺少理解,这就埋下了小强滋生的土壤。有一次一个很明显的故障引起了我的注意,表现为脉冲的边沿不准确,但这个现象很随机,很难抓住。一般来说,验证一个控制器是否准确,有两种方法,一种是给产品加一个输入,测量这个产品的输出,用记录下的输入在仿真程序里面跑一下,得到一个标准输出,再将标准输出和实际输出对比,就可以直观的看出是否超差;第二 种是提供一个标准输入,预先计算出标准输出,再选择几个典型时刻比对标准输出和实际输出。两种方法我们都用到了。但如前所述,这是脉冲调制控制,不像比例关系那么直接,另外由于控制专业对脉冲的生成所采用的异步机制缺少认知,也没有仿真脉冲生成的过程,仅仿真到脉冲生成的前端,因此,第一种方法不知道脉冲生成有没有问题;第二种方法虽然发现了有时候脉冲生成的不准确,但由于其很随机,通常大家都将其作为随机输入噪声引起的,为此验收时还有意放宽了标准。我发现了几个脉冲不准确后,对此有所怀疑,于是想到了一个验证方法: 统计。虽然噪声可能引起个别误差,但当统计样本量足够多时候,误差的平均值应该趋于0,这一统计不得了,发现了脉冲生成有一个系统性延迟,而且这个延迟有一个很大散布。然后,对历史数据做了个回顾,一直回顾到很多年前研制阶段的某个时间点,在这个时间点前没有系统延迟,在这个时间点上,控制对象的运动出现了系统偏差,当时请了很多专家分析,最后原因不清楚,没有人想到是控制器本身输出不正确,后来控制专业在算法做了补偿算是将 这个问题解决了,但是他们没想到的是算法虽然能够补偿系统延迟,但无法补偿随机散布。这个随机散布引起了后面一系列可靠性问题并持续数年之久。当我得出是控制器本身出问题的结论后,编软件的人开始查软件,最后发现其内部中断设置有错误。最终进行了软件升级,消除了系统延迟,取消了控制补偿,算是解决了问题。这个故事说明了几个重要的事: 1. 细心。2. 验证方法设计。3. 出现故障时仅仅有解决措施不行,还要机理清楚。
----------------------------------------
更新,搬运一个洛克西德马丁公司的系统工程职位说明,国内是不会这么详细的说明的,注意它们的系统工程职位下有很多种,这只是其中一个:
要求ID:245519BR
工业职位标题:系统工程
职位编码: E1463
职位描述:
有经验的工程师,需要开发动态系统、制导和导航系统,通过采用多变量控制和估计理论的载体控制的数学模型和计算机仿真。经验最好包括交叉学科工程知识、技能集合和经验,例如控制工程、系统工程、系统集成,嵌入式软件和/或水下载体的制导导航和控制。必须具有对控制系统深度了解。工程师将参与所有项目阶段-方案、设计、研制和测试。
该工程师将:
-采用控制理论原理和流体力学开发算法、控制架构和水下载体的解决方案;
-展示应用经典和多变量控制和估计理论设计导航和控制系统的专业性,包括算法设计、实施和确认测试。
-开发模型和仿真载体和控制子系统
-展示对流体系统和/或机电作动的工作知识。
-开发载体和控制子系统的模型和仿真。
-定义和分析系统要求并准备方案设计。
-开发和维护技术文档包含需求规范、接口控制规范、权衡研究、运行构想和测试文档
-编写技术建议书并展示给用户
-提供用户现场保障。
基本条件:
-很好的独立学习新技术和用户的领域。
-能够连续工作在大量项目同时平衡优先级并满足用户期望。
-卓越的口头和书写沟通能力。
-客户接口经验。
-使用DOORS,SYSML,Rhapsody和基于模型的系统工程经验。
-跟踪和终结测试不正常的经验。
-设计和测试发电设备的经验。
-设计和测试电力基础设施的经验。
期望的技能:
-水下系统经验
-系统架构设计和分析的知识
-能够执行系统权衡
-能够领导多学科设计团队
-能够获得保密资格
业务领域:
-任务系统和培训
部门:
-Q538,系统工程
职业类别:系统工程需求开发
工作时间表:弹性非标准40小时每周
------------------------------------------------------------------------------------------------
更新,写一些实际工作过程中具体事例和经验以便于大家更清楚了解系统工程师的
工作,先写一个解决方案的例子,这是系统工程最核心最具创造性的部分。有一个产品为了增加运动控制稳定性,增加了一个阻尼控制回路,使用了一个速度传感器,这个速度传感器本身并不是什么新技术,阻尼控制理论也非常成熟,但被控对象有点特殊,速度传感器安装到被控对象上产生了极大的误差,这个误差大到淹没了有用信号,这个误差与结构上的安装位置和角度有着确定的关系,从理论上我们只要知道非常精确安装位置和角度就可以消除误差。但糟糕的是我们无法达到所要求的精度。结构误差有两部分组成,一部分来自于传感器本身的加工,一部分来自于被控对象,传感器本身加工误差可以在安装前标定好,但被控对象的结构误差就没法标定,甚至在被控对象工作过程中这个误差还会变。这个问题开始涉及三个专业,控制、机械结构和传感器,控制的阻尼控制器已经是最优了,机械结构误差也已经控制到最小了,传感器的自身加工误差也已经标定消除了,但是系统性能就是无法满足要求。那么怎么解决这个问题?在大学的时候,理工科的一般都学过线性代数最小二乘法,使用最小二乘法我们可以通过已知输入、输出辨识出未知参数,碰巧的是,这个案例中被控对象工作初始几百ms内会有一个已知运动过程,通过这个过程我们可以辨识出误差影响系数进而用于之后的误差消除,但这里面有个难点,虽然我知道可以很容易离线用最小二乘法辨识这个参数,但这个案例中控制系统不允许你停下来,也就是必须由控制计算机在线辨识,由于处理资源和存储资源的限制,这个在线辨识还必须是迭代算法,迭代最小二乘法可不是大学基础课,但好在有网络,我可以搜索到迭代最小二乘法,然后现学现卖。好的,现在算法的原型做出来,我们已经没时间和成本去冒风险了,必须确保万无一失,必须确保在各种情况下这个算法都能正确运行。在过去我们积累了大量实际运行数据,通过将实际数据代入到算法中仿真得到的结果很好,并且加入其它误差因素做敏感性分析精度也比以前好。这时候可以进入实施阶段了,也就是用嵌入式代码实现这个算法,但糟糕的是做嵌入式编程的人不太懂如何把迭代最小二乘法中矩阵运算编成C代码,以至于编出来的软件bug一堆。好在我线性代数和C语言都还不错,于是又帮着软件程序员解决了代码中错误。最终这个方法投入系统中运行很好,即提高了精度又减少了标定成本。回顾一下案例,解决这个问题的作为系统工程师所使用的能力: 1. 具有大学基础数学知识,知道最小二乘法;2. 知道传感器的误差模型; 3. 知道被控对象在初始有一个确定运动过程;4. 知道控制系统工作时序。5. 知道结构精度已经达到极限;6. 能够综合以上传造性想到在线辨识误差系数。7. 能够利用网络现学现卖。8. 能够积累历史数据并利用这些数据做原理验证。9.能够在出现瓶颈时补漏(例如程序员不会编矩阵运算)。
-------------------------------------------------------------------------------------------------------------------
系统工程是一门非常前沿专业,在美国系统工程师是最热门的职业,在中国虽然很多人放在嘴上,但实际上很少有人这是个什么职业?有人甚至说这是个当总统的专业,简直是在侮辱系统工程师。系统工程最初起源于航天、航空、军事部门,由于卫星、飞船、飞机、导弹这些产品的研发需要很多专业的综合,所以诞生了系统工程;后来该专业也扩展到民用部门,包括民用航空、铁路系统、通信系统、医疗设备等,甚至是一个小小的照相机也涉及系统工程。中国最初提出系统工程就我所知大概是钱老了,但是从他的系统工程概念还不算太成熟,主要偏重于管理,而实际上系统工程跨越了技术和技术管理,它与项目管理有所交叉,也有很大的区分。
以下是一个系统工程师的在项目开发中的所做的事情:
第一步,你要去研究市场,了解用户有什么问题、想要些什么,有可能在市场上你已经有竞争对手,你还要调查对手的当前状态,最后你要为用户提出建议的解决方案,开发一个新的系统或是改造一个旧的系统。这时候你的系统可能仅仅是一个设想,你的系统可能很庞大,需要大量的资金投入,潜藏着许多技术风险,而企业的未来就依赖于你的专业决策,这时候一方面你需要尽量满足用户的欲望,又要小心地避免不可逾越的技术障碍。如果你的系统是卫星、飞机这样庞大的系统,一般的专业工程师如机械工程师、电子工程师根本无法完成这样的工作,这时候你才会闪亮登场。你要与用户签订合同,包括资金、进度、技术等方面的内容,系统的开发被划分为若干的阶段,资金分阶段的支付,每个阶段有确定的进入和完成准则,以避免潜在的风险。作为专业系统工程师,基本的能力包括技术规范编写、进度规划、分解工作是需要的,作为国内系统工程师(如果存在这个名词的话),尤为重要的是喝酒、吹牛皮、胆大妄为和玩弄词汇的能力。
一个需求分析的失败案例:曾经有一位工程师,他提出一个几乎是天才的创意,用卫星连接全世界通信,这个工程具有系统工程的特质,要发射66颗卫星,投资XX亿美元,但不幸的是,这个项目失败了。首先手机的发展很快占据了市场,其次卫星电话面临技术障碍,无法在室内通讯,而且硬件过于庞大。可以说项目的决策者没有系统的分析用户的需求、技术风险和竞争对手,导致项目的失败。这就是摩托罗拉的铱星计划。
第二步,你要提出解决方案,或者叫设计,对系统来说也可以叫架构开发。虽然是第二步,但并不说设计就一定在用户需求调查之后,为了占领市场,有时候它在需求调查之前就开始,有时候它随着需求分析同步进行。系统工程师在这个阶段要开发架构。什么是架构,这个词来自于最古老的工程行业-建筑业,风行于最现代的工程行业-软件业。打个比方,架构就好比人的骨架,潘长江就是吃的再多也长不成姚明,因为他们骨架不同。架构设计充满创意,系统工程师当深通于此,产品围绕架构组成系统。架构使用视图来表达,机械工程使用三个图表示三维实体,系统工程师则使用多个架构视图描述系统。好的架构就像金字塔一样悠久,坏的架构就像某些豆腐渣工程一样脆弱。作为专业的系统工程师,基本的能力包括系统建模、仿真和分析技术。
一个架构设计的失败案例:在某国一个雷电交加的夜晚,两车相撞了,在经历了5个月的调查后,事故报告公开,造成事故一条设计原因是,当一个采集设备被雷击故障后,传送给主机的状态信息一直保持为故障前采集到的信息,使人做出错误的判断。在不知道情况的时候保持最后的状态似乎是一个非常自然的选择,很多的设计师都非常习惯这样设计,但真的如此吗?这个系统的设计师是否做过“故障模式影响分析”FMECA不得而知,在项目中做FMECA是非常吃力不讨好的,因为这首先要假设所有的设备都可能出故障,然后通过设计确保故障不影响安全,一些安全关键系统中要求连续两个故障或者两个操作错误或者两个操作错误和故障的组合不会导致致命事故。
管理相关:系统工程师脚踏两只船,一只是技术,一只是管理,因此常常与项目管理者的职责分配剪不断理还乱,通常来说项目管理者侧重于进度、资金、范围等,而系统工程师侧重于技术管理,包括技术状态、接口、需求等,什么?技术还有管理?是的,技术需要管理。系统工程师要像猎狗追踪每一个要求的落实,从最初的用户要求到向部件提出的要求直至获得明确无误的证据表明需求已经落实,否则部件设计师会像系统工程师欺骗用户一样欺骗系统工程师。曾经一个火星探测器坠毁,仅仅因为计算单位不统一,如果你是一个学生,计算单位错误最糟糕的结果是考试不及格,而在大型工程中就是数亿美元的损失,为此系统工程师要紧盯每一个接口,防止彼此设计的不匹配,这是一项非常繁琐的工作,因为一个大型系统的接口从几百到几千几万。需求也罢、接口也罢,都要有秩序的管理。管理的技能是必需的。
验证:验证就是为产品满足需求提供证据的活动。如果没有验证,系统的开发就会像中国的保健品市场一样混乱。验证包含了检查、分析、演示、测试几个类别,验证也像需求一样划分为多个层次,从底层部件到最顶层的系统需要逐步的验证,验证是一项非常消耗资源的活动,因此系统工程师当小心的选择验证的类别、层次,以平衡进度、风险和成本。验证中的某些活动甚至需要独立的专业和工程师支持,例如试验工程师,因为测试设备的准备、开发并非系统工程师能够完成的。对于验证活动而言,除了数学分析能力、发现问题的能力外,最大需要可能就是勇气和诚实,因为在验证活动中发现问题后,许多工程师由于面临各种压力或是采用鸵鸟政策视而不见或是伪造数据欺骗用户。
权衡研究: 系统的目标往往是互相冲突的,无法同时满足所有要求,例如性能和成本,为了需要更规范的方法对多个方案进行权衡,包括确定目标,确定目标权重,评估每个方案的目标分值,系统设计者往往很容易先入为主的掉到单一方案中不能自拔,所以需要一个权衡研究过程,以更客观更开放的思维评估方案。
------------------------------
目前有很多标准对系统工程工作内容有很详细的定义,例如INCOSE、美国国防部、海陆空三军、ISO、CMMI、NASA等都有各自标准,这些标准定义的内容大同小异,一般包括:需求分析、架构设计、权衡研究、验证、技术状态管理等等。国外曾经对系统工程与绩效的相关性做一个研究,其中系统架构设计和系统需求分析是最重要的,其他重要的还权衡研究、验证等。