软件方法学是软件开发全过程的指导原则与方法体系。其另一种含义是以软件方法为研究对象的学科。从开发风范上看,软件方法有自顶向下的开发方法、自底向上的开发方法。在实际软件开发中,大都是自顶向下与自底向上两种方法的结合,只不过是以何者为主而已。
简介软件方法学(SoftWare Methodology)是以方法为研究对象的软件学科。主要涉及指导软件设计的原理和原则,以及基于这些原理、原则的方法和技术。狭义的也指某种特定的软件设计指导原则和方法体系。不论何种含义,其关注的中心问题是如何设计正确的软件和高效率地设计软件。软件方法学的目的是寻求科学方法的指导,使软件开发过程“纪律化”,即要寻找一些规范的“求解过程”,把软件开发活动置于坚实的理论基础之上。软件工程与软件方法学的方法不同,软件工程是侧重于借鉴传统工程学科,最终目的是把软件生产变成一门制造工程。两者之间的关系是软件工程需要软件方法学为依据和指导;方法学依赖于软件工程,特别是环境工具来发挥实际效用。
分类从性质上看,软件方法学有形式方法与非形式方法。形式方法是一种具有坚实数学基础的方法,从而允许对系统和开发过程作严格处理和论证。非形式方法则不把严格性作为其主要着眼点。从适用范围来看,有整体性方法与局部性方法,适用于软件开发全过程的是整体性方法,自顶向下方法、自底向上方法、各种软件自动化方法等均为整体性方法。适用于开发过程个别阶段的为局部性方法,如适用于需求分析阶段的各种需求分析方法,适用于设计阶段的各种设计方法等。此外,由于程序设计方法的发展相对较为成熟,从而早在软件方法学出现以前,就出现了程序设计方法学,它研究各类程序设计方法, 如过程式程序设计、 逻辑式程序设计、函数式程序设计、对象式(面向对象)程序设计、以及顺序程序设计、并发程序设计、并行程序设计、分布程序设计、可视程序设计、文化程序设计等等。
软件计算机软件是由专业人员开发并长期维护的软件产品,是指计算机系统中的程序、数据及其文档。程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料1。程序必须装入机器内部才能工作 ,文档一般是给人看的,不一定装入机器。细言之,软件一词具有三层含义。一为个体含义,即指计算机系统中的程序及其文档;二为整体含义,即指在特定计算机系统中所有上述个体含义下的软件的总体。三为学科含义,即指在研究、开发、维护以及使用前述含义下的软件所涉及的理论、方法、技术所构成的学科。在这种含义下,软件宜称为软件学,但一般仍称作软件。软件一词源于程序,到了20 世纪60 年代初期 ,人们逐渐认识到和程序有关的文档的重要性,从而出现了软件一词。软件是用户与硬件之间的接口界面。要使用计算机,就必须编制程序, 必须有软件。用户主要是通过软件与计算机进行交往。软件是计算机系统设计的重要依据。为了方便用户,为了使计算机系统具有较高的总体效用,在设计计算机系统时,必须通盘考虑软件与硬件的结合,以及用户的要求和软件的要求。发展计算机科学技术,软件和硬件都是不可缺少的重要方面。二者既有分工,又有配合。软件的发展以硬件为基础,其发展也促进了硬件、计算机科学技术、 以及其它科学技术的发展。它在社会信息化和人类文化的发展中具有重要作用。
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学