高能物理中的软件开发:传统软件工程的挑战与启示
1. 高能物理软件开发概述
现代高能物理(HEP)依赖计算机来处理和分析实验数据。如今的实验软件套件包含大量代码,使用如 C、C++、Java、Perl 等强大且复杂的语言编写。尽管成功程度有所不同,但 HEP 在开发自身软件方面总体较为成功。有观点认为,从未有实验因软件问题而失败,但这是否是对 HEP 软件开发者的赞誉仍有待探讨。
HEP 多年来编写和运行自己的软件,却未采用正式的软件工程方法。几代成功的实验产生了复杂的软件系统,并能适应探测器变化、用户和开发者更替以及硬件、操作系统和数据存储介质等基础技术的发展。非专业程序员在没有正式软件工程培训的情况下也能成功完成这些工作,这究竟是新手运气还是有其内在方法呢?
2. 传统软件工程简介
编写大型程序一直是个难题。早在 1958 年,就有关于大型计算机程序生产的会议论文出现。40 年前的一次会议提出了“软件工程”这一术语,当时软件项目面临完成延迟、超预算和产品不可靠等问题。
软件工程的基本理念是将坚实的工程原则应用于软件开发,使其更具可预测性和效率。然而,这更像是一个目标而非定义,且基于“坚实工程方法”存在和应用领域的可疑假设。软件工程的文献广泛,涵盖管理、过程控制、形式化方法、心理学和哲学等多个方面。
传统软件工程为实现软件生产的可预测性和效率,将软件开发过程划分为一系列明确定义且可控的步骤,可提前进行规划。但实际上,任何程序在实际应用中都需要根据预期用途和行为进行修改,软件工程推动者不得不接受软件生产活动无法一次性完成这些步骤的事实。
为应对变化,传统软件工程试图制定一种策略,避免或至少通过正式
超级会员免费看
订阅专栏 解锁全文
838

被折叠的 条评论
为什么被折叠?



