티스토리 뷰
※ tutorialspoint의 OOAD 요약 (https://www.tutorialspoints.com/object_oriented_analysis_design/)
시스템 요구사항 결정, class 정의, class간의 관계 정의
Object Modelling
object 관점에서 소프트웨어 시스템의 static structure 설계. object, object들로 구성된 class, object간의 관계 정의. attribute, operation을 정의함으로써 각 class의 특징 설계.
object modeling 과정
- object, class 정의
- class간의 관계 정의
- user object model diagram 생성
- user object attribute 정의
- class에서 수행되어야 하는 operation 정의
- 리뷰
Dynamic Modeling
시스템의 static behavior를 분석한 후에는, time과 external change에 대한 behavior를 검토해야 한다. 이것이 dynamic modeling.
"개별 object가 다른 object로부터 시작된 내부 event 또는 외부에서 시작된 event 듣에 대해 처리하는 방법"
dyanmic modelling 과정
- 각 object의 상태 정의
- event 판단, action의 applicability
- dynamic model diagram 작성 (state transition diagram)
- object attribute 관점에서 각각의 state 표현
- diagram 평가
Functional Modelling
object 내에서 처리되는 process, data가 method간 어떻게 이동하는지를 보여준다. object modelling의 operation과 dynamic modelling의 action의 의미를 보여준다. 전통적인 structured analysis의 data flow diagram에 해당.
functional modelling 과정
- 모든 input, output 정의
- functional dependency를 위한 data flow diagram 작성
- 각 function의 목적 설명
- constraint 판단
- optimization criteria 정의
Structured Analysis vs. Object Oriented Analysis
structured analysis / structured design (SASD) 는 waterfall. SASD의 개발 과정은,
- feasibility 검토
- 요구사항 분석 및 사양
- 시스템 설계
- 구현
- 검토
Pros. & Cons. of Object Oriented Analysis
Advantage procedure보다는 data에 초점 encapsulation, data hiding을 통한 외부로부터의 보호 모듈화에 따른 소프트웨어 복잡도를 낮춤 상대적으로, large system으로 업그레이드 쉬움 |
Disadvantage function은 object 내부로 제한 object가 최적화된 시스템 설계를 했는지 파악할 수 없음 object간의 communication을 이해하기 어려움 object간의 interface는 하나의 diagram으로 표현할 수 없음 |
Pros. & Cons. of Structured Analysis
Advantage top-down 접근에 따른 이해가 더 쉬움 functionality 위주이므로, 개발 목적, 시스템 이해가 더 쉬움 사양이 비기술 용어로 작성되므로, 비전문가가 이해하기 쉬움 |
Disadvantage 오류 발생, 요구사항 변경 등 발생 시 다음 단계로 넘어가기 어려움 한번에 모든 설계가 되어야 하므로, 최초 시스템 구성에 높은 비용 코드 reusability 낮음 |