设计性语言(Design Language)是用于书写软件设计规约的语言,[1][2]其用于进行软件的概要设计及详细设计,描述对象是软件系统的内部结构,作用是为软件设计人员、项目管理人员、程序实现人员提供交流平台。[2]设计性语言把用户需求转化为软件系统,同时设计性语言也是软件工程和软件维护的基础。[4] 20世纪70年代以前,尤其在以ALGOL68为代表的高级语言出现前,软件开发基本以程序结构设计为主题,以控制流图和数据流图构成软件结构。[5]1973年,日本日立公司提出了问题分析图PAD,是一种图形工具。[6][7]20世纪70年代中后期,软件开发中开始出现概要设计与详细设计。[8]1975年,美国的S.Caine和K.Gordon提出了一种用于描述功能模块算法设计和加工细节的设计性程序语言。[9]1987年,中国徐家福教授等人提出了GSPEC语言,用于描述形式软件设计规约。[10][11]20世纪90年代后开始进入基于构件的软件开发阶段,软件体系结构开始作为一个明确的文档和中间产品存在于软件开发过程中。[8]1997年,统一建模语言正式面世,[12]同年,美国卡纳基梅隆大学的Robert J.Allen提出Wright系统,为描述和分析软件体系结构和结构化方法提供了一种实用工具。[8] 设计性语言主要分为图形化设计性语言、表格形式设计性语言、设计性程序语言、形式化的设计性语言等。[2][1]设计可分为软件总体设计和详细设计两个阶段。[3]总体设计是把需求转化为数据结构和软件体系结构,[13]详细设计指为结构设计中各个模块设计过程细节,确定模块所需的算法和数据结构等。[7]设计性语言代表语言主要包括接口定义语言、Larch语言、GSPEC语言、统一建模语言等。[14]软件语言除设计性语言外,还有需求定义语言、功能性语言、实现性语言、文档语言等。[15][16] 定义
设计性语言是一种用于书写软件设计规约的语言,用于软件的概要设计及详细设计。[1]它对软件设计进行严格而完整的陈述,一方面是细化软件功能规约算法,刻划软件“如何做”的内部算法,另一方面又是软件实现的依据。[16]其描述对象为软件系统的组织或其组成部分的内部结构,不同于重在定义软件系统及其组成部分的界面特性的功能语言。它也并不描述一个可以高效执行的软件的全部细节,因此有别于用于编程的程序设计语言。[1]