정보처리기사/1. 소프트웨어 설계
1-2 [요구사항 확인] 요구사항 확인
여르므
2021. 3. 9. 20:09
요구분석(Requirements Analysis) 기법
요구사항 간 상충을 해결하고 소프트웨어의 범위를 파악해 외부 환경과의 상호작용을 분석하는 과정이다.
요구분석의 특징
- 분석 결과를 문서화하여 추후 유지보수에 활용할 수 있다.
- 자료 흐름도, 자료 사전이 효과적으로 이용된다.
- 보다 구체적인 명세를 위해 소단위 명세서(mini spec)가 활용된다.
요구분석(Requirements Analysis) 주요 활동
- 비용과 일정에 대한 제약 설정
- 타당성 조사
- 요구사항 정의 문서화
- 호부 요구사항 모델링
- 우선순위 부여
- 해당 릴리즈에 수행할 요구사항 선정
- 요구사항 협의
요구 분석 절차
- 요구사항 분류(Requirement Classification)
- 요구사항이 기능인지 비기능인지 확인한다.
- 요구사항의 중요도에 따라 서로 다른 우선순위를 부여한다.
- 요구사항이 시스템에 미치는 영향 범위를 파악한다.
- 제품에 관한 것인지, 프로세스에 관한 것인지 확인한다
- 개념 모델링 생성 및 분석
- 요구사항을 더 쉽게 이해하도록 현실 세계를 단순화, 개념적으로 표현한 것을 모델이라 한다.
- 다양한 개념 모델 작성 가능
- 모델링 표기는 주로 UML 사용
- 요구사항 할당
- 요구사항을 만족시키기 위한 아키텍처 구성요소를 식별한다.
- 다른 구성요소와 어떻게 상호작용 하는지 분석하여 추가 요구사항을 발견한다.
- 요구사항 협상
- 서로 상충되는 요구를 하는 경우 우선순위를 부여하는 등 합의한다.
- 정형 분석
- 정형화된 언어를 사용해 수학적 기호로 표현
- 정의된 의미를 지닌 언어로 요구사항을 표현
- 요구 분석의 마지막 단계
요구사항 분석 기술
- 청취와 인터뷰 질문
- 분석과 중재
- 관찰 및 모델 작성
- 조직 기술
- 작성 기술
요구 분석에 사용하는 기능 모델링 기법
- 데이터 흐름도(DFD; Data Flow Diagram)
시스템 모델링 도구로서 가장 보편적으로 사용된다.
자료 흐름 그래프 또는 버블(bubble) 차트라고도 한다.
제어(control)의 흐름은 중요하지 않다.
시간의 흐름을 명확히 표현할 수 없다.
데이터 흐름도의 구성요소- Process(처리기)
- Data Flow
- Data Store
- Terminator(단말기)
- 자료 사전(DD; Data Dictionary)
조직 내 사람들에게 자료 용어의 의미 공유를 위해 용어를 정의하고 취합한다.
자료 흐름도에 나타나는 어떤 자료의 흐름도 자료 사전에 정의되어 있어야 한다.
자료 사전 기호
{} : 자료의 반복
** : 주석, 자료의 설명
= : 자료의 정의
() : 생략 가능을 나타냄
[] : 자료의 선택
[a|b] : a, b 중 양자택일
UML(Unified Modeling Language)
객체지향 SW 개발과정에 사용되는 모델링 방법론을 통합해 만든 표준화된 범용 모델링 언어이다.
UML의 기본 구성요소
- Things(사물), Relationship, Diagram
UML의 특징
- 가시화, 구축, 명세화, 문서화 언어
UML 다이어그램?
- 정적(구조적) 다이어그램, 동적(행위적) 다이어그램으로 구분된다.
- 컴포넌트, 배치 다이어그램은 구현 단계에서 사용한다.
- 구조적 다이어그램(Structural Diagram)
- 행위적 다이어그램(Behavioral/Dynamic diagram)
시퀀스 다이어그램의 구성요소
- 객체, 생명선, 실행, 메시지
클래스 다이어그램 구성요소
- 클래스 이름, 속성(변수), 연산(메서드), 접근제어자
유스케이스 다이어그램 구성요소
- usecase(제공하는 서비스), actor, system
UML의 관계
사물과 사물 사이의 관계를 표현하는 것이다.
- 연관 관계(association)
- 집합 관계(aggregation)
- 포함 관계(composition)
- 실체화 관계(generalize)
- 의존관계(dependency)
- 일반화 관계(generalization)
UML 확장 모델의 스테레오 타입 유형
<< >> : 스테레오 타입 객체
애자일(Agile)
개발과 함께 즉시 피드백을 받아 유동적으로 개발하는 방법
등장 배경
기존 개발 방법론의 한계를 극복하기 위해 등장했다.
개발 트렌드가 모바일 환경으로 변화되고 잦은 배포의 중요성이 부각되기 시작함
전통적 방법은 변화에 신속 대응이 어려움
애자일 방법론의 특징
- 개인과 소통을 중요하게 생각한다.
- 고객과의 피드백이 중요하다.
- 소프트웨어가 잘 실행되는데 가치를 둔다.
- 작업 계획을 짧게 세워 요구 변화에 유연하고 신속하게 대응한다.
- 기능 중심 개발이다.(⇒ 모듈중심 X)
애자일 방법론의 유형
- XP(eXtreme Programming)1~3주의 반복 개발 주기용기, 의사소통, 피드백, 존중, 단순성
- Pair Programming (짝 프로그래밍)
- Collective Ownership (코드 공동 소유)
- CI(Continuous Integration) (지속적인 통합)
- Planning Process (계획 세우기)
- Small Release (작은 릴리즈)
- Metaphor (메타포어)
- Simple Design (심플 디자인)
- TDD
- Refactoring
- 40-Hour Work (40시간 작업)
- On site Customer (고객 상주)
- Coding Standard (코드 표준)
- XP의 12가지 기본 원리
- XP의 5가지 가치
- 의사소통 개선과 즉각적 피드백으로 품질을 높이기 위한 방법론
- 스크럼 방법론스크럼의 주요 개념
- scrum meeting(=Daily Meeting) - 매일 15분 정도 미팅으로 to-do list 계획
- scrum master - 프로젝트 리더, 스크럼 수행 시 문제 인지, 해결하는 사람
- sprint - 2~4주의 짧은 개발 기간으로 반복적 수행으로 개발 품질 향상
- backlog - 제품과 프로젝트에 대한 요구사항 목록
- spring retrospective - 스프린트 주기를 되돌아보며 규칙 순수 여부, 개선 점에 등에 대한 확인 및 기록
- burn down chart - 남은 백로그 대비 시간을 그래픽으로 표현한 차트
- 매일 정해진 시간과 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 방법
- 린(lean)린 개발 방법론의 7가지 원칙
- 낭비 제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
- 도요타의 린 시스템 품질기법을 SW에 적용해 낭비요소를 제거하여 품질을 향상하는 방법