HIPO는 시스템의 구조를 기능 중심으로 하향식 방법으로 설계 또는 문서화용으로 사용하기 위한 기법이며, IBM사에서 개발한 것이다. HIPO의 기본 시스템 모델은 입력 , 처리, 출력으로 구성되며, 몇 개의 도형을 이용하여 시스템이 무슨 일을 하는지, 그리고 그것이 사용되고 만들어 내는 자료가 무엇인지를 보여준다. 또한 HIPO는 논리를 기술하는 것이 아니라 시스템이 수행하는 기능을 기술하는 도형식 문서화 기법이며 설계 기법이다. 따라서 HIPO는 프로그램이 기능을 개요로부터 상세하게 단계적으로 기술한 문서화의 수법으로써 그 특징은 다음과 같다.
1.프로그램의 기능 구조가 계층적으로 도식화되어 있으므로 설계의 보조 수단으로 사용되며, 개발 작업을 위에서 아래로 논리적으로 전개해 나갈 수 가 있다.
2.소프트웨어 개발의 과정으로써, 문서화를 부산물 적으로 행할 수가 있다.
3.서로 다른 목적을 갖는 관람자에 대하여, HIPO는 그 목적에 알맞는 수준의 자료를 제공할 수가 있다. 또한 개개의 기능이 전체 중에서도 용이하게 발견되고, 이해 변경을 간단히 행할 수 있다.
4.프로그램이 무엇을 할 것인가, 또는 사용하는 데이터와 작성할 데이터가 도시되어 있으므로 입력 데이터가 출력 데이터로 변해가는 과정을 시각적으로 볼 수가 있다.
5.문서를 쓰는 방법이 표준화되어 있으므로, 올바르게 생각을 전달할 수가 있다.
*도식목차*
도식목차 또는 목차도표라고도 하며 HIPO 시스템의 전체적인 구성을 나타내는 계층 구조도이며 프로그램 구조도는 아니다. 따라서 도식목차의 역할은 시스템이나 프로그램이 어떤 기능으로 분해되는지를 나타내며 분해된 기능 상호간의 관계는 어떤한가를 개괄적으로 이해하는데 편리하다. 도식목차에서 설명되는 내용은 계층 구조도, 범례, 보총 설명으로 구성되어 있다.
-계층 구조도 : 시스템이나 프로그램을 계층 도표로 기능 중심으로 분리하여 표현한 것으로, 상위 계층의 기능을 세분화하여 하위 계층으로 나타낸 것이다. 계층간의 구분과 종속 관계는 계층번호에 의해 나타내지며 1.0, 2.1, 2.2, ..., 2.1, 1, 2.12 ... 등으로 표현한다.
-범례 : 다른 도표에서 사용하는 기호와 화살표의 의미를 설명한다.
-보충설명 : 보충설명 부분은 추가적인 내용설명과 관련된 모듈명, 루틴명, 처리과정 그리고 문서에 관련된 참고적인 사항을 기술한다.
*총괄도표*
총괄도표는 도식목차도표에 표시된 기능 구조도 각각에 대하여 세부적인 자료를 제공하는 데 사용된다. 입력부분, 처리부분, 출력부분으로 구성되어 있으며 처리부분에는 도식목차도표에 표시된 기능구조의 각각에 대하여 그 기능을 실행하는데 필요한 처리를 기술하고 좌측에 그 처리를 위한 입력을 우측에 결과로서 얻어지는 출력을 기술한다.
총괄도표의 역할은 사용자의 관점에서 본 시스템이 어떤 기능을 갖고 무슨 내용을 처리하게 되는가를 나타낸다.
*상세도표*
총괄도표와 상세도표를 IPO 도표라고도 하며, 상세도표는 총괄도표와는 같은 형식으로 구성되어 있으나 보다 많은 양의 상세한 정보를 기술한다. 상세도표의 처리란에는 보통 기능을 중심으로 설명하고, 단계별 처리 방법과 작업 진행 순서 그리고 논리에 대한 설명이 필요할 때에는 보총 설명란에 기술한다.
HIPO의 장점
하향식 개발이 용이하고 문서가 체계화된다.
보기 쉽고 내용 파악이 쉬우며 기능과 자료의 의존관계를 동시에 표현할 수 있다.
변경, 유지 보수가 용이하다.
HIPO의 단점
작성하는 양이 너무 많고 작성에 시간이 많이 걸린다.
순서도의 대용이 되지 못한다.
*화살표의 사용*
입력, 처리, 출력을 연결할 경우 화살표를 사용한다. 즉, 화살표는 입출력 데이터의 이동, 제어의 흐름, 포인터, 데이터의 참조 등에 사용되며 같은 종류의 화살표라도 가는 화살표 또는 굵은 화살표 등 폭을 다르게 할 수 있다. 따라서 일반적으로 보통 때는 가는 것을 사용하고, 강조하고자 할 때는 굵은 화살표를 사용하는 경우도 있을 수 있다. 그러나 어떠한 방법을 사용하든지 그 용법은 도형 목차상의 범례에서 그 설명이 필요하며, 화살표를 사용할 때는 다음과 같은 사항을 유의하여야 한다.
1. 어떤 입력 데이터가 어떤 처리에 사용되는가를 나타내는 데이터 이동, 또는 데이터 참조 화살표는 입력 데이터, 또는 입력 데이터, 또는 입력 데이터 그룹의 오른쪽 끝에서 시작하여 그것을 사용하는 처리단계의 번호에서 끝나도록 한다. 출력일 때에는 처리 단계를 기술하는 문자의 오른쪽에서 시작하여 출력 데이터의 왼쪽에서 끝나도록 한다.
2. 제어 화살표는 도표의 입구와 출구 부분 및 다른 기능과의 제어 흐름을 나타내기 위하여 사용되는 수가 많다.
*처리부분*
처리 부분의 내용은 한글로 기술한다. 이때 처리가 어떻게 될 것인가가 아니고, 어떤 기능으로 구성되어 있는가를 기술한다. 따라서 처리부분은 한 도표의 처리란에 기술하고 단계의 수에는 기본적으로 제한이 없지만 많아지면 이해하기 힘들다. 따라서 실질적으로는 한도를 설정하는 것이 좋으며 5~6단계 이내가 바람직하다. 그 이상의 설명이 필요할 때에는 보통 설명 란을 이용하던가, 기능을 나누어서 하위 계층의 도표를 작성하는 것이 좋다.