0. 프로세스와 방법론 비교
프로세스 | 방법론 | |
특징 | : 단계적인 작업의 틀을 정의한 것. 무엇을 하는가에 중점 각 단계가 다른 방법론으로도 실현 가능 결과물의 표현에 대해 언급 없음 패러다임에 독립적 |
: 프로세스의 구체적인 구현 어떻게 하는가에 중점 각 단계의절차, 가이드라인, 기술을 제시 결과물을 어떻게 표현하는지 표시 패러다임에 종속적 |
사례 | 폭포수 프로세스 나선형프로세스 프로토타이핑 프로세스 Unified 프로세스 애자일 프로세스 진화적 모형 |
구조적 분석, 설계방법론 객체 지향 방법론 컴포넌트 기방 개발 방법론 익스트림 프로그래밍 |
2-1 소프트웨어 생명주기
1. 소프트웨어 생명주기(5)
: (1) 요구 분석 (2) 설계 (3) 구현 (4) 테스팅 (5) 유지보수
2-2 프로세스
1. 프로세스 개념(2)
- 프로세스 명세: 프로젝트에서 수행하여야하는 작업과 수행 순서를 정의한 것
- 실행 프로세스: 실제 프로젝트할 떄 작업한 순서
2. 프로세스 모델이란?
: 프로젝트를 위한 단계및 순서, 각 단계의 작업 조건이나 제약사항을 모아 놓은 것.
3. 프로세스의 종류(4)
프로젝트 중심 프로세스 | 기타 프로세스 |
(1) 개발 프로세스 (by 프로그래머, 설계자, 테스터) -> 핵심 프로세스. 개발 작업, 품질 보증 작업 포함. (2) 프로젝트 관리 프로세스 (by 프로젝트 관리자) -> 비용, 품질, 일정 등의 작업을 계획, 모니터링. |
(3) 형상 관리 프로세스(by 형상 관리자) -> 변경을 관리. 버전 관리. (4) 프로세스 관리 프로세스(by 프로세스 관리 그룹) -> 프로세스를 바꾸는 과정 |
4. 프로세스 정의
(프로세스 관리정보: 프로세스 상태를 나타내는 정보를 생성해 프로세스 제어를 할 때 사용)
5. 좋은 프로세스의 특성(4)
(1) 예측 가능성: 비용 및 품질 예측
(2) 테스트와 유지보수 용이성: 테스팅, 유지 보수 노력을 낮추는 것이 목적
(3) 변경 용이성: 변경을 쉽게 다룰 수 있는 프로세
(4) 결함 제거 용이성: 각 단계에서 일어난 오류는 그 단계에서 수정되어야함. 요구 분석 단계에서 발생한 오류를 테스팅 단계에서 수정하면 수정비용 100배 소요.
2-3 프로세스 모델
1. 폭포수 모델(5)
#가장 오래됨 #순서적 #직능중심 플젝가능 #파이프라인 가능 #결과물 정의 중요
- 장점(3): 단순/ 중간 산출물이 명확/ 대규모 장기간 개발에 적합
- 단점(3): 필요없는 문서 생산 가능성/ 순차적이라 작업 취소 및 재작업 불가/ 수정 비용이 큼
2. V모델
#검증 강화 #폭포수 모델 확장
3. 프로토 타이핑 모델
- 목적(2): 단순한 요구 추출(만들고 버림)/ 제작 가능성 타진(유지보수 이뤄짐)
- 장점(3): 사용자의 요구사항을 빠르게 수용/ 혁신적인 기술 사용해보고 싶을 때 적합/ 요구사항 불투명할 때 적합
- 단점(2): 고객이 완성품으로 오해해 과도하게 요구할 수도/ 관리가 어려움(중간 산출문 정의가 난해)
4. 나선형 모델
#점증적인 릴리스(incremental releases)
- 단계(4): 목표, 방법, 제약 조건 결정 → 위험 요소 분석 및 해결 → 개발과 평가 → 다음 단계의 계획
- 장점(6): risk reduction mechanism/ 강인성 향상/ 한 사이클에 추가 못한 기능은 다음 단계에 추가 가능/ 재정적, 기술적 위험부담이 큰 개발에 적합/ 대규모 개발에 적합/ 요구사항이나 아키텍처 이해가 어려운 경우 적합
- 단점(3): 성공사례 별로 없음/ 관리 복잡/ 위험 분석을 잘못한 경우 피해가 큼
5. 진화적 모델
- 구성 방법(2): 점증적 방법(기능별로 릴리스), 반복적 방법(릴리스 할 때마다 기능의 완성도 높임)
- 장점(3): 사용자 요구 빠르게 반영/ 빠르게 시장에 출시해야하는 경우 적합/ 릴리스마다 다른 영역에 초점 가능
- 단점(3): 소규모 플젝엥는 부적합/ 반복으로 끝이 안보일 수 있어 실패의 위험이 커짐/ 위험 분석에 크게 의존
6. Unified 프로세스
- 단계(4): 도입(계획작성)→ 정련(유스케이스작성, 상세설계, 구현)→ 구축(구현 및 통합)→ 전환(사용자교육, 베타테스팅)
- 장점(4): 잘 문서화 돼 교육받기 굳/ 요구변경이나 리스크를 적극적 해결/ 코드 재사용/ 통합을 위한 비용을 줄일 수 있음.
- 단점(3): 프로세스가 너무 복잡/ 협동, 의사소통에 대한 가이드가 없음/ 조직화되지 않은 개발을 하게 됨.
7. 애자일 프로세스
: 플젝에 대한 피드백을 빨리 받아 2-6주의 짧은 주기로 개발을 반복.
- 애자일 선언(4): 개인과 상호작용/ 작동하는 소프트웨어/ 고객 협조/ 변경에 대응하는 것을 중점적으로 가치를 두자!
- 종류(1): 익스트림 프로그래밍 - 소규모 조직, 매일 빌드와 통합, 테스트 주도 개발, 페어 프로그래밍, 인스펙션
- 종류(2): 스크럼 - SW를 빠르게 배포, 결함을 빠르게 감지 후 수정/ 문서화에 노력x - 새 개발자 어려움/ 지속적인 상호작용 필요로 노력 요구
2-4 지원프로세스
1. 시각별 국제 표준 프로세스 그룹(5)
2. 주요 지원 및 관리 프로세스(3)
- 관리 프로세스: 비용과 품질 목표 달성을 위한 작업. 계획 → 모니터링 → 분석&제어
- 품질 보증 프로세스: 프로세스와 프로덕트에 대해 품질을 관리, 향상시키는 것
(1) 인스펙션 프로세스: 동료 그룹이 작업 결과를 검사하는 것.
- 특징(4): 전문기술인력이 담당/ 참석자 역할 미리 정해짐/ 해결법이 아니라 문제에 집중/ 검토자료 모니터링에 사용
- 장점: 결함을 결과물 안에서 찾을 수 있음. 초기에 발견함으로 가성비 높은 품질 보증 작업임.
(2) 프로세스 관리 프로세스: 플젝 관리는 플젝 기간에만 수행, 프로세스 관리는 플젝 기간을 초과한 긴 시간동안 수행
- 형상 관리 프로세스: 개발 중에 발생하는 변경을 관리하는 것. 개발 작업과는 독립적임.
2-5 방법론
1. 방법론이란?
: 소프트웨어 프로세스의 각 작업을 어떻게 수행하느냐를 정의.
2. 방법론 종류(3)
: 복잡성,
구조적 방법론 | 정보 공학 방법론 | 객체지향 방법론 | |
특징 | 프로그램 로직 중심, 그림을 그려 요구사항 분석, 문서화하는 체계적인 방법 | 기업 정보 중심이며 전략 계획을 수립한 후 데이터 중심으로 CASE 도구를 사용하여 공학적으로 접근한다. | 비지니스를 유스케이스로 분석하고, 자료와 함수를 묶은 클래스를 파악하여 상호작용하는 객체들로 시스템을 구성하는 방법. |
설계 관심사 | 함수 위주 | 자료(데이터) 위주 | 클래스 위주 |
설계의 핵심 | 모듈 | 엔티티 | 객체 |
중심 방법 | 프로그래밍 기법 | 기업의 전략 및 산출물 중심 | 설계의 표현 |
'Computer Science > Software Engineering' 카테고리의 다른 글
[소공] 5장 요구 모델링 (0) | 2023.10.27 |
---|---|
[소공] 객체지향 방법론과 UML (1) | 2023.10.13 |
[소공] 4장 요구 분석 (1) | 2023.10.09 |
[소공] 3장 프로젝트 관리와 계획 (1) | 2023.10.07 |
[소공] 1장 소프트웨어공학 소개 (0) | 2023.09.07 |