通过软件设计快速Safari浏览器
Quick Safari Through Software Design
摘要:
这是一个关于不同软件设计方法的简短教程。
英文摘要:
This is a short tutorial about different software design methodologies.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。
Quick Safari Through Software Design
Reza Rahimi
这是一个关于不同软件设计方法的简短教程。
This is a short tutorial about different software design methodologies.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。
继续探索
pyRecLab: A Software Library for Quick Prototyping of Recommender Systems
本文介绍了pyRecLab,一个用C++编写的软件库与Python绑定,允许快速训练,测试和开发推荐系统。虽然有几个软件库用于此目的,但只有少数几个可以让开发人员快速开始使用最传统的方法,允许他们尝试不同的参数并处理多个任务,而不会显着降低性能。在少数几个具有所有这些功能的库中,它们可以在Java,Scala或C#等语言中使用,这对于经验不足的程序员来说是一个缺点,他们更习惯于流行的Python程序设计语言。在这篇文章中,我们将详细介绍pyRecLab,并从错误度量(MAE和RMSE)和训练/测试时间方面进行性能分析。我们将其与流行的基于Java的库LibRec进行基准测试,结果相似。我们希望经验不足的程序员和对快速原型化推荐系统感兴趣的人能够从pyRecLab中受益。
10 quick tips for making your software outlive your job
针对研究软件项目因人员流失、尤其当前政治经济变化引发的大规模非自愿离职导致软件被弃置的问题,本文提出十条建议,保障研究人员离职后其开发的软件仍可使用。
Twelve Quick Tips for Managing IT Disasters in Small Research Software Teams
本文为非资深系统管理员的小型研究软件团队提供十二条IT灾难规划与恢复建议,明确“完成”标准,并提示可借助机构相关团队协助。
A Road Map to Bio-inspired Software Engineering
软件生产研究正在两种并行的方法上快速发展:传统和生物启发。生物启发的方法通常被开发和呈现为常规方法的增强。传统的方法通过软件工程方法学与全局环境相结合而具有优势,而生物启发方法与生物启发软件工程方法学的结合将丰富传统方法,使其无可辩驳地成为最好的方法。本文分析了这种仿生软件工程出现的原因,提出了第一种方法,并给出了路线图和一些挑战,最后给出了第一种方法在不同软件系统类别上的应用及其简要评价。然而,工业规模的评价仍然是一个挑战。
AZ Model for Software Development
了解一天计算机系统成为必不可少的,它是最常用的生活的各个领域。计算机节省时间和使用,以有效的方式快速解决复杂和广泛的问题。为此,开发软件程序以促进管理员,办公室,银行等的工作,因此质量是最重要的因素,因为它主要定义客户满意度,直接关系到项目的成功,因此偶尔会开发许多方法(方法)。本文的主要研究内容是提出一种新的软件开发方法,该方法以各种产品的质量改进为中心。本研究还将讨论传统方法的特点和局限性,如瀑布,迭代,螺旋,RUP和敏捷,并显示新的创新方法是如何优于以前的。
Harnessing customized built-in elements -- Empowering Component-Based Software Engineering and Design Systems with HTML5 Web Components
本研究探讨了HTML5定制化内置元素在基于组件的软件工程与设计系统中的作用,分析了其在提升代码模块化、可重用性方面的优势及面临的兼容性等挑战,并指出其是推动Web应用创新的核心驱动力。
Estimation and Prediction of technical debt: a proposal
技术债务是一个隐喻,用来表达这样一种想法,即在设计和构建软件时,以“快速而肮脏”的方式做事会导致越来越多的延迟未来费用。与金融债务类似,技术债务要求以额外发展努力的形式支付利息,如果没有做出快速和肮脏的设计选择,这种额外发展努力本可以避免。技术债适用于软件开发的所有方面,从最初的需求分析到部署和软件演化。从科学和工业的角度来看,技术债务正变得非常普遍。特别是,近年来相关论文的数量有所增加。相关工具的数量以及在行业中的采用也在增加,特别是因为技术债务非常昂贵,因此需要管理。然而,估计技术债务的技术是不充分的,因为它们主要集中在需求,代码和测试上,而忽略了关键的工件,如软件架构和软件使用的技术。此外,尽管其高度相关性,技术债务预测是技术债务的最少探索的方面之一。为了解决这些缺点,我必须进行研究:1)改进现有技术以正确估计技术债务; 2)确定使用预测技术来预测并避免技术债务的程度可以帮助公司节省资金并避免未来几年的潜在破产。拟议中的研究可以通过帮助公司节省数百万美元来产生重要的经济影响。它可以产生重大的科学影响,导致关键的发现,将通过专利,著名的科学期刊和会议传播。
A deep tree-based model for software defect prediction
缺陷在软件系统中是常见的,并且可能对软件用户造成各种问题。已经开发了不同的方法来快速预测大型代码库中最可能的缺陷位置。他们中的大多数专注于设计与潜在缺陷代码相关的功能(例如复杂性度量)。然而,这些方法不足以捕获源代码的语法和不同级别的语义,这是构建准确预测模型的重要能力。在本文中,我们开发了一种新的预测模型,它能够自动学习的功能,代表源代码,并使用它们的缺陷预测。我们的预测系统是建立在强大的深度学习,树结构的长短期记忆网络,直接匹配源代码的抽象树表示。对两个数据集的评估,一个来自三星贡献的开源项目,另一个来自公共PROMISE存储库,证明了我们的方法对项目内和跨项目预测的有效性。
Empirically Driven Design of Software Development Processes for Wireless Internet Services
由于极端的上市时间压力、应用领域的新颖性和技术基础设施的快速发展,在互联网上开发无线服务软件是一项具有挑战性的任务。然而,以可预测的方式开发预定质量的软件只能通过系统的开发过程和使用工程原理来实现。因此,迫切需要这一领域的系统发展进程。本文提出了一种基于相关领域现有实践、工业试验和专家知识的自适应软件开发过程的设计方法。描述了用于无线互联网服务域的方法的应用的第一结果。对读者的好处是双重的:本文描述了一种经过验证的方法,介绍了如何快速和渐进地获得即将到来的领域的过程知识。此外,无线互联网服务域的过程设计的第一个结果。
A Pilot Study on Detecting Software Design Patterns with Large Language Models: An Empirical Evaluation
本文评估了四种大语言模型和两种集成方法在检测五种设计模式(单例、适配器、桥接、组合和装饰器)中的性能,发现NextCoder和Gemma 3在准确性上表现更优,集成方法提升了整体效率。
C2HLSC: Leveraging Large Language Models to Bridge the Software-to-Hardware Design Gap
针对高级综合工具C代码兼容性受限的问题,提出基于大语言模型的C2HLSC自动化重构框架,通过预处理拆解层级、迭代反馈优化将C代码转为HLS兼容格式,在多类基准上验证了高成功率,可处理复杂度远超现有LLM生成Verilog方案的设计。
Design and Implementation of Knowledge Base for Runtime Management of Software Defined Hardware
与可重构硬件耦合的运行时可重构软件作为在不损害可编程性的情况下最大化运行时效率的手段是高度期望的。这种软件系统的编译器非常难以设计,因为它们必须在运行时利用不同类型的硬件。为了解决静态和动态编译器优化的工作流匹配到动态可重构硬件的需要,我们提出了一种新的设计的软件定义硬件的动态软件编译器的中心组件。我们的综合设计不仅关注静态知识,而且关注从程序执行中半监督地提取知识并开发其性能模型。具体地,我们的新颖的{\it动态和可扩展的知识库} 1)在工作流的执行期间连续地收集知识2)识别在{\it最优}(可用)硬件配置上的工作流的{\it最优}实现。它在存储来自编译器的其他组件以及人类分析师的信息以及向其提供信息方面扮演着枢纽角色。通过丰富的三分图表示,知识库捕获并学习有关代码步骤到内核的分解和映射以及内核到可用硬件配置的映射的广泛信息。知识库使用C++ Boost库实现,能够快速处理离线和在线查询和更新。我们表明,我们的知识库可以回答查询$1ms$,无论它存储的工作流的数量。据我们所知,这是第一个设计的动态和可扩展的知识库,以支持编译的高级语言,以利用任意的可重构平台。
hlslib: Software Engineering for Hardware Design
高级综合(HLS)工具使FPGA开发成为主流,允许程序员使用熟悉的语言(如C、C++和OpenCL)设计架构。虽然转向这些语言带来了显着的好处,但传统软件工程的许多方面仍然不受支持,或者在实践中没有被开发人员利用。此外,设计可重新配置的架构需要支持硬件结构,如FIFO和移位寄存器,这些不是面向CPU的语言所固有的。为了解决这个问题,我们开发了hlslib,这是一个软件工具、插件硬件模块和代码示例的集合,旨在提高HLS开发人员的生产力。hlslib的目标有两个:首先,创建一个社区驱动的前沿开发舞台,它可以更快地移动,并提供比供应商提供的更强大的抽象;其次,收集广泛的示例代码,既有最小的概念证明,也有更大的现实世界应用程序,可以直接重用或启发其他工作。hlslib是作为一个开源库提供的,包含CMake文件、C++头文件、方便的脚本和示例代码,并且通过通用功能或示例接受任何可以使HLS开发人员受益的贡献。
Software Engineering for AI-Based Systems: A Survey
基于AI的系统是具有由至少一个AI组件(例如,用于图像和语音识别以及自动驾驶)。由于人工智能的进步,基于人工智能的系统在社会中变得越来越普遍。然而,有有限的综合知识的软件工程(SE)的方法来构建,操作和维护基于AI的系统。为了收集和分析关于基于AI的系统的SE的最新知识,我们进行了系统的映射研究。我们考虑了2010年1月至2020年3月期间发表的248项研究。基于人工智能系统的SE是一个新兴的研究领域,自2018年以来,已有超过2/3的研究发表。基于AI的系统研究最多的属性是可靠性和安全性。我们为基于AI的系统确定了多种SE方法,并根据SWEBOK区域进行了分类。与软件测试和软件质量相关的研究非常普遍,而软件维护等领域似乎被忽视。与数据有关的问题是最经常出现的挑战。我们的研究成果对以下方面有价值:研究人员,快速了解最新技术水平并了解哪些主题需要更多研究;从业者,了解SE为基于AI的系统带来的方法和挑战;以及教育工作者,在他们的课程中弥合SE和AI之间的差距。
扫码添加微信好友,提出您的宝贵建议 👇
💡 备注请填写:网站反馈
发表机构由 AI 从论文文本抽取,如发现错误,欢迎反馈修正建议。