1. 테스트 개요1. 테스트 목적1. 시스템이 정해진 요구 사항을 만족하는 지 확인 후 주어진 표준 등을 준수하는지 검증하기 위해 수행됨• 결함의 검출과 제품 품질 개선 : 결함검출을 위해 테스트 수행 후 결함제거• 품질 평가와 의사 결정 지원 : 테스트 결과를 바탕으로 SW 품질평가 후 의사 결정 수행• 개발 프로세스 개선 지원 : 결함발생 단계 분석 후 개발 프로세스 개선을 도움2. 오류, 결함, 장애1. 오류, 결함, 장애의 개념• 장애 : 소프트웨어가 요구사항과 다르게 동작• 결함 : 소프트웨어 내에 장애를 유발할 수 있는 문제ㄴ 필요기능 불포함 / 부정확한 구현• 오류 : 결함이 생기게 한 개발자의 행위ㄴ사용자 요구사항 잘못 파악/오타나 프로그램 명령어를 잘못 이해2. 결함 유형• 누락 : 요구명세에 명시된 요구사항이 시스템 구현에 반영되지 않음.• 부정확한 구현 : 명시된 요구사항이 소프트웨어에 부정확하게 반영됨• 비관련 결함 : 요구 명세와 관련되지 않은 구현.3. 개발 단계별 결함• 소프트웨어를 개발하는 각 단계에서 오류를 범할 수 있음.• 결함이 발생 단계에서 적절하게 검출 후 제거하지 않으면 결함제거 소요비용이 더욱 많이 듬.4. 테스팅, 디버깅, 재테스팅• 테스팅 : 소프트웨어의 실제 동작과 요구사항의 차이 확인· 테스팅은 장애 발생을 확인하여 소프트웨어에 결함이 있음을 간접적으로 판단· 테스트의 결과는 결함을 검출한 테스트 케이스와 테스트 환경.• 디버깅 : 테스팅을 통해 결함 존재 확인 후 결함의 위치를 파악하고 제거하는 것이 목적• 재테스팅 : 코드 수정 후 실제 결함이 제거되었는지 확인하는 것.3. 테스트의 현실/실제1. 완벽한 테스트의 비현실성• 프로그램 테스트는 결함이 있음을 보일 수는 있지만 없음을 보일수는 없음.• 주어진 인력과 시간을 바탕으로 최대한 효과적/효율적 테스트를 수행하도록 체계적 테스트가 수행되어야 함.• 동적 테스트 : 동등 분할/경곗값 분석/조합 테스트 등이 존재함.
1. 모델링의 이해 가. 모델링의 정의 • 모델링에 대한 다양한 정의 • Webster 사전 • 가설적 일정 양식에 맞춘 표현 • 어떤 것에 대한 예비표현으로, 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것 • 복잡한 '현실세계'를 단순화시켜 표현하는 것 • 모델이란 사물 또는 사건에 관한 양상(Aspect)이나 관점(Perspective)을 연관된 사람이나 그룹을 위하여 명확하게 하는 것이다. • 모델이란 현실 세계의 추상화된 반영이다나. 모델링의 특징추상화(모형화, 가설적)현실세계를 일정한 형식에 맞추어 표현을 한다는 의미로 정리할 수 있다.즉, 다양한 현상을 일정한 양식인 표기법에 의해 표기한다는 것이다.단순화복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있 도록 하는 개념을 의미한다.명확화누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것을 의미한다.
1. 서론 1.1 목적 및 범위 이 프로젝트는 음식점에서 주문과 계산을 용이하도록 하는 POS 시스템을 만들기 위함입니다. 해당 프로젝트는 기본적인 주문과 계산을 가능하도록 하나, 더 심화된 가게마다의 마일리지 시스템이나, 예약 시스템이나 기타 심화적인 부분은 프로젝트의 규모를 적당히 하기 위해 적용하지 않았습니다.. <중 략>구현 기술이라 함은 소프트웨어의 구현에 있어서 필요한 상세 기술을 식별하여 정의하는 것이다. 예를 들면, 구현하고자 하는 소프트웨어가 구동될 운영체제, 구현언어, 구현에 필요한 도구, 또는 필요한 미들웨어 및 하드웨어 스펙 등이 포함된다.구현 및 소프트웨어 운영에 있어서 요구되는 하드웨어 및 소프트웨어 스펙은 다음 표와 같이 정리하여 제시한다. 만약 구현 소프트웨어가 클라이언트-서버 구조를 갖는다면 컬럼을 추가하고, 클라리언트와 서버를 구분하여 명세한다.
도서관 관리 시스템에 대한요구사항명세서2013. 11. 28목 차1. 개요1.1 시스템의 목표1.2 하드웨어와 소프트웨어1.3 소프트웨어의 주요 기능1.4 설계상 제약 사항1.5 참조된 개발 문서2. 시스템 구조2.1 시스템 구조 개요2.2 시스템 구조도2.3 자료 사전3. 모듈 설계(각 모듈에 대한)3.1 모듈 이름, 형3.2 알고리즘(오류 메시지, 사용하는 파일, 호출하는 모듈, 기능 설명)3.2.1 새로운 고객 등록3.2.2 고객 검색3.2.3 책 등록3.2.4 도서 검색3.2.5 도서 대여3.2.6 도서 반납3.2.7 도서 예약3.2.8 도서 연체3.2.9 도서 연장3.2.10 도서 폐기3.2.11 자료 출력3.2.12 도서 주문4. 파일 구조 또는 데이터베이스 설계4.1 사용자 인터페이스 설계4.2 기능 시험4.3 성능 시험4.4 자원, 인력에 대한 제약조건5. 요구 분석 참조 표6. 제약 사항7. 참고 사항7.1 참고 문헌1. 개요1.1 시스템의 목표본 문서는 도서관 도서 관리를 위한 소프트웨어 설계 명세서이다.도서관에서 고객들에게 대여, 예약, 반납, 연체, 연장, 폐기, 검색, 고객등록, 도서등록, 도서대여 현황 확인 등 여러 가지 프로세스를 지원할 수 있게 하는 소프트웨어이다. 이의 세부적인 내용은 다음과 같다.1고객은 대여 시 고객번호를 제시한다.2직원은 고객을 검색하여 새 고객일 경우 고객 등록을 한다.3고객은 도서를 1인당 최대 3권 대여할 수 있다.4고객은 3일 이내에 책을 반납한다.5고객은 필요 시 대여기간을 3일 연장할 수 있다.6도서가 1일 연체될 때마다 1일 대여가 불가능하다.7고객은 도서를 예약할 수 있다.81종류의 도서는 3권씩 존재하며 미달될 경우 공급업체에 주문한다.9공급업체는 여러 가지 도서를 공급한다.10직원은 새 도서를 등록할 수 있다.11직원은 도서를 폐기할 수 있다.12직원은 도서명, 장르, 저자로 책을 검색할 수 있다.13직원은 필요시 여러 가지 보고서를 출력할 수 있다.1.2 하드웨어와 소프트웨어소프트웨어는 J접 입력한다. 공급자로부터 공급된 도서의 이름, 번호, 저자 등을 입력하여 책 리스트에 저장한다. 그리고 오래되거나 비인기 도서들을 폐기 처분하여 책 리스트에서 삭제한다.1.4 설계상 제약 사항- 새 고객을 등록할 경우 고객의 인적사항 정보를 입력한다.- 고객은 도서를 한 권 이상 대여할 수 있도록 설계한다.- 고객이 도서를 연장하고 싶을 경우를 위해 3일 연장할 수 있도록 시스템을 설계한다.- 검색도서에 대한 도서목록을 설계한다.- 공급하려는 도서의 개수와 존재하는 도서의 개수를 확인 후 공급한다.- 도서의 손상정도를 확인하고 폐기 도서를 기록한 후 폐기한다.1.5 참조된 개발 문서요구사항명세서를 기반으로 하여 설계명세서를 작성하였다.2. 시스템 구조2.1 시스템 구조 개요[1] 처음 사용자 명을 입력받아 사용자list에 존재하는지 확인한다.(사용자명 : in.readLine을 통하여 입력받는다.)[2] 만약 사용자가 사용자list에 존재하지 않는다면, 사용자 list에 새로운 사용자를 입력한다.[3] 대여 프로세스에서 사용자가 사용자list에 존재하고, 사용자가 대여한 책이 5개 미만이면 대여해주고 책 list에서 대여한 책에 표시한다.[4] 대여한 책을 반납할 경우 책list에 대여 표시를 지운다.[5] 만약 반납한 책이 반납기간을 지나갔으면, 연체료를 받는다.[6] 책 list에 연체 중 또는 대여 표시가 있으면, 예약이 가능하다.[7] 위의 대여, 반납, 예약, 연체 프로세스 중 사용하고자한 프로세스를 실행시킨다.[8] 출력프로세스에서 출력 값을 사용자에게 보여준다.2.2 시스템 구조도2.3 자료 사전고객 파일 = 고객 번호 + 고객 이름 + 고객 주소 + 전화번호도서 파일 = 도서 번호 + 도서명 + 장르 + 저자명대여 파일 = 고객 번호 + 도서 번호 + 반납 + FROM ~ TO목록 파일 = 도서 번호 + 목록 번호 + 도서명예약 파일 = 도서 번호 + 고객 번호폐기 파일 = 도서 번호 + 도서명반납 파일 = 고객 번호 + 도서 번호 + 고객명3int 변수의 차이 때문에 입력 부분에서 부분적으로오류가 났지만 수정 가능한 문제이므로 수정했다.4) 사용하는 파일 : public class member파일5) 호출하는 모듈 : public class, if, for6) 기능 설명 : 요청 고객에 한하여 새로운 고객을 등록하여 member 클래스 목록에 저장 후 자체적으로 사용할 수 있도록 한다.3.2.2 고객 검색MemberSearch() 프로세스 명세1) 모듈 이름, 형 : member[] mem-> String mem_nameint mem_numString mem_addint mem_tel2) 알고리즘 :(1) 사용자로부터 검색하고자 하는 고객의 이름을 입력한다.(2) 고객의 이름(mem_num)과 일치하는 것을 검색한다.(3) if(고객 이름이 존재하면) then{고객 파일에서 고객 데이터를 가져온다.화면에 출력한다.}else{새로운 사용자 등록 유무를 묻는다.(Y or N)Y -> return MemberRegister();N -> exit}3) 오류 메시지 : -4) 사용하는 파일 : public class member파일5) 호출하는 모듈 : public class, if, for6) 기능 설명 : 직원이 원하는 고객의 정보를 검색하거나, 대여/연체 시 사용자의 정보를 확인하고자 할 때 사용자의 정보를 검색/출력해줄 수 있는 프로그램이다.3.2.3 책 등록BookRegister() 프로세스 명세1) 모듈 이름, 형 : book[] bb-> int book_num;String book_name;int list_num;2) 알고리즘(1) 도서 번호를 부여한다.(2) 도서 정보(도서명 또는 저자 또는 장르)를 입력한다.(3) if(신규 책) then{리스트 목록에 도서 정보(도서명, 저자 그리고 장르)를 입력한다.count를 하나 증가시킨다.}elsecount를 하나 증가시킨다.(4) 도서 파일에 책 데이터를 저장한다.3) 오류 메시지 : -4) 사용하는 파일 : public class book파일5스 명세1) 모듈 이름, 형 : borrow_book[] bb-> int book_num[] = new int[5];String mem_num;2) 알고리즘(1) If (새로운 고객) thencall MemberRegister();(2) 고객번호를 입력받고 고객파일로부터 확인한다.(3) 필요 시 고객의 대여기간을 3일 연장한다.(4) 고객의 연체 여부를 확인하고, 연체 1일당 1일 동안 대여가 불가능하다.(5) If (대여할 책이 존재하면) then대여 정보를 기록한다 ;return TRUE;}elsereturn FALSE;3) 오류 메시지 : -4) 사용하는 파일 : public class book파일5) 호출하는 모듈 : public class, if, for6) 기능 설명 : 고객이 원하는 도서의 대여를 하고자 할 때, 직원을 통해 borrow_book 클래스에 책명과 번호를 입력하여 저장한다.3.2.6 도서 반납ReaturnBook() 프로세스 명세1) 모듈 이름, 형 : borrow_book[] bb-> int book_num[] = new int[5];String mem_num;2) 알고리즘(1) 고객번호(mem_num)를 입력한다.(2) 대여파일로부터 대여정보를 확인한다.(3) 대여파일에서 도서정보를 삭제한다.3) 오류 메시지 : -4) 사용하는 파일 : public class book파일5) 호출하는 모듈 : public class, if, for6) 기능 설명 : 고객이 대여한 책에 한하여 반납할 수 있도록 하는 프로그램이다.3.2.7 도서예약Reservation() 프로세스 명세1) 모듈 이름, 형 : reserve[] reser->String book_name;int book_num;int mem_num;}2) 알고리즘(1) 고객명을 입력받고 예약한 권수를 파악한다.(2) if(예약한 도서 권수가 3권을 초과했다면)System.out.println("예약하실 수 있는 도서 개수를 초과하셨습니다. 예약 불가하십니다“);else{예약 파일에 도 : borrow_book[] bb-> int book_num[] = new int[5];String mem_num;2) 알고리즘 :3) 처리내용(1) 폐기할 도서의 번호를 입력한다.(2) if(도서번호가 존재한다면) then{폐기파일에 도서명과 도서번호를 입력한다.해당하는 도서정보를 0과 “0"으로 초기화해준다.if(해당하는 목록정보가 1초과이면)list[trashbook].book_count--;else{목록정보를 0과 “0”으로 초기화해준다.System.out.println("도서가 폐기되었습니다.“);}3) 오류 메시지 : -4) 사용하는 파일 : public class book파일5) 호출하는 모듈 : public class, if, for6) 기능 설명 : 오래되거나 거의 사용하지 않는 도서를 직원이 판단하여 폐기목록에 넣고 일정기간마다 폐기처분한다.3.2.10 자료 출력Print() 프로세스 명세1) 모듈 이름, 형 : borrow_book[] bb-> int book_num[] = new int[5];String mem_num;2) 알고리즘 :(1) Main으로부터 파일들을 가져온다.(2) 원하는 메뉴의 번호(파일)를 입력하여 출력한다.3) 오류 메시지 : -4) 사용하는 파일 : public class book파일5) 호출하는 모듈 : public class, if, for6) 기능 설명 : 직원이 필요로 하는 것들을 화면에 출력하여 전체적으로 확인하기 편하게 한다.3.2.11 도서 주문Order()1) 모듈 이름, 형 : borrow_book[] bb-> int book_num[] = new int[5];String mem_num;2) 알고리즘(1) 도서 요청 파일을 가져온다.(2) 폐기 파일을 가져온다.(3) 파일들을 비교해 주문 파일을 작성한다.(4) if(존재하는 도서+주문하는 도서>3)주문할 시 도서가 3권이 초과되기 때문에 주문이 불가합니다;elseSystem.out.println("주문이 완료되었습니다“);3) 오류 메시지 : -4한다.