有限的资源、市场需求以及软件功能实现的技术限制通常要求对需求进行优先级排序 [1–4]。优先级排序的重点是排序和选择未来软件版本中应包含的需求。优先级排序中的智能决策支持极其重要,因为尤其是在处理大量需求时,手动优先级排序过程往往会变得非常昂贵 [5–8]。潜在的次优优先级排序可能导致不同的负面影响,例如由于关注不相关的需求而浪费时间、由于未首先提供相关功能而产生机会成本,以及缺乏对市场需求的关注,在最坏的情况下可能导致全部损失 [9]。在这种情况下,优先级排序可以在战略层面以及操作层面进行,这通常与短期优先级排序任务相关 [10,11]。本章讨论的优先级排序方法基于约束推理与优化 [12]、基于效用的推荐 [13]、基于内容的推荐 [14]、矩阵分解 [15]、冲突检测 [16] 和基于模型的诊断 [17] 等领域的 AI 技术。图 2.1 给出了不同优先级排序任务的概述。这种分类基于两个维度。首先,需求水平
摘要 应用软件是关于逻辑、问题解决和创造力的。它基于用户需求。需求是最终用户和软件开发团队之间的桥梁。规划、数据收集、分析、设计、编程、测试、实施和维护过程是软件开发中使用的一些程序。在软件开发过程中,规划和需求分析具有相当大的风险。在 SDLC 的需求分析阶段开始出现的问题将持续存在于软件的整个生命周期中,使其成为 SDLC 的关键阶段。当在需求分析过程中使用自动化技术时,它可以降低软件开发的成本和持续时间。自然语言处理 (NLP) 有助于识别用户需求中的问题。使用监督分类方法(如 SVM、K-Nearest Neighbour 和 Naive Bayes 算法)以及文本向量化技术(如 BoW 和 TF-IDF)对软件需求进行分类和识别。本章的主要目的是在需求分析过程中识别用户需求问题并提供 AI 技术来克服这些问题。关键词:A.I.、ML、NLP、Python、SDLC
摘要 — 人工智能 (AI) 领域最近在研究、工具开发和应用部署方面出现了激增。多家软件公司正将重点转向开发智能系统;许多其他公司正在将 AI 范式部署到现有流程中。与此同时,学术研究界正在注入 AI 范式,为传统工程问题提供解决方案。同样,AI 显然已被证明对软件工程 (SE) 有用。当观察 SE 阶段(需求、设计、开发、测试、发布和维护)时,就会发现可以应用多种 AI 范式(例如:神经网络、机器学习、知识库系统、自然语言处理)来改进流程并消除 SE 领域面临的许多重大挑战。本章概述了应用于 SE 的最常见 AI 方法。这篇评论涵盖了 1975 年至 2017 年之间的方法,在需求阶段,发现了 46 种主要的 AI 驱动方法,其中 19 种用于设计,15 种用于开发,68 种用于测试,15 种用于发布和维护。此外,本章的目的有三方面:首先,回答以下问题:SE 生命周期中是否有足够的智能?将 AI 应用于 SE 需要什么?其次,测量、公式化和评估 SE 阶段和 AI 学科的重叠。最后,本章旨在提出严肃的问题,挑战当前最先进的传统观点(即现状),呼吁采取行动,并重新定义前进的道路。
数据驱动技术的兴起推动了人工智能 (AI) 的快速发展。自 2010 年以来,用于训练最大 AI 模型的计算能力大约每 6 个月翻一番 [62]。私人对人工智能的总投资是十年前的 10 倍多 [44]。软件工程 (SE) 研究人员越来越多地关注并为这一进步做出贡献。在审查 2022 年大型 SE 会场 1 上的论文时,我们估计有 33% 的论文在标题或摘要 2 中提到了 AI/ML/DL 术语。相比之下,2012 年这一比例为 4%。软件工程人工智能 (AI4SE) 和人工智能软件工程 (SE4AI) 的兴起要求 AI 安全成为 SE 研究人员关注的问题。人工智能安全是指避免受到人工智能的伤害。我们赞同以下论点:这里最紧迫的考虑是极限安全,即当人工智能开始在所有领域匹敌或超越人类能力时的安全性。此类系统的集合被称为高级机器智能 (HLMI) [ 21 ],类似于通用人工智能 (AGI) 或变革性人工智能 (TAI) 等概念。HLMI 安全性方面无法取得进展可能会带来灾难性的后果,包括人类的灭绝。SE 研究人员在加剧危险或帮助降低风险方面可以发挥作用。我们将讨论原因,并提供类似于现有 SE 问题的具体 AI 问题的有用概念。我们认为,尽管 AI4SE 工作有所增加,但高度先进的 AI 的安全影响在 SE 会议上很少被讨论。我们通过引用图来探索这一假设
可部署 要实现可部署,组件必须是自包含的。它必须能够作为独立实体在提供组件模型实现的组件平台上运行。这通常意味着组件是二进制的,在部署之前无需编译。如果组件作为服务实现,则不必由组件用户部署。相反,它由服务提供商部署。
最终的顶点项目由学习者在工作场所构思和执行。该项目将是一个基于学习者在软件工程中的工作角色的业务相关项目。将评估业务和变革管理、专业能力、领导力、技术管理和软件工程技能。该项目将以书面论文和口试结束,按照数字技术解决方案专家评估计划进行。
如今,软件扮演着双重角色。它既是一种产品,同时也是交付产品的载体。作为产品,它提供了计算机硬件或更广泛地说,可通过本地硬件访问的计算机网络所体现的计算潜力。无论是驻留在手机中还是在大型计算机内部运行,软件都是信息转换器 - 生成、管理、获取、修改、显示或传输信息,这些信息可以简单到单个比特,也可以复杂到多媒体演示。作为交付产品的载体,软件是控制计算机(操作系统)、信息通信(网络)以及创建和控制其他程序(软件工具和环境)的基础。软件提供了我们这个时代最重要的产品 - 信息。软件转换个人数据(例如个人的金融交易),使数据在本地环境中更有用;它管理商业信息以提高竞争力;它提供通往全球信息网络(例如互联网)的门户,并提供获取各种形式信息的手段。计算机软件的作用在短短 50 多年的时间跨度内发生了重大变化。硬件性能的显著改进、计算架构的深刻变化、内存和存储容量的大幅增加以及各种奇特的输入和输出选项都促成了更复杂和更复杂的基于计算机的系统。早期的孤独程序员已被一组软件专家所取代,每个专家都专注于提供复杂应用程序所需的技术的一部分。然而,在构建现代计算机系统时,程序员也会被问到同样的问题:1)为什么软件开发需要这么长时间才能完成?
宾州州立大学比兰德分校的软件工程理学士学位已获得 ABET 工程认证委员会 (https://www.abet.org) 的通用标准和软件工程项目标准认证。
模块代码标题必需CS603严格的过程CS605C/SCS607要求工程&CS608System Sotware测试CS610互动设计CS6113 CS613对象 - 对象 - 对象 - cs615(c)Internet SolutionsCS615(C)cs6161621621622 CS640项目
学位计划软件工程的对象重点介绍了系统制造和开发软件的基础知识和技术。学生学习复杂和大规模软件系统的工程开发和应用的原理,方法和工具。软件工程涵盖了整个过程,从确定要求到实施和维护IT解决方案。目标是可靠的软件的概括供应,并以计算成本保证质量特征。为了实现这一目标,实用的计算机科学方法与管理方法相结合。因此,硕士学位计划软件工程和管理的毕业生在软件开发领域具有深入的技术和科学专业知识,并且在管理领域的深入经济和科学专业知识。学位课程旨在在确保广度和跨学科的性质的同时提供专业化,并以他们的思维,决定和行动方式增加学生的独立性和主动性。