Real-world software applications must constantly evolve to remain relevant. This evolution occurs when developing new applications or adapting existing ones to meet new requirements, make corrections, or incorporate future functionality. Traditional methods of software quality control involve software quality models and continuous code inspection tools. These measures focus on directly assessing the quality of the software. However, there is a strong correlation and causation between the quality of the development process and the resulting software product. Therefore, improving the development process indirectly improves the software product, too. To achieve this, effective learning from past processes is necessary, often embraced through post mortem organizational learning. While qualitative evaluation of large artifacts is common, smaller quantitative changes captured by application lifecycle management are often overlooked. In addition to software metrics, these smaller changes can reveal complex phenomena related to project culture and management. Leveraging these changes can help detect and address such complex issues. Software evolution was previously measured by the size of changes, but the lack of consensus on a reliable and versatile quantification method prevents its use as a dependable metric. Different size classifications fail to reliably describe the nature of evolution. While application lifecycle management data is rich, identifying which artifacts can model detrimental managerial practices remains uncertain. Approaches such as simulation modeling, discrete events simulation, or Bayesian networks have only limited ability to exploit continuous-time process models of such phenomena. Even worse, the accessibility and mechanistic insight into such gray- or black-box models are typically very low. To address these challenges, we suggest leveraging objectively [...]
翻译:现实世界的软件应用必须持续演化以保持其相关性。这种演化发生在开发新应用或调整现有应用以满足新需求、进行纠错或融入未来功能的过程中。传统的软件质量控制方法涉及软件质量模型和持续代码检查工具。这些措施侧重于直接评估软件质量。然而,开发过程的质量与最终软件产品之间存在强相关性和因果关系。因此,改进开发过程也能间接提升软件产品质量。为实现这一点,需要从过往过程中进行有效学习,通常通过事后组织学习来达成。虽然对大型工件的定性评估很常见,但由应用生命周期管理捕获的较小规模定量变化却常被忽视。除软件度量外,这些较小变化还能揭示与项目文化和管理相关的复杂现象。利用这些变化有助于检测并解决此类复杂问题。软件演化此前通过变更规模来衡量,但由于缺乏对可靠且通用量化方法的共识,其无法作为可靠度量指标使用。不同的规模分类未能可靠地描述演化的本质。尽管应用生命周期管理数据丰富,但识别哪些工件能对有害管理实践进行建模仍不确定。诸如仿真建模、离散事件仿真或贝叶斯网络等方法,在利用此类现象的连续时间过程模型方面能力有限。更糟糕的是,这类灰盒或黑盒模型的可访问性和机制洞察力通常很低。为应对这些挑战,我们建议借助客观的[...]