Webtoon Paint OSP Stage 2030 Team 2 200911371 김민철 200911381 김진현 200911417 정명권
Activity 2031. Define Essential Use Cases 1. 파일불러오기 Use Case Actors 파일불러오기 Purpose 이미지파일을불러와컷위에표시한다. Overview 가불러오기버튼을누르면불러올파일을선택하는인터페이스를표시한다. 가파일을선택하면컷위에그이미지를조절하여추가한다. Primary R4.2 Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A) :, (S) : 시스템 1. (A) 이미지파일불러오기요청 2. (S) 불러올이미지파일의경로를입력받는화면보여주기 3. (A) 이미지파일의경로입력 4. (S) 파일이존재하는지검사 5. (S) 컷을추가 (R4.2) 하고불러온이미지를해당컷에표시 Line 3. 파일의경로가올바르지않으면재입력을요청 Line 4. 파일이존재하지않으면경고후재입력을요청
Activity 2031. Define Essential Use Cases 2. 파일저장하기 Use Case Actors 파일저장하기 Purpose 컷상에표시된이미지를파일로저장한다. Overview 가저장하기버튼을누르면저장할위치를선택하는인터페이스를표시한다. 가저장할위치를선택하면현재컷을이미지파일로저장한다. Primary Pre-Requisites 컷이하나이상존재하고활성화되어있어야한다. Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A) :, (S) : 시스템 1. (A) 이미지파일저장하기요청 2. (S) 저장할파일의경로를입력하는화면보여주기 3. (A) 이미지파일의경로와이름입력 4. (S) 파일의이름이중복되는지검사 5. (S) 컷위의이미지를파일로저장 Line 4. 파일의이름이중복되면덮어쓸것인지경고
Activity 2031. Define Essential Use Cases 3. 브러시 Use Case Actors Purpose Overview Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events 브러시 컷상에자유선을그린다 가브러시버튼을누르면마우스포인터가점으로표시된다. 마우스왼쪽버튼을누르면그위치에선택된색상과굵기로컷위에점이그려진다. Primary 컷이하나이상존재하고활성화되어있어야한다 (A) :, (S) : 시스템 1. (A) 브러시기능요청 2. (S) 마우스포인터를변경 3. (A) 원하는위치에서마우스왼쪽버튼클릭 4. (S) 컷위에적용 Line 3. 마우스포인터의위치가컷바깥쪽이면입력을무시한다
Activity 2031. Define Essential Use Cases 4. 지우개 Use Case Actors 지우개 Purpose 컷상의이미지를지운다. Overview Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events 가지우개버튼을누르면마우스포인터가흰색점으로표시된다. 마우스왼쪽버튼을누르면그위치가선택된영역만큼흰색으로바뀐다. Primary 컷이하나이상존재하고활성화되어있어야한다 (A) :, (S) : 시스템 1. (A) 지우개기능요청 2. (S) 마우스포인터를변경 3. (A) 원하는위치에서마우스왼쪽버튼클릭 4. (S) 컷위에적용 Line 3. 마우스포인터의위치가컷바깥쪽이면입력을무시한다
Activity 2031. Define Essential Use Cases 5. 굵기조절 Use Case Actors 굵기조절 Purpose 브러시와지우개의적용범위를변경한다. Overview Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events 가원하는굵기의버튼을누르면브러시와지우개가적용되는범위가조절된다. Primary (A) :, (S) : 시스템 1. (A) 적용할굵기버튼선택 2. (S) 변수변경
Activity 2031. Define Essential Use Cases 6. 색상선택 Use Case Actors 색상선택 Purpose 브러시와지우개의적용색상을변경한다. Overview 가원하는색상을누르면브러시와지우개에적용되는색상이조절된다. Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events Primary (A) :, (S) : 시스템 1. (A) 적용할색상버튼선택 2. (S) 변수변경
Activity 2031. Define Essential Use Cases 7. 영역선택 Use Case Actors 영역선택 Purpose 불러온이미지파일에자신이원하는영역을선택한다. Overview 가영역선택버튼을누른후원하는영역을정한다. Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events Primary (A) :, (S) : 시스템 1. (A) 영역선택요청 2. (A) 영역의시작점을마우스로클릭 3. (S) 시작점부터현재마우스포인터까지사각형출력 4. (A) 설정할영역의끝점에서마우스를언클릭 5. (S) 선택된영역에영역지정프레임이화면에뜸 Line 4. 마우스포인터가컷밖으로나갈수없음
Activity 2031. Define Essential Use Cases 8. 영역삭제 Use Case Actors 영역삭제 Purpose 선택된영역을삭제한다. Overview 가영역삭제버튼을누르면선택된영역이지워진다. Primary Pre-Requisites 영역이선택되어있어야함. Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A) :, (S) : 시스템 1. (A) 영역선택후영역삭제버튼을누름 2. (S) 선택영역이지워지고하얀공백이생김 3. (S) 선택영역이해제
Activity 2031. Define Essential Use Cases 9. 영역잘라내기 Use Case Actors 영역잘라내기 Purpose 선택된영역을클립보드에저장하고선택된영역은지워진다. Overview 가영역잘라내기를하면선택된영역이지워지고클립보드에복사된다. Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events Primary 영역이선택되어있어야한다 (A) :, (S) : 시스템 1. (A) 영역잘라내기요청 2. (S) 선택된영역을클립보드에복사 3. (S) 선택된영역삭제
Activity 2031. Define Essential Use Cases 10. 영역복사하기 Use Case Actors 영역복사하기 Purpose 선택된영역을클립보드에저장한다. Overview 가영역복사하기를하면선택된영역이클립보드에복사된다. Primary Pre-Requisites 영역이선택되어있어야한다. Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A) :, (S) : 시스템 1. (A) 영역복사요청 2. (S) 선택된영역을클립보드에복사
Activity 2031. Define Essential Use Cases 11. 영역붙여넣기 Use Case Actors 영역붙여넣기 Purpose 클립보드에저장된이미지를붙여넣음. Overview 가붙여넣기를누르면클립보드에저장된이미지가화면에복사됨. Primary Pre-Requisites 클립보드에저장된이미지가있어야함. Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A) :, (S) : 시스템 1. (A) 영역붙여넣기요청 2. (S) 클립보드에저장된이미지를컷에복사 3. (S) 붙여진영역은영역선택
Activity 2031. Define Essential Use Cases 12. 영역이동 Use Case Actors 영역이동 Purpose 선택된영역을이동한다. Overview 가선택된영역의가운데를드래그해서위치를이동함. Primary Pre-Requisites 영역이선택되어있어야함. Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A) :, (S) : 시스템 1. (A) 가선택된영역의가운데를마우스로클릭 2. (S) 마우스커서를 4 방향화살표로변경 3. (A) 가마우스를클릭한채로선택영역을드래그 4. (S) 마우스를따라선택영역이이동 5. (A) 가선택영역을해제함. 6. (S) 선택영역이컷에고정됨.
Activity 2031. Define Essential Use Cases 13. 컷전환하기 Use Case Actors Purpose Overview Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events 컷전환하기 다른컷으로이동한다 가다른컷의번호를클릭하면컷이전환된다 Primary (A) :, (S) : 시스템 1. (A) 다른컷번호클릭 2. (S) 활성화된컷을변경
Activity 2031. Define Essential Use Cases 14. 컷추가하기 Use Case Actors 컷추가하기 Purpose 새로운컷을추가한다. Overview 컷추가버튼을클릭하여탭형식으로새로운컷을생성한다. Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events Primary (A) :, (S) : 시스템 1. (A) 컷추가버튼클릭 2. (S) 현재마지막컷의다음번호가적힌새로운컷을생성
Activity 2031. Define Essential Use Cases 15. 컷삭제하기 Use Case Actors 컷삭제하기 Purpose 현재활성화된컷을삭제한다. Overview 컷삭제버튼을클릭하여현재활성화된컷탭을삭제한다. Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events Primary (A) :, (S) : 시스템 1. (A) 컷삭제버튼클릭 2. (S) 활성화되어있는컷을삭제
Activity 2031. Define Essential Use Cases 16. 컷크기조절 Use Case Actors 컷크기조절하기 Purpose 현재활성화된컷의크기를조절한다. Overview 컷의모서리에있는크기조절포인트를클릭하여컷을확대 / 축소한다. Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events Primary (A) :, (S) : 시스템 1. (A) 현재컷의모서리에있는크기조절포인트를클릭 2. (A) 마우스를드래그하여크기를조절 3. (S) 마우스를놓으면현재까지조절된크기로컷의크기를설정 4. (S) 컷크기와이미지크기를비교 Line 4. 컷크기가이미지크기보다작아질경우이미지를컷크기에맞춰지움
Activity 2031. Define Essential Use Cases 17. 컷합치기 Use Case Actors 컷합치기 Purpose 모든컷들을합쳐서새로운컷으로만든다. Overview 컷합치기버튼을클릭하면현재까지작성된컷들을하나로합쳐새로운컷을만든다. Primary R4.2, R3.1, R3.6, R3.7 Pre-Requisites Typical Courses of Events Alternative Courses of Events Exceptional Courses of Events (A) :, (S) : 시스템 1. (A) 컷합치기버튼클릭 2. (S) 현재작성되어있는컷들을컷번호순서에따라아래로붙임 3. (S) 합친이미지를새로운컷을만들어집어넣는다.
Activity 2032. Refine Use Case Diagram
Activity 2033. Define Domain Model
Activity 2034. Refine Glossary Refine terms Term Category Remark Project Class 여러컷들의집합 Cut Class 하나의그림이띄워져있는창 AreaTool Class Area를핸들링하는처리기 Area Class 컷의일부분을선택할수있는영역 TextArea Class 텍스트를입력할수있는영역 DrawingTool Class 그리기도구를핸들링하는처리기 Brush Class 브러시의정보 Eraser Class 지우개의정보 Project.cuts Attribute 프로젝트가가지고있는컷들 Cut.cutnum Attribute 컷의번호 Cut.width Attribute 컷의길이 Cut.height Attribute 컷의높이 Cut.img Attribute 컷이가지고있는그림 Cut.cutstat Attribute 컷의상태
Activity 2034. Refine Glossary Refine terms cont. Term Category Remark DrawingTool.brush Attribute 그리기도구에설정된브러시정보 DrawingTool.eraser Attribute 그리기도구에설정된지우개정보 DrawingTool.linesize Attribute 브러시와지우개의굵기 Brush.color Attribute 브러시의색상 AreaTool.area Attribute 영역도구에설정된영역정보 Area.startX Attribute 영역의시작점의 x좌표 Area.startY Attribute 영역의시작점의 y좌표 Area.endX Attribute 영역의끝나는점의 x좌표 Area.endY Attribute 영역이끝나는점의 y좌표 Area.img Attribute 영역이설정된부분의그림
Activity 2035. Define Sequence Diagrams Determine system boundary
Activity 2035. Define Sequence Diagrams Use Case Name of Actor-Activated Event 1. 파일불러오기 requestloadimage() 2. 파일저장하기 requestsaveimage() 3. 브러시 requestbrushing() 4. 지우개 requesterasing() 5. 굵기조절 requestsetlinesize() 6. 색상선택 requestsetcolor() 7. 영역선택 requestselectarea() 8. 영역삭제 requestdelarea() 9. 영역잘라내기 requestcutoffarea() 10. 영역복사 requestcopyarea() 11. 영역붙여넣기 requestpastearea() 12. 영역이동 RequestMoveArea() 13. 컷전환하기 requestchangecut() 14. 컷추가하기 requestaddcut() 15. 컷삭제하기 requestdelcut() 16. 컷크기조절 requestsetcutsize() 17. 컷합치기 requestmergecut()
Activity 2035. Define Sequence Diagrams Use Case 1 : 파일불러오기 (A) :, (S) : 시스템 1. (A) 이미지파일불러오기요청 2. (S) 불러올이미지파일의경로를입력받는화면보여주기 3. (A) 이미지파일의경로입력 4. (S) 파일이존재하는지검사 5. (S) 불러온이미지를도화지에표시 1. requestloadimage()
Activity 2035. Define Sequence Diagrams Use Case 2 : 파일저장하기 (A) :, (S) : 시스템 1. (A) 이미지파일저장하기요청 2. (S) 저장할파일의경로를입력하는화면보여주기 3. (A) 이미지파일의경로와이름입력 4. (S) 파일의이름이중복되는지검사 5. (S) 컷위의이미지를파일로저장 1. resquestsaveimage()
Activity 2035. Define Sequence Diagrams Use Case 3 : 브러시 (A) :, (S) : 시스템 1. (A) 브러시기능요청 2. (S) 마우스포인터를변경 3. (A) 원하는위치에서마우스왼쪽버튼클릭 4. (S) 컷위에적용 1. requestbrushing()
Activity 2035. Define Sequence Diagrams Use Case 4 : 지우개 (A) :, (S) : 시스템 1. (A) 지우개기능요청 2. (S) 마우스포인터를변경 3. (A) 원하는위치에서마우스왼쪽버튼클릭 4. (S) 컷위에적용 1. requesterasing()
Activity 2035. Define Sequence Diagrams Use Case 5 : 굵기조절 (A) :, (S) : 시스템 1. (A) 적용할굵기버튼선택 2. (S) 변수변경 1. requestsetlinesize()
Activity 2035. Define Sequence Diagrams Use Case 6 : 색상선택 (A) :, (S) : 시스템 1. (A) 적용할색상버튼선택 2. (S) 변수변경 1. requestsetcolor()
Activity 2035. Define Sequence Diagrams Use Case 7 : 영역선택 (A) :, (S) : 시스템 1. (A) 영역선택요청 2. (A) 영역의시작점을마우스로클릭 3. (S) 시작점부터현재마우스포인터까지사각형출력 4. (A) 설정할영역의끝점에서마우스를언클릭 5. (S) 선택된영역에영역지정프레임이화면에뜸 1. requestselectarea()
Activity 2035. Define Sequence Diagrams Use Case 8 : 영역삭제 (A) :, (S) : 시스템 1. (A) 영역선택후영역삭제버튼을누름 2. (S) 선택영역이지워지고하얀공백이생김 3. (S) 선택영역이해제 1. requestdelarea()
Activity 2035. Define Sequence Diagrams Use Case 9 : 영역잘라내기 (A) :, (S) : 시스템 1. (A) 영역잘라내기요청 2. (S) 선택된영역을클립보드에복사 3. (S) 선택된영역삭제 1. requestcutoffarea()
Activity 2035. Define Sequence Diagrams Use Case 10 : 영역복사하기 (A) :, (S) : 시스템 1. (A) 영역복사요청 2. (S) 선택된영역을클립보드에복사 1. requestcopyarea()
Activity 2035. Define Sequence Diagrams Use Case 11 : 영역붙여넣기 (A) :, (S) : 시스템 1. (A) 영역붙여넣기요청 2. (S) 클립보드에저장된이미지를컷에복사 3. (S) 붙여진영역이영역선택 1. requestpastearea()
Activity 2035. Define Sequence Diagrams Use Case 12 : 영역이동 (A) :, (S) : 시스템 1. (A) 가선택된영역의가운데를마우스로클릭 2. (S) 마우스커서를 4 방향화살표로변경 3. (A) 가마우스를클릭한채로선택영역을드래그 4. (S) 마우스를따라선택영역이이동 5. (A) 가선택영역을해제함. 6. (S) 선택영역이컷에고정됨. 1. requestmovearea()
Activity 2035. Define Sequence Diagrams Use Case 13 : 컷전환 (A) :, (S) : 시스템 1. (A) 다른컷번호클릭 2. (S) 활성화된컷을변경 1 requestchangecut()
Activity 2035. Define Sequence Diagrams Use Case 14 : 컷추가 (A) :, (S) : 시스템 1. (A) 컷추가버튼클릭 2. (S) 현재마지막컷의다음번호가적힌새로운탭형식의컷을생성 1. requestaddcut()
Activity 2035. Define Sequence Diagrams Use Case 15 : 컷삭제 (A) :, (S) : 시스템 1. (A) 컷삭제버튼클릭 2. (S) 활성화되어있는컷을삭제 1. requestdelcut()
Activity 2035. Define Sequence Diagrams Use Case 16 : 컷크기조절하기 (A) :, (S) : 시스템 1. (A) 현재컷의모서리에있는크기조절포인트를클릭 2. (A) 마우스를드래그하여크기를조절 3. (S) 마우스를놓으면현재까지조절된크기로컷의크기를설정 4. (S) 컷크기와이미지크기를비교 1. requestsetcutsize()
Activity 2035. Define Sequence Diagrams Use Case 17 : 컷합치기 (A) :, (S) : 시스템 1. (A) 컷합치기버튼클릭 2. (S) 현재작성되어있는컷들을컷번호순서에따라아래로붙임 3. (S) 합친이미지를새로운컷을만들어집어넣는다. 1. requestmergecut()
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestloadimage() 새로운컷을만든다새로운컷의크기에맞춰이미지를불러온다 파일을읽을수없으면파일을다시선택하게한다 새로운컷이생긴다 Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestsaveimage() 활성화된컷을그림파일로저장한다 파일이름이중복되면파일이름을다시입력받는다새로운파일컷이활성화되어있다컷이새로운파일로저장된다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestbrushing() 마우스포인터를브러시상태로바꾼다가컷안에서드래그를하면마우스를따라브러시색상을그린다 마우스포인터가컷밖으로넘어가면그려지지않는다 마우스포인터가브러시상태이다마우스로드래그한부분이지정된색상으로채워진다 requesterasing() 마우스포인터를지우개상태로바꾼다가컷안에서드래그를하면마우스를따라하얀색으로지운다 마우스커서가컷밖으로넘어가면지워지지않는다 마우스커서가지우개상태이다마우스로드래그한곳이하얀색으로지워진다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestsetlinesize() 브러시, 지우개의굵기를바꾼다 Brushing, erasing 브러시, 지우개의굵기가바뀐다 Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestsetcolor() 브러시의색상을지정한다 brushing 브러시의색상이바뀐다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestselectarea() 마우스포인터를영역선택상태로바꾼다가드래그를시작하면시작지점부터마우스포인터지점까지영역선택표시를출력하고드래그를끝내면영역선택표시를고정한다. 영역선택후선택된영역의밖을클릭하면영역선택이해제된다 컷영역밖에서영역선택을시작할수없다 설정된영역 컷에영역이선택된다 Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestdelarea() 영역선택된부분을하얀색으로채운후영역이해제된다 영역선택 영역이선택되어있지않으면사용할수없다 영역이선택되어있다 영역을선택했던부분이지워진다영역선택이해제된다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestcutoffarea() 영역을잘라내클립보드에복사한다영역을잘라내서생긴공백은하얀색으로채운다 영역선택 영역이선택되어있지않으면사용할수없다 클립보드에이미지가저장된다 영역이선택되어있어야한다 클립보드에이미지가저장된다영역을잘라내서생긴공백이하얀색으로채워진다 Name Responsibilities Exceptions Output Pre-conditions Post-conditions CopyArea() 영역을클립보드에복사한다 영역선택영역이선택되어있지않으면사용할수없다클립보드에이미지가저장된다영역이선택되어있어야한다영역이클립보드에복사되어있다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions Name Responsibilities Exceptions Output Pre-conditions Post-conditions CopyArea() 영역을클립보드에복사한다 영역선택 영역이선택되어있지않으면사용할수없다 클립보드에이미지가저장된다 영역이선택되어있어야한다 영역이클립보드에복사되어있다 PasteArea() 클립보드에저장된이미지를붙여넣고이미지만큼의영역을설정한다 활성화된컷이없으면붙여넣기가되지않는다 새로운영역 컷이활성화되어있어야한다 클립보드의이미지가컷에출력된다출력된이미지가영역이선택된다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output requestmovearea() 선택된영역위로마우스가이동하면마우스포인터가영역이동으로변경된다그상태에서드래그를시작하면마우스를따라영역이이동된다영역이이동하면서생긴공백은하얀색으로채운다 영역선택 바뀐영역의위치 Pre-conditions 영역이선택되어있어야한다. Post-conditions 영역의위치가바뀐다영역으로생긴공백이하얀색으로채워진다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestchangecut() 활성화되어있는컷을비활성화시키고가선택한컷을활성화시킨다 컷이두개이상없으면사용할수없다새로운활성화된컷컷이두개이상열려있어야한다컷이전환된다 Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestaddcut() 새로운컷을추가한다 새로운컷 새로운컷이생긴다새로운컷은하얀색으로채워진다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestdelcut() 활성화되어있는컷을지운다 활성화되어있는컷이없으면사용할수없다 컷삭제 컷이활성화되어있다 컷이지워진다다음컷이활성화된다 requestsetcutsize() 활성화되어있는컷의크기를바꾼다 활성화되어있는컷이없으면사용할수없다 컷의크기가바뀜 컷이활성화되어있다 컷의크기가바뀐다
Activity 2036. Define Operation Contracts Name Responsibilities Exceptions Output Pre-conditions Post-conditions requestmergecut() 열려져있는컷들을하나로합쳐새로운컷을만든다 컷이하나이상열려있어야한다 컷들이합쳐진새로운컷 컷이하나이상있다 새로운컷이생긴다새로운컷은이전까지컷들이합쳐진다