-
[OOP/UML] Object-Oriented DevelopmentLearn/OOP&UML 2022. 8. 8. 00:01
# Software Development
컴퓨터의 소프트웨어로 문제를 푸는 것을 뜻함.
이를 위해 프로그래밍 언어가 필요.
- Procedural Programming --> SASD (C)
- Object-Oriented Programming --> OOAD (C++, JAVA)
# Procedural Programming
Procedure: variable을 바꾸는 statement
procedure를 얼마나 잘 만드는지가 핵심
algorithm: statement를 언제 어떻게 실행하는지
data structure: 데이터를 어떻게 어디에 저장할 것인지
procedure와 data의 dependency어서 자유롭게 접근하도록 하는게 SASD의 핵심
--> OOAD에서는 그렇지 않음 (Encapsulation)
# SASD (Structured Analysis and Structured Design)
기본 컨셉 --> Top-Down, Divide and Conquer
DFD(Data Flow Diagram)을 통해 표현 --> 중요
DFD에서는 데이터가 알아서 들어와서 계산되어 나가는 것 같지만 실제론 들어오고 나가는 곳도 구현이 필요
SA(Structured Analysis) 단계에서는 DFD가,
SD(Structured Design) 단계에서는 Structured Chart가 중요
# Object-Oriented Programming
Object: data와 operation으로 구성
Object들끼리 잘 소통하는게 OOP의 핵심
<예시>
-는 private, +는 public
OOAD (Object-Oriented Analysis and Design)
- OOA + OOD
Object-Oriented Analysis (OOA)
- 개발할 도메인의 컨셉과 오브젝트 찾기
- 요구사항 정의하기
Object-Oriented Design (OOD)
- 오브젝트 정의하기 (더 자세하게)
(static model --> 대표적으로 class diagram)
- 요구사항을 충족하기 위해 오브젝트들이 어떻게 커뮤니케이션할지 정의하기
(dynamic model --> 대표적으로 Sequence Diagram))
OOA -> OOD 순으로 개발하는게 Waterfall 방식
Iteration방식도 가능 --> Agile
# Rational Unified Process (RUP) 또는 UP
Waterfall, Iterative 방식등을 다 합친 개발 방식
--> 전체는 Iterative이고 small waterfall cycle을 가짐.
--> 무조건 Iteration은 3주 단위. Agile과 다르게 무조건 3주.
Risk-driven (Client, Architecture)
SI업체에서 많이 사용함. 표준이라고 보면 됨.
(뒤에서 다시 나옴)
# QUIZ
정답: 정답없음. 다 맞음. 굳이 굳이 따지자면 1번임. 방법론이 아니라 프로세스라서.
근데 일반적으론 다 맞음.
정답: 3번. Client, Architecture 모두 중요하다. 물론 보통 Architecture쪽에서 오는 Risk가 더 많긴 하다.
'Learn > OOP&UML' 카테고리의 다른 글
[OOP/UML] Class Diagram (0) 2022.08.12 [OOP/UML] Use Case Diagram (0) 2022.08.10 [OOP/UML] UML (0) 2022.08.09 [OOP/UML] Principles (0) 2022.08.06 [OOP/UML] Object Oriented (0) 2022.08.02