2013년 2월 12일 화요일

헤드퍼스트 OOAD 4강

4강 제목은 "분석"이다.

뭘 분석을 하냐고?? 당연히 소녀시대의 모든 것을....
은 농담이고 유스케이스를 분석하는 것이다.
먼저 아래 클래스 다이어그램을 보자.


이게 뭐다냐??
강아지 문이라는 프로그램인데.
리모컨으로 문을 열어주거나 개가 짖으면 자동으로 문이 열리는 간지 폭발 프로그램이다!!

화살표는 참조를 표시한다. 화살표 옆에 있는 door은 door을 보낸다는 뜻이다.

위의 것을 유스케이스로 작성해 보자
---------------------------------------------------------------------------------
강아지문 버전 3.0
문이 하는 일 
주 경로
1. 주인 강아지가 밖에 나가려고 짖습니다.
2. 강아지 소리 인식기가 강아지 소리를 "듣습니다".
3. 주인 강아지가 짖으면, 강아지 소리 인식기가 여는 요청을 강아지 문에 보냅니다.
4. 강아지 문이 열립니다.
5. 주인 강아지가 밖으로 나갑니다.
6. 주인 강아지가 화장실을 이용합니다.
    6.1 문이 자동으로 닫힙니다.
    6.2 주인 강아지가 안에 들어보내 달라고 짖습니다.
    6.3 강아지 소리 인식기가 강아지 소리를 "듣습니다"(다시)
    6.4 주인 강아지가 짖으면, 강아지 소리 인식기가 여는 요청을 문에 보냅니다.
    6.5 강아지 문이 열립니다.(다시)
7. 주인 강아지는 안으로 들어 옵니다.
8. 문이 자동으로 닫힙니다.

대체 경로들
2.1 주인이 강아지가 짖는 것을 듣습니다.
3.1 주인이 리모콘의 버튼을 누릅니다.

6.3.1 주인이 강아지가 짖는 것을 듣습니다.
6.4.1 주인이 리모콘의 버튼을 누릅니다.
---------------------------------------------------------------------------------
라고 표현을 했다.
자~ 이제 이것을 분석해 보자. 분석을 하는 법은 먼저 명사들을 적어보는 거다.

명사 - 강아지, 강아지 소리 인식기, 강아지 문, 주인, 요청, 리모콘, 버튼. 안/밖, 강아지 소리, 화장실

명사를 왜 적었냐고 난리 부르스를 추기 전에 이것들을 한 이유가 있다.
명사들은 클래스의 유력한 후보들이다!!!

물론 후보들이기 때문에 전부가 클래스가 되는건 아니다.
이 프로그램에서는 강아지 소리 인식기, 리모콘, 강아지 소리, 강아지 문 이 클래스가 되었다.

그럼 동사들도 적어보자.

동사 - 짖는다, 듣는다, 열린다, 나간다, 이용한다, 닫힌다, 누른다
그럼 동사는 뭐다냐?!
동사들은 메소드의 유력한 후보다!!

이것을 바탕으로 만든 것이 바로 아까 보았던 위의 다이어 그램이다.
스크롤 올리기 귀찮아 할 꺼 같아서 다시 보여준다.


물론 유스케이스나, 클래스 다이어그램은 프로그램의 세세한 모습을 보여주지는 않는다.
전체적인 설계를 하고 서로 공통으로 작업을 할 때 의사소통이 잘 되기 위해 만드는 것이다.
이제 이것을 바탕으로 코딩을 하는 것은 바로 당신의 몫이다~



댓글 없음:

댓글 쓰기