SW개발의 목적
-개발된 SW의 고객 만족
-고객 만족을 위한 특성
-적시성: 빠른 출시를 통한 시장의 점유
-유연성: 다양한 환경에서의 적응성
-통합: 기존 시스템과의 쉬운 통합
-고객만족의 개발 조건
-고품질의 제품 개발
-정해진 기간 내에 개발
-주어진 예산내의 개발
요구사항
-사용자와 개발자 간에 합의(요구분석 명세)한 개발 범위에서 시스템이 제공해야 하는 기능
요구 분석 명세서
-개발 초기에 사용자의 요구사항(비기능 요구사항 포함)을 추출해 정리한 문서
요구분석 과정
사용자요구 파앆 -> 목표 수립 -> 모델링 -> 요구분석 명세서
요구분석
-SW요주 사항 정의를 위해 사용자의 요구 사항을 조사하고 확인하는 과정
-SW개발 생명주기의 첫 단계
-SW 개발 성패의 열쇠
현 상태 파악 -> 사용자 요구 파악 -> 사용자 요구 결정
요구분석의 어려움
-문제 영역에 대한 이해 필요
-의사 소통의 문제
-지속적으로 변하는 요구사항
-변경 요구에 대한 대처 방안
-애매한 요구사항
-사용자와 개발자의 마찰
요구사항 수집 방법
-자료 수집
1. 문서수집
2. 현행 시스템 분석
- 인터뷰: 수집된 자료 분석 -> 인터뷰 -> 요구 삭제 및 추가 -> 수정된 요구 확인
-설문 조사: 설문을 통한 또 한번의 요구사항 추출
-도메인 분석
-도메인이란 AW를 사용할 것으로 예상되는 고객이 일하는 분야의 비즈니스나 기술
-도메인 전문가는 응용 분야에 깊이 있는 지식을 가진 사람
요구 분석 절차
1. 자료수집: 현행 시스템 파악, 실무 담당자와 인터뷰, 현재 사용하는 서류 검토
2. 요구 사항 도출: 수집한 자료 정리, 분류 -> 개발에 반영할 요구 사항 도출
3. 문서화: 요구 분석 명세서 작성
4. 검증: 요구 분석 명세서 검토 -> 모순 사항, 빠뜨린 사항 등 점검
요구사항 분류
비기능적 요구 사항: 수행 가능한 환경, 품질(신뢰성, 성능, 보안성, 안전성, 사용성), 제약 사항
-품질
-신뢰성:
1. SW를 믿고 사용할 수 있는 것. 사용자가 주어진 시간과 환경에서 고장 없이 사용할 수 있어야 하는 것
2. 신뢰도: 장애 없이 동작하는 시간의 비율
3. 신뢰도 측정: 고장 간 평균 시간(MTBF)과 이용 가능성(가용성)을 척도로 사용
4. 이용 가능성(availability): 주어진 시점에서 프로그램 요구에 따라 작동되고 있을 가능성
MTBF(Mean Time Between Failure): 고장 간 평균 시간->고장에서 다음 고장까지 평균 시간
MTTF(Mean Time To Failure): 평균 실패 시간->수리후 다음 고장까지의 시간
MTTR(Mean Time To Repiar): 평균 수리 시간->고장 발생 시점에서 수리 까지 평균 시간
-성능
-사용자가 시스템에 어떤 요구를 했을 때 해당 기능을 정상적으로 수행하는 것은 물론, 사용자가 원하는 조건(응답시간, 데이터의 처리량 등)을 만족시키는 것
-보안성
-인증을 받지 않은 사람이 시스템에 접근하는 것을 처음부터 막아 시스템과 데이터를 보호
-안전성
-작동하는 모든 시스템이 SW오류로 인해 인명 피해가 발생하지 않도록 하는 것
-사용성
-SW를 사용할 때 혼란스러워하거나 사용하는 순간에 고민하지 않게 하는 편의성
사용자 요구사항
-사용자 요구 분석 명세서
-사용자 요구 사항을 정리하여 작성한 문서
-목정: 사용자와 대화 시 거부감을 줄이고 충분히 이해할 수 있도록 쉽게 작성
-방법: 사용자가 이해할 수 있도록 전문 용어보다는 쉬운 용어 사용
-도구: 다이어그램 사용
-사용자와 분석가가 서로 충분한 대화를 나누며 함께 작성
-사용자 요구 분석 명세서 작성 방법
-유사한 프로젝트 경험을 가진 분석가 선정
-표준 양식 사용
-수집한 요구 사항에 대한 근거(출처) 마련
시스템 요구 사항
-시스템 분석 명에서
-시스템 요구 사항을 설계하는데 도움이 되도록 기술적 용어나 전문적 표현 사용하여 작성
-설계를 위해 사용되므로 완전하고 일관성 있게 작성
-사용 도구
-구조적 방법론: 구조적 언어
-객체지향 방법론: 유스케이스 다이어그램
-정형화된 수학적 명세 언어: 검증에 강한 Z명세 등