728x90
1️⃣ 요구 분석 기법 ⭐⭐⭐
요구 분석(=사용자의 요구 이해)
사용자의 요구를 추출해 목표를 정하고 해결 방안을 결정하는 단계
명확하지 않거나 모호한 요구사항을 거르는 단계
- 분석 결과를 문서화 → 유지보수 용이
- 구체적인 명세 → 소단위 명세서 작성
- 요구에 대한 정보수집 및 배경 분석 → 도메인 분석
요구사항 분석 단계 절차
- 요구사항 분류
- 유형(기능/비기능)확인
- 개념 모델링 생성 및 분석
- 요구사항 할당
- 요구사항 협상
- 정형 분석
요구사항 분석에 사용하는 기능 모델링 기법
데이터 흐름도 (Data Flow Diagram)
데이터가 각 프로세스를 따라 흐르면서 변화되는 모습을 나타낸 그림
시스템 분석과 설계에 유용
자료 흐름 그래프, 버블 차트라도고 한다.
구조적 분석 기법에 이용된다.
제어의 흐름, 시간 흐름은 중요하지 않다.
구성요소
- 처리기
- 데이터 흐름
- 데이터 저강소
- 단말
자료사전 (Data Dictionary)
자료 요소, 자료 요소들의 집합, 자료의 흐름, 자료 저장소의 의미와 그들 간의 관계, 관계 값, 범위, 단위들을 구체적으로 명시한 사전
요구 사항 분석이 어려운 이유
- 개발자와 사용자 간 표현의 차이가 큼
- 사용자의 요구는 예외가 많아 열거와 구조화가 어려운 편
2️⃣ UML
1 ~ 2. UML의 개념과 특징
개발 과정의 산출물을 문서화하기 위한 모델링 기술과 방법론을 통합해 만든 표준 범용 모델링 언어
- 가시화 언어
- 구축 언어
- 명세화 언어
- 문서화 언어
3. UML 구성요소
- 사물
- 관계
- 다이어그램 : 사물과 관계를 모아 그림으로 표현한 형태
4. UML 사물의 종류
- 구조 사물 : 정적 요소, 시스템의 물리적 개념적 요소
- 행동 사물 : 동적 요소 , 시간과 공간에 따른 요소들의 행위 표현
- 그룹 사물
- 주해 사물 : 부가적인 설명이나 제약조건
5. UML 다이어그램
- 구조적(정적)
- 클래스
- 객체
- 컴포넌트
- 배치 : 컴퓨넌트 사이의 종속성 표현
- 복합체 구조 : 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
- 패키지 : 그룹화한 패키지들의 관계 표현
- 행위적(동적)
- 유스케이스 : 사용자 관점에서 시스템의 활동 표현, 시스템의 기능적 요구 정의에 활용
- 시퀀스 : 객체 간 상호 작용을 메세지로 표현
- 커뮤니케이션 : 시퀀스 뿐 아니라 객체 간 연관관계 표현
- 상태
- 활동
- 타이밍 : 객체 상태 변화와 시간 제약을 명시적 표현
6. UML 상세
- 클래스 다이어그램
- 유스케이스 다이어그램
- 유스케이스 : 시스템이 제공, 액터가 시스템을 통해 수행하는 행위
- 액터 : 시스템과 상호작용 하는 대상
- 시스템 : 전체 시스템의 영역 표현
- 연관 관계
- 포함 관계
- 확장 관계
- 일반화 관계
- 시퀀스 다이어그램
- 객체
- 생명선
- 실행
- 메시지
- 회귀 메시지
- 상태 다이어그램
- 상태
- 시작 상태
- 종료 상태
- 전이
- 이벤트
- 전이 조건
7. UML의 관계
- 연관 관계
- 의존 관계
- 일반화 관계
- 실체화 관계
- 포함 관계
- 집합 관계
8. UML 확장 모델의 스테레오 타입
- include
- extend
- interface
3️⃣ 애자일(Agile)⭐⭐⭐
개발과 함께 즉시 피드백을 받아 유동적으로 개발하는 소프트웨어 개발방법론
- 기능 중심
- 개인과 소통
- 짧은 작업 계획, 유연하고 신속한 대응
4. 애자일 선언문
- 공정과 도구보다 개인과 상호작용
- 계획을 따르기보다 변화에 대응하기
- 포괄적인 문서보다 동작하는 소프트웨어
- 계약 협상보다 고객과의 협력
5. 애자일 방법론 유형
XP / Lean / Scrum
XP
의사소통 개선과 즉각적 피드백을 위한 방법론
실용성을 강조한 방법론으로 5가치 가치와 12개의 실천 항목이 존재한다.
- 가치
- 용기
- 단순성
- 의사소통
- 피드백
- 존중
- 실천 항목
- 페어 프로그래밍
- 공동 코드 소유
- 지속적인 통합
- 계획 세우기
- 작은 릴리즈
- 메타포어
- 간단한 디자인
- 테스트 기반 개발
- 리팩토링
- 40시간 작업
- 고객 상주
- 코드 표준
스크럼(Scrum)
매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
- 제품 책임자
- 제품 백로그
- 스프린트
- 스크럼 미팅
- 스크럼 마스터
- 스프린트 회고
- 번 다운 차트
- 속도
린(Lean)
도요타의 린 시스템 품질 기법을 소프트웨어 개발 프로세스에 적용해 낭비 요소를 제거하여 품질을 향상시킨 방법론
JIT(Just In Time), 칸반 보드를 사용한다.
크리스탈(Crystal)
사람에게 더 많은 중점을 두는 방법론
ASD(Adaptive Software Development)
혼란을 대전제로 그에 적응할 수 있는 합동 애플리케이션 개발을 사용하는 방법론
FDD(Feature Driven Development)
프로젝트를 작은 기능 단위로 나누어 개발하고 빠른 피드백과 지속적인 개선을 추구하는 방법론
728x90
'CS' 카테고리의 다른 글
[수제비 2025 정보처리기사 필기] I. 소프트웨어 설계 - 1. 요구사항 확인 정리노트 : 03. 분석 모델 확인 (0) | 2025.02.08 |
---|---|
[수제비 2025 정보처리기사 필기] I. 소프트웨어 설계 - 1. 요구사항 확인 정리노트 : 01. 현행 시스템 분석 (0) | 2025.02.08 |
[Java] Java에서의 Thread와 Thread Pool (1) | 2025.02.08 |
[쉽게 배우는 운영체제] 연습문제 10장 정답 (1) | 2024.12.12 |
[쉽게 배우는 운영체제] 연습문제 8장 정답 (0) | 2024.12.12 |