Programming/Data Structure & Algorithms

프로그램 개발과정

도요한 2013. 3. 17. 00:47

프로그램 개발과정[각주:1]

- 프로그램 개발과정은 시스템 생명주기(system life cycle)상의 개발단계를 거침. 

- 요구사항, 분석, 설계, 코딩, 검증 과정으로 구성


 요구사항 (requirements)

 프로젝트의 목적을 정의한 명세
 주어진 입력과 생성해야할 결과(output)에 관한 정보를 기술함

 분석 (analysis)

 대상을 실제 다룰 수 있는 작은 단위로 나눔

 상향식(bottom-up) - 코딩 중심의 비구조적 방법.

 기본 계획이 없어 결과 프로그램은 연관성이 떨어지거나 오류를 수반할 수 있다.

 하향식(top-down) - 프로그램을 다룰 수 있을 단위로 분리하는 게 목적.

 시스템 설계시 다이어그램을 생성함.

 설계 (design)

 프로그램이 필요로 하는 데이터 객체와 수행될 연산들을 고려하여 시스템 접근

 추상 데이터 타입(abstract data type)과 알고리즘 명세(알고리즘 설계 기법 포함)을 고려.

 구현을 위한 결정사항들은 뒤로 연기됨.(ADT와 알고리즘은 언어독립적임.)

 정제 (refinement)와

 코딩 (coding)

 데이터 객체 표현을 결정. 관련 연산에 대한 알고리즘 작성. 

 데이터 객체의 표현은 관련 연산의 알고리즘을 결정함. (독립적 알고리즘을 우선 작성)

 검증 (verification)

 프로그램의 정확성 증명. 데이터 입력을 이용한 프로그램의 테스트와 오류제거.

 정확성 증명 : 1)수학적 기법들 이용. 2)증명된 알고리즘 선택

 테스트 : 실제 수행 가능한 코드 필요. 실행시간 시간도 중요함. 

             모든 프로그램 단위들이 정확히 수행되는가를 검증. 

 오류제거 : 오류제거의 편리함은 설계와 코딩에 영향을 받음.

                설명 기술과 독립적 단위로 구성된 프로그램들은 수정을 용이하게 함.




참고자료

Fundamentals of Data structures in C - Horowitz, Sahni, Anderson-Freed

  1. 참고서적에는 [시스템 생명주기(system life cycle)]로 표현되어 있음 [본문으로]