일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 소프트웨어공학
- React
- 파싱
- 운영체제
- 객체지향설계
- 스케줄러
- 가상메모리
- 정보검색
- 데이터베이스
- DB
- Agile
- Linear Algebra
- 웹소프트웨어
- NLP
- 애자일
- 컴파일
- css
- 파싱테이블
- 자연어처리
- 오픈소스웹소프트웨어
- 컴파일러
- C언어
- 언어모델
- 836
- 벡터
- OS
- 클래스
- 프로세스
- 랩실일기
- 데이터분석
Archives
- Today
- Total
observe_db
[객체지향설계] 10. Class & Method Design 본문
5/19
객체 설계 활동
- Additional Specification(추가)
- Identifying opportunities for reuse(재사용)
- Restructuring the design(재구조화)
- Optimizing the design(성능 최적화)
- Mapping problem domain classes to implementation language(클래스 래핑)
Additional Specification
현재 모델 집합 리뷰
- 클래스가 문제에 필요하고, 충분한지 확인.
- 클래스의 각 속성과 메소드 가시성 마무리
- 각 클래스의 모든 메소드에 대해 서명 결정.
- 객체 보존을 위한 제약사항(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 다이어그램
'학교 공부 > 객체지향설계(3-1)' 카테고리의 다른 글
[객체지향설계] 12. UI Design (0) | 2023.06.06 |
---|---|
[객체지향설계] 11. Data Layer Design (0) | 2023.06.06 |
[객체지향설계] 9. Moving on To Design (0) | 2023.05.19 |
[객체지향설계] 8. Verifying Models (0) | 2023.05.19 |
[객체지향설계] 7. Behavioral Modeling (0) | 2023.05.17 |
Comments