其他分享
首页 > 其他分享> > SWEBOK软件工程知识体系 - 15.工程基础

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

作者:互联网

在这里插入图片描述

工程基础(ENGINEERING FOUNDATIONS)

IEEE将工程定义为“对结构、机器、产品、系统或过程应用系统的、有纪律的、可量化的方法”[1]。本章概述了一些对软件工程师有用的工程基础技能和技术。重点是支持其他KA的主题,同时尽量减少本文档其他部分所涵盖主题的重复。

随着软件工程理论和实践的不断成熟,软件工程是一门以所有工程学科所共有的知识和技能为基础的工程学科。这个工程基础知识领域(KA)涉及应用于软件工程和其他工程学科的工程基础。本KA的主题包括经验方法和实验技术、统计分析、测量、工程设计、建模、原型和仿真、标准和根本原因分析。适当地应用这些知识将使软件工程师能够更有效地开发和维护软件。高效地完成工程工作是所有工程专业工程师的目标。

工程基础专题分解
工程基础KA的主题细分如图15.1所示。
在这里插入图片描述

1.经验方法与实验技术

解决问题的工程方法包括提出解决方案或解决方案的模型,然后进行实验或测试来研究提出的解决方案或模型。因此,工程师必须了解如何创建一个实验,然后分析实验结果,以评估所提出的解决方案。经验方法和实验技术的可变性,并作出决定。

工程实践中常用的三种不同类型的实证研究是设计实验、观察研究和回顾性研究。下面简要介绍了常用的方法。

1.1. 设计性实验

设计或控制实验是对一个可检验假设的调查,其中一个或多个自变量被操纵以测量它们对一个或多个因变量的影响。进行实验的先决条件是有明确的假设。对于工程师来说,理解如何提出清晰的假设是很重要的。

通过设计实验,工程师可以精确地确定变量之间的关系,特别是它们之间是否存在因果关系。每个自变量值的组合都是一种处理方法。最简单的实验只有两个处理,代表一个独立变量的两个水平(例如,使用工具与不使用工具)。当使用两个以上的水平、一个以上的自变量或任何因变量时,就会出现更复杂的实验设计。

1.2. 观察研究

观察研究或案例研究是在现实生活中对过程或现象进行观察的实证研究。虽然实验故意忽略了语境,但观察或案例研究将语境作为观察的一部分。当研究的重点是如何和为什么提问,当研究参与者的行为不能被操纵,当语境条件相关且现象和语境之间的界限不明确时,案例研究是最有用的。

1.3. 回顾性研究

回顾性研究包括对历史数据的分析。回顾性研究也被称为历史研究。这种类型的研究使用的数据(关于某些现象)已经存档了一段时间。然后对这些存档的数据进行分析,试图找出变量之间的关系,预测未来的事件,或确定趋势。分析结果的质量将取决于存档数据中所含信息的质量。历史数据可能不完整、测量不一致或不正确。

2.统计分析

为了履行他们的职责,工程师必须了解不同的产品和工艺特性是如何变化的。工程师经常遇到需要研究不同变量之间关系的情况。需要注意的一个重要点是,大多数研究都是在样本的基础上进行的,因此需要了解整个人群的观察结果。因此,工程师必须充分了解统计技术,以便在抽样和分析方面收集可靠的数据,从而得出可以推广的结果。下面将讨论这些技术。

2.1. 分析单位(抽样单位)、总体和样本

分析单位。在进行任何实证研究时,都需要对所选的分析单位或抽样单位进行观察。必须确定分析单位,并且必须适合分析。例如,当一个软件产品公司想要找到一个软件产品的可感知可用性时,用户或软件功能可能是分析的单位。

人口。所有被调查者或被调查项目(可能的抽样单位)的集合构成了总体。作为一个例子,考虑研究软件产品的可感知可用性的案例。在本例中,所有可能用户的集合构成了总体。

在定义人群时,必须注意了解研究和目标人群。在某些情况下,所研究的总体和所概括结果的总体可能是不同的。例如,当研究人群仅由过去的观察结果组成,并且需要对未来进行概括时,研究人群和目标人群可能不相同。

样品。样本是总体的一个子集。选择样本最关键的问题是样本的代表性,包括样本的大小。样本的抽取方式必须确保抽取是独立的,抽取样本的规则必须预先确定,以便预先知道选择特定抽样单位的概率。这种选择样本的方法称为概率抽样。

随机变量。在统计学术语中,对所研究的抽样单位进行观察或测量的过程称为进行实验。例如,如果实验是将一枚硬币掷10次,然后计算硬币落在头上的次数,那么每掷10次硬币就是一个采样单位,给定样本的头数就是实验的观察值或结果。实验结果是用实数表示的,并定义了所研究的随机变量。因此,在实验结果中被测量的项目的属性代表被研究的随机变量;从特定采样单元获得的观察值是随机变量的特定实现。在掷硬币的例子中,随机变量是每个实验中观察到的人头数。在统计学研究中,人们试图在样本的基础上理解人口特征。

随机变量的可能值集可以是有限的或无限的,但可以计数(例如,所有整数集或所有奇数集)。在这种情况下,随机变量称为离散随机变量。在其他情况下,随机变量是连续的,称为连续随机变量。
事件。随机变量可能值的子集称为事件。假设X表示某个随机变量,例如,我们可以定义不同的事件,如X³X或X<X等等。

随机变量的分布。随机变量的变化范围和模式由其分布给出。当一个随机变量的分布已知时,就可以计算出任何事件发生的几率。一些分布被发现是普遍存在的,并被用来模拟许多随机变量发生在实践中的工程背景。下面给出了一些更常见的分布。

参数的概念。统计分布的特征是一些参数。例如,在任何给定的试验中成功的比例是表征二项分布的唯一参数。类似地,泊松分布的特征是发生率。正态分布有两个参数:均值和标准差。

一旦参数值已知,就可以完全知道随机变量的分布,并且可以计算出任何事件的概率。离散随机变量的概率可以通过称为pmf的概率质量函数来计算。pmf在离散点处定义,并给出点质量,即随机变量取该特定值的概率。同样,对于连续随机变量,我们有概率密度函数,称为pdf。pdf非常类似于密度,需要在一定范围内进行积分,以获得连续随机变量位于特定值之间的概率。因此,如果pdf或pmf已知,则可以从理论上计算随机变量取某组值的机会。

估算概念[2*,c6s2,c7s1,c7s3]。分布参数的真值通常是未知的,需要从样本观测中估计出来。估计值是样本值的函数,称为统计量。例如,样本平均数是一个统计量,可以用来估计总体平均数。类似地,从样本估计的缺陷发生率(每行代码的缺陷率)是一个统计数据,并用作每行代码的缺陷率总体率的估计。用来估计某些总体参数的统计量通常被称为参数的估计量。

需要注意的一个非常重要的一点是,估计量本身的结果是随机的。如果我们选取不同的样本,我们很可能得到不同的总体参数估计。在估计理论中,我们需要特别了解估计量的不同性质,估计量在样本间的变化程度,以及如何选择不同的方法来获得估计。例如,如果我们希望估计总体的平均数,我们可以使用样本平均数、样本中位数、样本模式或样本的中位数作为估计量。每种估计量都有不同的统计特性,这些特性可能会影响估计的标准误差。

估计的类型[2*,c7s3,c8s1],有两种类型的估计:即点估计和区间估计。当我们用统计量的值来估计总体参数时,我们得到一个点估计。顾名思义,点估计给出被估计参数的点值。

虽然经常使用点估计,但它们为许多问题留下了空间。例如,我们没有被告知任何关于误差的可能大小或点估计的统计特性。因此,我们可能需要用样本量和估计方差来补充点估计。或者,我们可以使用区间估计。区间估计是一个随机区间,区间的上下限是样本观测值和样本量的函数。限值的计算基于一些关于限值所基于的点估计的抽样分布的假设。

估计量的性质。估计量的各种统计性质被用来决定估计量在给定情况下的适当性。最重要的性质是估计量是无偏的,有效的,并且与总体一致。

假设检验[2*,c9s1]。假设是关于参数可能值的陈述。例如,假设有人声称一种新的软件开发方法可以减少缺陷的发生。在这种情况下,假设缺陷的发生率降低了。在假设检验中,我们根据样本观察来决定是否接受或拒绝提出的假设。

为了检验假设,形成了无效假设和替代假设。零假设是不变的假设,表示为H0。另一种假设写成H1。值得注意的是,替代假设可能是片面的,也可能是双面的。例如,如果我们有一个零假设,即总体平均值不小于某个给定值,则另一个假设是总体平均值小于该值,我们将进行单侧检验。然而,如果我们假设总体平均值等于某个给定值,则另一种假设是总体平均值不等于某个给定值,我们将进行双边检验(因为真实值可能小于或大于给定值)。

为了检验一些假设,我们首先计算一些统计量。随着统计量的计算,定义了一个区域,使得在统计量的计算值落在该区域的情况下,无效假设被拒绝。这个区域称为临界区域(也称为置信区间)。在假设检验中,我们需要根据所获得的证据来接受或拒绝无效假设。我们注意到,一般来说,替代假设是兴趣假设。如果统计量的计算值不在临界区域内,那么我们就不能拒绝零假设。这表明没有足够的证据相信替代假设是正确的。

由于决策是在抽样观察的基础上作出的,因此可能出现错误;下表概述了此类错误的类型。

|||

在假设检验中,我们的目标是最大化检验的力量(1-b的值),同时确保I型错误的概率(a的值)保持在一个特定的值内——通常为5%。

应注意,假设检验的构造包括识别统计量以估计参数,以及定义临界区域,使得如果统计量的计算值落在临界区域中,则拒绝零假设。

2.2. 相关和回归的概念

许多统计调查的一个主要目标是建立关系,使人们能够根据其他变量预测一个或多个变量。虽然用另一个量精确地预测一个量是可取的,但这几乎是不可能的,而且在许多情况下,我们必须对估计平均值或期望值感到满意。

用相关和回归的方法研究了两个变量之间的关系。这两个概念将在下面的段落中简要解释。

相关性。两个变量之间的线性关系强度用相关系数来衡量。在计算两个变量之间的相关系数时,我们假设这些变量度量同一实体的两个不同属性。相关系数取-1到+1之间的值。值-1和+1表示变量之间的关联完美的情况,即给定一个变量的值,可以无误差地估计另一个变量。正相关系数表示正相关关系,即如果一个变量增加,另一个变量也会增加。另一方面,当变量负相关时,一个变量的增加导致另一个变量的减少。

重要的是要记住,相关性并不意味着因果关系。因此,如果两个变量是相关的,我们不能得出结论,一个导致另一个。

回归。相关分析只是衡量两个变量之间的关系程度。找出两个变量之间关系的分析称为回归分析。两个变量之间的关系强度是用决定系数来衡量的。这是一个介于0和1之间的值。系数越接近1,变量之间的关系就越强。值为1表示完美的关系。

3.测量

知道要测量什么和使用哪种测量方法在工程实践中是至关重要的。参与工程项目的每个人都必须了解将要使用的测量方法和测量结果。

测量可以是物理的、环境的、经济的、操作的,或者是对特定项目有意义的其他类型的测量。本节探讨测量理论及其在工程中的基础。测量从概念化开始,然后从抽象概念到测量方法的定义,再到该方法的实际应用,以获得测量结果。这些步骤中的每一个都必须被理解、传达和正确使用,以便生成可用的数据。在传统工程中,通常采用直接测量法。在软件工程中,直接度量和派生度量的结合是必要的[6*,p273]。

测量理论认为,测量是试图描述一个潜在的真实的经验系统。度量方法定义将值或符号分配给实体属性的活动。

然后,必须根据用于识别和度量属性的操作(即度量方法)来定义属性。在这种方法中,测量方法被定义为在测量属性时产生一个数字(称为测量结果)的精确指定操作。因此,为了有用,必须很好地定义测量方法。这种方法的随意性将反映在测量结果的模糊性上。

在某些情况下,特别是在物理世界中,我们希望度量的属性很容易掌握;然而,在软件工程这样的人工世界中,定义属性可能没有那么简单。例如,身高、体重、距离等属性易于统一理解(尽管并非在所有情况下都很容易测量),而软件大小或复杂性等属性则需要明确的定义。

操作定义。首先,属性的定义往往相当抽象。这种定义不利于测量。例如,我们可以把一个圆定义为一条形成闭合环的线,使得这条线上的任意点和一个称为圆心的固定内点之间的距离是恒定的。我们可以进一步说,从中心到闭环上任何一点的固定距离给出了圆的半径。值得注意的是,虽然已经定义了这个概念,但是还没有提出测量半径的方法。操作定义规定了用于执行特定测量的确切步骤或方法。这也可以称为测量方法;有时可能需要更精确的测量程序。

业务定义的重要性怎么强调都不为过。以明显简单的个体身高测量为例。除非我们规定了各种因素,如测量身高的时间(众所周知,个体的身高在一天中的不同时间点不同)、如何处理头发引起的变化、测量是穿鞋子还是不穿鞋子、预期的准确度(精确到1英寸,1/2英寸,厘米等)-即使是这个简单的测量也会导致很大的变化。工程师必须认识到从操作角度定义度量的必要性。

3.1. 测量等级

一旦确定了操作定义,就需要进行实际测量。值得注意的是,测量可以用四种不同的尺度来进行:即名义尺度、序数尺度、区间尺度和比率尺度。下面对每种方法进行简要说明。

标称刻度:这是最低级别的测量,代表最不受限制的数字分配。数字只能作为标签,单词或字母也可以作为标签。标称测量比例尺仅涉及分类,观察到的采样单位被放入相互排斥和集体详尽的类别(类别)中的任何一个。标称刻度的一些示例如下:

在名词性比例尺中,不同类别的名称只是标签,它们之间没有关系。唯一可以在标称范围内执行的操作是计算不同类别中出现的次数,并确定两个出现是否具有相同的标称值。然而,可以进行统计分析,以了解属于不同类别的实体相对于其他响应变量的表现。

序数标度:指通过测量过程获得的不同值具有隐含顺序的测量标度。没有指定值之间的间隔,也没有客观定义的零元素。序数尺度下的典型测量示例如下:

序数尺度下的度量满足传递性,即如果A>B且B>C,则A>C。然而,不能对序数尺度下度量的变量进行算术运算。因此,如果我们用5分序数来衡量客户满意度,5分表示非常高的满意度,1分表示非常高的不满意度,我们不能说4分是2分的两倍。因此,最好使用优秀、高于平均数、平均数、低于平均数和差于序数等术语,以避免将序数标度视为比率标度的错误。值得注意的是,序贯量表通常被误用,这种误用会导致错误的结论[6*,p274]。一个常见的误用序数尺度的措施是提出一个平均值和标准偏差的数据集,这两者都是毫无意义的。然而,我们可以找到中位数,因为中位数的计算只涉及计数。

音程标度:通过音程标度,我们得到了一种在一般意义上是定量的形式。几乎所有常用的统计方法都适用于此,除非它们需要了解真正的零点。区间标度的零点是惯例问题。比率没有意义,但属性级别之间的差异可以计算出来,而且是有意义的。测量的区间标度示例如下:

如果一个变量是用区间标度来度量的,大多数常用的统计分析,如均值、标准差、相关性和回归,都可以对测量值进行。

比例标度:这些在物理科学中很常见。这些度量尺度的特点是存在确定所有4个关系的操作:相等、秩序、间隔相等和比率相等。一旦有了这样一个刻度,它的数值就可以通过乘以一个常数从一个单位转换到另一个单位,例如英寸到英尺或厘米的转换。当以比例标度进行测量时,必须存在非任意零。所有的统计指标都适用于比率刻度;对数的使用只有在使用这些刻度时才有效,例如在分贝的情况下。比率度量的一些示例如下

一个额外的度量尺度,绝对尺度,是一个具有度量唯一性的比率尺度;也就是说,一个不可能进行转换的度量(例如,在一个项目上工作的程序员的数量)。

3.2. 直接和衍生措施

度量可以是直接的,也可以是派生的(有时称为间接度量)。直接度量的一个例子是事件发生次数的计数,例如在软件产品中发现的缺陷数量。派生度量是以某种方式将直接度量与度量方法相结合的度量。派生度量的一个例子是,将团队的生产率计算为每个developermonth开发的代码行数。在这两种情况下,测量方法决定如何进行测量。

3.3. 信度和效度

任何测量方法都要问的一个基本问题是,所提出的测量方法是否真的是高质量地测量概念。信度和效度是解决这一问题的两个最重要的标准。

测量方法的可靠性是指应用测量方法得到一致测量结果的程度。从本质上讲,可靠性是指当对同一项目进行多次测量时所得值的一致性。当测量结果一致时,认为测量方法是可靠的。可靠性通常取决于操作定义。它可以用变异指数来量化,变异指数是标准差和平均值之间的比值。指标越小,测量结果越可靠。

有效性是指测量方法是否真正测量了我们想要测量的东西。测量方法的有效性可以从三个不同的角度来看待:即结构有效性、标准有效性和内容有效性。

3.4. 可靠性评估

有几种评估信度的方法,包括重测法、替代形式法、对分法和内部一致性法。其中最简单的是重测法。在重测法中,我们简单地将测量方法应用于同一受试者两次。第一组和第二组测量结果之间的相关系数给出了测量方法的可靠性。

4.工程设计

产品的生命周期成本很大程度上受产品设计的影响。这对于制造产品和软件产品都是如此。软件产品的设计以要包含的特性和要提供的质量属性为指导。需要注意的是,软件工程师在他们自己的上下文中使用术语“设计”;虽然有一些共同点,但本节中讨论的工程设计和软件设计中讨论的软件工程设计之间也有许多不同之处。一般认为工程设计的范围比软件设计的范围广得多。本节的主要目的是确定清楚理解工程设计过程所需的概念。

许多学科从事解决问题的活动,其中只有一个正确的解决方案。在工程中,大多数问题都有许多解决方案,重点是找到一个可行的解决方案(在众多备选方案中),最能满足所提出的需求。可能的解决方案集通常受到明确施加的限制,例如成本、可用资源和学科或领域知识的状态。在工程问题中,有时也存在隐含的约束(如材料的物理性质或物理定律),这些约束也限制了给定问题的可行解集。

4.1. 工程教育中的工程设计

工程设计在工程教育中的重要性可以从各认证机构对工程教育的高期望中看出来。加拿大工程认证委员会和工程与技术认证委员会(ABET)都注意到将工程设计纳入教育计划的重要性。

加拿大工程认证委员会对工程专业学生所需的工程设计经验/课程以及教授此类课程或指导设计项目的教员的资格提出了要求。他们的认证标准规定:

设计:为复杂的、开放式的工程问题设计解决方案的能力,设计满足特定需求的系统、组件或过程的能力,并适当注意健康和安全风险、适用标准以及经济、环境、文化和社会因素。[8,第12页]

以类似的方式,阿贝特将工程设计定义为

设计系统、部件或过程以满足所需的过程。它是一个决策过程(通常是迭代的),在这个过程中,基础科学、数学和工程科学被应用于优化资源转换,以满足这些既定的需求。[9,第4页]

由此可见,工程设计是所有工程师培训和教育的重要组成部分。本节的其余部分将重点介绍工程设计的各个方面。

4.2. 设计作为解决问题的活动

需要注意的是,工程设计主要是一种解决问题的活动。设计问题是开放式的,定义更模糊。通常有几种不同的方法来解决同一个问题。设计通常被认为是一个邪恶的问题,这个词最早由Horst-Rittel在20世纪60年代提出,当时设计方法是一个非常有趣的话题。Rittel寻求一种替代线性的、逐步的设计过程模型,许多设计师和设计理论家正在探索这种模型,并认为设计师所解决的大多数问题都是邪恶的问题。正如史蒂夫麦康奈尔所解释的,一个邪恶的问题是一个只有通过解决它或解决它的一部分才能明确界定的问题。这一悖论本质上意味着,一个邪恶的问题必须解决一次才能明确界定,然后再解决一次才能创造出一个可行的解决方案。几十年来,这一直是软件设计师的一个重要见解[10*,c5s1]。

4.3. 工程设计步骤

工程问题的解决始于一个需求被认可,而现有的解决方案无法满足这个需求。作为解决问题的一部分,应该确定解决方案要实现的设计目标。此外,必须定义并使用一组验收标准来确定建议的解决方案满足需求的程度。一旦确定了对问题解决方案的需求,工程设计过程有以下一般步骤:

a) 定义问题
b) 收集相关信息
c) 生成多个解决方案
d) 分析并选择解决方案
e) 实施解决方案

所有的工程设计步骤都是迭代的,在过程的任何一个步骤中获得的知识都可以用来通知早期的任务并触发过程中的迭代。这些步骤将在后续章节中展开。

a、 定义问题。在此阶段,收集客户的需求。有关产品功能和特性的具体信息也被仔细检查。这一步包括细化问题陈述,以确定要解决的真正问题,并设置成功的设计目标和标准。

问题定义是工程设计的关键阶段。需要注意的是,这一步看似简单。因此,必须采取足够的谨慎来明智地执行这一步骤。确定需求并将成功标准与所需的产品特性联系起来是很重要的。通过利益相关者之间的协商来限制问题的范围及其解决方案也是一项工程任务。

b、 收集相关信息。在这个阶段,设计师试图扩展他/她的知识问题。这是一个重要的,但往往被忽视的阶段。收集相关信息可以揭示导致问题重新定义的事实,特别是,可能会发现错误和错误的开始。这一步也可能涉及到将问题分解成更小、更容易解决的子问题。

在收集相关信息时,必须注意识别产品如何被使用和误用。理解所提供产品/服务的感知价值也很重要。在相关信息中包含了一系列的约束条件,这些约束条件是解决方案必须满足的,或者可能会限制一组可行的解决方案。

c、 生成多个解决方案。在这一阶段,针对同一问题提出了不同的解决方案。已经有人说过设计问题有多种解决方案。这一步的目标是概念化多个可能的解决方案,并将它们细化到足够的详细程度,以便在它们之间进行比较。

d、 分析并选择解决方案。一旦确定了替代解决方案,就需要对其进行分析,以确定最适合当前情况的解决方案。分析包括功能分析,以评估拟议设计是否满足功能要求。涉及人类用户的物理解决方案通常包括对拟议解决方案的人机工程学或用户友好性的分析。可以研究解决方案的其他方面,如产品安全和责任、确保解决方案回报(利润)的经济或市场分析、满足质量特性的性能预测和分析、错误数据输入或硬件故障的机会等。对建议解决方案使用的分析的类型和数量取决于问题的类型、解决方案必须解决的需求以及对设计施加的约束。

e、 实施解决方案。设计过程的最后阶段是实现。实现是指开发和测试建议的解决方案。有时,最初可能会开发一个称为原型的初步部分解决方案,以在某些条件下测试所提出的设计解决方案。原型测试产生的反馈可用于改进设计或推动选择替代设计解决方案。设计中最重要的活动之一是设计解决方案的文档记录以及解决方案设计中所做选择的权衡。这项工作应以这样的方式进行,即设计问题的解决方案可以清楚地传达给其他人。

测试和验证将我们带回成功标准。工程师需要设计测试,以证明设计满足成功标准的能力。在设计试验时,工程师必须考虑不同的可能失效模式,然后根据这些失效模式设计试验。工程师可选择进行设计试验,以评估设计的有效性。

5.建模、仿真和原型设计

建模是抽象过程的一部分,用于表示系统的某些方面。仿真使用系统模型,并提供一种使用该模型进行设计实验的方法,以便更好地了解系统、其行为和子系统之间的关系,以及分析设计的各个方面。建模和仿真是可以用来构建关于系统行为的理论或假设的技术;然后工程师使用这些理论对系统进行预测。原型化是另一个抽象过程,其中构建了产品或系统的部分表示(捕获感兴趣的方面)。原型可能是系统的初始版本,但缺少最终版本的全部功能。

5.1. 建模

模型总是一些真实或想象的工件的抽象。工程师在许多方面使用模型作为他们解决问题活动的一部分。有些模型是物理模型,例如按比例制作的桥梁或建筑物的微型结构。其他模型可能是非物理表示,例如cog的CAD绘图或过程的数学模型。模型帮助工程师推理和理解问题的各个方面。它们还可以帮助工程师了解他们所知道的和不知道的关于手头问题的知识。

模型有三种类型:标志性的、类比的和象征性的。图标模型是视觉上等价但不完整的二维或三维表示,例如地图、地球仪或按比例构建的桥梁或公路等结构模型。一个标志性的模型实际上类似于所模拟的工件。

相比之下,类比模型是功能上等价但不完整的表示。也就是说,模型的行为类似于物理工件,即使它在物理上可能与之不相似。模拟模型的例子包括用于风洞试验的微型飞机或制造过程的计算机模拟。
最后,符号模型是一种更高层次的抽象,在这种抽象中,模型是使用诸如方程之类的符号来表示的。模型以符号形式捕捉过程或系统的相关方面。这些符号可以用来增加工程师对最终系统的理解。一个例子是一个方程,如F=Ma。这种数学模型可以用来描述和预测最终系统或产品的特性或行为。

5.2. 模拟

所有的仿真模型都是现实的规范。模拟中的一个中心问题是对现实进行适当的简化和抽象。开发这个抽象是非常重要的,因为对抽象的错误说明会使模拟练习的结果无效。模拟可以用于各种测试目的。

根据所研究系统的类型对仿真进行分类。因此,模拟可以是连续的,也可以是离散的。在软件工程的背景下,重点将主要放在离散仿真上。离散仿真可以对事件调度或过程交互进行建模。这种模型中的主要组件包括实体、活动和事件、资源、系统状态、模拟时钟和随机数生成器。输出由模拟生成,必须进行分析。

离散仿真开发中的一个重要问题是初始化问题。在运行模拟之前,必须提供所有状态变量的初始值。由于模拟设计者可能不知道什么初始值适合于状态变量,这些值可能会被任意选择。例如,可以决定将队列初始化为空和空闲。这种初始条件的选择可能会对模拟结果产生重大但尚未认识到的影响。

5.3. 原型设计

构建系统原型是另一个抽象过程。在这种情况下,系统的初始版本通常在系统设计时构建。这有助于设计师确定其设计的可行性。

原型有很多用途,包括获取需求、设计和完善系统的用户界面、验证功能需求等等。构建原型的目标和目的将决定原型的构造和使用的抽象级别。

原型的作用在物理系统和软件之间有些不同。对于物理系统,原型实际上可能是系统的第一个全功能版本,也可能是系统的模型。在软件工程中,原型也是软件的一部分的抽象模型,但通常不是用成品中预期的所有架构、性能和其他质量特性来构建的。无论哪种情况,原型构建都必须有明确的目的,并进行规划、监控和控制。这是一种在有限的背景下研究特定问题的技术[6*,c2s8]。

总之,建模、仿真和原型是从给定角度研究系统行为的强大技术。所有这些都可以用来进行设计实验,研究系统的各个方面。但是,这些都是抽象的,因此,可能无法对所有感兴趣的属性进行建模。

6.标准

摩尔说

标准可以是:(a)定义或表示单位大小的比较对象或度量;(b)确定项目类别允许公差的特征;以及(c)所需卓越或成就的程度或水平。标准在本质上是定义性的,建立标准是为了进一步理解和互动,或者承认所表现的特征或行为的观察(或期望)规范。[13*,第8页]

标准提供工程师必须遵守的要求、规范、指南或特性,以便产品、工艺和材料具有可接受的质量水平。各种标准提供的质量可以是安全性、可靠性或其他产品特性。标准被认为是工程师的关键,工程师应熟悉并在其专业中使用适当的标准。

标准的符合性让一个组织对公众说他们(或他们的产品)符合该标准中规定的要求。因此,标准将组织或其产品分为符合标准的组织或产品和不符合标准的组织或产品。为了使标准有用,与标准的一致性必须增加产品、过程或工作的实际价值或感知价值。

除了组织目标之外,标准还用于许多其他目的,例如保护买方、保护业务、更好地定义实践所遵循的方法和程序。标准还为用户提供了通用术语和期望值。

有许多国际公认的标准制定组织,包括国际电信联盟(ITU)、国际电工委员会(IEC)、IEEE和国际标准化组织(ISO)。此外,还有一些区域和政府认可的组织为该区域或国家制定标准。例如,在美国,有300多个组织制定标准。这些机构包括美国国家标准协会(ANSI)、美国材料与试验协会(ASTM)、汽车工程师协会(SAE)和美国保险商实验室公司(UL)等组织以及美国政府。有关软件工程中使用的标准的更多详细信息,请参见附录B标准。

标准背后有一套常用的原则。标准制定者试图就他们的决定达成共识。利益共同体内部通常是开放的,因此一旦制定了标准,就很有可能被广泛接受。大多数标准组织都有明确的工作流程,并严格遵守这些流程。工程师必须了解现有的标准,但也必须随着这些标准的变化而更新他们对标准的理解。

在许多工程实践中,了解和理解适用的标准是至关重要的,法律甚至可能要求使用特定的标准。在这些情况下,标准通常代表了工作必须满足的最低要求,因此是对任何设计工作施加限制的一个要素。工程师必须审查与给定工作相关的所有现行标准,并确定必须满足的标准。它们的设计必须包含适用标准施加的任何和所有约束。对于软件工程师来说重要的标准将在一个附录中详细讨论。

7.根本原因分析

根本原因分析(RCA)是一个旨在调查和确定不良事件发生的原因和方式的过程。根本原因是根本原因。研究人员应尝试确定已发生事件的具体潜在原因。RCA的主要目的是防止不良事件的复发。因此,研究人员对事件发生的原因了解得越具体,就越容易防止复发。确定具体潜在原因的一种常见方法是问一系列为什么的问题。

7.1. 进行根本原因分析的技术

有许多方法用于质量控制和根本原因分析。任何根本原因分析工作的第一步是确定真正的问题。诸如语句重述、为什么图表、修订方法、当前状态和期望状态图表以及新鲜的眼睛方法等技术被用来识别和细化需要解决的实际问题。

一旦确定了真正的问题,就可以开始确定问题的原因。石川以他推广的七种质量控制工具而闻名。其中一些工具有助于确定给定问题的原因。这些工具是检查表或检查表、帕累托图、直方图、运行图、散点图、控制图和鱼骨图或因果图。最近,出现了质量改进和根本原因分析的其他方法。这些较新方法的一些例子是相似图、关系图、树形图、矩阵图、矩阵数据分析图、过程决策程序图和箭头图。下面简要介绍其中的一些技术。

鱼骨图或因果图是一种可视化影响某些特性的各种因素的方法。图中的主线表示问题,连接线表示导致或影响问题的因素。这些因素被分解为子因素和子因素,直到可以确定根本原因。

在质量控制中有用的一个非常简单的方法是使用检查表。检查表是流程中关键点的列表,其中包含必须完成的任务。每个任务完成后,都会从列表中勾选出来。如果出现问题,那么检查表有时可以快速识别可能被跳过或仅部分完成的任务。

最后,关系图是显示复杂关系的一种方法。它们为因果思维提供视觉支持。该图将具体问题与一般问题联系起来,揭示了关键原因和关键影响。

根本原因分析旨在防止不良事件再次发生。减少由共同原因引起的变异需要使用多种技术。需要注意的一个重要点是,这些技术应该脱机使用,而不必直接响应某些不希望发生的事件。下面给出了一些可用于减少常见原因引起的变化的技术。

  1. 因果图可用于识别子原因和子原因。
  2. 故障树分析是一种可以用来了解故障源的技术。
  3. 设计实验可用于了解各种原因对不良事件发生的影响(见本KA中的经验方法和实验技术)。
  4. 各种相关分析可用于了解各种原因及其影响之间的关系。这些技术可用于难以进行受控实验但可收集数据的情况(见本KA中的统计分析)。

标签:15,定义,一个,解决方案,SWEBOK,测量,软件工程,设计,随机变量
来源: https://blog.csdn.net/imlichao/article/details/113405383