객체지향 설계프로젝트 3 조 이승은임단임승빈
1. 목표애플리케이션이름 -학점박차오름 2. 개발동기 - 학점을계획적이고효율적으로관리하기위한프로그램이필요하다. 3. 제공할기능 -로그인창 ID/ 비밀번호입력새로만들기 -정보입력탭목표학점입력졸업소요학점입력학년 / 학기성적입력 -성적관리탭기준에따라성적표정렬평균학점계산되어보여줌졸업소요학점계산하여보여줌목표학점보여줌학기별성적을그래프로보여줌 simulation -setting 비밀번호변경기준학점변경 4. 유즈케이스다이어그램 5. 세부유즈케이스 Ÿ 로그인하기 1-1학번, 비밀번호입력 1-1-1일치할경우 2번 1-1-2. 일치하지않을경우팝업 1-2새로운유저등록 1-2-1학번 / 비밀번호입력 1-2-2저장클릭 2. 로그인 Ÿ 정보입력탭
-성적입력하기 1. 학년 / 학기를추가한다. 2. 성적을입력한다. 3. 저장버튼을클릭한다. -성적수정하기 1. 해당과목을선택하고수정한다. 2. 저장버튼클릭 -목표학점입력하기 1. 입력한다. 2. 저장버튼클릭 -졸업소요학점입력 1. 입력한다. 2. 저장버튼클릭한다. Ÿ 성적관리탭 -성적표보기 1. 콤보박스에서정렬기준선택 2. 정렬된성적표를본다. -그래프보기 1. 그래프버튼을클릭한다. 2. 그래프를본다 -simulation 1.simulation버튼을클릭한다. 2. 성적표에서과목을선택한다. 3. 선택된과목의성적을변경한다. 4.simulation하기버튼을클릭한다. -졸업소요 1. 졸업소요표를본다. Ÿ 설정탭 -기준학점변경 1. 기준학점을선택한다. -비밀번호설정 1. 새비밀번호를두번입력한다. 2. 저장버튼을클릭힌다. 2-1. 두개가일치할경우 3번 2-2. 틀렸을경우팝업메세지 3. 저장된다.( 변경완료 ) 5. 요구사항리스트 Ÿ 로그인학번, 비밀번호가일치할경우로그인새로운유저등록비밀번호는 8글자제한, 영문자또는숫자사용비밀번호는확인을위해두번입력한다. Ÿ 정보입력추가버튼클릭 학년추가 (1,2,3,4....) 추가버튼을눌렀을때새로운학기를추가한다.
학년삭제시하위학기가존재하면삭제불가. 학기또는성적삭제시한번더물어봄. 목표학점입력졸업소요학점입력 Ÿ 성적관리재수강가능과목자동으로표시졸업소요학점은이수학점을포함하여출력성적simulation탭을눌렀을때바뀐성적과비교가능하도록팝업창사용성적simulation을할때표안에서한과목씩성적을바꿀수있도록한다. 성적simulation 결과는저장되지않는다. Ÿ 설정기준학점은기본적으로 4.5로설정비밀번호변경시기존의비밀번호를한번더확인한다. 새로운비밀번호는두번입력한다. 6. 시퀀스다이어그램 Ÿ 로그인창 Ÿ 정보입력탭
Ÿ 성적관리탭 Ÿ 설정탭
8. 화면정의서
9. 클래스다이어그램 -package -DB
-Information_Input -loging
-managementgrade
-setting 10. 프로그램구동스크린샷
11.APT 매뉴얼초기페이지 12. 팀원간작업분배계획및결과이승은 - InformaitonInput Package Tree로학년학기파일생성성적입력및삭제졸업소요학점입력목표학점입력 - MainFrame Package 기본 Frame설정임단 - Loging Package 새사용자등록학번비밀번호검사비밀번호입력길이제한 - ManageMentGrade Package 성적표정렬, 학점평균표, 목표학점, 졸업소요학점표, 그래프, 시뮬레이션
임승빈 - DB Package 파일입출력평균계산재수강검사성적sorting Setting Package 비밀번호변경기준학점설정 13.Tracibility Test Ÿ OOD_Team3_ver 0.1 (???) 1) 각자자기파트만들기 ( 기본틀 ) (MainFrame,ManageMentPanel)(DB,Login)(Information_Input) Ÿ OOD_Team3_ver 0.2 (???) 1) Ver1에서만든파트들 1개로통합 2) Login-DB 연동 3) 간단한 Action들추가 ( 확인버튼,RadioPanel(ItemListener) 등등 ) Ÿ OOD_Team3_ver 0.3 (2013, Nov_25th) 1) DB파트구체화 2) 1차버그수정 (db와파일연동에러 ) 3) Login 부분추가 (ID가 null값이면안된다던지등등 ) 4) LoginFrame에서 DB클래스객체생성후, 모든 Class로그객체를전달 5) 아이디생성시폴더별로생성시킴 Ÿ OOD_Team3_ver 0.4 (2013, Nov_26th) 1) DB 에러확인후수정 ( 신규폴더생성시!"String".equals("") 로비교한것을 "String"!=null로수정 ) 2) Calc 클래스구성 3) MainFrame 종료시 ( 비어있는 LinkedList를억지로집어넣으려함 ) 에러수정 4) Information Panel & ManagementGrade Panel( 수정된것들 ) 과 DB랑연동 Ÿ OOD_Team3_ver 0.5 (2013, Nov_30th) DB Package 1) Calc 클래스수정 ( 정확하게계산안되던것수정 ) 및추가 ( 이수구분별로학점 ) 2) SubjectList 클래스수정 (double TotalGrade추가, addgrade() addvalue() 및메소드몇개더추가 ) 3) CurrentGrade 클래스에서 String으로 Return하던걸 Double로 Return함 4) DB클래스안의 Standard 수정 (boolean을 Return하던게 Standard 객체 Return) InformationInput Package 1) 안에 Action들구체화 ManagementGrade Package 1) 내부 Action들구체화 Setting Package 1) DB Package의 DB Class의 Standard가수정되었으므로여기도그거에맞게수정 그외 JavaDoc 1차문서생성 Ÿ OOD_Team3_ver 0.6 (2013, Dec_02nd) MainFrame Package 1) 자기자신의객체를다른클래스들로전달 ( 클래스들끼리소통하기위하여 ) DB Package 1) Sorting 클래스추가 (4th 발표전 = 정렬 1번만 )(4th 발표후 = 정렬 2번 )
Ÿ Ÿ Ÿ 2) 각종버그들 (Password 변경시 ID도변경되는버그 ) 수정 InformationInput Package 1) DB를 Loading 했는데도안보이는현상수정 (new 대신상위클래스에서불러오기 ) ManagementGrade Package 1) 각종 Panel들위치조정 Setting Package 1) DB 수정된것에맞게 (Password 변경 ) 다시고침 2) Standard 변경시다시다른창도수정됨 그외 JavaDoc 2차문서생성 OOD_Team3_ver 0.7 (2013, Dec_07th) components Package( 신규 Package) 1)Login과 SetPassword에서사용할 TextField Limit 설정 DB Package 1)Resource Folder를외부로복사할수있게만듦 (jar 파일로만들시경로를잡기쉽다 ) 2) 클래스 2개추가 (JarFileHelper(Jar파일위치찾아내기 ),JarUtils(Jar안의폴더복사 ) 3)S 학점이들어오면계산을안하고무시한다. 4)CheckDuplication 메소드추가 (List와 String을받아 List에 String이포함되면 true리턴 ) login Package 1)JPasswordField--> component.jlimittextfield 사용 InformationInput Package 1) 중복검사항목추가 ManagementGrade Package 1) 중복검사항목추가 (Simulation도추가 ) Setting Package 1)SetPassword의 JTextField->JPasswordField 2)JPasswordField-> component.jlimittextfield 사용 OOD_Team3_ver 0.8 (2013, Dec_08th) DB Package 1) CheckDuplicationColor 및 2개더추가 ( 중복검사용이되서로다른용도 ) 2) GridlineCellRenderer에서중복검사용으로썼던걸 CheckDuplicationColor로변경 3) Calc에서도재수강여부판단하여계산 ( 중복계산안함 ) InformationInput Package 1) 각각 Panel들에서 Action 시행시 ManagementGrade 호출하여리스트갱신 2) FilePanel에서학기 list가 1개밖에저장안되는에러수정 (ex)2011년엔 1,2학기나오는데 2012학년엔아무것도안나오는에러 3) GradePanel에서입력시재수강여부검사확인 ManagementGrade Package 1) AverageTable 클래스추가 ; Calc에서평균을계산한것을가져온후출력 2) Simulation_Panel에서도재수강여부확인추가 3) 각종 Panel들배치수정 Setting Package 1) Panel들배치수정 OOD_Team3_ver 0.9 (2013, Dec_09th) DB Package 1) db.java에 encoding,decoding 메소드추가 (Base64를기반으로함 ) 2) 위의 encoding,decoding 추가에따른 inputstream,outputstream 코드교체
(encoding후 outputstream,inpustream후 decoding) InformationInput Package 1) setlayout을 borderlayout에서 null로교체 2) FilePanel의 MainFrame Package 1) 위의 informationinput이교체되었으므로 infor의 Layout도변경 (borderlayout에서 null로 ) 그외 1) 위의... Base64 encode,decode를사용하기위하여 Apache commons-codec-1.8.jar을 import함 Ÿ OOD_Team3_ver 1.0 (2013, Dec_12th) (Final) DB Package 1) Encoding,Decoding을별개의 Class(Base64Decode) 로분리함 InformationInput Package 1) FilePanel 에러수정 14. 자가평가 요구사항리스트에있는내용중새로하기부분의비밀번호설정을제외한나머지는모두구현이됨 + 가표시된부분은초기요구사항에는없던부분으로새로추가함