浅谈计算机应用软件开发技术

2018-07-27 14:38:55

计算机应用软件是指,人们以所需解决的问题为出发点,利 用计算机自身的逻辑运算功能,使用计算机语言及各种程序语 言进行应用程序的编写,将多个应用程序按照实际需求进行组 合而形成的程序集合。应用软件是人与计算机间的重要沟通渠 道,能大幅拓宽计算机的应用范围,使计算机技术与各行各业建 立联系成为现实,是社会信息化的技术基础。因此,在信息化的 时代背景下,对计算机应用软件技术进行探讨具有重要意义。

1 “软件工程”概述

1.1 “软件工程”概念的提出 20 世纪中期,人们在对大型系统软件进行开发的过程中, 大多采用手工操作进行软件开发,在这种工作模式下,人们的工 作效率低下,开发过程中出错频繁。随着社会的不断发展,这种 传统的软件开发过程中的问题也逐渐明显,造成“软件危机”。第 一,软件日益复杂化。由于计算机功能的不断完善,人们对计算 机软件的功能要求也随之增长,这直接导致软件开发人员的工 作量出现大幅增长,计算机软件的开发过程呈现出一种日益复 杂化的趋势。这一问题是其他三个问题的直接原因。第二,软件 开发成本升高。在计算机软件的开发过程中,由于其所表现出的 复杂化趋势,软件开发所需的人力物力等各项资源也在不断增 多,使软件开发成本不断升高。第三,开发周期延长。软件的复杂 化,不仅延长了人们分析软件的时间,也使工作人员在编写单一 程序的时间延长,从而导致整个软件开发周期大幅延长。另外, 在对软件进行校正的过程中,复杂软件需要更长的校正时间,进 一步增加了软件开发所需时间。第四,维护工作难度增大。一方 面,软件的不断复杂化,必将导致程序编码过程中的逻辑错误越 来越多,增大编程人员的工作量 ;另一方面,用户对于软件的使 用要求也在不断提高,给编程工作人员提出了更高的要求。

1.2 “软件工程”中的软件开发流程 “软件工程”是利用人们的工程处理方法来处理软件开发问 题,故软件开发流程与工程的整个生命周期类似,可将软件开发 分为定义、开发及维护三个阶段。首先,应分析软件需求,结合现 今技术水平,对该软件的开发过程进行可行性分析,即对软件进 行定义。第二,根据软件任务书进行软件开发,包括对程序的编 写和逻辑校正过程。第三,在软件投入使用的过程中,通过用户 反馈等途径了解用户的满意度,针对使用过程中的问题及时进 行修正,使整个软件不断完善,为用户提供更优质的使用体验 

1.3 “软件工程”的独特之处 “软件工程”在借鉴工程处理方法的同时,也表现出不同于 其他工程科学的独特之处,具体体现在两个方面。第一,流程更 为复杂。建筑工程在产生设计图纸后,其整体进程是按部就班, 逐级向下进行任务落实,任务内容也是不断递增,后一个任务必 然建立在前一个任务成功的基础上,因此建筑工程流程图中不 存在回溯现象。但在“软件工程”的开发过程中,软件开发的复杂 性决定了整个过程的反复性。在进行程序编写过程中,工作人员 必须对程序进行多次运行测验,不断减少编程过程中的 Bug(即 逻辑错误),使整个软件程序在反复校正过程中逐步完善,从而 使软件更好地迎合开发需求,提高软件适应性。第二,工程建筑 的最终目的在于完工,工程完工就意味着工作的结束。而开发软 件在投入使用后,还需要在相当长的一段时间里对其进行运行 维护,使之更好地满足用户需求。例如对运行过程中显露出的隐 藏错误进行改正完善,根据软件运行环境即计算机系统的变化 对软件的相关方面进行调整等,都属于软件维护工作。

2 计算机应用软件开发技术的发展阶段

软件危机不仅促进了“软件工程”概念的提出,也为软件开 发技术提供了良好发展契机。软件开发技术的发展历程可分为 以下三个阶段 :

2.1 过程化技术阶段 这一阶段是利用计算机对人工计算方法进行模拟,工作人 员多为专业能力强的科学家,技术含量相对较低。在过程化技术 阶段,软件开发的主要目的只是为了解决计算量大、人工无法实 现的科学计算。

2.2 结构化技术阶段 结构化技术相较于过程化技术的创新主要体现在两个方 面。第一,对软件功能先分解后合成。结构化技术要求人们在软 件开发过程中,针对软件功能进行“分解 - 重组”操作,提高软件 开发可行性。第二,数据类型的更新。结构化技术在原有基本数 据类型的基础上,添加定义了多种复杂的新型数据类型,增加逻 辑关系、数据存储结构的多样性。 结构化技术在开发需求确定不变的情况下,具有明显优势。 但随着计算机技术的不断发展进步,软件开发的需求及目标不 断发生变更,这种变更往往会引发一系列连锁反应,使软件开发 的工作量大幅增加,同时还将导致软件维护难度的提高。

2.3 面向对象技术阶段 面向对象技术是软件开发技术的革新,具有划时代的意义。 面向对象技术的核心已经从“功能和数据”转向这一软件的主要 受众对象,其利用的技术方法也是以继承派生、虚拟重载为主。 这种对象及方法的转变,大大改善了之前软件开发过程中对需 求的过度依赖现象。面向对象技术的大力应用,有效提升了应用 软件的使用范围,延长使用周期。面向对象技术的应用并不意味 着全盘否定结构化技术,它是结构化技术的进一步扩展延伸,在 面向对象技术中,仍可以使用到结构化技术中的方法技巧。计算机应用软件是指,人们以所需解决的问题为出发点,利 用计算机自身的逻辑运算功能,使用计算机语言及各种程序语 言进行应用程序的编写,将多个应用程序按照实际需求进行组 合而形成的程序集合。应用软件是人与计算机间的重要沟通渠 道,能大幅拓宽计算机的应用范围,使计算机技术与各行各业建 立联系成为现实,是社会信息化的技术基础。因此,在信息化的 时代背景下,对计算机应用软件技术进行探讨具有重要意义。

1 “软件工程”概述

1.1 “软件工程”概念的提出 20 世纪中期,人们在对大型系统软件进行开发的过程中, 大多采用手工操作进行软件开发,在这种工作模式下,人们的工 作效率低下,开发过程中出错频繁。随着社会的不断发展,这种 传统的软件开发过程中的问题也逐渐明显,造成“软件危机”。第 一,软件日益复杂化。由于计算机功能的不断完善,人们对计算 机软件的功能要求也随之增长,这直接导致软件开发人员的工 作量出现大幅增长,计算机软件的开发过程呈现出一种日益复 杂化的趋势。这一问题是其他三个问题的直接原因。第二,软件 开发成本升高。在计算机软件的开发过程中,由于其所表现出的 复杂化趋势,软件开发所需的人力物力等各项资源也在不断增 多,使软件开发成本不断升高。第三,开发周期延长。软件的复杂 化,不仅延长了人们分析软件的时间,也使工作人员在编写单一 程序的时间延长,从而导致整个软件开发周期大幅延长。另外, 在对软件进行校正的过程中,复杂软件需要更长的校正时间,进 一步增加了软件开发所需时间。第四,维护工作难度增大。一方 面,软件的不断复杂化,必将导致程序编码过程中的逻辑错误越 来越多,增大编程人员的工作量 ;另一方面,用户对于软件的使 用要求也在不断提高,给编程工作人员提出了更高的要求。

1.2 “软件工程”中的软件开发流程 “软件工程”是利用人们的工程处理方法来处理软件开发问 题,故软件开发流程与工程的整个生命周期类似,可将软件开发 分为定义、开发及维护三个阶段。首先,应分析软件需求,结合现 今技术水平,对该软件的开发过程进行可行性分析,即对软件进 行定义。第二,根据软件任务书进行软件开发,包括对程序的编 写和逻辑校正过程。第三,在软件投入使用的过程中,通过用户 反馈等途径了解用户的满意度,针对使用过程中的问题及时进 行修正,使整个软件不断完善,为用户提供更优质的使用体验 

1.3 “软件工程”的独特之处 “软件工程”在借鉴工程处理方法的同时,也表现出不同于 其他工程科学的独特之处,具体体现在两个方面。第一,流程更 为复杂。建筑工程在产生设计图纸后,其整体进程是按部就班, 逐级向下进行任务落实,任务内容也是不断递增,后一个任务必 然建立在前一个任务成功的基础上,因此建筑工程流程图中不 存在回溯现象。但在“软件工程”的开发过程中,软件开发的复杂 性决定了整个过程的反复性。在进行程序编写过程中,工作人员 必须对程序进行多次运行测验,不断减少编程过程中的 Bug(即 逻辑错误),使整个软件程序在反复校正过程中逐步完善,从而 使软件更好地迎合开发需求,提高软件适应性。第二,工程建筑 的最终目的在于完工,工程完工就意味着工作的结束。而开发软 件在投入使用后,还需要在相当长的一段时间里对其进行运行 维护,使之更好地满足用户需求。例如对运行过程中显露出的隐 藏错误进行改正完善,根据软件运行环境即计算机系统的变化 对软件的相关方面进行调整等,都属于软件维护工作。

2 计算机应用软件开发技术的发展阶段

软件危机不仅促进了“软件工程”概念的提出,也为软件开 发技术提供了良好发展契机。软件开发技术的发展历程可分为 以下三个阶段 :

2.1 过程化技术阶段 这一阶段是利用计算机对人工计算方法进行模拟,工作人 员多为专业能力强的科学家,技术含量相对较低。在过程化技术 阶段,软件开发的主要目的只是为了解决计算量大、人工无法实 现的科学计算。

2.2 结构化技术阶段 结构化技术相较于过程化技术的创新主要体现在两个方 面。第一,对软件功能先分解后合成。结构化技术要求人们在软 件开发过程中,针对软件功能进行“分解 - 重组”操作,提高软件 开发可行性。第二,数据类型的更新。结构化技术在原有基本数 据类型的基础上,添加定义了多种复杂的新型数据类型,增加逻 辑关系、数据存储结构的多样性。 结构化技术在开发需求确定不变的情况下,具有明显优势。 但随着计算机技术的不断发展进步,软件开发的需求及目标不 断发生变更,这种变更往往会引发一系列连锁反应,使软件开发 的工作量大幅增加,同时还将导致软件维护难度的提高。

2.3 面向对象技术阶段 面向对象技术是软件开发技术的革新,具有划时代的意义。 面向对象技术的核心已经从“功能和数据”转向这一软件的主要 受众对象,其利用的技术方法也是以继承派生、虚拟重载为主。 这种对象及方法的转变,大大改善了之前软件开发过程中对需 求的过度依赖现象。面向对象技术的大力应用,有效提升了应用 软件的使用范围,延长使用周期。面向对象技术的应用并不意味 着全盘否定结构化技术,它是结构化技术的进一步扩展延伸,在 面向对象技术中,仍可以使用到结构化技术中的方法技巧。