1장. 요구사항 확인
주간컴공 채널의 지마님의 정보처리기사 필기 유튜브 강의를 들으며 정리한 내용입니다. 1과목 소프트웨어 설계의 1장 요구사항 확인 파트를 필기하였습니다.
소프트웨어 생명주기
소프트웨어 개발과정을 단계별로 나눈 것
폭포수모델
- 각 단계를 한번씩만 거침(되돌릴 수 없음)
- 단계별 철저한 검증 필요
- 매뉴얼 작성 필요
프로토타입 모델
- 기능적 인터페이스 중심으로 견본 개발 후 최종 개발 후 발견될 오류 방지
나선형 모델
- 계획 - 분석(검증) - 개발 - 평가(오류방지) 의 단계를 반복
- 폭포수와 프로토타입의 장점 흡수하여 점진적 개발
- 대규모 소프트웨어 개발에 용이
애자일 모델
- 요구사항 반영 및 고객과의 의사소통 빈도를 높이는 것이 목표
- 여러 개발방법을 아우르는 모델 (스크럼 기법, XP 기법)
스크럼 기법
팀 중심, 제품 책임자, 스크럼 마스터, 개발팀으로 구성
- 제품 책임자(PO): 의사 결정자, 백로그의 우선순위 지정
- 스크럼 마스터: 일일회의 주관, 개발 가이드
- 개발팀: 개발자 뿐 아니라 디자이너, 테스터 등 모든 인원
프로세스
- 백로그: 요구사항을 우선순위에 따라 모아놓은 목록
- 계획 회의: 스프린트 일정 수립, 개발자 별로 스프린트 백로그 작성
- 스프린트 진행: 할 일, 진행 중, 완료
- 일일 회의: 스크럼 마스터 주도, 소멸차트 활용
- 검토 회의: 주별, 제품 책임자(PO) 주도, 백로그 업데이트
- 회고
XP 기법
- 짧고 반복적인 개발주기 + 고객의 적극적 참여 = 가시성 향상
- 소규모 개발 프로젝트에 효과적
- 핵심 가치: 피드백, 존중, 용기, 단순, 의사소통 (피존용단소!)
- 개발 프로세스
- 사용자 스토리: 고객의 요구사항
- 릴리즈 계획 수립: 부분과 전체의 개발 일정 수립
- 스파이크: 기술 및 기능 확인을 위해 간단히 만드는 프로그램
- 이터레이션: 릴리즈를 좀 더 세분화한 단위
- 승인 검사: 부분 소프트웨어가 릴리즈되면 고객이 직접 평가
- 소규모 릴리즈 릴리즈 별로 고객의 피드백 확인 가능
현행 시스템 파악
시스템 파악: 시스템 개발 범위를 명확하게 설정
구기인아소하네
- 시스템 구성: 기간(주요) 업무와 지원 업무의 주요 기능 파악
- 시스템 기능: 주요 기능별 세부 기능들을 계층형으로 표시
- 시스템 인터페이스: 주고받는 데이터의 형식, 프로토콜 파악
- 아키텍처 구성: 주요 업무 시스템의 구성과 동작원리를 표현
- 소프트웨어 구성: 종류 및 라이선스의 적용방식과 개수
- 하드웨어 구성: 서버의 주요 사양과 수량, 이중화 적용 여부
- 네트워크 구성: 구성도 작성, 물리적 위치, 보안 취약점, 유지보수
개발 기술 환경 파악
- 운영체제: 시스템 자원 관리, 하드웨어 제어를 위한 인터페이스
- 고려사항: 주변기기 지원 여부
- DBMS: 데이터베이스 관리를 위한 시스템, 종속성과 중복성 해결, 데이터에 대한 모든 권한과 책임이 있음
- 고려사항: 상호 호환성, 데이터 이중화
- WAS: 동적 콘텐츠 처리를 위한 미들웨어, DB서버와 연동
- 미들웨어: 서버와 클라이언트 중간에 위치, 클라이언트 대신 복잡한 처리를 하기 위함
- 고려사항: 다양한 옵션
- 공통 고려사항: (가성비기오) 가용성, 성능, 비용, 기술지원
- 오픈소스: 라이선스 종류, 기술 지속가능성, 사용자 수
요구사항 정의/분석/확인
- 요구사항: 서비스에 대한 설명 및 제약 조건
- 기능: 기능 자체
- 비기능: 기능의 품질, 제약사항
- 사용자: 쉬운 표현 사용
- 시스템: 개발자 입장, 전문용어
- 요구사항 개발 프로세스: 도출(의사소통) -> 분석 -> 명세(문서화) -> 확인
- 분석: 타당성 조사, 특정 기준으로 분류
- 개념 모델링: 단순화, 개념적 표현, 객체간 관계와 종속성 분석
- 협상: (기능과 비기능, 필요자원, 서로)의 요구사항이 충돌하는 경우
- 정형분석: 마지막 단계, 구문과 의미를 갖는 언어 사용, 수학적 기호로 표현
- 확인: 검증
- 검토: 일반적, 고객 대표 포함
- 모델 검증: 정적(논리적) 검증, 실행 안함
- 프로토타이핑: 지속적인 프로토타입 작성, 사전 피드백
- 단점: 프로토타입에만 집중, 비용부담, 과대평가
- 인수 테스트: 사용자 입장에서 요구사항 체크(계획 필요)
- 분석: 타당성 조사, 특정 기준으로 분류
UML (Unified Modeling Language)
UML의 구성요소: 사물, 관계, 다이어그램
사물
구조(요소), 행동, 그룹, 주해(설명)
관계
연관, 의존, 일반화, 실체화, 집합, 포함
다이어그램
구조적 다이어그램
종류 | 키워드 |
---|---|
클래스 | 구조 |
객체 | 관계 |
컴포넌트 | 구현, 인터페이스 |
배치 | 구현, 위치 |
복합체 구조 | 내부 구조 |
패키지 | 그룹 |
행위 다이어그램
종류 | 키워드 |
---|---|
유스케이스 | 모델링 |
시퀀스 | 메시지 |
커뮤니케이션 | 메시지 + 연관관계 |
상태 | 상태 변화 |
활동 | 로직 흐름 |
상호작용 개요 | 제어 흐름 |
타이밍 | 시간 제약 |