백과사전 상세 본문
분야 | 정보과학 |
---|
[1] 컴퓨터의 소프트웨어에 관한 과학의 총칭. 정보과학 중에 차지할 위치가 부여되어, 하드웨어와 대치된 소프트웨어에 관한 이론적 체계를 가리킨다. 계산이란 무엇인가, 알고리즘이란 무엇인가를 이론적으로 명확하게 한 튜링 기계와 계산 가능함수, 귀납적 함수를 중심으로 하는 수학기초론에서 출발하여, 기호논리학과 형식언어이론을 포함하고, 풀어야 할 문제의 명확한 기술·표현형식, 문제의 해법의 명확화와 그 기술형식에 대해서의 방법론을 주고, 이것들을 실제 컴퓨터 상에 실현하는 수법에 대해서의 이론적 기초를 주려고 하는 것이다.
소프트웨어가 복잡·거대해져서, 그 작성·유지에 많은 비용이 들게 됨과 동시에, 풀어야 할 문제 자체도 복잡해져, 생각할 수 있는 초고속 컴퓨터를 써서도 해를 얻는 데에 몇 년이나 걸린다고 한, 문제가 의논되도록 되어서, 이것들의 과제에 당면하기 위한 소프트웨어 과학의 발전이 한층 중요시되고 있다.
프로그램 의미론, 프로그램 증명론 등을 중심으로 하는 프로그램 이론, 계산복잡도의 이론 등은 그와 같은 입장에서 발전해 온 것이며, 그 구체적인 측면으로서 프로그래밍 방법론, 소프트웨어 설계법, 소프트웨어 검증기술, 소프트웨어 공학 등이 연구되어 있다. 특히, 계산량의 거대화에 대해서 컴퓨터 하드웨어의 속도가 쫓아가지 못하게 됨에 따라, 종래에 폰노이만형 컴퓨터에 병렬처리 컴퓨터와 분산처리가 주목을 받고 있으며, 이것들을 뒷받침 해주는 소프트웨어 이론의 발전이 요망되고 있다.
[2] 소프트웨어 설계법 분야. 할스티드(Halstead, M. H.)가 제창한 소프트웨어의 복잡도에 관한 모델. 소프트웨어 물리학(software physic)이라고도 한다. 소프트웨어의 계측되는 성질 일반에 대해서 실험적 그리고 이론적으로 고찰하기 위해 제창되었다. 프로그램에 나타나는 연산종류 η1, 연산 데이터의 종류 η2, 연산의 총출현수 N1, 연산 데이터의 총출현수 N2, 프로그램의 어휘수 η=η1+η2, 프로그램의 길이 N=N1+N2를 기본계량으로 하고, 다음과 같은 여러 양을 생각한다.
프로그램의 크기 V=N·log2η는 연산과 연산 데이터를 2진부호화하여 생각한 프로그램의 크기이며, 길이 N의 프로그램을 작성하기 위해 η개의 어휘를 2분 탐색에 의해 선택하는 판단의 총수로 해석된다.
다른 프로그램 언어를 쓰면 동치인 프로그램이 몇 가지로도 쓰이므로, 최소의 크기 V에 대해서 L=V*/V를 생각하고, 이것을 프로그램을 작성했을 때의 언어수준으로 생각한다. 프로그램 작성의 노력 E는 그 크기와 언어수준에 의존하므로, E=V/L=V2/V*로 생각한다. 또, 프로그램의 길이는 어휘수 η에서 추정되는 것으로 가정하고, 추론 길이를 N=η1·logη1+η2·log2η2라고 생각하면, 실험 데이터와 잘 일치한다.
프로그램의 최소의 크기는 V=(2+η2)·log2(2+η2)로 준다. 이것은 그 프로그램이 절차로서 등록을 마치고, 이름을 주는 것과 인수 η2개를 주면 좋다고 하는 경우를 생각한 것이다. 프로그램의 작성시간 T는 , T=E/S로 주어진다. S는 스트라우드(Stroud, J.)가 제안한 수로서, 1초에 되는 판단의 수를 나타내고, 실험결과에서 4<S<21 인 것으로 여긴다. 이상과 같은 고찰이 통계 데이터에 의해 검증되고 있다. 〈참조어〉 소프트웨어 정량평가
본 콘텐츠를 무단으로 이용하는 경우 저작권법에 따라 법적 책임을 질 수 있습니다.
위 내용에 대한 저작권 및 법적 책임은 자료제공처 또는 저자에게 있으며, Kakao의 입장과는 다를 수 있습니다.
컴퓨터/정보통신과 같은 주제의 항목을 볼 수 있습니다.
백과사전 본문 인쇄하기 레이어
[Daum백과] 소프트웨어 과학 – 컴퓨터 정보용어대사전, 한국사전연구사
본 콘텐츠의 저작권은 저자 또는 제공처에 있으며, 이를 무단으로 이용하는 경우 저작권법에 따라 법적 책임을 질 수 있습니다.