Home

[OOP] 객체지향 사고 프로세스 Chapter_6. 객체를 사용해 설계하기

객체지향 사고 프로세스

객체지향 사고 프로세스

맷 와이스펠드 지음 / 박진수 옮김

JPUB

목차

객체를 사용해 설계하기

소프트웨어가 생산 될 때 대부분의 시간과 노력이 설계 단계가 아닌 공학(engineering)단계에서 사용된다.

전체 설계에 주의를 기울이고 최상의 제품을 만들기 위해 적절한 시간과 노력을 투자해야 한다.

설계 지침

견고한 객체지향 설계 과정

  1. 적절한 분석 수행

    • 분석 단계 동안에서 정당한 사유가 있다면 망설임 없이 프로젝트를 중단해야 한다. 안되는 것을 되게 하는 것은 매우 힘들며 피곤한 작업이다. 질질 끌 필요없이 과감하게 중단하자.
  2. 시스템을 설명 작업명세서 개발

    • 작업 명세서는 시스템을 설명하는 문서라 보면된다. - 작업 명세서를 보고 시스테믜 모양과 느낌을 알 수 있어야 한다.
  3. 작업명세서로부터 요구사항 수립

    • 요구사항은 최종 제품에 대한 사용자 요구의 진정한 본질을 나타내기에 충분할 만큼 구체적이어야 한다.
  4. 사용자 인터페이스 프로토 타입 개발
  5. 클래스 식별

    • 요구사항이 도출되면 이를 통해서 클래스를 식별한다. 일반적으로 요구사하을 바탕으로 모든 명사를 강조 표시하는 것이 편리하다.
    • 한번에 모든일을 하려 하지 말자. 설계는 지속적으로 변경될 것이고, 반복될 것이다.
  6. 각 클래스의 역활을 결정

    • 클래스가 어떤 역활을 할것인지 결정해야 한다.
  7. 다양한 클래스가 서로 상호작용하는 방식을 결정
  8. 만들고자 하는 시스템을 설명하는 고급 모델을 구성

    • 클래스의 역활과 협동 방식을 나열한 후에는, 전체 시스템을 나타내는 클래스 모델을 합성해 볼 수 있다.
    • UML 클래스 모델을 그려보자.

코딩을 시작하기 전에 완벽하고 철저하게 설계하는 게 바람직하다.

일반적으로 설계 단계에서 요구사항이나 설계를 변경하는 비용이 구현 단계나 배포 단계에서 변경하는 경우보다 비용이 싸고 노력이 덜 들어간다.

경쟁이 치열해지는 시장에서 고품질 소프트웨어와 지원 서비스 및 평판은 경쟁우위이다. - 개발자 시장도 다르지 않다. 개발자 버블 시대에서 내가 남들보다 더 고품질의 소프트웨어를 만들 수 있어야 더 좋은 근무 환경과 대우를 받으면서 일할 수 있다.

객체래퍼

객체지향과 구조적 설계는 양분할 수 있는 개념이 아니다. 객체지향 설계 기술을 사용하면서 구조적 프로그래밍 기술도 사용하는 것이다.

객체지향 구조캡슐화, 상속, 다형성합성으로 이루어진다.

구조적 프로그래밍순서, 조건, 반복으로 구성된다.

구조적 설계에서는 코드를 함수로 둘러싸고, 객체지향 설계에서는 코드를 객체메서드로 둘러싼다.

일반적으로 내가 작성하는 프로그램을 생각해보면 객체 안에 메서드가 있고, 메서드 안에 구조화된 코드(순서, 조건, 반복 )이 들어가 있다.

래퍼를 사용하는 또다른 이유는 변경할 수 없는 클래스를 새로운 클래스로 둘러싸서 기존 클래스의 구현부나 인터페이스를 바꿀때 사용하는 것이다.

결국 래퍼는 다양한 기능을 캡슐화 하는데 사용되는 것이며 래퍼는 결국 프로그래머에게 일관된 인터페이스를 제공하는 것이다.


위 정리글은 객체지향 사고 프로세스에서 인용한 것입니다.

[ISBN 979-11-90665-21-6]

Loading script...