observe_db

[객체지향설계] 10. Class & Method Design 본문

학교 공부/객체지향설계(3-1)

[객체지향설계] 10. Class & Method Design

쩡윤 2023. 6. 3. 19:42

5/19

 

객체 설계 활동

  • Additional Specification(추가)
  • Identifying opportunities for reuse(재사용)
  • Restructuring the design(재구조화)
  • Optimizing the design(성능 최적화)
  • Mapping problem domain classes to implementation language(클래스 래핑)

 

Additional Specification

현재 모델 집합 리뷰

  1. 클래스가 문제에 필요하고, 충분한지 확인.
  2. 클래스의 각 속성과 메소드 가시성 마무리
  3. 각 클래스의 모든 메소드에 대해 서명 결정.
  4. 객체 보존을 위한 제약사항(constraints) 정의

Identifying opportunities for reuse

재사용의 기회

  • 패턴 디자인
  • 요소(components)
  • 라이브러리
  • 프레임워크

관점 1. 기존 제작된 패턴 반영(existed solution) 2. 오픈소스

 

Restructuring the design

  • Factoring
  • Normalization(정규화)
  • generalization/ aggregation

Optimizing the design

더 효과적인 설계를 위해

  • 객체 사이의 접근 경로 리뷰
  • 각 클래스의 각 속성 리뷰 - 어떤 메소드와 속성이 클래스에 있는지
  • 각 메소드의 fan-out(메소드가 다른 메소드 호출을 위해 나감) 리뷰
  • statement의 실행 순서 시험
  • 유도된 행동 생성

Mapping problem domain classes to implementation language

  • 유일 상속 언어
    • association 관계에서의 전환
    • 추가적 슈퍼클래스에서 속성과 메소드 복제된 Flatten 상속 계층
  • 객체 기반 언어
    • problem domain class 설계에서 상속의 모든 유저 제외
  • 전통적 언어(절차상)
    • 이것에서 멀리 떨어져!
    • 상속을 설계에서 제외
    • 다형성(polymorphism), 동적 바인딩, 캡슐화등등의  모든 유저 제외

 

Constraints

: element의 의미 상태

Type of Constraints

  • Pre-condition(전행)
  • Post-condition(후행)
  • Invariants(항상 만족)

메시지 패싱-객체 사이의-을 문서화

One for 각 상호작용

개발자에게 필요한 정보 작성

- 어떤 메시지가 서버 객체에 전달되었는지

- 클라이언트가 반환에서 기대하는 값

특수한 메소드와 클래스 관련

 

Method Specification

  • 명백한 지침-어떻게 메소드 쿠현을 하는 코드를 작성하는지 -에 포함된 작성된 문서
  • 방법 사양을 위한 구성요소
    • General한 정보: 메소드 이름, 프로그래밍 언어, 계약 ID
    • 이벤트: 메소드를 발생시키는(trigger) 이벤트
    • 메시지 전송: 어떤 argu.가 전송을 하고, 어디로 그리고 무엇을 메소드에 반환하는지
    • 알고리즘 사양: 구조화된 영어, 수도코드, UML activity 다이어그램
Comments