대부분의 소프트웨어들은 다양한 기능을 갖고 있다. 그리고 이 기능들은 보 통 메뉴 형식으로 제공되며 하나의 메뉴마다 세부 메뉴들을 제공한다. 이러한 메뉴들은 소프트웨어가 제공하는 모든 기능들을 표시한다. 세부 메뉴들로 구성 된 상위 메뉴들은 하나의 소프트웨어 기능-기능 네트워크라고 할 수 있다. 상 위 메뉴 각각은 소프트웨어 내부 네트워크의 핵심 행위자들이며 그 각각의 세 부 메뉴들과 기능-기능 네트워크를 형성하고 있다. <표 7>은 ‘글 2014’의 인 터페이스에서 제공되고 있는 기능들을 상위 메뉴로 묶어 제시한 것이다. <표 7>과 같이 ‘글 2014’의 경우 파일, 편집, 보기, 입력, 서식, 쪽, 보안, 검토, 도구 등 9개의 상위 메뉴가 소프트웨어 인터페이스 상단에 제시된다. 이 9개의 상위 메뉴들의 행위자는 각각의 세부 메뉴들이다. 또, 각각의 세부 메뉴들은 그 아래에 하위 메뉴를 갖기도 한다. ‘글 2014’의 경우 상위 메뉴 ‘파일’ 아래에
‘새 문서’가 있고 그 아래에 ‘새 탭’, ‘글 2014 문서’, ‘글 2007 호환문서’,
‘MS 워드 호환문서’, ‘문서마당’, ‘셀 문서’, ‘쇼 문서’ 등을 하위 메뉴로 갖 고 있다. 이들은 각각 소프트웨어 기능-기능 네트워크에 속하는 행위자라고 할 수 있다.
각각의 기능들은 상위 메뉴에 묶여 독립되어 있는 듯이 보이지만, 소프트웨 어를 이용하는 중간에 각 기능들이 서로 연계되어 등장한다. 예를 들어, 표 작
성 작업을 할 경우, 상위 메뉴 입력에서 세부 메뉴를 표를 선택해 작업하는 것 과 함께 표라는 상위 메뉴가 생기면서 세부 메뉴들이 생성된다. 표라는 기능 네트워크가 화면상에 등장하는 것이다. 단축키나 마우스 버튼을 활용한 입력 시에도 해당 기능과 관련된 세부 메뉴들이 화면에 표시된다. 예를 들어 ‘alt + p’라는 단축키를 입력할 경우 인쇄 기능의 세부 메뉴들이 제시되면서 인쇄라는 기능 네트워크가 활성화된다. 상위 메뉴는 세부 메뉴들의 매개자 역할을 하는 대변인이라고 할 수 있다. 세부 메뉴의 행위자들이 기입한 내용을 상위 메뉴들 이 기술하고 있는 것이다.
상위 메뉴 세부 메뉴
파일
새 문서*, 호환문서, XML문서*, 불러오기, 저장하기, 다른 이름으로 저장하기, PDF로 저장하기, 모바일 최적화 문서로 저장하기, 편집 용지, 미리 보기, 인쇄, 문서정보, DAISY 문서*, 점자로 바꾸기*, 보내기, 문서 닫기, 끝
편집
되돌리기*, 다시 실행, 오려 두기, 복사하기, 붙이기, 골라 붙이기, 모양 복사, 지우기, 조판 부호 지우기, 모두 선택, 찾기*, 개인 정보 바꾸기*, 글자 바꾸기*, OLE 연결, OLE 개체 속성, 고치기
보기 화면 확대, 쪽 윤곽, 표시/숨기기*, 메모*, 한자 발음*, 격자*, 개체 이동 안내선*, 도구 상자*, 작업 창*, 문서 창*, 편집 화면 나누기*, 창 배열*, 창 목록
입력
표*, 그림*, 개체*, 캡션 넣기*, 문자표, 한자 입력*, 상용구*, 입력 도우미*, 채우기*, 주석*, 메모*, 날짜/시간*, 덧말 넣기, 글자 겹치기, CCL 넣기, 책갈피, 하이퍼링크, 상호 참조, 필드 입력, 양식 개체*, 문서 끼워 넣기
서식 글자 모양, 문단 모양, 문단 첫 글자 장식, 스타일, 스타일마당, 문단 번호 모양, 문단 번호 적용/해체, 글머리표 적용/해제, 개요 번호 모양, 개용 적용/해제, 한 수준 증가, 한 수준 감소, 개체 속성
쪽
편집 용지, 세로쓰기, 쪽 테두리/배경, 바탕쪽, 머리말/꼬리말, 쪽 번호 매기기, 새 번호로 시작, 감추기, 쪽 나누기, 단 나누기, 다단 설정, 다단 설정 나누기, 구역 설정, 구역 나누기, 원고지, 라벨*
보안
문서 암호 설정, 문서 암호 변경 및 해제, 공인 인증서로 문서 암호화, 공인 인증서로 전자 서명, 유효성 검사, 배포용 문서로 저장, 배포용 문서 편집, 배포용 문서 설정 변경 및 해제, 보안 문서로 저장, 개인 정보 보호*
검토
교정 부호*, 맞춤법, 한컴 사전, 한자 자전, 유의어/반의어 사전, 변경 내용 추적, 변경 내용 표시 설정, 문서 이력 관리, 문서 비교, 메모 넣기, 메모 모양, 메모 보이기/숨기기
도구 맞춤법, 빠른 교정*, SNS 서비스*, 메일 머지*, 매크로*, 차례/색인*, 블록 계산, 정렬, 문서 찾기, 프레젠테이션*, 인터넷 폴더 연결 관리, 추가 기능 설정, 글자판*, 사용자 설정, 환경 설정
<표 7> 소프트웨어 내부 기능들 사례 : ‘글 2014’
※ *표시가 된 세부 메뉴들은 하위 메뉴를 포함하고 있음
소프트웨어의 버전에 따라 내부 기능은 생성과 소멸을 거듭한다. 따라서 버 전에 따라 소프트웨어 기능-기능 네트워크의 생성과 소멸을 ‘기술 (description)’하는 것은 지금의 소프트웨어 네트워크가 어떻게 형성되어 왔는 지를 살펴볼 수 있게 해 준다. 버전에 따라 기능-기능 네트워크에 새롭게 등장 하는 기능과 사라지는 기능을 기록하고 그 이유와 함의를 분석하는 것은 소프 트웨어가 형성되어온 과정을 보여줄 수 있다. 소프트웨어 기능-기능 네트워크 는 내부 기능들의 역동적인 교호를 목적으로 자체적으로 기능을 구현하지만, 점차로 다른 네트워크, 즉 소프트웨어-소프트웨어 네트워크, 인간-소프트웨어 네트워크 형성을 목적으로 하는 기능-기능 네트워크를 형성한다. 이러한 기능- 기능 네트워크는 인터넷 등 통신 네트워크에 소프트웨어가 항상적으로 접속 (connected)되면서 더 복잡한 양상을 보여준다. 내부 기능, 즉 기능-기능 네트 워크의 행위자들이 보이지 않는 가운데 추가되고 사라지기 때문이다. 버전에 따른 분석이 필요한 이유다.
한편, 인터페이스 메뉴에서 보이는 기능들뿐만 아니라, 소프트웨어는 눈에 보 이지 않는 구성요소들이 유기적으로 연결되도록 구조화되어 있다. 소프트웨어 는 기본이 되는 코드, 기초가 되는 원시 데이터, 데이터를 쌓는 데이터 구조, 복합 데이터, 절차 규정 등 다양한 구성요소로 이루어져 있다. 이러한 각각의 구성요소들을 컴포넌트(component)라고 하며, 각 컴포넌트들은 별도로 개발이 이루어진다. 별도로 개발하는 이유는 소프트웨어를 하나의 전체로 개발할 경우 문제가 생겼을 경우 전부를 고쳐야하기 때문이다. 각 컴포넌트를 별도로 개발 한 경우에는 문제가 생긴 컴포넌트만 수정하면 해결이 가능해진다. 컴포넌트는 소프트웨어를 구성하는 하나의 모듈이라고도 할 수 있다.
컴포넌트들이 서로 유기적으로 연결될 때 소프트웨어는 제대로 된 기능을 발 휘할 수 있다. 따라서 컴포넌트들을 유기적으로 연결하기 위한, 즉, 각 컴포넌 트들이 서로를 번역해 네트워크를 형성하기 위한 의무통과점이 존재한다. 이를 소프트웨어 아키텍처(architecture)10)라고 한다. 컴포넌트들은 반드시 아키텍처 에 따라야 하며, 컴포넌트들은 소프트웨어가 어떤 기능을 수행할지, 어떤 행동 을 가능하게 할지 등을 미리 수립한 아키텍처에 따라 개발된다. 소프트웨어의 컴포넌트들은 각기 자신의 기능을 하고 있으며, 아키텍처는 이러한 컴포넌트들 이 눈에 보이지 않는 기능-기능 네트워크를 형성하도록 하는 것이다.
10) 컴퓨터를 구성하는 기본 요소들을 종합적으로 설계한 것. 컴퓨터의 논리구조, 운영체제, 사용 프로그래밍 언어, 데이터형식, 오차제어방식 등이 여기에 포함된다. 아키텍처가 결 정되면 하드웨어와 소프트웨어의 기능 분담이 정의되고 컴퓨터의 성능 등이 결정된다.