7. 아키텍처

Programs/OOAD 2012. 9. 25. 11:58

어디서부터 어떻게 무엇을 먼저 시작해야 하나요?
아키텍처는 디자인의 구조이고, 프로그램의 가장 중요한 부분들과 그들 사이의 관계를 명확히 보여줍니다.

* 아키텍처
아키텍처는 시스템의 분할, 나뉜 부분들 사이의 연결과 상호 작용 메커니즘, 그리고 시스템의 디자인에 사용된 원리와 결정 사항들을 담고있는 시스테므이 구조입니다.

  1. 첫 번째 단계는 항상 프로그램이 고객이 원하는 일을 하게 하는 것입니다.(기능부터 시작합시다.)
    어떤 것이 아키텍처적인 의미에서 중요한지 알아내려고 할 때, 다음의 세가지 질문을 할 수있습니다.
    1. 시스템의 본질이 되는 부분인가?
      정말 그 특징이 시스템의 핵심인가? 그 특징이 없는 시스템을 생각할 수 있는가? 아니라면 아마도 시스템의 본질이 되는 특징을 찾은 것입니다.
    2. 이것은 도대체 무슨 의미죠? 어떤 일인지 확실치 않을 때, 그 일은 시간이 오래 걸리거나 시스템의 나머지 부분에 문제를 야기시킬수 있습니다. 그러한 특징들은 일찌감치 알아봐야 합니다.

    3. 도대체 어떻게 해야 하죠?
      구현하기 정말 어려워 보이거나 여러분에게 완전히 새로운 프로그래밍 작업인 경우 입니다. 특정 문제를 어떻게 해결할지 잘 모르겠으면, 처음에 그 특징에 시간을 들여 문제의 발생을 미리 막아야 합니다.

  2. 1번의 질문에 대한 핵심 특징 리스트를 작성 합니다. 프로젝트 성공의 위험 요소를 줄이는 방향으로 진행된다면, 어느 것을 먼저 하는지는 상관없습니다. 시나리오들이 위험 요소를 줄이는 데 도움이 됩니다. 간단한 기능을 할 수 있는 시나리오를 작성 합니다.
  3. 몇 개의 핵심 특징이 되는 부분의 기능을 간단히 구현 합니다. 프로젝트에서 위험을 줄일려면, 한 번에 하나의 특징에 집중하세요. 위험을 줄이는 데 도움이 되지 않는 특징들에 너무 신경쓰지 마세요. 기능 구현을 하면서 필요한 클래스들과의 관계를 정리하면서 클래스들의 기본 설계를 합니다. 위험 요소를 줄이는 일에만 집중을 하세요.
  4. 어떤 특징이 무엇을 의미하는지 확실치 않을 때, 가장 좋은 방법은 고객에게 질문하는 것입니다.
    고객에게 문의 -> 공통점 분석 -> 구현 계획
    모든 내용은 프로젝트의 위험 요소를 확인 후 해결 하는것에 집중을 합니다.

 

핵심 정리

  • 아키텍처는 모든 다이어그램, 계획, 특징 리스트들을 잘 정돈된 애플리케이션으로 만드는 데 도움을 줍니다.
  • 프로젝트에 매우 중요한 시스템의 특징들은 아키텍처적으로 중요합니다.
  • 시스템의 본질인 특징, 의미가 명확하지 않은 특징, 또는 처음에 어떻게 구현해야 할지 명확하지 않은 특징에 초점을 맞추세요.
  • 프로젝트의 아키텍처 설계 단계에서 하는 모든 일은 프로젝트 실패의 위험을 줄여야 합니다.
  • 유스케이스의 세부 사항이 필요하지 않을 경우, 소프트웨어가 어떻게 이용될 수 있는지를 설명하는 시나리오를 작성하면 요구 사항을 빠르게 수집하는데 도움이 됩니다.
  • 특징이 무엇인지 확실히 모를 때, 고객에게 묻고, 그런 후 얻ㄴ은 답을 일반화하여 특징을 잘 이해하도록 합니다.
  • 공통점 분석을 사용해서 유연한 소프트웨어 솔루션을 만드세요
  • 고객은 여러분 생각에 정말 멋지게 짜여진 코드에 관심이 있기보다는 그들이 워ㅓㅜㄴ하는 일을 하고, 시간에 맞게 만들어지는 소프트웨어에 관심이 있습니다.

 

'Programs > OOAD' 카테고리의 다른 글

9. 반복하기, 테스팅하기  (1) 2012.09.28
8. 디자인 원리들  (5) 2012.09.25
6. 큰 문제들 해결하기  (3) 2012.09.22
5-2. 좋은 디자인 = 유연한 소프트웨어  (0) 2012.09.22
5-1. 좋은 디자인 = 유연한 소프트웨어  (0) 2012.09.21
Posted by outliers
,