티스토리 뷰
소프트웨어는 완벽한 세상이 아닌, 실제 세상에서 동작해야 한다. 실세계에서도 프로그램이 문제없이 동작하게 하는 핵심은 분석이다.
문제 찾기
분석을 잘하는 첫 번째 단계는 잠재된 문제들을 찾는 것이다. 미래를 예상해서 문제를 찾을 수도 있고, 실세계에서 원하는대로 동작하지 않아서 문제를 찾을 수도 있다.
유스케이스는...
유스케이스를 여러분과 상사 그리고 고객이 이해하기 쉬운 방식으로 작성하라. 분석과 유스케이스들은 고객, 관리자, 동료에게 여러분이 만드는 시스템이 실세계에서 어떻게 동작할지 보여준다.
유스케이스 업데이트
새로운 목표를 가지는 유스케이스가 생기면 새로운 유스케이스를 만들면 된다. 각 유스케이스는 하나의 특정한 목표를 가지고 있어야 한다.
본문 분석
클래스들과 메소드들을 찾아내기 위해 유스케이스에서 명사(와 동사)를 분석하는 것을 본문 분석이라고 한다. 명사들은 클래스 후보가 되고, 동사들은 객체의 메소드의 후보가 된다. 후보라는 것은 클래스나 메소드가 안 될 수 있다는 것을 의미한다. 그리고 본문 분석을 통해서 나온 클래스와 메소드가 소프트웨어에서 필요한 클래스와 메소드를 모두 찾을 수 있는 것이 아니다. 본문 분석은 집중해야 할 것을 알려주는 것이지, 무슨 클래스를 만들어야 하는지를 다 알려주지는 않는다.
핵심 정리
- 분석을 하면 여러분이 만드는 소프트웨어가 여러분의 가상의 세계가 아니라 실세계에서 잘 동작하는지를 확인하는데 도움이 된다.
- 유스케이스들은 여러분과 여러분의 상사, 고객, 동료 프로그래머들이 이해하기 쉽게 만들어져야 한다.
- 유스케이스는 형식에 크게 구애받지 않고 유스케이스의 이용자인 여러분과 상사, 동료 프로그래머들에게 가장 사용하기 쉬운 형식으로 작성해야 한다.
- 좋은 유스케이스는 시스템이 하는 일은 정확히 설명하지만, 어떻게 그 일을 하는 지는 설명하지 않는다.
- 각 유스케이스는 고객의 하나의 목표에만 집중해야 한다. 여러 개의 목표를 가진다면, 여러 개의 유스케이스를 작성해야 한다.
- 클래스 다이어그램은 시스템과 코드의 구성 요소들을 한 눈에(마치 300미터 상공에서 보는 듯이) 볼 수 있게 하는 쉬운 방법이다.
- 클래스 다이어그램에서의 속성들은 보통 여러분이 만든 클래스의 멤버 변수에 매핑된다.
- 크래스 다이어그램에서 어퍼레이션들은 클래스의 메소드들은 나타낸다.
- 클래스 다이어그램은 클래스 생성자, 타입 정보, 메소드의 기능 등 많은 세세한 내용을 생략한다.
- 본문 분석을 통해 유스케이스를 코드 수준의 클래스를, 속성들, 메소드들로 쉽게 바꿀 수 있다.
- 유스케이스의 명사들은 클래스 후보이고, 동사들은 클래스의 메소드 후보들이다.
'객체지향 설계 > Head First OOAD' 카테고리의 다른 글
6. 정말 큰 문제 해결하기 (0) | 2018.09.03 |
---|---|
5. 좋은 디자인 = 유연한 소프트웨어 (0) | 2018.09.02 |
3. 요구 사항 변경 (0) | 2018.09.02 |
2. 요구 사항 수집 (0) | 2018.09.02 |
1. 잘 설계된 프로그램이 세상을 뒤흔든다. (0) | 2018.09.02 |
댓글