什么是软体工程 (Software Engineering)?我们还需要它吗?

软件工程的範围极其广泛。软件工程的某些方面可以归类为数学或计算机科学;其他方面属于经济、管理或心理学领域。为了展示软件工程的广泛领域。

无论我们是处理计费还是防空事务电脑糸统,我们的大部分软件交付延迟、超出预算并存在残余故障,无法满足客户的需求。软件工程就是试图解决这些问题。换句话说,软件工程是一门学科,其目标是生产无故障的软件,在预算範围内按时交付,满足客户的需求。此外,当用户的需求发生变化时,软件必须易于修改。

发电机偶然发生故障是一个事实,但频率远低于各类型软件糸统, 不是吗? 桥樑有时会崩溃,但比操作软件系统时崩溃要少得多。1967 年,北约的一个研究小组认为软件设计、实施和维护可以与传统工程学科处于同一地位,因此创造了软件工程 (Software Engineering) 一词。1968 年在加米施举行的北约软件工程会议认可了构建软件类似于其他工程任务的说法,

软件工程反映了这样一种信念,即软件生产应该是一种类似工程的活动, 软件工程应该使用已建立的工程学科的哲学和範式来解决软件质量普遍低得令人无法接受,并且没法截止日期和预算内完成。

儘管有许多软件成功案例,但仍有很大比例的软件产品交付延迟、超出预算并带有残余故障。例如,Standish Group 是一家分析软件开发项目的研究公司。

http://img2.58codes.com/2024/20109081B46hGQqgjQ.png

他们对 2006 年完成的开发项目的研究总结在图 [Rubenstein, 2007] 中。只有 35% 的项目成功完成,而 19% 在完成前被取消或从未实施。其余 46% 的项目已完成并安装在客户的计算机上。但是,这些项目超出预算、延迟或特性和功能少于最初指定的。换句话说,在 2006 年,只有三分之一以上的软件开发项目是成功的;几乎一半的项目表现出一种或多种问题

软件危机的财务影响是可怕的。在Cutter Consortium[2002]进行的调查中,报告了以下内容:

令人震惊的是,78%的资讯技术组织捲入了以诉讼告终的纠纷。在67%的情况下,交付的软体产品的功能或效能不符合软体发展人员的要求。在56%的情况下,承诺的交付日期多次下滑。在45%的情况下,故障非常严重,软体产品无法使用。

很明显,按时交付的软件太少,在预算範围内,无故障,满足客户需求。为了实现这些目标,软体工程师必须掌握广泛的科技和管理技能。这些技能不仅要应用于程式设计,还要应用于软件生产的每一个步骤,从需求到交付后维护。

http://img2.58codes.com/2024/20109081wD8A2DichQ.png

从图中可以看出,即使到现在,软件系统的成功率也没有太大的提高。但公平地说,软件的发展速度越来越複杂,我们的生活离不开它们。这就是为什么在过去的几十年裏出现了这么多不同的软体发展方法。

这里有一些相关的软体发展资源

Agile Software DevelopmentWhat is Agile Software Development?What is User Story?What is User Story Mapping?User Story vs Use Case for Agile Software DevelopmentUse Case Driven Approach for Agile DevelopmentThe Best Automated LeSS Framework Tool for Agile Project ManagementSoftware Process ModelWhat is a Software Process Model?Adaptive vs Predictive Planning: When Agile? When Waterfall?What is Software Development Lifecycle?UX DesignWireframe vs Storyboard vs Wireflow vs Mockup vs PrototypingHow to Use Wireframes with User Stories?UX Design: Wireframe vs Storyboard vs Wireflow vs Mockup vs PrototypingRequirements GatheringRequirement Analysis Techniques

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章