SWEBOK软件工程知识体系 - 15.工程基础( 六 )


许多学科从事解决问题的活动,其中只有一个正确的解决方案 。在工程中,大多数问题都有许多解决方案,重点是找到一个可行的解决方案(在众多备选方案中),最能满足所提出的需求 。可能的解决方案集通常受到明确施加的限制,例如成本、可用资源和学科或领域知识的状态 。在工程问题中,有时也存在隐含的约束(如材料的物理性质或物理定律),这些约束也限制了给定问题的可行解集 。
4.1. 工程教育中的工程设计
工程设计在工程教育中的重要性可以从各认证机构对工程教育的高期望中看出来 。加拿大工程认证委员会和工程与技术认证委员会(ABET)都注意到将工程设计纳入教育计划的重要性 。
加拿大工程认证委员会对工程专业学生所需的工程设计经验/课程以及教授此类课程或指导设计项目的教员的资格提出了要求 。他们的认证标准规定:
设计:为复杂的、开放式的工程问题设计解决方案的能力,设计满足特定需求的系统、组件或过程的能力,并适当注意健康和安全风险、适用标准以及经济、环境、文化和社会因素 。[8,第12页]
以类似的方式,阿贝特将工程设计定义为
设计系统、部件或过程以满足所需的过程 。它是一个决策过程(通常是迭代的),在这个过程中,基础科学、数学和工程科学被应用于优化资源转换,以满足这些既定的需求 。[9,第4页]
由此可见,工程设计是所有工程师培训和教育的重要组成部分 。本节的其余部分将重点介绍工程设计的各个方面 。
4.2. 设计作为解决问题的活动
需要注意的是,工程设计主要是一种解决问题的活动 。设计问题是开放式的,定义更模糊 。通常有几种不同的方法来解决同一个问题 。设计通常被认为是一个邪恶的问题,这个词最早由Horst-在20世纪60年代提出,当时设计方法是一个非常有趣的话题 。寻求一种替代线性的、逐步的设计过程模型,许多设计师和设计理论家正在探索这种模型,并认为设计师所解决的大多数问题都是邪恶的问题 。正如史蒂夫麦康奈尔所解释的,一个邪恶的问题是一个只有通过解决它或解决它的一部分才能明确界定的问题 。这一悖论本质上意味着,一个邪恶的问题必须解决一次才能明确界定,然后再解决一次才能创造出一个可行的解决方案 。几十年来,这一直是软件设计师的一个重要见解[10*,c5s1] 。
4.3. 工程设计步骤
工程问题的解决始于一个需求被认可,而现有的解决方案无法满足这个需求 。作为解决问题的一部分,应该确定解决方案要实现的设计目标 。此外,必须定义并使用一组验收标准来确定建议的解决方案满足需求的程度 。一旦确定了对问题解决方案的需求,工程设计过程有以下一般步骤:
a) 定义问题
b) 收集相关信息
c) 生成多个解决方案
d) 分析并选择解决方案
e) 实施解决方案
所有的工程设计步骤都是迭代的,在过程的任何一个步骤中获得的知识都可以用来通知早期的任务并触发过程中的迭代 。这些步骤将在后续章节中展开 。
a、 定义问题 。在此阶段,收集客户的需求 。有关产品功能和特性的具体信息也被仔细检查 。这一步包括细化问题陈述,以确定要解决的真正问题,并设置成功的设计目标和标准 。
问题定义是工程设计的关键阶段 。需要注意的是,这一步看似简单 。因此,必须采取足够的谨慎来明智地执行这一步骤 。确定需求并将成功标准与所需的产品特性联系起来是很重要的 。通过利益相关者之间的协商来限制问题的范围及其解决方案也是一项工程任务 。