전산 기술은 빠르게 발전하고 새로운 기술과 개발 공정이 나오고 있어요.
여기에서는 시나리오를 소개한 후에 요구 분석하고 설계한 후에 구현하는 공정으로 진행할게요.
요구 분석에서는 프로그램의 외부 요소와 프로그램 사이의 상호 작용을 분석해요.
외부 요소가 언제 프로그램을 사용하는지 혹은 프로그램이 외부 요소를 언제 사용하는지 파악하죠.
그리고 분석 결과를 유즈케이스(Usecase) 다이어그램으로 작성할거예요.
설계 단계에서는 역할에 따라 사용자 정의 형식을 결정하고 형식 간의 관계를 정의해요.
그리고 유크케이스 별로 시퀀스를 정의하죠.
사용자 정의 형식과 형식 간의 관계는 클래스 다이어그램으로 표현할 거예요.
그리고 시퀀스를 정의한 것은 시퀀스(Sequence) 다이어그램으로 만들기로 해요.
C언어로 프로그램을 개발할 때 이러한 개발 공정이 맞는 것인지 의구심이 들 수도 있어요.
여기서는 C++이나 Java, C# 언어로 비지니스 프로그래밍에 자주 사용하는 CBD 개발 방법론의 일부 단계를 접목할 거예요.
참고로 다이어그램을 작성하는 도구를 CASE 도구라 말해요.
여러 종류의 제품이 있는데 StarUml은 무료로 배포하는 오픈 프로젝트의 결과물이어서 쉽게 다운받아 사용할 수 있어요.
다음은 실습할 장르별 도서 관리 프로그램 시나리오예요.
▶ 프로젝트 명: 장르별 도서 관리 프로그램
▶ 개요
장르별 도서 관리 프로그램은 콘솔에서 동작하는 응용 프로그램입니다.
▶ 프로그램 흐름
프로그램을 시작하면 초기 작업으로 파일에 저장한 정보를 로딩합니다.
만약 파일이 없거나 비어있을 때는 초기 작업은 생략합니다.
초기 작업을 수행 후에는 최종 사용자에게 메뉴를 선택하게 하여 선택한 기능을 수행하는 것을 반복합니다.
메뉴에는 장르 추가, 장르 삭제, 전체 장르 보기, 특정 장르의 도서 목록 보기, 도서 추가, 도서 일련 번호로 검색, 도서 이름으로 검색, 전체 도서 보기, 프로그램 종료를 선택할 수 있습니다.
만약 최종 사용자가 프로그램 종료를 선택하면 상호 작용을 끝냅니다.
최종 사용자와 상호 작용이 끝나면 모든 장르 정보와 도서 정보를 파일에 저장하고 기존에 파일에 있던 내용에 덮어 씁니다.
장르 추가에서는 같은 이름의 장르는 추가하지 않게 합시다.
그리고 장르를 삭제할 때 장르 내 도서들도 같이 삭제합니다.
도서 추가에서는 장르를 선택한 후에 도서를 추가합니다.
도서의 일련 번호는 장르에 추가한 도서의 번호로 특정 장르 내에서 도서를 구분하는 키입니다.
도서 일련 번호로 검색 기능은 최종 사용자가 장르를 선택한 후에 도서 일련 번호를 입력하여 검색합니다.
도서 이름으로 검색 기능에서는 같은 이름의 모든 도서 정보를 출력합니다.
전체 도서 보기에서는 모든 장르와 장르 내 모든 도서 정보를 출력합니다.
▶ 장르 정보
장르 정보에는 장르 일련 번호와 장르 이름과 장르 내에 보관한 도서 수가 있습니다.
▶ 도서 정보
도서 정보에는 도서 일련 번호, 도서명, 저자 이름이 있습니다.
그리고 도서 일련 번호는 장르 내에 도서를 추가할 때 순서대로 부여하는 번호입니다.
'언어 자료구조 알고리즘 > 디딤돌 C언어' 카테고리의 다른 글
[C language] 106. 도서 관리 프로그램 - 전체 장르 보기 (0) | 2016.04.24 |
---|---|
[C language] 105. 도서 관리 프로그램 - 장르 추가 (0) | 2016.04.24 |
[C language] 104.도서관리프로그램 - 클래스다이어그램 (0) | 2016.04.24 |
[C language] 103. 도서 관리 프로그램 - 분석 결과를 코드로 (0) | 2016.04.24 |
[C language] 102. 도서관리 프로그램-요구분석 및 정의 (0) | 2016.04.24 |
[C언어] 100. main함수 매개변수 (0) | 2016.04.18 |
[C언어] 99. 파일 입출력 정리하기 (0) | 2016.04.18 |
[C언어] 98. 파일 입출력 ftell, fseek (0) | 2016.04.18 |
[C언어] 97. 바이너리로 파일 입출력 (0) | 2016.04.18 |
[C언어] 96. ASCII 문자로 파일 입출력 (0) | 2016.04.18 |