Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- AIFFEL 일기
- AIFFEL일기
- Markdown
- 파이썬 진수변환
- 아이펠
- 파이썬 여러줄 문자열 변수
- Linux
- AIFFEL 회고
- 아이펠일기
- 파이썬 여러줄 주석
- 파이썬 주석 변수
- 런타임
- 컴파일타임
- 모듈 패키지 라이브러리
- 파이썬 문법
- 파이썬 형변환
- 파이썬
- 아이펠 회고
- 마크다운 inline 수식
- 아이펠 일기
- 리눅스
- compile time
- Aiffel
- Python
- PYTHON 주석 변수
- 윈도우 커맨드창
- 마크다운 인라인 수식
- python 문법
- 마크다운
- 파이썬 긴 문자열 변수
Archives
- Today
- Total
튜토리얼에도 고난과 역경이 있다.
소프트웨어공학) CH04 요구분석 본문
728x90
요구 사항과 요구 분석 명세서의 이해
- 소프트웨어 개발의 목적
- 개발된 소프트웨어의 고객 만족
- 고객 만족을 위한 특성
- 적시성 : 빠른 출시를 통한 시장의 점유
- 유연성 : 다양한 환경에서의 적응성
- 통합 : 기존 시스템과의 쉬운 통합
요구사항/요구사항 분석 명세서
- 요구사항
- 이용자가 어떤 문제를 풀거나 목표를 달성하기 위해 필요한 조건이나 능력(사전적 의미)
- 사용자와 개발자 간에 합의한 개발 범위에서 시스템이 제공해야 하는 기능(SW개발 의미)
- 기능 요구사항 + 성능 관련 요구사항 (품질, 비기능 요구사항)
- 요구 분석 명세서
- 개발 초기에 사용자의 요구사항 (비기능 요구 사항 포함)을 추출하여 정리한 문서
- What에만 초점, How는 고려 X
요구 분석의 이해
- 과정
- 사용자 요구 파악 -> SW 목표 수립 -> 모델링 -> 요구 분석 명세서
- 요구 분석
- 소프트웨어 요구 사항 정의를 위해 사용자의 요구 사항을 조사하고 확인하는 과정
- 소프트웨어 개발 생명주기의 첫 단계
- 소프트웨어 개발 성패의 열쇠
- 과정
- 현 상태 파악 -> 사용자 요구 파악 -> 사용자 요구 결정
- 요구 분석의 어려움
- 문제 영역에 대한 이해력 부족
- 의사소통 문제
- 계속 변하는 요구사항
- 변경 요구에 대한 대처 방안 -> `요구사항 추적성` 중요
- 변경 사항에 대한 날짜 별, 기간 별 기록
- 변경이 미치는 영향에 대해 사전 분석 필요
- 애매모호한 요구사항
- 분석가의 역할
- 사용자와 개발자의 마찰
- 요구사항 수집 방법 `ISO 29148`
- 자료 수집
- 문서 수집( 업무 메뉴얼, 업무 흐름도 등) : 전반적인 업무 흐름 파악 및 이해
- 현행 시스템 분석 : 입력화면 및 출력물
- 인터뷰
- 설문 조사
- 브레인 스토밍을 통한 구조적 워크샵
- 기술 문서 검토
- 조직적 분석기술 (SWOT분석, 제품 포트폴리오)
- ..etc
- 자료 수집
요구 분석의 절차와 요구 사항 종류
- 절차
- 자료수집
- 현행 시스템 파악, 실무 담당자와 인터뷰, 현재 사용하는 서류 검토
- 요구사항 도출
- 수집한 자료 정리 및 분류 -> 개발에 반영할 요구사항 검출
- 문서화
- 요구 분석 명세서 작성
- 검증
- 요구 분석 명세서 검토 -> 모순 사항, 빠드린 사항 등 점검
- 자료수집
- 종류
- 요구사항 구별1
- 기능적 요구사항
- 비기능적 요구사항
- 품질
- 제약 사항
- 요구사항 구별2
- 사용자 요구사항
- 시스템 요구사항 <br/>
- 요구사항 구별1
구별 1. 기능적 요구사항과 비 기능적 요구사항
비기능적 요구사항
- 수행 가능한 환경
- 품질
- 품질 특성
- ISO 9126 / ISO 25010  <br/>
- ISO 25000 품질특성, 시험유형 
<br/> - 신뢰성
- 신뢰
- 소프트웨어를 믿고 사용할 수 있는 것
- 사용자가 주어진 시간과 환경에서 고장없이 사용할 수 있어야 한다.
- 신뢰도
- 장애 없이 동작하는 시간의 비율
- 신뢰도 측정
- MTBF = MTTF + MTTR
- MTBF : 고장 간 평균 시간 (Mean Time Between Failure)
- MTTF : 평균 실패 시간 (Mean Time To Failure)
- MTTR : 평균 수리 시간 (Mean Time To Repair)
- 이용가능성 Availability
- MTTF/(MTTF + MTTR) * 100%
- 주어진 시점에서 시점에서 프로그램이 요구에 따라 작동되고 있을 가능성
- MTBF = MTTF + MTTR
- 신뢰
- 성능
- 보안성
- 참고
- CWE (Common Weakness Enumeration),
- OWASP Top 10
- 시큐어 코딩 가이드
- 참고
- 안전성
- 사용성
- 소프트웨어를 상용할 때 혼란스러워하거나 사용하는 순간에 고민하지 않게 하는 편의성
- ex) 주민번호 입력할 때 -를 넣어야 할지 말지
- ex) 의미가 같은 단어 두 개를 혼용하여 혼란스럽게 하진 않은지
- 제약 사항
- ex)
- 자바 언어를 사용해 개발한다.
- CBD 개발 방법론을 적용해야 한다.
- 레드헷 리눅스 엔터프라이즈 버전에서 실행해야 한다.
- ex)
기능적 요구사항
구별2. 사용자 요구사항과 시스템 요구사항
사용자 요구사항
- 사용자를 위한 도면
- 사용자가 알고 싶어하는 내용을 중심으로 작성
- `사용자 요구 분석 명세서`
- 특징
- 사용자와 대화 시 거부감을 줄이고 충분히 이해할 수 있도록 쉽게 작성
- 다이어그램 사용
- 작성 방법
- 유사한 프로젝트 경험을 가진 분석가 선정
- 표준 양식 사용
- 특징
- `요구사항 정의서`
- 시공자를 위한 도면
- 각 분야의 기술자가 작업하는데 필요한 도면
- `시스템 요구 분석 명세서`
- 특징
- 시스템 요구 사항을 설계하는데 도움이 되도록 기술적 용어나 전문적 표현 사용하여 작성
- 설계를 위해 사용되므로 완전하고 일관성 있게 작성
- 사용 도구
- 구조적 방법론의 구조적 언어
- 유스케이스 다이어그램
- 특징
- 사용자 요구 분석 명세서와 시스템 요구 분석 명세서는 일관성이 매우 중요!
시스템 요구사항
<br/br/>
요구 사항의 표현
4장 33pg~
요구사항의 문서화
반응형
'나의 공부 > Computer Science' 카테고리의 다른 글
Linux) 리눅스 명령어 정리 (0) | 2022.01.03 |
---|---|
Linux) 리눅스 단축키 (0) | 2022.01.02 |
소프트웨어공학) CH03 계획 (0) | 2021.03.31 |
소프트웨어 공학) CH02 소프트웨어 개발 프로세스 (0) | 2021.03.31 |
소프트웨어 공학) CH01 소프트웨어의 이해 (0) | 2021.03.31 |