개발 방법론
- 소프트웨어 공학 원리를 소프트웨어 개발 생명 주기에 적용 -> 소프트웨어 개발방법론 = 소프트웨어 공학 + 방법론
- 시스템 개발을 위한 작업 활동, 절차, 산출물, 기법 등 정리
- 품질 높이고 납기일 준수하여 만족도를 높이기 위한 개발 방법
개발 방법론 진화 과정
60 : 대용량 계산 수단. 요구사항도 단순. 군분야에서. 기계어 사용. 개발 방법론 x
70 : 고급언어 사용. 요구사항 발생. 민간 영역으로 확대. 폭포수 방법론 탄생
80 : 대중화. 요구사항 복잡화. SDLC 개발 방법론 대두. c언어 사용
90 : 대형 프로젝트 증가. 위험관리, 요구사항 적합성, 생산성 고려. 객체지향언어 활용
00 : 웹 어플리케이션 중심 변화. 자동화 툴 발전
현대 : 고객 요구사항 + 개발자 편의성 고려한 자동화 툴. 계획부터 테스트까지 개발자 혼자 할수있는 시기
개발 방법론 특징
- 개발 단계 정의. 활동, 제품, 검증절차 각 단계 종결 기준 등 상세히 서술
- 방법과 절차 등을 공학적 방법으로 정의
개발 방법론 구성
1. 작업 절차 : 작업 단계 체계. 단계 - 활동 - 작업
2. 작업 방법 : 수행에 대한 구체적인 설명. 절차/작업방법
3. 산출물 : 단계별 산출물 목록 및 양식(설계서), 메뉴얼/설정 방법 등
4. 기법과 도구 : 기법 - 소요 기술(객체지향 모델링 기법), 도구 - 지원 도구 혹은 표준 방법(CASE)
개발 방법론 종류
1. 구조적 방법론
2, 정보공학 방법론
3. 객체지향 방법론
4. 컴포넌트 기반 방법론
1. 구조적 방법론
- 전체 시스템을 기능에 따라 분할하여 개발. 이를 통합하는 분할 방식의 방법론
ex) 폭포수 모델
- 순차, 선택, 반복으로 프로그램 로직
- 정형화된 분석 절차에 따라 요구사항 파악하고, 도형중심 다이어그램으로 문서화
- 컨트롤 가능한 모듈로 구조화
- 장점 : 일괄 처리 소프트웨어 개발에 적합. 전형적인 접근법
- 단점 : 데이터 정보 은닉 불가. 재사용 보수성 낮음
구조적 방법론 단계별 산출물
1. 계획 : 도메인 분석서, 프로젝트 계획서
2. 분석 : DFD(Data Flow Diagram) - 프로세스들간 데이터 흐름을 표현한 도표
3. 설계 : Structure Chart - 소프트웨어 기능을 계층적으로 표현한 차트, 프로그램 사양서
2. 정보공학 방법론
- 데이터 중심 80년대 자료구조 중심 방법론. 구조적 방법론 극복
ex) 프로토타입, 정보공학 방법론
- 기업 중심 계획, 데이터 중심 설계, 도형 산출물
- 장점 : 전략적 기회식별 및 방안 제공, 장기적 발전 허용
- 단점 : 장기간 필요, 특정 사업 영역으로부터 독립된 시스템 개발에는 부적합
정보공학 방법론 단계별 산출물
1. 계획 :도메인 분석서, 프로젝트 계획서
2. 분석 : ERD, 기능 차트, 이벤트 모델
3. 설계 단계 : 어플리케이션 구조도, 프로그램 사양서, 테이블 정의서 목록
3. 객체지향 방법론
- 소프트웨어 생명주기에 객체지향 개념 접목해 일관된 모델로 개발
- 객체, 클레스 및 이들과 관계를 식별하여 설계 모델로 변환
객체지향 방법론 원리
1. 업무 요건 정의 : 요구사항 수집 -> 업무요건 정의
2. 객체 지향 분석 : 객체 모델링 -> 동적 모델링 -> 기능 모델링
3. 객체지향 설계 : 시스템 설계 -> 객체 설계 -> 구현
4.테스트/배포 : 테스트 ->패키지 -> 프로젝트 평가
객체지향 방법론 산출물
1. 계획 : 비즈니스 프로세스, 컨셉 모델, 프로젝트 계획서
2. 분석 : 유스케이스 다이어그램, 시퀀스 다이어그램, 클래스 다이어그램
3. 설계 : 시퀀스/클래스/컴포넌트 다이어그램
객체 지향 분석
- 객체 모델링 :시스템 정적 구조. 추상화, 분류화,일반화
- 동적 모델링 : 객체 사이 변화 조사. 상태, 동작
- 기능 모델링 : 입력에 대한 처리 결과 확인
객체지향 설계와 분석
- 시스템 설계 : 시스템 구조를 서브시스템으로 분해. 성능 최적화/자원 분배 방안
- 객체 설계 :상세 내역을 모형으로 개발 상세화. 구체적 자료구조와 알고리즘 구현
- 객체 지향 구현
4. 컴포넌트 기반 방법론 CBD
- 재사용가능한 컴포넌트 개발, 조합하여 어플리케이션 개발
- 2000년대 컴포넌트 중심 개발 방법론. Agile 방법론
- 객체지향개발방법론 개선, 인터페이스 중시, 컴포넌트 기반 재사용성 중시, 개발시간 단축
컴포넌트 기반 방법론 원리
1. 요구 분석 : 요구사항 분석
2. 분석 : 아키텍처 정의, 유스케이스 모델링
3. 설계 : UI 설계, 컴포넌트 정의/설계, DB, 테스ㅡㅌ 설계
4. 개발 : 코딩, 테스트
5. 구현 : 릴리즈, 교육
컴포넌트 기반 방법론 단계별 산출물
1. 계획 : 비즈니스 프로세스 모델, 프로젝트 모델
2. 분석 : 유스 케이스 다이어그램, 컴포넌트 다이어그램, 재사용 계획서
3. 설계 : 시퀀스 다이어그램, 클래스 다이어그램, 컴포넌트 다이어그램
컴포넌트 기반 방법론 분류
- 요소 컴포넌트 : 최소단위 컴포턴트
- 기능 컴포넌트 : 요소 컴포넌트를 결합하여 하나의 기능 구현
- 서비스 컴포넌트 : 하나의 사용자 서비스 수행하는 컴포넌트
- 어플리케이션 컴포넌트 : 여러 서비스 수행하는 시스템 컴포넌트
'컴퓨터과학 > SW, DB' 카테고리의 다른 글
소프트웨어 공학 활용 - 6 소프트웨어 요구사항 (0) | 2020.05.18 |
---|---|
소프트웨어 공학 활용 - 4 애자일 방법론 (0) | 2020.05.18 |
소프트웨어 공학 활용 - 2 소프트웨어 개발 라이프사이클 (0) | 2020.05.18 |
소프트웨어 공학 활용 - 1 소프트웨어 공학 개요 (0) | 2020.05.18 |
데이터베이스 7 - 릴레이션 정규화 (0) | 2020.05.17 |