Statistical complexity of software systems represented as multi-layer networks
针对软件系统复杂性缺乏实证度量的问题,本文提出采用统计复杂性指标,基于多层网络建模并通过模拟与理论比较验证,以洞察系统组织结构与涌现行为。
2025-03-29 cs.SE
Software Cognitive Information Measure based on Relation Between Structures
认知复杂性测度是基于认知信息学基础上对人类理解源代码的难度进行量化。该学科基于基本的软件因素(即输入、输出和内部处理架构)推导出认知复杂性。一种将粒度计算集成到称为结构化认知信息度量(SCIM)的新度量中的方法。所提出的措施统一和重组的复杂性因素类似于人类的认知过程。然而,根据软件的方法论和变量的范围,变量的信息复杂度数(ICN)取决于变量值的变化,认知复杂度有多种测量方法。本文定义了范围信息复杂度(SICN),提出了基于软件功能分解的认知复杂度,并通过Weyuker的9个性质进行了理论验证。
2013-04-01 cs.SE
From Complexity Measurement to Holistic Quality Evaluation for Automotive Software Development
近年来,软件在汽车领域的作用和重要性发生了巨大变化。能够系统地评估和管理软件质量变得更加重要。然而,在实践中,我们仍然发现一个很大程度上静态的方法来衡量软件质量的基础上预定义的复杂性度量与静态阈值来满足。我们建议使用一个更灵活的框架,它系统地根据开发项目的目标和背景导出度量和评估规则。
2021-10-27 cs.SE
The more Product Complexity, the more Actual Effort? An Empirical Investigation into Software Developments
[背景]软件工作量预测方法和模型通常假设软件产品复杂度和开发工作量之间存在正相关关系。然而,从我们使用COCOMO81数据集的经验中可以看到相互矛盾的观察结果,即产品复杂性和实际工作量之间的负相关性。[Aim鉴于我们对所观察到的现象是否是巧合的怀疑,本研究试图调查产品复杂性的增加是否会导致软件开发项目中的上述反直觉趋势。[方法:]将一种改进的关联规则挖掘方法应用于转换后的COCOMO81数据集。为了减少分析的噪声,该方法使用恒定的前因(复杂性增加,而工作量减少)来挖掘潜在的后果与修剪。[结果]实验分别从一般、嵌入和有机项目数据中挖掘出4条、5条和7条关联规则。挖掘规则的后果建议两个主要方面,即人的能力和产品规模,在这项研究中特别关注。[结论]复杂性与努力程度的负相关在特定条件下并非巧合。在软件项目中,产品复杂性与其他因素(如程序员能力和分析员能力)之间的相互作用不可避免地会在削弱产品复杂性对实际开发工作的实际影响方面发挥“摩擦”作用。
2015-09-28 cs.SE
Software Cognitive Complexity Measure Based on Scope of Variables
本文定义了一个程序结构的数学模型。本文定义的程序结构数学模型提供了对程序结构的统一数学处理,揭示了程序是当前语句与前一语句之间嵌入的二元关系的大而有限的集合。然后,将程序看作是一个组合列表和多个语句按照一定的组合规则的逻辑组合。我们还定义了范围信息复杂度数(SICN),并提出了基于软件功能分解的认知复杂度,包括理论验证,通过九个Weyuker的性质。
2014-09-17 cs.SE
Rethinking complexity for software code structures: A pioneering study on Linux kernel code repository
人工智能(AI)的最新进展显示出在各种复杂任务中减轻人类负担的巨大潜力。从软件工程的角度来看,人工智能技术可以在开发的许多基本方面看到,例如源代码理解,其中实现了最先进的模型来自动提取和表达代码片段的含义。然而,这些技术仍在努力解决和理解工业代码中的复杂结构,因此远离现实世界的应用。在目前的工作中,我们建立了一个创新的和系统的框架,强调在代码理解和进一步的软件工程的复杂性问题。在从最新的Linux内核源代码中自动收集数据汇集的基础上,我们通过令牌提取和关系解析将代码结构建模为复杂网络。对复杂性的全面分析进一步揭示了基于网络的代码表示的密度和规模。我们的工作从工业强度的软件代码构建了第一个大规模数据集,用于下游软件工程任务,包括代码理解,并首次将复杂网络理论纳入软件开发的代码级调查。从长远来看,所提出的方法可以在整个软件工程过程中发挥重要作用,通过重新定义和拥抱复杂性来支持软件设计,编码,调试,测试和维护。
2021-03-01 cs.SE
A Complexity measure based on Requirement Engineering Document
研究表明,软件质量的准确评估是软件开发中的主要问题.此外,这种估计取决于软件固有的复杂程度,即复杂性。本文试图实证证明所提出的复杂性,这是基于IEEE需求工程文件。高质量的SRS是高质量软件的先决条件。需求工程文档(SRS)是针对特定环境执行某些特定功能的特定软件产品、程序或程序集的规范。到目前为止给出的各种复杂性度量都是基于软件的代码和认知度量值的。因此,这些指标对代码开发人员没有任何影响。考虑到基于代码的方法的缺点,该方法在SDLC过程中冻结需求后立即识别软件的复杂性。建议的复杂性措施比较以及与既定的复杂性措施。最后,该趋势可以验证所提出的措施的结果。最后,基于需求的复杂性度量可以用来了解拟议软件的复杂性之前,实际实施的设计,从而节省成本和人力浪费。
2010-06-14 cs.SE
Estimation of Defect proneness Using Design complexity Measurements in Object- Oriented Software
软件工程不断面临着软件包日益复杂和软件生产过程中缺陷和缺点数据水平不断提高的挑战。这就要求有新的发明和方法来实现更可重用、更可靠、更易于维护和更高质量的软件系统,并对软件生成过程进行更深层次的控制。质量和生产率确实是控制任何工业过程的两个最重要的参数。成功的控制系统的实施需要一些测量手段。软件度量在软件开发过程的管理方面起着重要的作用,如更好的规划,评估改进,资源分配和减少不可预测性。涉及早期发现潜在问题、生产力评估和评估外部质量因素(如可重用性、可维护性、缺陷倾向性和复杂性)的过程至关重要。在这里,我们讨论的CK度量和估计模型的应用,以预测外部质量参数,优化设计过程和生产过程中所需的质量水平。提出了一种新的面向对象系统设计级缺陷倾向性估计方法,建立了CK度量与缺陷倾向性指数之间的关系模型。一个多功能的估计方法捕捉CK度量和软件模块的缺陷倾向水平之间的相关性。
2010-01-20 cs.SE
Interactive Complexity: Software Metrics from an Ecosystem Perspective
现在,即使是最微不足道的应用程序也是在数百万行库、API和程序设计语言代码之上编写的,因此,设计软件时存在的许多复杂性已经被抽象掉,以便程序员能够主要关注业务逻辑。由于每个应用程序都严重依赖于其设计运行的生态系统,无论是局限于本地系统还是包括对通过网络连接的机器的依赖,测量这些系统的复杂性不再仅仅通过观察应用程序内部的代码来完成;我们还需要考虑其外部交互。在考虑安全问题时,这一点尤为重要,因为我们的医疗保健,金融和汽车依赖于复杂的软件系统。我们提出了互动的复杂性,它提供了一个量化的措施,如何交织的系统部分。一些最著名的软件复杂性度量是CK度量套件中的度量;这些度量是为测量面向对象系统而设计的,但我们相信它们可以用来帮助测量软件系统的交互。我们的实验结果表明,在一个版本中修复的错误数量与足够规模的系统中这些指标的价值之间存在很强的相关性。
2017-11-28 cs.SE
Should I Bug You? Identifying Domain Experts in Software Projects Using Code Complexity Metrics
在任何足够复杂的软件系统中,都有专家,他们对系统的某些部分有着比其他部分更深刻的理解。然而,并不总是清楚这些专家是谁,以及他们可以为系统的哪些特定部分提供帮助。我们提出了一个框架,以引起开发人员的专业知识,并建议专家分析复杂性措施随着时间的推移。此外,团队可以检测到目前没有专家或只有少数专家的软件部分,并采取预防措施以保持集体代码知识和所有权。我们在一家中等规模的公司采用了这种先进的方法。结果进行了评估与调查,比较感知和计算的专业知识的开发人员。我们表明,聚合代码度量可用于识别不同的软件组件的专家。在90%以上的情况下,开发人员将确定的专家评为可接受的候选人。
2018-09-20 cs.SE
Unveiling process insights from refactoring practices
软件理解和维护活动,如重构,据说会受到软件复杂性的负面影响。用于度量软件产品和过程复杂性的方法已经在文献中进行了彻底的讨论。然而,对这两个维度之间可能存在的联系的认识,特别是对使用过程视角的好处的认识,还有很长的路要走。目的:提高对重构任务中开发人员活动和软件复杂性之间联系的理解,即通过评估使用过程挖掘方法和工具从IDE收集的过程度量是否适合于准确分类不同的重构实践和由此产生的软件复杂性。方法:我们从一个软件产品中挖掘源代码度量,在一个质量改进任务被并行地交给(117)个软件开发人员后,组织在(71)个团队中。同时,我们从他们的IDE工作会话(320)中收集事件,并使用流程挖掘来建模他们的流程并提取相应的度量。结果如下:大多数使用插件进行重构的团队(JDeodorant)比只使用Eclipse本机特性执行重构的团队更有效地降低了软件复杂性,并且流程更简单。我们能够找到适度的相关性(43%)之间的软件圈复杂度和过程圈复杂度。重构方法和圈复杂度预测的最佳模型分别有92.95%和94.36%的准确率。结论:我们的方法与程序设计语言、地理位置或开发实践无关。最初的发现是令人鼓舞的,并导致我们建议从业者可以使用我们的方法在其他开发任务,如缺陷分析和单元或集成测试。
2020-10-29 cs.SE
Aspects of complexity in automotive software systems and their relation to maintainability effort. A case study
本研究以Scania AB的两个大型车载软件系统为对象开展案例研究,明确了影响可维护性工作量的内外部复杂性来源,验证了复杂性作为可维护性工作量代理指标的有效性,并提出需构建涵盖内外维度的复杂性度量体系。
2025-05-19 cs.SE
On the Relationship between Software Complexity and Security
这项工作的目的是讨论软件的复杂性方面,同时展示其与安全性的关系。复杂性是软件的重要组成部分;然而,许多研究表明,它们增加了软件系统的脆弱性,并在程序中引入错误。许多开发人员在试图理解软件的复杂组件时面临困难。当软件中的对象被用于设计更复杂的对象同时在系统中创建分层复杂性时,软件中的复杂性增加。然而,开发人员有必要努力将复杂性降至最低,因为复杂性的增加会在软件中引入安全风险,这可能会对政府或私人组织造成严重的经济和声誉损失。它甚至对人造成身体伤害,在过去几年中发现了各种安全漏洞导致严重后果的例子。因此,保持结构的低复杂性和简单设计至关重要。不同的开发人员倾向于在系统中引入故意的复杂性,以便他们不必编写相同的程序两次;然而,随着安全性需求的不断增加,软件组织的问题越来越多。
2020-02-10 cs.CR cs.SE
Mutant Density: A Measure of Fault-Sensitive Complexity
软件代码复杂度是一个研究得很好的属性,以确定软件组件的健康。然而,现有的代码复杂性度量没有直接考虑代码的易出错性方面。我们提出了一个称为突变密度的指标,其中我们使用突变作为在代码中引入人为错误的方法,并计算每行可能的突变数量。我们将展示如何使用此度量标准来对现实生活中的软件项目进行有用的分析。
2021-04-25 cs.SE
An Empirical Study of the Relationships between Code Readability and Software Complexity
The University of New Orleans(新奥尔良大学)
代码可读性和软件复杂性是重要的软件质量度量,影响其他软件度量,如可维护性,可重用性,可移植性和可靠性。本文提出了一个实证研究之间的关系代码可读性和程序复杂性。这些结果来自对35个Java程序的分析,这些程序涵盖了23种不同的代码结构。分析包括六个可读性指标和两个复杂性指标。我们的研究从经验上证实了现有的智慧,即可读性和复杂性是负相关的。应用机器学习技术,我们还识别和排名那些代码结构,大大影响代码的可读性。
2019-08-30 cs.LG cs.SE
Improving the Testability of Object-oriented Software during Testing and Debugging Processes
可测试性是在程序中存在错误的情况下,测试是否会检测到错误的概率。如何有效地发现故障取决于软件的可测试性。许多研究人员提出了定性和定量的技术来提高和衡量软件的可测试性。在文献中,大量的可靠性增长模型已被用于评估和衡量软件在测试和运行阶段的定量质量评估。了解软件故障分布及其复杂性可以提高软件的可测试性。通过了解故障分布和故障复杂度,可以使测试工作量的分配变得容易,这将简化从软件中发现故障的过程。因此,软件的可测试性将得到改善。文中给出了该模型的参数以及不同复杂度的故障在软件中所占的比例,并利用在开源环境下开发的两个面向对象软件MySQL for python和Squirrel SQL Client的故障数据进行了估计
2013-08-15 cs.SE
Impostor Phenomenon Among Software Engineers: Investigating Gender Differences and Well-Being
本研究调查软件工程师中冒名顶替现象(IP)在性别与种族等多因素交叉下的表现及与幸福感的关联,通过分析624份调查数据发现女性IP发生率更高,且受IP影响者幸福感显著更低,强调需制定缓解策略提升从业者幸福感。
2025-02-11 cs.SE
Abstractness, specificity, and complexity in software design
抽象是软件设计的基本概念之一。因此,为形成软件系统的大量工件确定适当的抽象级别是软件工程的组成部分。然而,软件设计中抽象的本质,特别是它与同样重要的概念(如复杂性,特殊性或通用性)的相互关系,今天还没有完全理解。作为一个步骤,更好地了解所涉及的权衡,本文提出了一个区别的抽象成两种类型,有不同的影响的特异性和复杂性的文物。我们讨论了这两种类型的抽象在软件设计中的作用,并解释了抽象性,特异性和复杂性之间的相互关系。此外,我们用多个例子说明了所提出的区别的好处,并描述了我们的研究结果对软件设计活动的后果。
2017-09-05 cs.PL cs.SE
A New Complete Class Complexity Metric
软件复杂性度量对于最小化软件维护成本至关重要。包级和系统级的复杂性不能在没有类级复杂性的情况下测量。这项研究解决了类的复杂性度量。本文研究了现有的类复杂性度量方法,提出了一种新的类复杂性度量方法CCC(Complete class complexity metric)。CCC度量,然后分析评估Weyuker的性质。
2014-03-22 cs.SE
An Integer Programming Model for Embedding Social Values into Software Requirement Selection
现有的软件需求选择方法主要集中在优化软件产品的经济价值,而忽略了其社会价值及其对社会的长期影响。然而,社会价值观也很重要,需要在软件需求选择中加以考虑。此外,社会价值的软件需求可能会改变存在或不存在的其他需求,由于这些需求之间的价值依赖。这些依赖关系是不精确的,很难在软件项目中指定。本文提出了一种将社会价值观和社会价值观之间的依赖关系整合到软件需求选择中的可重用程序设计(IP)模型。我们进一步,占社会价值观的不精确性和它们之间的依赖关系,使用模糊图的代数结构。
2020-03-09 cs.SE
Understanding LLM Usage Among Early-Career Software Engineers in Practice
CESAR School(CESAR学院);UFRPE(巴西联邦农村大学);University of Calgary(卡尔加里大学);University of Hawaii at Manoa(夏威夷大学马诺阿分校)
本研究通过调查75名初级软件工程师,发现LLM已融入日常开发活动,其有效使用依赖传统工程能力与批判性思维,并指出职场期望与大学教育存在差距,为软件工程教育和培训提供启示。
2026-09-24 cs.SE
Properties of Relationships among objects in Object-Oriented Software Design
面向对象的分析和设计是开发系统的现代范例之一。在这个范例中,有几个对象,每个对象扮演一些特定的角色。在识别对象之后,必须识别对象之间的各种关系。本文对对象之间的关系进行了文献综述。关系主要有泛化/特化、聚集和关联三种基本类型,本文给出了关系性质的五种分类法。第一种分类法是基于时态视图的。第二种分类法基于结构,第三种分类法依赖于行为。第四个分类是在数学视图上指定的,第五个分类与接口相关。此外,在案例研究中的关系的属性进行了评估,并提出了几项建议。
2015-11-09 cs.SE
Influence of Communication Among Shared Developers on the Productivity of Open Source Software Projects
许多软件开发人员依赖开源软件来开发他们的应用程序和编写他们的源代码。衡量一个独立项目的整体生产力对许多技术公司来说仍然是一个悬而未决的问题。在这个项目中,我们致力于弥合分析的差距,这是预测基于生产力的系统的最重要的功能。我们选择通过GitHub的应用程序编程接口(API)从GitHub收集数据,并分析我们收集的数据,以了解解决问题的平均时间与我们收集的功能之间的关系。由于我们收集的大多数数据都不是高斯数据,因此我们必须在统计建模之前使用离群值检测和应用转换来预处理数据。我们观察到的最佳模型是5次多项式回归。总的来说,我们注意到软件开发有很多方面可以提高开发人员的生产力。
2022-03-25 cs.SE
Mining for sustainability in cloud architecture among the discussions of software practitioners: building a dataset
本文通过挖掘 StackExchange 上 192 条从业者讨论构建云架构可持续性标注数据集,发现从业者侧重设计阶段和技术与经济可持续性,与学术界强调环境可持续性形成对比。
2024-06-10 cs.SE
Microservice Architectures for Advanced Driver Assistance Systems: A Case-Study
近年来的技术进步稳步增加了汽车内部软件系统的复杂性,而自动驾驶的持续发展将进一步加剧这种情况。这导致了一定程度的复杂性,推动了现有车辆软件架构和系统设计的极限。通过将软件结构更改为基于服务的体系结构,其他领域的公司成功地管理了不断增加的复杂性,并创建了一个更加敏捷和面向未来的开发过程。本文介绍了一个案例研究,研究将复杂的驾驶辅助功能的软件架构更改为微服务架构的可行性和可能的影响。完整的过程进行了描述,从软件环境和相应的要求,其次是实施,并最终测试的描述。此外,本文还对汽车用例的微服务架构进行了高级评估。结果表明,只要认真遵循微服务架构的原则,微服务架构可以减少复杂性和耗时的流程步骤,并使汽车软件系统为即将到来的挑战做好准备。
2019-02-25 cs.SE
Quantifying the Impact on Software Complexity of Composable Inductive Programming using Zoea
Zoea Ltd.(佐亚有限公司);London South Bank University(伦敦南岸大学)
在Zoea程序设计语言中实现的可组合归纳编程是软件开发的一种简单的声明式方法。在语言层面上,Zoea显然比所有主流语言都要简单。然而,到目前为止,我们只有轶事证据表明,用Zoea制作的软件也比用传统语言制作的等效软件简单。本文介绍了Zoea中实现的等效代码的软件复杂性的定量比较的结果,也在传统的程序设计语言。这项研究使用了一套不同的编程任务,从一个流行的程序设计语言chrestomathy。结果相对程序的复杂性,使用两个既定的指标,也为相对程序的大小。结果发现,Zoea程序的复杂性约为传统语言等效程序的50%,平均大小相等。结果表明,目前的程序设计语言(相对于软件需求)是软件复杂性的最大贡献者,通过归纳编程方法可以避免显着的复杂性。
2020-05-17 cs.AI cs.PL cs.SE
Unveiling Hybrid Cyclomatic Complexity: A Comprehensive Analysis and Evaluation as an Integral Feature in Automatic Defect Prediction Models
本文提出了一种考虑继承复杂度的新颖指标Hybrid Cyclomatic Complexity(HCC),通过开源项目数据实验验证了其作为缺陷预测模型特征的有效性,并强调了区分类复杂度与继承复杂度的必要性。
2025-04-01 cs.SE
Navigating the Complexity of Generative AI Adoption in Software Engineering
本文通过混合方法研究生成式AI在软件工程中的采用,提出HACAF理论模型,发现兼容性是早期采用的主要驱动因素,挑战了传统技术接受理论,为AI工具设计与组织实施提供见解。
2024-01-04 cs.SE
Exploring Viable Algorithmic Options for Automatically Creating and Reconfiguring Component-based Software Systems: A Computational Complexity Approach (Full Version)
基于协同的开发(CBD)是一种降低创建软件系统成本的流行方法。然而,目前尚不清楚《生物多样性公约》核心组成部分的选择和调整活动在多大程度上可以有效和可靠地自动运作,也不清楚在何种情况下(如果有的话)《生物多样性公约》比其他软件开发办法更可取。在本文中,我们使用计算复杂性分析,以确定和比较的计算特性的全自动组件为基础的软件系统创建和重新配置的从头设计,组件选择,组件选择与适应。我们的研究结果表明,这些方法都可以实现有效和可靠地运行在一个完全自动的方式,无论是在一般或相对于一些限制软件系统,系统要求,组件和组件的适应。我们还给出了所有这些方法都可以实现有效和可靠操作的限制。因此,本文说明了如何不同类型的计算复杂性分析(特别是,参数化的复杂性分析)可以用来系统地探索算法的选择,实现自动活动在软件工程。
2022-05-10 cs.CC cs.SE
A Methodology for Analyzing Uptake of Software Technologies Among Developers
动机:什么属性组合驱动采用特定软件技术的问题对开发人员至关重要。它决定了哪些技术得到社区的广泛支持,哪些技术可能被放弃,从而使开发人员的投资变得毫无价值。目标和背景:我们对开发人员采用软件技术进行建模,并提供与替代技术之间更好的可见性相关的特定技术属性的见解。方法:我们利用社会传染理论和统计建模来识别,定义和测试可能影响软件采用的经验措施。更具体地说,我们利用大量的开源版本控制存储库来构建一个特定的R语言源代码文件集的软件依赖链。我们制定逻辑回归模型,调查技术属性的组合,推动采用竞争的数据框架实现在R语言:整洁和data.table。我们量化了可能影响采用的关键项目属性以及做出选择的开发人员的特征。结果如下:我们发现,对提出的问题的快速响应,大量的整体部署,以及大量的高质量StackExchange问题与更高的采用率相关。决策者倾向于采用在技术依赖网络和作者协作网络中更接近他们的技术,同时满足他们的性能需求。今后的工作:我们希望我们的方法包括社会传染,捕获理性和非理性的偏好,并从大量的版本控制数据中阐明关键措施,为提高可见性,推动更明智的决策,以及生产更可持续和广泛采用的软件提供一条通用路径
2019-09-04 cs.SE
Model-Driven Development of Complex Software: A Research Roadmap
模型驱动工程(Model-Driven Engineering,MDE)一词通常用于描述软件开发方法,其中创建软件系统的抽象模型并将其系统地转换为具体的实现。在本文中,我们给出了目前的研究在MDE的概述,并讨论了一些必须解决的主要挑战,以实现软件开发的MDE愿景。我们认为,充分实现MDE的愿景可能不可能在近期到中期,主要是因为涉及的邪恶的问题。另一方面,试图实现这一愿景将提供一些见解,这些见解可用于显著缩小不断发展的软件复杂性与用于管理复杂性的技术之间的差距。
2014-09-22 cs.SE
Navigating the Socio-Technical Complexity Challenge in Quantum Software Ecosystems
University of Jyväskylä(于韦斯屈莱大学);University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校)
本文针对量子计算环境选择面临的挑战,运用设计科学研究方法,通过社会技术视角构建评估框架,引入引力阱及其属性、社会技术需求等结构,经示例案例演示评估,推动了量子生态系统理论及实践指导发展。
2026-07-17 cs.SE
AppSecure.nrw Software Security Study
近年来,世界经济论坛将软件安全确定为世界人口面临的最重大技术风险,因为软件密集型系统处理关键数据并提供关键服务。这引发了一个问题:德国公司在开发和运营其软件产品时在多大程度上解决了软件安全问题。本文报告了一项针对开发人员、产品所有者和管理人员的广泛研究的结果,以回答这个问题。我们的研究结果表明,确保安全性是一个多方面的挑战,为公司,涉及低认识,不准确的自我评估,并缺乏能力的主题,安全的软件开发的所有利益相关者。因此,软件开发的现状从中期和长期来看不利于软件产品的安全。
2021-08-25 cs.SE
Breaking Barriers: Investigating the Sense of Belonging Among Women and Non-Binary Students in Software Engineering
本研究通过问卷和访谈探究软件工程教育中女性和非二元性别学生的归属感,发现性别姓名感知差异及tokenism等障碍仍存在,同时揭示榜样和鼓励等积极因素能增强归属感。
2024-05-06 cs.SE
An approach for improving the concept of Cyclomatic Complexity for Object-Oriented Programming
软件复杂性度量对于满足复杂软件的需求具有重要作用。圈复杂度是目前已提出和研究的三个度量指标之一,它们分别是:代码行、Halstead测度和圈复杂度。虽然圈复杂性是非常流行的,但也服务于一些问题,这些问题已被确定并在本研究工作中以表格形式显示。它缺乏面向对象程序设计中对象类间耦合的计算,只根据条件语句计算复杂度。因此,需要改进基于耦合的圈复杂度概念。论文包括所提出的算法来处理上述问题。
2014-12-19 cs.SE
Remote Communication Trends Among Developers and Testers in Post-Pandemic Work Environments
本研究探讨了后疫情时代软件开发者与测试人员远程通信的特征与挑战,发现向远程和混合工作模式的转变显著改变了通信与任务协调,并强调需调整工作流、引入新管理实践和技术投资以保障项目交付质量。
2024-08-22 cs.SE
Hierarchical Complexity: Measures of High Level Modularity
软件是人类最复杂的工作之一;大型系统可能有数千万行源代码。然而,复杂性很少在最低级别的代码之上测量,有时是源代码文件或低级别的模块。在本文中,一个层次的方法进行了探讨,以找到一组指标,可以衡量更高层次的组织。然后,这些指标被用于一些流行的免费软件包(总计超过2500万行代码),以检查它们的效率和一致性。
2011-05-11 cs.SE
Software Metrics Evaluation Based on Entropy
行业中的软件工程活动已经走过了漫长的道路,在软件开发生存周期的各个阶段都带来了各种改进。现代软件的复杂性、商业约束和对高质量产品的期望要求在软件开发的早期阶段基于面向对象设计度量在类级别上进行准确的故障预测。面向对象类度量在整个OO软件开发生存周期中被用作质量预测器,即使在采用高度迭代的增量模型或敏捷软件过程时也是如此。最近的研究表明,一些面向对象的设计指标是有用的预测类的故障倾向。在本文中,经验验证的一组度量提出的Chidamber和Kemerer进行评估他们的能力,在预测软件质量的故障倾向和退化。我们还提出了面向对象软件的设计复杂性与加权方法每类度量(WMC-CK度量)表示的香农熵,和错误倾向。
2010-01-20 cs.SE
Software search is not a science, even among scientists: A survey of how scientists and engineers find software
改进的软件发现是提高软件重用的先决条件:毕竟,如果某人找不到用于特定任务的软件,他们就不能重用它。了解人们寻找软件时的方法和偏好有助于改进软件发现的设施。我们调查了在几个科学和工程领域工作的人,以更好地了解他们的方法和选择标准。我们发现,即使在受过高级训练的人中,依赖一般网络搜索、同事意见和文献的基本方法仍然是最常用的。然而,那些参与软件开发的人在使用社会帮助网站、软件项目存储库、软件目录和组织特定的邮件列表或论坛方面与非开发人员不同。例如,我们样本中的软件开发人员更有可能在Stack Overflow等社区网站上搜索,即使在寻找现成的软件而不是源代码时,同样,在寻找现成的软件时,询问同事也更重要。我们的调查还深入了解了人们在寻找现成软件时最重要的标准。最后,我们的调查还确定了一些可能阻止人们找到软件的因素。
2018-05-28 cs.CY cs.SE
SRS BUILDER 1.0: An Upper Type CASE Tool For Requirement Specification
软件开发是一项劳动密集型活动。现代软件项目通常必须处理生产和管理大型和复杂的软件产品。开发这样的软件已经成为一项极具挑战性的工作,不仅是因为固有的复杂性,而且主要是因为经济上的限制,不像时间,质量,可维护性的问题。因此,在预算内开发现代软件仍然是主要的软件危机之一。降低软件开发成本的最重要的方法是在整个软件开发生存周期(SDLC)过程中使用计算机辅助软件工程(CASE)工具来代替昂贵的人力成本。我们认为,软件开发方法的自动化是一个宝贵的支持,软件工程师在应对这种复杂性,并提高质量太。本文展示了新开发的CASE工具名称为“SRS Builder 1.0”的软件需求规格说明在我们的大学实验室,北孟加拉大学,印度。本文介绍了我们新开发的产品及其功能和用途。我们相信该工具有潜力在软件开发过程中发挥重要作用。
2011-09-08 cs.SE
The cross cyclomatic complexity: a bi-dimensional measure for program complexity on graphs
降低和控制复杂性是软件设计中的一个基本实践。圈复杂度(CC)是最流行的软件度量之一,应用了40多年。尽管CC是一个突出程序中分支数量的有趣度量,但它显然不足以表示软件的复杂性。在本文中,我们介绍了交叉圈复杂度(CCC),一个新的二维复杂性的图,结合圈复杂度和最小重量的循环基的重量在笛卡尔计划的对来表征程序的复杂性使用控制流图。我们的假设打开了一个新的场所,代表程序的复杂性,我们讨论它的含义和机会。
2020-03-01 cs.PL cs.SE
Quantifying Competitive Relationships Among Open-Source Software Projects
Japan Advanced Institute of Science and Technology(日本科学技术高等学院);Faculty of ICT, Mahidol University(马希隆大学信息通信技术学院)
本研究提出MIAO方法,通过结构向量自回归模型量化开源软件项目间的竞争关系,准确预测项目停止开发。
2026-08-07 cs.SE
Automatizing Software Cognitive Complexity Reduction through Integer Linear Programming
本文针对代码认知复杂度降低问题,提出将重构操作序列建模为整数线性规划,利用高效求解器替代穷举枚举,以实现在大规模程序中的最优解。
2024-02-08 cs.CC cs.SE
A survey on the impact of emotions on the productivity among software developers
本研究通过两阶段调查结合偏最小二乘法分析,证实软件开发者情绪状态对感知生产力有强正向显著影响,强调情绪管理对提升开发生产力的重要性。
2025-10-06 cs.HC cs.SE
ComplexityMeasures.jl: scalable software to unify and accelerate entropy and complexity timeseries analysis
本文提出开源软件 ComplexityMeasures.jl,通过可组合设计高效实现 1638 种复杂度度量,在性能、度量数量、可靠性和可扩展性上优于现有替代软件,以统一并加速熵与复杂度时间序列分析。
2025-03-06 cs.IT cs.SE math.IT
Designing Adaptive Developer-Chatbot Interactions: Context Integration, Experimental Studies, and Levels of Automation
针对软件开发复杂度高、上下文多样且相关交互研究不足的问题,本研究探索基于上下文的开发者-聊天机器人自适应交互设计,以形成支持开发者工作的方案与知识。
2023-05-01 cs.SE
Exploring Dependence, Overreliance, and Addiction Related Behaviors Associated with Large Language Model Use Among Software Engineers
University of Calgary(卡尔加里大学);University of Hawaii at Manoa(夏威夷大学马诺阿分校);Universidade Federal Rural de Pernambuco (UFRPE)(伯南布哥联邦农村大学);Radboud University(拉德堡德大学)
本研究通过对119名软件从业者的调查,分析了工程师使用LLMs时的依赖、过度依赖及成瘾相关行为,发现LLMs已成为软件工程的习惯性工具,多数使用具功能性,需促进适当依赖。
2026-08-07 cs.SE
Do Personality Profiles Differ in the Pakistani Software Industry and Academia - A Case Study
从软件生存周期、团队绩效、软件质量属性等不同角度研究了软件工程中人格特征和人为因素的影响,并对学术界和工业界软件工程师的人格特征进行了比较。在这项调查中,我们收集了来自学术界和巴基斯坦当地行业的软件工程师的个性简介。根据Myers- Briggs Type Indicator(MBTI)仪器,巴基斯坦学者中最突出的个性类型是内向,感觉,思考和判断(ISTJ)的组合。然而,在巴基斯坦软件行业的软件工程师中,最主要的人格类型是外向、感觉、思考和判断(ESTJ)的组合。研究结果表明,在工业界工作的软件工程师大多是外向的,而学术界的软件工程师则倾向于内向。尺寸:然而,在巴基斯坦软件行业和学术界,感知、思考和判断(STJ)在软件工程师的主要人格类型中仍然很常见。
2015-07-24 cs.SE
Multi-objective Integer Linear Programming approach for Automatic Software Cognitive Complexity Reduction
University of Málaga(马拉加大学);Ayesa Advanced Digital Services Limited (ASDA)(阿耶萨高级数字服务有限公司)
本文提出多目标整数线性规划方法,用于自动降低软件的认知复杂度,通过平衡代码行数与复杂度来提升代码可维护性。
2026-01-29 cs.CL cs.SE
Identifying Critical Dependencies in Large-Scale Continuous Software Engineering
本文基于对两家北欧金融科技公司的访谈,识别出大规模持续软件工程中团队与支持职能及外部实体间的关键依赖是主要瓶颈,并计划探索相应协调机制。
2025-05-08 cs.SE
On the perceived relevance of critical internal quality attributes when evolving software features
本研究通过两项工业在线焦点小组案例,调查开发者对六种类级关键内部质量属性在软件功能演进时的相关性感知,明确了各属性的相关程度、原因及属性间关联,填补了相关认知空白。
2023-05-07 cs.SE
Engineering Trustworthy Software: A Mission for LLMs
该研究探讨大语言模型(LLMs)对软件工程的变革作用,指出其完全集成后能推动全生命周期进程,但需解决准确性、可扩展性等挑战以实现可信的LLM驱动软件工程。
2024-11-27 cs.SE
Testing Is Not Boring: Characterizing Challenge in Software Testing Tasks
本文通过调研软件测试专业人员,刻画测试任务中的挑战性来源及其影响,指出适度的创造力、学习与时间压力可提升动机,而挑战不足或负荷过高则带来挫败与疏离。
2025-07-27 cs.SE
Influence of Personality Types in Software Tasks Choices
根据心理学,不是每个人都能胜任所有的工作。因此,如果具有特定个性类型的人被分配到项目中他们喜欢的任务,那么软件开发成功的机会就会增加。同样,软件开发在很大程度上取决于软件从业者如何执行他们的任务。这项实证研究调查了100名古巴软件开发人员,他们也在古巴哈瓦那的信息科学大学任教或学习。这项工作的目的是找到可能的模式,链接个性类型的角色偏好在软件生存周期。在各种角色中,系统分析师,软件设计师和程序员被认为是最受欢迎的参与者。相比之下,软件测试人员和软件维护人员恰好是软件工程师中最不受欢迎的角色。
2015-11-13 cs.CY cs.SE