2022-09-20 소프트웨어공학_3
2022. 9. 20. 01:51ㆍ학부 강의/소프트웨어공학
소프트웨어 개발 생명 주기
저번 시간에 이어서 소프트웨어 개발 생명 주기의 종류에 대하여 알아본다.
나선형 모델
폭포수 모형의 장점 + 원형 모형의 장점을 수용하고 위험 분석을 추가한 점증적 모델
프로젝트 수행 시 발생하는 위험을 관리하고 최소화하려는 것이 목적
각 단계가 명확히 구분되지 않음.
고비용의 시스템 개발이나 시간이 많이 소요되는 큰 시스템 구축에 적합.
소프트웨어 개발 방법론
소프트웨어 개발 생명주기 내의 각 단계에서의 수행 방법과 활동들을 구체적으로 정의한 것
종류
- UP (Unified Process)
- XP (eXtreme Programming)
- 마르미 (한국전자통신연구원 소프트웨어 공학 연구팀에서 국내 여건을 반영한 한국형 소프트웨어 개발 방법론)
UP (Unified Process)
Jacobson, Booch, Rumbaugh에 의해 개발된 객체지향 소프트웨어 개발 방법론
소프트웨어 개발 단계를 시간 순서에 따라 네 개의 범주(도입 → 상세 → 구축 → 이행)로 나눔.
각 범주에는 개발 생명주기가 포함되어 있음.
특징
- 반복적이고 점진적인 개발
- 유스케이스 기반
- 아키텍처 중심의 개발 지향
- 위험 관리 중시
단계
- 도입 (Inception)
- 개발에 관련된 사람들과 개발을 준비
- 프로젝트의 목표, 실현 가능성, 대략적인 비용을 파악하고 개발 여부 결정
- 요구사항을 대략적으로 이해
- 상세 (Elaboration)
- 요구사항과 기본적인 아키텍처 작성
- 시스템 위험 요소를 식별, 완화
- 구축 단계에 대한 계획 수립
- 시스템의 중요한 일부 기능에 대하여 구현 및 평가
- 구축 (Construction)
- 설계 기반으로 시스템 구축
- 거의 모든 시스템 구축 및 평가
- 이행 (Transition)
- 제품의 완성 단계
- 구현 및 평가 작업
- 구현을 마무리하고 품질을 보장하여 제품을 인도
- 인수 테스트, 사용자 교육 진행
장점
- 위험요소를 초기에 완화
- 진척사항을 가시화
- 발주자가 원하는 실제 요구사항에 근접
- 피드백을 반복할수록 개선된 소프트웨어 개발 가능
XP (eXtreme Programming)
1990년 초 Kent Beck이 고안
Agile 소프트웨어 개발 선언문 적용
애자일 소프트웨어 개발 선언
우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다.
이 작업을 통해 우리는 다름을 가치있게 여기게 되었다.
* 공정과 도구보다 개인과 상호작용을
* 포괄적인 문서보다 작동하는 소프트웨어를
* 계약 협상보다 고객과의 협력을
* 계획을 따르기보다 변화에 대응하기를
가치있게 여긴다.
이 말은, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.
XP 용어
XP 역할
XP의 개발 활동
그림에는 없지만 마지막에 고객의 인수 테스트 진행.
XP의 가치
XP의 13가지 실천사항
- 계획 게임
- 작은 릴리스
- 메타포
- 단순 설계
- 테스트 우선 개발
- 리팩토링
- pair programming
- 공동 코드 소유
- 지속적인 통합
- 주당 40시간 작업
- 고객의 참여
- 코딩 표준
- 전체 팀
'학부 강의 > 소프트웨어공학' 카테고리의 다른 글
2022-10-09 소프트웨어공학_6 (0) | 2022.10.09 |
---|---|
2022-10-02 소프트웨어공학_5 (0) | 2022.10.02 |
2022-09-25 소프트웨어공학_4 (0) | 2022.09.26 |
2022-09-17 소프트웨어공학_2 (1) | 2022.09.17 |
2022-09-12 소프트웨어공학_1 (0) | 2022.09.12 |