论文阅读————Architectural Assumptions and Their Management in Industry – An Exploratory Study

Architectural Assumptions and Their Management in Industry – An Exploratory Study

Abstract.

我们对24名架构师进行了探索性案例研究,以分析架构假设及其在行业中的管理。我们确认了之前关于架构假设的调查的某些发现(例如,架构假设的术语和概念在工业中都不是常用的,涉众可能对架构假设的概念有不同的理解)。我们还发现了五个新发现:(1)架构师经常在工作中进行架构假设;

(2)架构假设概念主观化;

(3)架构假设是上下文相关的,并且具有动态性质(例如,在其生命周期中被证明是无效的,或者反之亦然);

(4)架构假设和某些类型的软件工件(例如,需求和设计决策)之间存在联系;

(5)确定了12个架构假设、管理活动和管理架构假设的4个好处。

Introduction

软件工程文献中研究了各种类型的假设,例如需求假设

[1],架构的假设

[10],以及代码级假设[2],每个都关注软件开发生命周期的不同方面。 Architectural assumptions (AA1)我们将AA定义为:被认为是理所当然的架构知识,或者在没有证据的情况下被认为是真实的。

Related Work

从架构师的角度来看,目前还没有关于AA及其在软件开发中的管理的探索性案例研究。上述研究主要集中于提出和评估AA管理的方法,而本研究旨在探讨架构师如何看待AA以及AA管理的现有活动、实践、工具、挑战和好处。

Case Study

Goal and Research Questions

案例研究的目标,制定使用Goal-Question-Metric方法[3],是分析AA及其管理为目的的特征对理解AA和活动,实践、工具、挑战,以及AA的好处从架构师的角度管理软件开发在星航工程科从事行业的上下文中。

RQ1:架构师如何看待AA?

本RQ旨在探讨架构师如何通过定义和示例理解AA的概念,以及AA的特征和AA与其他软件工件(例如需求)之间的潜在关系。

RQ2:活动、实践、工具、挑战对AA的好处是什么?

本RQ旨在帮助研究人员和实践者对软件开发中的AA管理有一个实际的理解。

Case and Units of Analysis

因此,我们将此研究视为一个多元的、整体的案例研究[8]:每个架构师都是一个案例和一个分析单元。

(1)在我们的调查中,我们只采用问卷调查的方式来收集数据来回答RQs,而在本案例研究中,我们采用了访谈和焦点小组的方式来收集数据(两种不同的数据源有助于提高研究的有效性)。(2)调查对象为软件开发从业人员,包括项目经理、设计人员等不同角色,本研究的对象为架构师;(3)调查对象填写调查问卷并发表意见,本研究对象接受AA及其管理的辅导,并在自己的项目中实践管理AA;(4)本研究的范围是广泛的,因为它不仅扩展了从AA识别和记录(即调查)AA管理一般而言(即本研究),但也包括一些新的方面,如特征的AA和AA和其他软件构件之间的关系(例如,需求)。

Data Collection and Analysis

我们举办了五个工作坊(每个工作坊半天,包括半小时的导论AA和他们的管理)在中国北京、深圳和瑞典哥德堡,与来自10家公司和不同领域(如互联网的24名架构师和汽车工业收集数据。

个案研究采用三种资料收集方法:问卷调查法、访谈法和焦点小组法。

我们使用描述性统计分析定量答案(即研究对象的背景信息),不断比较[7]进行定性答案(即从收集到的数据中生成概念和类别来回答RQs)。

Data collection methodData analysis methodRQs
调查表描述性统计背景知识
面谈Constant comparisonRQ1, RQ2
小组座谈会持续比较RQ1, RQ2

Results

Subjects Experience and Projects Information
Results of RQ1 – Perception of AA

AA的术语和概念

最后,受试者一致认为AA不仅在架构设计中很重要,在软件开发中也至关重要,AA的影响贯穿于整个开发过程,而不仅仅是在架构或设计阶段。

AA的概念是主观的,AA是上下文相关的,AA的动态特性,两个AA之间的关系可能是零。

主题列出了几个与AA相关的工件,包括需求、设计决策、设计模式、设计模型、组件和风险。

(1)“AA”这个词和概念在工业上都不是常用的。

(2)学科(架构师)在他们的工作中经常得到AA。

(3)利益相关者对AA概念可能有不同的理解。

(4) AA在架构设计和软件开发中都很重要。

(5) AA跨越整个软件开发生命周期。

(6) AA的概念是主观的。

(7)架构是情境相关的,具有动态性质。

(8)在AA和某些类型的软件工件之间存在联系。

Results of RQ2 – AA Management

(1)确定了12项AA管理活动。AA制作,描述,评价,维护、跟踪、监控、沟通、理解、重用、恢复、搜索和组织。

(2)受试者未采用系统的研究方法AA管理。

在这里插入图片描述

(3)受试者在5项AA管理活动中采用了9项没有指导方针的实践。

(4)管理学科使用的所有工具在软件开发中都是通用的。

(5)管理AA有八个挑战及四个好处。

Discussion

Interpretation of RQs Results

AA不仅在架构设计中很重要,在软件开发中也至关重要;它的生命周期贯穿于整个软件开发生命周期。一个原因可能是AA与各种软件工件相关,例如需求、设计决策、组件和风险。另一个原因是AA管理是团队合作,涉及到不同的利益相关者,而不仅仅是架构师。

AA跟踪有助于提高软件开发中AA和其他软件工件之间的可跟踪性,但是建立跟踪所需的工作可能是禁止的。

Implications for Researchers

尤其是在实证研究中评估AA管理的相关方法或工具时,研究人员需要做出决定:允许他们的研究对象对AA有自己的理解,还是执行一致的定义。

关于将AA管理集成到现有软件开发方法(例如,以决策为中心的架构评估方法)的进一步研究是有可能的。

Implications for Practitioners

我们主张将AA视为软件架构和软件开发中的一流实体,并将AA管理与软件开发中的现有流程、方法、工具等相结合。

我们建议项目中的从业者至少应该就AA是什么以及如何管理它们达成一致。

我们鼓励具有不同角色的从业者(例如,项目经理)参与管理AA。

我们鼓励有不同经验的从业员就架构及其管理进行讨论,以减轻这个问题。

Threats to Validity

注意,内部效度没有讨论在这篇论文,因为这工作不研究因果关系。

Construct validity

一个潜在的威胁是收集的数据是否能回答

External validity

然而,这些结果可能并不适用于其他环境(例如,项目经理和程序员);复制这个案例研究是减少这种威胁的一种方法。

Reliability

重点是当其他研究人员进行复制时,该研究是否会产生同样的结果。

Conclusions and Future Work

我们下一步的工作是:

(1)开发AA管理的方法,特别是在软件开发中建立一个通用的AA局管理过程;

(2)为AA管理层制订实务及指引,以应付个案研究中所发现的挑战;

(3)开发专用的AA管理工具。注意,我们的意图不是开发一个独立的工具,而是开发一个与现有软件开发工具集成的工具(例如,现有工具的插件)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
图像识别技术在病虫害检测的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统,可以是移动应用、网页服务或集成到智能农业设备。 7. **实时监测**:在实际应用,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测的应用将越来越广泛。
1 目标检测的定义 目标检测(Object Detection)的任务是找出图像所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。 目标检测任务可分为两个关键的子任务,目标定位和目标分类。首先检测图像目标的位置(目标定位),然后给出每个目标的具体类别(目标分类)。输出结果是一个边界框(称为Bounding-box,一般形式为(x1,y1,x2,y2),表示框的左上角坐标和右下角坐标),一个置信度分数(Confidence Score),表示边界框是否包含检测对象的概率和各个类别的概率(首先得到类别概率,经过Softmax可得到类别标签)。 1.1 Two stage方法 目前主流的基于深度学习的目标检测算法主要分为两类:Two stage和One stage。Two stage方法将目标检测过程分为两个阶段。第一个阶段是 Region Proposal 生成阶段,主要用于生成潜在的目标候选框(Bounding-box proposals)。这个阶段通常使用卷积神经网络(CNN)从输入图像提取特征,然后通过一些技巧(如选择性搜索)来生成候选框。第二个阶段是分类和位置精修阶段,将第一个阶段生成的候选框输入到另一个 CNN 进行分类,并根据分类结果对候选框的位置进行微调。Two stage 方法的优点是准确度较高,缺点是速度相对较慢。 常见Tow stage目标检测算法有:R-CNN系列、SPPNet等。 1.2 One stage方法 One stage方法直接利用模型提取特征值,并利用这些特征值进行目标的分类和定位,不需要生成Region Proposal。这种方法的优点是速度快,因为省略了Region Proposal生成的过程。One stage方法的缺点是准确度相对较低,因为它没有对潜在的目标进行预先筛选。 常见的One stage目标检测算法有:YOLO系列、SSD系列和RetinaNet等。 2 常见名词解释 2.1 NMS(Non-Maximum Suppression) 目标检测模型一般会给出目标的多个预测边界框,对成百上千的预测边界框都进行调整肯定是不可行的,需要对这些结果先进行一个大体的挑选。NMS称为非极大值抑制,作用是从众多预测边界框挑选出最具代表性的结果,这样可以加快算法效率,其主要流程如下: 设定一个置信度分数阈值,将置信度分数小于阈值的直接过滤掉 将剩下框的置信度分数从大到小排序,选值最大的框 遍历其余的框,如果和当前框的重叠面积(IOU)大于设定的阈值(一般为0.7),就将框删除(超过设定阈值,认为两个框的里面的物体属于同一个类别) 从未处理的框继续选一个置信度分数最大的,重复上述过程,直至所有框处理完毕 2.2 IoU(Intersection over Union) 定义了两个边界框的重叠度,当预测边界框和真实边界框差异很小时,或重叠度很大时,表示模型产生的预测边界框很准确。边界框A、B的IOU计算公式为: 2.3 mAP(mean Average Precision) mAP即均值平均精度,是评估目标检测模型效果的最重要指标,这个值介于0到1之间,且越大越好。mAP是AP(Average Precision)的平均值,那么首先需要了解AP的概念。想要了解AP的概念,还要首先了解目标检测Precision和Recall的概念。 首先我们设置置信度阈值(Confidence Threshold)和IoU阈值(一般设置为0.5,也会衡量0.75以及0.9的mAP值): 当一个预测边界框被认为是True Positive(TP)时,需要同时满足下面三个条件: Confidence Score > Confidence Threshold 预测类别匹配真实值(Ground truth)的类别 预测边界框的IoU大于设定的IoU阈值 不满足条件2或条件3,则认为是False Positive(FP)。当对应同一个真值有多个预测结果时,只有最高置信度分数的预测结果被认为是True Positive,其余被认为是False Positive。 Precision和Recall的概念如下图所示: Precision表示TP与预测边界框数量的比值 Recall表示TP与真实边界框数量的比值 改变不同的置信度阈值,可以获得多组Precision和Recall,Recall放X轴,Precision放Y轴,可以画出一个Precision-Recall曲线,简称P-R
图像识别技术在病虫害检测的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统,可以是移动应用、网页服务或集成到智能农业设备。 7. **实时监测**:在实际应用,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值