2013년 2월 8일 금요일

헤드퍼스트 OOAD 3강

이번 강은 요구 사항 변경이다.

고객들의 요구사항은 끊임 없이 늘어난다.(무료 업그레이드인 경우는 더 심하다)

2강에서 만들었던(?) 프로그램의 유스케이스를 보자.

고객만 통과 가능한 문, 버전 3.0 
이 문이 하는 일
1. 누군가가 문을 통과하고 싶다.
2. 이 쇼키가 고객인지 확인한다 (확인법은 안구 + 음성)
    2.1 고객이면 문을 열어준다
    2.2 고객이 아니면 한번 경고를 한다
3. 상황에 따라 행동한다.
    3.1 고객인 경우 - 문을 통과하면 문을 닫고 잠근다
    3.2 고객이 아닌 경우 - 한번 경고를 준다.
         3.2.1 - 걍 가면 상황 해제
         3.2.2 - 또 시도하면 전기 충격
         3.2.3 - 전기 충격에도 계속 시도하면 기관총 발사, 시체 처리반에게 연락


위와 같은 프로그램에서 고객 불만 사항이 접수되었다.
1. 감기 걸려서 문이 안열린다.
2. 눈병 걸렸더니 문이 안열린다.
3. 정전이 되니 문이 안열린다.
4. 시체 처리반이 시체만 가져가고 청소는 하지 않는다

위와 같은 불만이 접수되었을 때 개발자가 수용해야 하고 하지 말아야 할 사항은 무엇일까?

1,2 번은 대체 방법으로 문을 열수 있게 할 수 있다
3번은 하드웨어 업체가 해야할 일이다.
4번은....... 시체 처리반에게 추가로 요구 해야할 사항이다.

개발자는 1,2 번에 대해서만 접수해서 업그레이드 하면 된다.
업그레이드가 될 때마다 유스케이스를 새로 작성해야한다.

----------------------------------------------------------------------------------------------------------------------------------

고객만 통과 가능한 문, 버전 4.0 
이 문이 하는 일
1. 누군가가 문을 통과하고 싶다.
2. 이 쇼키가 고객인지 확인한다 (확인법은 안구 + 음성)
          2.1.1 고객 확인이 어려운 경우는 비밀번호를 입력하도록 한다. 
            2.1.2 비밀번호가 맞으면 2.1로 틀리면 2.2 로 
    2.1 고객이면 문을 열어준다
    2.2 고객이 아니면 한번 경고를 한다
3. 상황에 따라 행동한다.
    3.1 고객인 경우 - 문을 통과하면 문을 닫고 잠근다
    3.2 고객이 아닌 경우 - 한번 경고를 준다.
         3.2.1 - 걍 가면 상황 해제
         3.2.2 - 또 시도하면 전기 충격
         3.2.3 - 전기 충격에도 계속 시도하면 기관총 발사, 시체 처리반에게 연락

----------------------------------------------------------------------------------------------------------------------------------
버전 4.0을 보면 파랑색 글씨부분이 추가 되었다. 
하지만 뭔가 가독성도 떨어지고 계속 추가 될때마다 이런식으로 추가하면 조낸 빡칠꺼 같다.
그래서 이것을 분리해서 표기하기로 한다.
----------------------------------------------------------------------------------------------------------------------------------

고객만 통과 가능한 문, 버전 4.1 
이 문이 하는 일
주경로
1. 누군가가 문을 통과하고 싶다.
2. 이 쇼키가 고객인지 확인한다 (확인법은 안구 + 음성)
    2.1 고객이면 문을 열어준다
    2.2 고객이 아니면 한번 경고를 한다
3. 상황에 따라 행동한다.
    3.1 고객인 경우 - 문을 통과하면 문을 닫고 잠근다
    3.2 고객이 아닌 경우 - 한번 경고를 준다.
         3.2.1 - 걍 가면 상황 해제
         3.2.2 - 또 시도하면 전기 충격
         3.2.3 - 전기 충격에도 계속 시도하면 기관총 발사, 시체 처리반에게 연락

대체경로
2.1.1 고객 확인이 어려운 경우는 비밀번호를 입력하도록 한다. 

2.1.2 비밀번호가 맞으면 2.1로 틀리면 2.2 로 


----------------------------------------------------------------------------------------------------------------------------------


4.1 버전은 4.0에서 주경로와 대체경로를 분리 하였다.


이런식으로 분리를 해 놓으면 추가가 되더라도 가독성을 좋아진다.


요구사항이 있을 때마다 업그레이드를 해주는 것은 심각한 인력 낭비가 될 수도 있다.


심각한 오류는 당연 즉시 해결해야하지만


그냥 기능 개선 같은 경우는 업그레이드를 할 수도 있지만

아예 새로 출시해서 수익을 얻는 것이 더 좋을 수도 있다.


그것에 대한 판단은 당신의 판단이다.

댓글 없음:

댓글 쓰기