4. 요구사항 확인 – 요구사항 확인 – 애자일
1) 애자일 방법론의 개념
애자일 방법론은 소프트웨어 개발방법론의 하나로서 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법이다.
2) 애자일 방법론 특징
프로젝트의 요구사항은 기능 중심으로 정의한다.
절차와 도구보다 개인과 소통을 중요하게 생각한다.
작업 계획을 짧게 세워 요구 변화에 유연하고 신속하게 대응할 수 있다.
소프트웨어가 잘 실행되는 데 가치를 둔다.
고객과의 피드백을 중요하게 생각한다.
3) 애자일 선언문 - 개변동고
공정과 도구보다 개인과 상호 작용
계획을 따르기보다 변화에 대응하기
포괄적인 문서보다 동작하는 소프트웨어
계약 협상보다 고객과의 협력
4) 애자일 방법론 유형 – XP
(1) XP
XP는 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론이다.
기존의 방법론에 비해 실용성을 강조한 방법론이다.
1~3주의 반복(Iteration) 개발 주기를 가지며, 5가지 가치와 12개의 실천 항목이 존재한다.
(2) XP의 5가지 가치 – 용단의 피존
1-용기
용기를 가지고 자신감 있게 개발(코드를 작성하기 전에 테스트, 빠르게 피드백, 테스트에 부합하지 못하는 코드를 리팩토링할 수 있는 용기)
2-단순성
필요한 것만 하고 그 이상의 것들은 하지 않음
3-의사소통
개발자, 관리자, 고객 간의 원할한 소통
4-피드백
의사소통에 대한 빠른 피드백
5-존중
팀원 간의 상호 존중
(3) XP의 12가지 기본원리
1-짝 프로그래밍(Pair Programming)
개발자 둘이서 짝으로 코딩하는 원리
2-공동 코드 소유(Collective Ownership)
시스템에 있는 코드는 누구든지 언제라도 수정 가능하다는 원리
3-지속적인 통합(CI; Continuous Integration)
매일 여러 번씩 소프트웨어를 통합하고 빌드해야 한다는 원리
4-리팩토링(Refactoring)
프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템 재구성한다는 원리
5) 애자일 방법론 유형 – 스크럼(SCRUM)
(1) 스크럼
스크럼은 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론이다.
(2) 스크럼 주요 용어
1-제품 책임자
이해 관계자의 의견을 종합하여 제품에 대한 요구사항을 작성하는 주체
2-제품 백로그
제품과 프로젝트에 대한 요구사항
3-스프린트
2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품질 향상
4-스크럼 미팅
매일 15분 정도의 미팅으로 To-Do List 계획 수립
5-스크럼 마스터
프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람
6-스프린트 회고
스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 확인 및 기록
7-번 다운 차트
남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트
* 스크럼에서 속도(Velocity)는 한 번의 스프린트에서 한 팀이 어느 정도의 제품 백로그를 감당할 수 있는지에 대한 추정치이다.
6) 애자일 방법론 유형 – 린(Lean)
(1) 린
린은 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론이다.
(2) 린의 7가지 원칙 – 낭품지 확인사전
1-낭비제거
불필요한 코드나 기능과 같이 상품 가치에 영향을 미치지 않는 모든 것을 제거
2-품질내재화
TDD를 통해 코드의 실수를 방지
3-지식 창출
개발 과정 진행 중 참여자(기획자, 개발자, 고객 등) 학습의 필요성 존재
4-늦은 확정
중요한 문제에 대한 의사 결정을 최대한 미루고 요구사항 변경에 대응
5-빠른 인도
결과물을 가능한 한 빨리 제공
사용자의 불확실성이 감소하고, 개발자에게는 결함 발견의 기회가 주어짐
6-사람 존중
상호 간 책임의식과 신뢰 확보
7-전체 최적화
사용자 요구사항 수집부터 배포까지 모든 프로세스 최적화
7) 애자일 방법론 유형 – 크리스탈, ASD, FDD
(1) 크리스탈
크리스탈은 일반적으로 프로세스나 도구보다는 사람에게 더 많은 중점을 두는 방법론이다.
생명이 중요하지 않은 시스템에서 작업하는 최대 6명 또는 8명의 공동 배치 소프트웨어 개발자 팀에 적용한다.
(2) ASD(Adaptive Software Development)
ASD는 개발을 혼란 자체로 규정하고, 혼란을 대전제로 그에 적응할 수 있는 소프트웨어 방법을 제시하기 위해 만들어진 방법론이다.
합동 애플리케이션 개발(Joint Application Development)을 사용한다.
(3) FDD(Feature Driven Development)
FDD 개발을 상품이나 서비스 단위가 아니라 신규 기능 단위로 하는 개발 방법론이다.
8) 애자일과 전통적 방법론 비교
비교 대상 | 애자일 방법론 | 전통적 방법론 |
계획수립 | 유동적 범위 설정 | 확정적 범위 설정 |
업무수행 | 팀 중심 업무 수행 | 관리자 주도적 명령과 통제 개인 단위로 업무 수행 |
개발/검증 | 반복 주기 단위로 소프트웨어를 개발/ 검증 |
분석/설계/구현/테스트를 순차적으로 수행 |
팀관리 | 업무 몰입, 팀 평가 | 경쟁, 개별 평가 |
문서화 | 문서화보다는 코드를 강조 | 상세한 문서화를 강조 |
성공요소 | 고객 가치 전달 | 계획/일정 준수 |
유형 | XP, 스크럼, 린 | 폭포수, 프로토타입, 나선형 |
5. 요구사항 확인 – 분석 모델 확인 – 모델링 기법
1) 모델의 개념
모델은 객체, 시스템, 또는 개념에 대한 구조나 작업을 보여주기 위한 패턴이다.
모델은 개발 대상을 추상화하고 기호나 그림 등으로 시각적으로 표현한다.
2) 모델 특징
모델을 통해 소프트웨어에 대한 이해도를 향상할 수 있고, 이해 당사자 간의 의사소통이 향상된다.
모델은 문제가 발생하는 상황에 대한 이해를 높이고 해결책을 설명한다.
모델을 통해 향후 개발될 시스템에 대한 유추가 가능하다.
개념 모델은 문제 도메인의 엔터티(Entity)들과 관계 및 종속성을 반영한다.
3) 모델링의 개념
모델링은 실세계의 물리현상을 특정한 목적에 대응하여 이용하기 쉬운 형식으로 표현하는 기법이다.
4) 모델링의 특징
개발될 시스템에 대하여 여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 준다.
개발팀이 응용 문제를 이해하는 데 도움을 줄 수 있다.
모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 있다.
절차적인 프로그램을 위한 자료 흐름도는 프로세스 위주의 모델링 방법이다.
구조적 방법론에서는 DFD(Data Flow Diagram), DD(Data Dictionary) 등을 사용하여 요구사항의 결과를 표현한다.
객체 지향 방법론에서는 UML 표기법을 사용한다.
실세계 문제에 대한 모델링이 소프트웨어 요구사항 분석의 핵심이다.
6. 요구사항 확인 – 분석 모델 확인 – 분석 자동화 도구
1) 분석 자동화 도구의 개념
분석 자동화 도구는 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 요구사항 분석을 위한 자동화 도구(CASE)이다.
* CASE(Computer Aided Software Engineering)란 소프트웨어 생명주기의 전체 단계를 연결해 주고 자동화해주는 통합된 도구로써 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성한다.
2) 분석 자동화 도구의 특징
표준화 적용과 문서화를 통한 보고를 통해 품질 개선이 가능하다.
변경사항과 변경으로 인한 영향에 대한 추적이 쉽다.
명세에 대한 유지보수 비용의 축소가 가능하다.
자동화된 기법을 통해 소프트웨어 품질이 향상된다.
소프트웨어 모듈의 재사용성이 향상되고, 유지보수가 용이하다.
원천 기술로는 구조적 기법, 프로토타이핑 기술, 자동프로그래밍 기술, 정보 저장소 기술, 분산 처리 기술을 사용한다.
3) 분석 자동화 도구의 분류
(1) 상위 CASE
계획 수립, 요구분석, 기본설계 단계를 다이어그램으로 표현
모델들 사이의 모순 검사 및 모델의 오류 검증, 일관성 검증 지원
자료흐름도 프로토타이핑 작성 지원 및 UI 설계 지원
(2) 하위 CASE
구문 중심 편집 및 정적, 동적 테스트 지원
시스템 명세서 생성 및 소스 코드 생성 지원
* SW 개발 주기 전체를 지원하는 통합 CASE(Integrated CASE)도 있다.
4) 분석 자동화 도구 주요 기능(CASE 도구)
그래픽을 지원한다.
소프트웨어 생명주기의 전 단계를 연결한다.
다양한 소프트웨어 개발 모형을 지원한다.
표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다.
작업 과정 및 데이터 공유를 통해 작업자 간의 커뮤니케이션을 증대한다.
7. 요구사항 확인 – 분석 모델 확인 – 요구사항 관리 도구
1) 요구사항 관리 도구의 개념
요구사항 관리 도구는 요구사항을 기반으로 프로젝트 관리, 설계, 개발, 테스트 등을 수행할 수 있는 역할을 지원하는 도구이다.
2) 요구사항 관리 도구의 필요성 – 비변영
(1) 비용 편익 – 요구사항 변경으로 인한 비용 편인 분석
(2) 변경 추적 – 요구사항 변경의 추적
(3) 영향 평가 – 요구사항 변경에 따른 영향 평가
'정보처리기사 > 1과목 소프트웨어 설계' 카테고리의 다른 글
Part 4. 인터페이스 설계 23.01.18(수) (0) | 2023.01.18 |
---|---|
Part 3. 애플리케이션 설계 23.01.18(수) (0) | 2023.01.18 |
Part 3. 애플리케이션 설계 23.01.16(월) (1) | 2023.01.18 |
Part 2. 화면 설계 23.01.12(목) (0) | 2023.01.18 |
Part 1. 요구사항 확인 23.01.11(수) (0) | 2023.01.18 |