OOD(Obejct-Oriented Development
Software Development
- Natural Language(Description of Problems/through Identyfying Requirements)
- Prgramming Language(Description of Solutions/through Designing Programs)
- Procedural Programming(SASD) : 절차지향, C, Fortran
- Object-Oriented Programming(OOAD) : 객체지향, C++ Java
- Program Execution with Computer System
Software Development = 1 + 2 + 3
Object-Oriented Programming
- 언어 : C++, Java, Ada
- Object 가 중심이 되는 언어로써 Object 간 Communication 이 잘 되는 것이 핵심
- Object : Data + Operation
- Object Communication : Call

OOAD (Object-Oriented Analyses and Design)
- Object-Oriented Programming 을 통한 Software Development 방법론
- OOA + OOD
OOA (Object-Oriented Analysis)
- ⭐️ Domain concepts/objects Identify(찾기)
- SW, 사용 환경, 사람, 법, 다른 기계들
Domain Model
- Requirement Identify(찾기)
Use Case Diagram = Functional Requirement
OOD (Object-Oriented Design)
- Software Object 더 정확히 정의 (static model)
- 5가지 관계 정의, operation 정의
Class Diagram
- Collaborate 하는 방법 정의 (dynamic model)
Sequence Diagram

* interaction diagrmas 는 category 이다.
* 모든 Use Case에 대한 Domain Model 을 다 그리고, 그 후에 Interaction Diagram 그리고 Class Diagram 의 Operation 채운다. (Waterfall)
* 개발할 만큼만 그리고 채우고, 그 다음꺼 그리고 채우기 반복하면 (Iteration)
Iterative Model - UP
Rational Unified Process(RUP) or UP (개념)
-
OO software 를 만드는 실질적인 표준
-
Iterative(Incremental, Evolutionary)
- 3주에 한번씩 small waterfall 이 반복
-
⭐️ Risk-driven
- Client-driven
- Client 가 중요하게 생각하는 Requirement(UI/UX) 다 찾아서 미리 구현해서 Requirement workshop(3주마다) 에서 미리 정확히 정의한다. (요구공학)
- Architecture-centric
- 반드시 필요한 구조가 있는 경우를 미리 다 찾아야 한다.
- 최종 Architecture 를 미리 고정해야한다. (elaboration 단계에서 fix)
ex) Client-Server 구조가 아닌 Standalone 구조
-
Use-Case-driven
-
4 Phases and 9 Disciplines
