구조 모델링과 행위 모델링이 존재한다.| 유형 | 설명 | 
|---|---|
| 구조 모델링 | SW를 구성하는 컴포넌트들의 유형, 인터페이스, 내부 설계 구조 및 이들의 상호 연결 구조를 모델링 시스템의 구성 요소들과 이들 사이의 구조적인 관계와 특성들을 모델링 구성 요소: Procedure,데이터 구조,모듈,파일 구조 | 
| 행위 모델링 | SW의 구성 요소들의 기능들과 이들이 언제, 어떤 순서로 기능을 수행하고 상호 작용하는 지를 모델링 시스템 구성 요소들이 언제 어떤 순서로 수행되는 가와 같은 동적인 특성들을 모델링 구성 요소: 입력 데이터,출력 데이터,데이터 흐름,데이터 변환,데이터 저장 | 
하향식 설계가 적합하고기존 Component를 조합해서 시스템을 개발하는 경우에는 상향식 설계가 적합하다.
상향식 설계
    자료구조, 아키텍처, 인터페이스, 프로시저, 협약에 의한 설계가 여기에 속한다.하향식 설계
    모듈 설계가 여기에 속한다.| 설계 유형 | 설명 | 
|---|---|
| 자료 구조 설계Data Structure Design | 요구 분석 단계에서 생성된 정보를 바탕으로 SW를 구현하는데 필요한 자료 구조로 변환하는 과정 | 
| 아키텍처 설계Architecture Design | 예비 설계, 상위 Level 설계 SW 시스템의 전체 구조를 기술 SW를 구성하는 Component 간의 관계를 정의하는 과정 | 
| 인터페이스 설계Interface Design | SW와 상호 작용하는 컴퓨터 시스템, 사용자 등이 어떻게 통신하는 지를 기술하는 과정 | 
| 프로시저 설계Procedure Design | 프로그램 Architecture의 Component를 SW Component의 Procedure 서술로 변환하는 과정 | 
| 협약에 의한 설계Design by Contract | class에 대한 여러 가정을 공유하도록 명세한 설계SW Component에 대한 정확한 인터페이스 명세를 위하여 선행 조건,결과 조건,불변 조건을 나타내는 설계 방법 | 
(1). 선행 조건 Precondition
- Component의 Operation 사용 전에 `true`이 되어야 할 조건
(2). 결과 조건 Postcondition
- 사용 후 만족돼야 할 조건
(3). 불변 조건 Invariant
- Operation이 실행되는 동안, 항상 만족돼야 하는 조건
데이터의 분류나 조합을 쉽게 하기 위하여 사물을 표현하는 코드를 설계하는 기법
코드의 기능으로는 표준화, 분류, 식별, 배열 
  간소화, 연상, 암호화, 오류 검출 등의 기능이 존재한다.
| 기능 | 설명 | 
|---|---|
| 표준화 | 정보 종류, 모양, 크기 등의 일정한 기준에 따라 통일적으로 표현하는 기능 | 
| 분류 | 정보를 동일한 특성을 가진 데이터로 그룹화, 나누는 기능 | 
| 식별 | 다른 것과 구별할 수 있는 기능 | 
| 배열 | 일련의 순서로 나열할 수 있는 기능 | 
| 간소화 | 정보의 표현 간소화해서 나타낼 수 있는 기능 | 
| 연상 | 정보를 표현하고자 하는 대상의 뜻과 의미가 코드에 내포되게 하는 기능 | 
| 암호화 | 정보의 외부 표현을 감추고자 하는 기능 | 
| 오류 검출 | 정보 입력, 관리 시 잘못된 정보를 찾아내는 기능 | 
연상 코드, 순차 코드, 블록 코드 (구분 코드), 표의 숫자 코드 등이 존재한다.| 종류 | 설명 | 
|---|---|
| 연상 코드Mnemonic Code | 코드만 보고 대상을 연상할 수 있도록 명칭 일부를 약호로 넣어 구성된 코드( 약호: 간단하고 알기 쉽게 나타내어 만든 부호)예시: 나라 이름 (한국:KR, 미국: US, ...) | 
| 블록 코드 / 구분 코드Block Code | 공통성이 있는 것끼리 Block 구분, 각 블록 내에서 일련 번호를 부여하는 코드 예시: 전화 번호 (지역 번호 - 국번 - 일련번호)지역 번호 - 국번까지는 같은 지역끼리는 공통된 조합이다. | 
| 순차 코드Sequence Code | 일정 기준에 따라 순서대로 일련 번호 부여한 코드 예시: 반 번호 (가나다 순으로 1, 2, ...) | 
| 표의 숫자 코드Significant Digit Code | 대상 자료의 물리적인 수치인 길이, 넓이 등을 표시한 코드 예시: 20-10-300 ('길이-넓이-용량' 조합) | 
| 십진 코드Decimal Code | 10진수 형태로 표현한 코드 예시) 상품 바코드(880...) | 
| 그룹 분류식 코드Group Classification Code | 대상을 기준에 따라 대/중/소분류로 구분하여 번호를 부여한 코드예시) 학번(입학년도 - 일련 번호 조합) | 
| 오류 종류 | 설명 | 
|---|---|
| 사본 오류Transcription Error | 한 자리를 잘못 표기한 경우에 발생하는 오류 필사 오류,오자 오류라고도 불림 | 
| 전위 오류Transposition Error | 연속된 두 글자가 서로 바뀌어 표기된 경우에 발생하는 오류 | 
| 생략 오류Omission Error | 한 글자를 생략하고 기술한 경우에 발생하는 오류 | 
| 첨가 오류Addition Error | 한 글자를 추가되어 기술한 경우에 발생하는 오류 | 
| 이중 전위 오류Double Transposition Error | 전위 오류가 중복 발생한 경우에 발생되는 오류 | 
하향식 SW 개발 위한 문서화 도구하향식 SW 개발
- SW 설계 시 제일 상위에 있는 기능에서 시작해서
  기능들을 하위 기능으로 분할해 가면서 설계하는 방식
HIPO Chart 이다.도식 목차, 총괄 도표, 상세 도표가 존재한다.| 종류 | 설명 | 
|---|---|
| 도식 목차Visual Table of Contents | 시스템의 전체적인 기능, 흐름을 보여주는 계층 구조도 | 
| 총괄 도표Overview Diagram | 입력/처리/출력에 대한 정보를 제공하는 도표 프로그램을 구성하는 기능을 기술한다. | 
| 상세 도표Detail Diagram | 총괄 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표 | 
도총상 암기 => '도'식 목차 + '총'괄 도표 +  '상'세 도표