어두운 지도를 조금씩 밝혀나가는 데에서 즐거움을 느낀다면
: 문제 해결을 위해 제공하는 서비스에 대한 설명과 서비스가 정상 운영되기 위해 필요한 제약 조건을 요구하는 것
- 기술하는 내용에 따라
- 기술 관점과 대상의 범위에 따라
: 개발 대상에 대한 요구사항을 쳬계적으로 도출하고 분석하여, 그 분석 결과를 명세서에 정리한 후 이를 확인 및 검증하는 활동
※ 요구 공학 (Requirements Engineering) : 요구사항을 정의, 분석, 관리하는 프로세스를 연구하는 학문
- 요구사항 변경의 원인과 처리방법의 이해, 요구사항 관리 프로세스 품질 개선을 통해 프로젝트 실패를 최소화하는 것을 목표로 함
1. 요구사항 도출 (Requirements Elicitation, 요구사항 수집)
: 개발의 이해관계자들이 의견 교환을 통해 요구사항을 식별하고 이해하는 과정
2. 요구사항 분석 (Requirements Analysis)
: 사용자의 요구사항 중 명확하지 않거나 이해되지 않는 부분을 발견하여 걸러내는 과정
3. 요구사항 명세 (Requirements Specification)
: 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 과정
※ 요구사항 명세 기법
4. 요구사항 확인 (Requirements Validation, 요구사항 검증)
: 요구사항 명세서가 정확하고 완전하게 작성되었는지 검토하는 과정
※ 형상 : 소프트웨어 개발 과정에서 만들어지는 프로그램, 프로그램 설명 문서, 데이터 etc
: 소프트웨어 개발의 실제적인 첫 단계. 사용자의 요구사항을 이해하고 문서화하는 활동
: 자료의 흐름과 처리를 중심으로 요구사항을 분석하는 방법
1. 자료 흐름도 (DFD; Data Flow Diagram)
: 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술 (자료 흐름 그래프, 버블 차트)
자료 흐름도의 예시
자료흐름도의 표기법 중 하나인 Yourdon/DeMacro 표기법
2. 자료 사전(DD; Data Dictionary)
: DFD의 자료를 더 자세히 정의하고 기록한 것. 데이터를 설명하는 데이터인 메타 데이터
자료 사전의 예시
: 요구사항을 자동으로 분석하고 요구사항 분석 명세서를 기술하도록 개발된 도구
- 요구사항 분석 시 자동화 도구 사용의 이점
- 요구사항 분석을 위한 자동화 도구의 종류
: 시스템의 분석, 설계, 문서화에 사용되는 기법. 입력, 처리, 출력의 각 기능을 나타냄
- HIPO Chart : 시스템의 기능을 여러 모듈로 분할하여 모듈 간의 인터페이스를 계층 구조로 표현한 것
: 시스템 개발 과정에서 원활한 의사소통을 위해 표준화한 객체지향 모델링 언어
- UML 구성 요소
1. 사물(Things) : 모델을 구성하는 중요한 기본 요소, 관계가 형셩될 수 있는 대상
2. 관계(Relationships) : 사물과 사물 사이의 연관성
연관 관계의 예시. 수업에는 1명 이상의 교사와 1명 이상의 학생이 연관된다
집합 관계의 예시. 바퀴와 엔진은 차에 포함되지만 독립적으로도 존재할 수 있다.
포함 관계의 예시. 손과 다리는 사람에 포함되며 사람과 생명주기를 함께한다.
일반화 관계의 예시. 계좌의 구체적 개념으로 당좌 예금 계좌, 일반 예금 계좌, 신용 계좌가 있다.
의존 관계의 예시. 사람은 책을 읽는 동안 짧게 책과 관계를 유지한다.
실체화 관계의 예시. 비행기와 새를 "날 수 있다" 라는 기능으로 그룹화 할 수 있다
3. 다이어그램 (Diagram) : 사물과 관계를 도형으로 표현한 것
※ 스테레오 타입 : UML의 기본 기능 외 추가적인 기능을 표현하기 위해 사용. ≪≫를 사용하여 표현
: 시스템의 외부 요소(사용자, 외부 시스템)이 시스템을 이용해 수행할 수 있는 기능을 사용자 관점에서 표현한 것
유스케이스 다이어그램의 예시
- 유스케이스 다이어그램의 구성 요소
: 시스템을 구성하는 클래스, 클래스의 속성과 오퍼레이션, 제약 조건과 클래스 간의 관계를 표현한 것
클래스 다이어그램의 예시
- 클래스 다이어그램의 구성 요소
※ 접근 제어자
: 시스템이나 객체들이 시간 흐름에 따라 메시지를 주고받으며 상호작용하는 과정을 표현한 것
시퀀스 다이어그램의 예시
- 시퀀스 다이어그램의 구성 요소
1. 소프트웨어 설계 - 요구사항 확인(요구사항 정의 ~ 주요 UML 다이어그램)
6. 요구사항 정의
1) 요구사항
: 문제 해결을 위해 제공하는 서비스에 대한 설명과 서비스가 정상 운영되기 위해 필요한 제약 조건을 요구하는 것
2) 요구사항의 유형
- 기술하는 내용에 따라
(Functional Requirements)
- 시스템의 입출력에 포함되는 요소, 저장하는 데이터, 수행하는 연산 등
(Non-functional
Requirements)
테스트, 보안, 품질, 제약사항 등에 대한 요구사항
- 프로젝트 관리와 지원에 대한 요구사항
- 기술 관점과 대상의 범위에 따라
(User Requirements)
- 사용자를 위해 이해하기 쉽게 작성
소프트웨어 요구사항
(System Requirements)
- 전문적이고 기술적인 용어로 작성
3) 요구사항 개발 프로세스
: 개발 대상에 대한 요구사항을 쳬계적으로 도출하고 분석하여, 그 분석 결과를 명세서에 정리한 후 이를 확인 및 검증하는 활동
※ 요구 공학 (Requirements Engineering) : 요구사항을 정의, 분석, 관리하는 프로세스를 연구하는 학문
- 요구사항 변경의 원인과 처리방법의 이해, 요구사항 관리 프로세스 품질 개선을 통해 프로젝트 실패를 최소화하는 것을 목표로 함
(Elicitation)
(Analysis)
(Specification)
(Validation)
1. 요구사항 도출 (Requirements Elicitation, 요구사항 수집)
: 개발의 이해관계자들이 의견 교환을 통해 요구사항을 식별하고 이해하는 과정
2. 요구사항 분석 (Requirements Analysis)
: 사용자의 요구사항 중 명확하지 않거나 이해되지 않는 부분을 발견하여 걸러내는 과정
3. 요구사항 명세 (Requirements Specification)
: 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 과정
※ 요구사항 명세 기법
- 일관성이 있어 완전성 검증 가능
- 사용자가 이해하기에 어려움
- 내용이 이해하기 쉽고 의사소통에 용이
4. 요구사항 확인 (Requirements Validation, 요구사항 검증)
: 요구사항 명세서가 정확하고 완전하게 작성되었는지 검토하는 과정
※ 형상 : 소프트웨어 개발 과정에서 만들어지는 프로그램, 프로그램 설명 문서, 데이터 etc
7. 요구사항 분석
: 소프트웨어 개발의 실제적인 첫 단계. 사용자의 요구사항을 이해하고 문서화하는 활동
1) 구조적 분석 기법
: 자료의 흐름과 처리를 중심으로 요구사항을 분석하는 방법
1. 자료 흐름도 (DFD; Data Flow Diagram)
: 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술 (자료 흐름 그래프, 버블 차트)
- 원이나 둥근 사각형으로 표시
- 화살표로 표시
- 정보의 생산자 및 소비자 역할
2. 자료 사전(DD; Data Dictionary)
: DFD의 자료를 더 자세히 정의하고 기록한 것. 데이터를 설명하는 데이터인 메타 데이터
8. CASE/HIPO
1) CASE (Computer Aided Software Engineering, 자동화 도구)
: 요구사항을 자동으로 분석하고 요구사항 분석 명세서를 기술하도록 개발된 도구
- 요구사항 분석 시 자동화 도구 사용의 이점
- 요구사항 분석을 위한 자동화 도구의 종류
2) HIPO (Hierarchy Input Process Output)
: 시스템의 분석, 설계, 문서화에 사용되는 기법. 입력, 처리, 출력의 각 기능을 나타냄
- HIPO Chart : 시스템의 기능을 여러 모듈로 분할하여 모듈 간의 인터페이스를 계층 구조로 표현한 것
9. UML (Unified Modeling Language)
: 시스템 개발 과정에서 원활한 의사소통을 위해 표준화한 객체지향 모델링 언어
- UML 구성 요소
1. 사물(Things) : 모델을 구성하는 중요한 기본 요소, 관계가 형셩될 수 있는 대상
2. 관계(Relationships) : 사물과 사물 사이의 연관성
3. 다이어그램 (Diagram) : 사물과 관계를 도형으로 표현한 것
(Class Diagram)
- 사스템의 구조 파악과 구조의 문제점 파악에 용이
(Object Diagram)
(Component Diagram)
- 구현 단계에서 이용
(Deployment Diagram)
- 구현 단계에서 이용
(Composite Structure DIagram)
(Package Diagram)
(Use Case Diagram)
(Sequence Diagram)
(Communication Diagram)
(State Diagram)
(Activity DIagram)
(Interaction Overview Diagram)
(Timing Diagram)
※ 스테레오 타입 : UML의 기본 기능 외 추가적인 기능을 표현하기 위해 사용. ≪≫를 사용하여 표현
10. 주요 UML 다이어그램
1) 유스케이스 다이어그램
: 시스템의 외부 요소(사용자, 외부 시스템)이 시스템을 이용해 수행할 수 있는 기능을 사용자 관점에서 표현한 것
- 유스케이스 다이어그램의 구성 요소
2) 클래스 다이어그램
: 시스템을 구성하는 클래스, 클래스의 속성과 오퍼레이션, 제약 조건과 클래스 간의 관계를 표현한 것
- 클래스 다이어그램의 구성 요소
※ 접근 제어자
3) 시퀀스 다이어그램
: 시스템이나 객체들이 시간 흐름에 따라 메시지를 주고받으며 상호작용하는 과정을 표현한 것
- 시퀀스 다이어그램의 구성 요소
'도서 개발 공부 > 정보 처리 기사 필기' 카테고리의 다른 글