Software Development 정의
- Software로 문제를 해결하는 것
Procedural Programming
- Procedure들로 구성된 프로그램
- Procedure/Function : 변수 값을 변경하는 statement들
- 데이터 구조, 알고리즘, 과정의 시퀀스들에 집중해야함
SASD
- 구조적 분석 설계 방법론 (Structured Analysis and Structured Design)
- Top-Down Divide and Conquer
- SA : SW 만들 때 입력과 출력을 다 찾고 레벨을 낮춰서 또 찾고 찾고... (하단 사진에서 DFD level을 낮춤)
- SD : 실제 구현
- DFD(data flow diagram) 사용
Object-Oriented Programming
- object들로 구성된 프로그램
- object와 그들 간의 커뮤니케이션에 집중
- 명확한 data flow 없음
- sequence 다이어그램에서만 표현
OOAD
- Object-Oriented Analysis and Design
- OOA + OOD
- Object-Oriented Analysis (OOA)
- 시스템의 요구사항 식별 → domain model 작성(conceptual한 class, objects를 발견)
- Object-Oriented Design (OOD)
- objects를 디테일하게 어떤 attribute, operation이 있는지 정의 (class 다이어그램(:=DCD) 통해서 static model 정의)
- 요구사항을 충족시키기 위해 object의 communication 정의 (시퀀스 다이어그램 통해서 dynamic model 정의)
- Object-Oriented Analysis (OOA)
Software (Development) Process Model
- Waterfall Model
- A classic software development life-cycle(SDLC) model
- Requrement Analysis → System Design → Implementation → System Testing → System Deployment → System Maintenance
- 여러 회사가 개발하는 대형 프로젝트에서 주로 사용
- Iterative Model (Agile): 조금씩 만들고 다시 처음부터 반복
- waterfall 단점을 극복하고자 rapid prototyping, rapid development
- Agile 방법론
- Iterative : 계속 반복
- Incremental : 미리 requirement를 10개씩 해서 마지막에 합침
- evolution : 간단하게 만들고 점차 진화
- Agile 방법 특징
- Process, tools 보다 개인에 맡김
- documentation 만드는 것보다 소스 코드 만드는 것이 더 중요
- 계약서 기반으로 개발하는 것보다 고객과 협업
- 계획에 팔로우하는 것보다 변화에 유연적으로 대응
- Example : XP(eXtreme Programming), TDD(Test Driven Development)
- Iterative Model - Unified Process(UP)
- 이전에 있는 Process model을 합침
- Iterative(Incremental, Evolutionary)
- Iteration(mini waterfall cycle)을 3주로 fix함(기능 단위가 아닌 시간으로 요구사항을 자름)
- Risk(client, architecture)-driven
- 해당 risk를 다 찾아봐서 클라이언트가 중요시하는 요구사항과 architecture에 dependency가 있는 요구사항을 선구현하여(하단 사진에서 eleboration과정에서 prototype 구현) architecture를 정해야함
- client : 클라이언트가 중요하다고 생각하는 요구사항
- Architecture : 특정 요구사항은 특정 architecture에서만 구현할 수 있음
- Iterative(Incremental, Evolutionary)
- := RUP (Rational Unified Process)
- 이전에 있는 Process model을 합침
반응형
'💻 개발IT > OOP' 카테고리의 다른 글
2. Object-Oriented Principles (0) | 2022.02.03 |
---|---|
1. Object-Oriented (0) | 2022.02.02 |