<Software Modeling & Analysis> OSP Stage 2030 <Analyze> Ver.4 Team 1 201111341 김성민 201111379 이한빈 201111397 황정아 1
Contents. Phase 2110. Revise Plan --- Phase 2120. Synchronize Artifacts --- Phase 2130 Analyze Activity2131. Define Essential Use Cases --- Activity2132. Refine Use Case Diagrams --- Activity2133. Define Domain Model --- Activity2134. Refine Glossary --- Activity2135. Define Sequence Diagrams --- Activity2136. Define Operation Contracts --- 2
Phase 2110. Revise Plan - Requirement 와 Use case 수정 : Program on, Program off, Select Message, Display word, Make Conversation, Update 삭제 - Use case diagram 수정 - Concept Model 에 Database 추가 Phase 2120. Synchronize Artifacts - State 1000 문서참고 Phase 2130. Analyze Activity 2131. Define Essential Use Cases Use case 1. Display Child Mode Child Purpose 아이모드를위한 UI를제공한다. Overview - Cross Reference Functions: R.1, R.3 Use case: Receive Message Pre-Requisites N/S Typical Courses of Events (A):, (S): (A): 사용자가 Child Mode 를선택한다. (S): Child Mode UI 를출력한다. (S): invoke Receive Message Alternative Courses of Events - Exceptional Courses of Events - 3
Use case 2. Display Parent Mode Parent Purpose 부모모드를위한 UI를제공한다. Overview Delete button, Add Button 은 disable 상태이다. Cross Reference Functions: R.2, R.5 Use case: Show List Pre-Requisites N/S Typical Courses of Events (A):, (S): (A): 사용자가 Parent Mode 를선택한다. (S): Parent Mode UI 를출력한다. (S): invoke Show List Alternative Courses of Events - Exceptional Courses of Events - Use case 3. Receive Message None / Child Purpose 대화를생성하고출력한다. Overview - Cross Reference Functions: R.1, R.3, R.4, R.8 Use case: Display Child Mode, Send Message, Display Sound Pre-Requisites 사용자가 Child Mode 에처음들어오거나 (display child mode) 사용자가메시지전송 (send message) 했을때, 다음버튼 (key board -> button) 을눌렀을때실행된다. Typical Courses of Events 1 (A):, (S): (S): 새로운대화를위한랜덤변수하나를생성한다. (S): 변수를바탕으로 DB 에서문제를출력해준다. (S): invoke Display Sound Typical Courses of Events 1 (A):, (S): (A): 아이가다음버튼을누른다. (S): 새로운대화를위한랜덤변수하나를생성한다. (S): 변수를바탕으로 DB 에서문제를출력해준다. (S): invoke Display Sound Alternative Courses of Events - Exceptional Courses of Events DB 에서대화를읽을수없는경우알림창을띄운다. 4
Use case 4. Send Message Child Purpose 대화에대한대답을한다. Overview - Cross Reference Functions: R.3, R.4, R.8 Use case: Receive Message, Display Sound Pre-Requisites Typical Courses of Events (A):, (S): (A): 대답을입력을한다. (S): 입력한값이 Text Box 에출력된다. (A): Send 버튼을누른다. (S): 사용자가입력한것이정답이라면 Invoke Display Sound, Receive Message (S): 사용자가입력한것이오답이라면정답을출력하고 Invoke Display Sound, Receive Message Alternative Courses of Events - Exceptional Courses of Events - Use case 5. Show List None Purpose 저장되어있는단어들을보여준다. Overview - Cross Reference Functions: R.2, R.5, R.7.1, R.7.2 Use case: Display Parent Mode, Delete Word, Add Word Pre-Requisites 사용자가 Parent Mode 를실행하거나 Add 버튼, Delete 버튼을 클릭했을때실행된다. Typical Courses of Events (A):, (S): (S): DB 에서단어영어와뜻만추출하여 Table 로출력한다. Alternative Courses of Events Exceptional Courses of Events Line 1: DB 에연결이안되었을경우, DB 에서단어를읽어올수 없는경우알림창을출력한다. 5
Use case 6. Find Word Parent Purpose 단어의뜻, 소리, 그림을찾는다. Overview - Cross Reference Functions: R.6 Use case: Pre-Requisites N/S Typical Courses of Events (A):, (S): (A): 부모가영어단어를입력하고찾기버튼을누른다. (S): 입력받은문자열로 DB 에서뜻과소리, 사진을찾는다. (S): 결과를출력한다. Alternative Courses of Events (A):, (S): (A): 부모가영어단어를입력하고찾기버튼을누른다. (S): 입력받은문자열이 DB 에없는경우네이버백과사전에서단어에대한뜻을찾는다. (S): 결과를출력한다. Exceptional Courses of Events Line 1: If invalid information is entered, 대화상자 (Dialog) 를생성 Line 2: DB 에서정보를읽을수없거나네이버에단어정보가없을경우알림창을띄운다. Use case 7. Add Word Parent Purpose 찾은단어를단어장에추가한다. Overview - Cross Reference Functions: R.5, R.6, R.7.1 Use case: Find Word, Show List Pre-Requisites 사용자가검색한단어가네이버백과사전에서찾은결과일경우, Add 버튼이활성화된다. Typical Courses of Events (A):, (S): (A): Add to list 버튼을누른다. (S): 단어의영어와뜻을 DB 에저장한다. 6
(S): Invoke Show List Alternative Courses of Events - Exceptional Courses of Events DB 연결이안되었을경우알림창을띄운다. DB 에단어를저장할수없을경우알림창을띄운다. 네이버 / 백과사전에서검색을하지못한경우알림창을띄운다. Use case 8. Delete Word Parent Purpose 단어장의단어를삭제한다. Overview - Cross Reference Functions: R.5, R.7.2 Use case: Show List Pre-Requisites 부모가검색한단어가 DB 에서찾은결과일경우, Delete 버튼이 활성화된다. Typical Courses of Events (A):, (S): (A): 부모가단어를선택하고 delete 버튼을누른다. (S): 선택된단어를 DB 에서찾고삭제한다. (S): Invoke Show List Alternative Courses of Events - Exceptional Courses of Events DB 연결이안되었을경우알림창을띄운다. DB 에서해당단어를찾을수없을경우알림창을띄운다. Use case 9. Display Sound All Users Purpose 소리를출력한다. Overview - Cross Reference Functions: R.3, R.4, R.8 Use case: Send Message, Receive Message Pre-Requisites N/S Typical Courses of Events (A):, (S): (A): 사용자가듣기버튼을누른다. (S): 저장되어있는소리를출력한다. 7
Alternative Courses of Events 1 (A): 아이사용자가대답한다. (Send Message) (S): 대답한내용이정답일경우그에대한답을소리로출력한다. Alternative Courses of Events 2 (A): 아이사용자가메시지를받는다. (Receive Message) (S): 받은메시지를소리로출력한다. Exceptional Courses of Events 음성파일이존재하지않는경우알림창을띄운다. Use case 10. Display Main All User Purpose 사용자가아이모드 / 부모모드를선택할수있다. Overview - Cross Reference Functions: R.9 Use case: Pre-Requisites N/S Typical Courses of Events (A):, (S): (A): 사용자가프로그램을실행한다. (S): 아이모드와부모모드를선택할수있는 UI 를띄운다. (A): 사용자가키보드 C 를입력했을경우, 아이모드를실행하고키보드 P 를입력했을경우부모모드를실행한다. Alternative Courses of Events (A):, (S): (A): 사용자가메인으로돌아가기를선택한다.( 아이사용자가 <- 버튼을누른다 ) (S): 실행중인모드를종료하고아이모드와부모모드를선택할수있는 UI 를띄운다. (A): 사용자가키보드 C 를입력했을경우, 아이모드를실행하고키보드 P 를입력했을경우부모모드를실행한다.. Exceptional Courses of Events - 8
Activity 2132. Refine Use Case Diagram Activity 2133. Define Domain Models 9
Activity 2134. Refine Glossary Term Category Remarks Database Class 단어정보와대화내용을저장하는데이터베이스 User Class 부모와아이에공통으로있는함수를실행하는클래스 Parent Class 부모모드를실행하는클래스 Child Class 아이모드를실행하는클래스 Word Class 단어를저장하는클래스 Message Class 메시지대화 set를저장하는클래스 Interface Class 메인함수가있는 GUI 클래스 User.soundPath : String Attribute 소리가저장되어있는경로 User.soundStr : String Attribute 소리로출력할문자열 Parent.word : Word Attribute 단어수정을위한객체 Child.msg : Message Attribute 메시지객체 Word.word : String Attribute 영어단어 Word.mean : String Attribute 영어뜻한글 Word.image : String Attribute 이미지가저장되어있는경로 Word.sound : String Attribute 소리가저장되어있는경로 Message.question : String Attribute 대화질문 Message.answer : String Attribute 대화질문에대한답 Message.reRight : String Attribute 올바른대답을했을때의답장 Message.reWrong : String Attribute 틀린대답을했을때의답장 Message.word : String Attribute 문제로출제할단어 Message.type : int Attribute 대화내용의유형 1, 2, 3 Message.image : String Attribute 대화질문에대한이미지주소 Message.sound : String Attribute 대화질문에대한소리주소 Interface.child : Child Attribute Child 정보를갖기위한객체 Interface.parent : Parent Attribute Parent 정보를갖기위한객체 Interface.msg : Message Attribute 메시지객체 Interface.word : Word Attribute 단어객체 10
Activity 2135. Define Sequence Diagrams Use Case Name of -Activated Event 1. Display Child Mode 1: displaycm 2. Display Parent Mode 1: displaypm 3. Receive Message 1: receivemsg 4. Send Message 1: sendmsg 5. Show List N/A 6. Find Word 1: findword 7. Add Word 1: addword 8. Delete Word 1: deleteword 9. Display Sound 1: displaysound 10. Display Main 1: displaymain 11
Use Case : Receive Message 1. 아이사용자가 ( ) 버튼을누른다. 2. 은랜덤으로메시지를 추출한다. 3. 추출한메시지를출력한다. 4. 저장되어있는소리를 play한다. 12
Activity 2136. Define Operation Contracts Use Case Name of -Activated Event Operations 1. Display Child Mode 1: displaycm displaycm() 2. Display Parent Mode 1: displaypm displaypm() 3. Receive Message N/A receivemsg() 4. Send Message 1: sendmsg sendmsg() 5. Show List N/A showlist() 6. Find Word 1: findword findword() 13
7. Add Word 1: addword addword() 8. Delete Word 1: deleteword deleteword() 9. Display Sound 1: displaysound displaysound() 10. Display Man 1: displaymain displaymain() 14
Name displaycm() Responsibilities Child Mode 창을띄워주고, 대화를시작한다. Cross Reference Functions: R1, R3 Use case: Display Child Mode, Receive Message Notes - Exception - Output - Pre-Conditions 사용자가아이모드버튼을누른다. Post-Conditions Child Mode가실행된다. Child.msg has set to msg. Child is associated with User receivemsg() 가실행된다. Name displaypm() Responsibilities Parent Mode 창을띄어주고, 단어들의뜻과영어를 DB에서읽어온다. Cross Reference Functions: R.2, R.5 Use case: Display Parent Mode, Show List Notes - Exception - Output - Pre-Conditions 사용자가부모모드버튼을누른다. Post-Conditions Parent Mode가실행된다. Parent.word has set to word. Parent is associated with User. showlist() 가실행된다. Name receivemsg() Responsibilities Child Mode에서 2가지대화유형 ( 단어, 일반 ) 을랜덤으로출력해준다. Cross Reference Functions: R.1, R.3, R.4, R.8 Use case: Display Child Mode, Receive Message, Send Message, Display Sound Notes 사용자가 Child mode에처음들어오거나아이사용자가 버튼을눌렀을 때, 아이사용자가 send message 시, 실행된다. 15
Exception DB에서대화를읽을수없는경우알림창을띄운다. Output 화면에랜덤으로선택된단어 ( 문장 ) 을출력한다. Pre-Conditions 사용자가 Child Mode를처음선택하거나 (Display Child Mode), 말을건다 (Send Message). Post-Conditions DB에서랜덤선택해서읽고 Child.msg에저장한다. getquestion() 을통해서 msg.question이출력된다. Question에대한보기를출력해준다. Name sendmsg() Responsibilities 출력된문제에대해 User 가입력한값을저장하고그에대한대답을출력한다. Cross Reference Functions: R.3, R.4, R.8 Use case: Receive Message, Send Message, Display Sound Notes receivemsg() 가실행된상태에서사용자가 textbox에값을입력했을경우 Send 버튼이활성화된다. Exception Invalid input의경우에러메시지를출력한다. Output 사용자입력값에대한대답을출력한다. Pre-Conditions 사용자가 send 버튼을누른다. Post-Conditions 사용자가입력한값을저장한다. 입력한값이올바를경우 msg.reright, 잘못되었을경우 msg.rewrong을출력한다. displaysound() 가실행되며출력된문자열을넘겨준다. receivemsg() 가실행된다. Name showlist() Responsibilities 저장되어있는단어들을리스트로확인한다. Cross Reference Functions: R.2, R.5, R.7.1, R.7.2 Use case: Display Parent Mode, Show List, Delete Word, Add Word Notes 사용자가 Parent Mode를실행하거나 Add 버튼, Delete 버튼을클릭했을 때실행된다. Exception DB에연결이안되었을경우, DB에서단어를읽어올수없는경우알림창 을출력한다. Output 화면에 DB에등록된단어를뜻과함께보여준다. Pre-Conditions displaypm(), deleteword(), addword() 와함께실행된다. 16
Post-Conditions DB 에등록된단어를뜻과함께 Table 로출력해준다. 단어가없으면빈 Table 을출력한다. Name findword() Responsibilities User가검색한단어에대한뜻 / 사진 / 소리를화면에출력해준다. Cross Reference Functions: R.6 Use case: Find Word Notes textbox에입력값이있을경우 find 버튼이활성화된다. Exception If invalid information is entered, indicate an error Output User가검색한단어에대한뜻 / 사진 / 소리를화면에출력해준다. Pre-Conditions 사용자가영어단어를입력하고찾기버튼을누른다. Post-Conditions Parent.word has set to word. 입력받은문자열로뜻과소리, 사진을 DB 에서찾는다. DB 에정보가없을경우네이버백과사전에서찾는다. 결과를 Parent.word 에저장한다. 결과를출력한다. 결과가없을경우결과없음메시지를출력한다. Name addword() Responsibilities 찾은단어를단어장에추가한다. Cross Reference Functions: R.5, R.6, R.7.1 Use case: Find Word, Add Word, Show List Notes 단어검색결과하단에버튼이있다. 사용자가검색한단어가네이버백과사전에서찾은결과일경우, Add to list 버튼이활성화된다. Exception DB 연결이안되었을경우알림창을띄운다. DB 에단어를저장할수없을경우알림창을띄운다. Output - Pre-Conditions Add to list 버튼을사용자가누른다. Post-Conditions Parent.word 에저장되어있는단어의영어와뜻을 DB 에저장한다. Parent.word 에저장되어있는그림과음성파일을파일로저장하고경로를 DB 에저장한다. Invoke Show List Name deleteword() 17
Responsibilities 찾은단어를단어장에서삭제한다. Cross Reference Functions: R.5, R.7.2 Use case: Show List, Delete Word Notes 단어검색결과하단에버튼이있다. 사용자가검색한단어가 DB에서찾은결과일경우, Delete 버튼이활성화 된다. Exception DB 연결이안되었을경우알림창을띄운다. DB에서해당단어를찾을수없을경우알림창을띄운다. Output - Pre-Conditions 사용자가 Delete 버튼을누른다. Post-Conditions Parent.word 에저장되어있는단어를 DB 에서찾고삭제한다. Invoke showlist() Name displaysound() Responsibilities User가단어 ( 문장 ) 에대한소리를출력한다. Cross Reference Functions: R.3, R.4, R.8 Use case: Send Message, Receive Message, Display Sound Notes 소리출력버튼은 Child mode의대화말풍선끝, Parent Mode의단어검색 결과상단에생성된다. Exception 음성파일이존재하지않는경우알림창을띄운다. Output 소리가출력이된다. Pre-Conditions 사용자가소리출력버튼을누르거나, sendmsg() 에의해실행된다. 문자열을인자로받는다. Post-Conditions 인자로받은문자열의음성파일을찾아출력한다. Name displaymain() Responsibilities 메인메뉴를실행한다. Cross Reference Functions: R.1, R.2, R.9 Use case: Display Child Mode, Display Parent Mode, Display Main Notes 프로그램을실행했을때메인메뉴를처음으로화면에띄어준다. 메인메뉴로돌아가기위한버튼이 Parent mode, Child mode 우측상단에있다. Exception None 18
Output 화면에 Main Menu가출력된다. Pre-Conditions 사용자가프로그램을실행하거나사용자가메인으로돌아가기를선택한다. 아이모드에서 버튼을누른경우실행된다. Post-Conditions 아이모드와부모모드를선택할수있는메인화면창이뜬다. 키보드 C 를입력받으면아이모드를실행한다키보드 P 를입력받으면부모모드를실행한다. 19