2. 구조적 객체지향

구조적 / 객체지향 분석 설계

구조적 분석법과 객체지향 분석법의 차이점

  • 구조적 분석 설계에서는 프로세스의 호출과 그 사이의 데이터흐름을 중심으로 분석을 한 후 실제 구현하기 위하여 모듈구조설계, 모듈사양서를 작성
  • 객체지향 분석 설계는 구조적 분석 설계와 달리, 기본 데이터로 객 체(object)를 중심으로 하여 똑같은 관점으로 분석 설계를 수행 ⇒ 클래스, 객체, 상속 등의 개념으로 분석하여 객체 모델(Object Model)을 작성
  • 객체지향 분석 설계에서는 일단 시스템에서 취급해야 될 객체를 추출하게 되면 그것을 가지고 객체를 구조, 기능, 동작의 3가지 측면으로 다루어 나선형(spiral)적으로 그들의 내용을 반복해서 구체화
  • 모듈 평가
    • 응집도(Cohesion)
      • 내부 구성 요소들이 관련되어 있는지를 나타내는 수치
      • 높을수록 좋음
    • 결합도(Coupling)
      • 모듈 간 상호 의존성을 나타내는 개념 ⇒ 다른 모듈의 변경 사항이 해당 모듈에 영향을 미치는 정도를 나타냄
      • 낮을수록 좋음

분석설계의 작업순서와 분석과 설계 사이에 시점의 변환

Untitled

분석과 설계 사이에는 관점의 변환이 있다.

관점의 변환이 단점

Untitled 1

x축 : 동적(상호 작용도)

y축 : 기능(객체의 행위)

z축 : 정적(클래스 구조)

  • 정적인 클래스구조, 객체사이의 상호작용, 객체내부의 행동 (behavior)들을 표시
  • 이와 같은 특징 때문에 객체지향 분석 설계에서는 명확히 분석 작업과 설계 작업을 분리하는 것이 어려움
  • 구조적 분석과 객체지향 분석 설계에서는 분석의 출발점이 전자는 프로세스의 도출을 중심으로 한 데이터흐름도이며
  • 후자는 클래스구조도(class structure diagram)라는 차이는 있으나 작성하는 다큐먼트류에 대해서는 유사함

구조적분석과 객체지향분석의 대응관계

Untitled 2

사각형은 class(속성과 행위 포함)를 뜻함

  • 객체지향 분석 설계에 있어서 클래스구조도는 ER(entity-relationship)다이어그램을 확장한 표기법을 사용하여 기술되며
  • 행동도(behavior diagrams)는 통상적으로 상태천이도(state transition diagram)를 사용하여 기술

entity = 행위가 빠진 속성들

비객체지향은 자료와 기능을 분리시켜 생각

객체지향은 행위와 속성이 하나의 클래스 안에 들어감 only 행위에 의해 속성이 바뀜

객체지향분석설계 접근방법의 개념

Untitled 3

주요 객체지향 모델링 방법

  1. Coad/Yourdon법
    • 소프트웨어 개발방법론으로 유명한 Yourdon에 의해여 고안된 설계 방법론
    • 사고법, 표기방법이 가장 간결하며 초보자 지향형이라 할 수 있다.
  2. Booch법
    • Booch에 의해 고안된 설계방법론으로, 다큐먼트 작성에 있어서 관점을 자세하게 규정하고 있으며 객체지향의 특징을 어떻게 설계공정에 반영시킬까를 일관된 생각으로 관철
    • 단 C++등의 프로그래밍언어에의 구현을 너무 의식한 면도 있으나 객체지향의 초보자에게는 적합하지 않음
  3. OMT법
    • Rumbaugh에 의하여 고안된 설계방법론으로, 설계의 관점이 객체모델(object model : 객체, 클래스, 계층 그리고 관계들을 표현), 동적모델(dynamic model : 객체와 시스템 행위의 표현), 기능모델(functional model : 시스템에서의 정보의 흐름에 대한 고수준의 DFD와 비슷한 표현)의 3가지로 표현
    • 초보자로부터 베테랑까지 이용할 수 있는 방법론
    • 해설서의 수나 방법론의 컨설팅서비스, CASE와의 연동도 충실하며 가장 형평성이 좋은 방법론
  4. UML법
    • Booch법과 OMT법을 하나로 합한 방법론으로 분산객체(distributedobjects)의 표준화와 유통단체인 CORBA(Common Object Request Broker Architecture)의 표준 분석설계방법으로서 채용

방법론의 공통점과 차이점

  • 객체지향분석설계에서는 구조, 기능, 동작의 3가지 측면에 대응하는 클래스구조도(class structure diagram), 상호작용도(interaction diagrams), 행위도(behavior diagrams)
  • 클래스 구조도를 제외한 상호작용도와 행동도에 대해서는 어느 것을 먼저 기술하여도 됨
  • 어떻게 하든 우선 객체지향 분석에서는 클래스를 기술하는 작업이 출발점
  • 이것은 클래스구조가 정해지지 않는 한 여러 클래스에 속하는 객체 사이에서의 상호작용이나 객체 내에서의 상태천이(state transition)를 정하는 것은 의미가 없기 때문임

클래스의 표기규칙

  • Coad/Yourdon법에서는 객체가 가지는 메소드를 서비스라 함
  • 일반화(generalization)-특수화(specification)관련(association),전 체(whole)-부분(part)관련 구조표현
  • 일반화-특수화관련은 개념적으로 상위-하위의 관련을, 또 전체-부 분관련은 부분(서브)클래스에서 표시하는 객체가 전체클래스에서 표시하는 객체의 구성요소임을 의미
  • 전체클래스와 부분클래스의 관련도에서는 ER다이어그램과 똑같이 결합도가 기입
  • 클래스와 객체사이의 관련 및 결합도를 표시하는 “인스턴스결합”
  • 클래스A의 객체 하나에 대하여 클래스B의 객체가 반드시 하나가 결합되고, 거꾸로 클래스B의 객체 하나에 대하여 클래스A의 객체가 최저 0개, 최대 n개 결합됨을 표시

Untitled 4

댓글남기기