2022. 5. 24. 15:51ㆍ정처기(필기)/소프트웨어설계
▶(1) 데이터 흐름도(DFD)
- 데이터 흐름도는 고객의 요구사항 분석에 사용하는 기능 모델링 기법으로, 데이터가 각 프로세스를 따라 흐르면서 변화되는 모습을 나타낸 그림이다.
- 시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램
- 가장 보편적으로 사용되는 형태
- 버블차트라고도 함
1. 데이터 흐름도 특징
- 구조적 분석 기법에 이용
- 데이터의 흐름에 중심을 두는 분석용 도구
- 제어의 흐름은 중요X
- 시간 흐름을 명확하게 표현할 수는 없음
2. 데이터 흐름도 구성요소
구성요소 | 설명 |
처리기 | 입력된 데이터를 원하는 형태로 변환하여 출력하기 위한 과정 |
데이터 흐름 | DFD의 구성요소들 간의 주고받는 데이터 흐름을 나타내며, 화살표로 표시 |
데이터 저장소 | 데이터가 저장된 장소이고 평행성(=)으로 표시, 평행선 안에는 데이터 저장소의 이름을 넣음 |
단말 | 프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타냄. 사각형으로 표시 |
(2) 자료 사전
1. 자료사전
- 자료 사전은 자료 요소, 집합, 자료의 흐름, 저장소의 의미와 관계, 관계 값, 범위, 단위들을 구체적으로 명시하는 사전
- 파일 혹은 데이터베이스에 있는 자료에 대한 자료 또는 각 자료 항목에 주어진 이름과 길이나 데이터를 포함하는 작업
기호 | 설명 |
= | ~으로 구성되어있다는 것을 나타내는 기호 |
+ | 자료의 연결을 나타내는 기호 |
( ) | 자료 생략 가능함을 나타내는 기호 |
{ } | 자료의 반복을 나타내는 기호 |
[ ] | 자료의 선택을 나타내는 기호 |
** | 자료의 설명을 나타내는 기호 |
(3) UML
1. UML
- UML은 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어
2. UML의 특징
- 가시화 언어 - 개념 모델 작성 시 오류가 적고 의사소통이 용이
- 구축 언어 - 다양한 프로그래밍 언어로 실행 시스템의 예측 가능
- 명세화 언어 - 정확한 모델 제시, 완전한 모델 작성 가능
- 문서화 언어 - 시스템에 대한 평가 및 의사소통의 문서
3. UML의 구성요소
사물 - 추상적인 개념으로, 주제를 나타내는 요소
관계 - 사물의 의미를 확장하고 명확히 하는 요소
다이어그램 - 사물과 관계를 모아 그림으로 표현한 형태
4. UML다이어그램
- UML다이어그램에는 구조적 다이어그램, 동적 다이어그램으로 구분된다.
● 구조적 다이어그램
클래스 : 시스템 내 클래스의 정적 구조를 표현
객체 : 클래스에 속한 객체들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
컴포넌트 : 코드 컴포넌트 기반의 물리적 구조 표현
배치 : 컴포넌트 사이의 종속성을 표현
복합체 구조 : 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
패키지 : 모델 요소들을 그룹호한 패키지들의 관계 표현
● 행위적 다이어그램
유스케이스 : 사용자 관점에서 시스템의 활동을 표현
시퀀스 : 객체 간 상호 작용을 메시지 흐름으로 표현
커뮤니케이션 : 동작에 참여하는 객체들이 주고받는 메시지 표현
상태 : 하나의 객체가 자신이 속한 클래스의 상태 변화
활동 : 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현
타이밍 : 객체 상태 변화와 시간 제약을 명시적으로 표현
● 유스케이스 다이어그램
시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램
유스케이스 : 시스템이 제공해야 하는 서비스
액터 : 사용자가 시스템에 대해 수행하는 역할
시스템 : 전체 시스템의 영역을 표현
● 시퀀스 다이어그램
객체 간 상호 작용을 메시지 흐름으로 표현한 다이어그램
객체 : 객체는 생명선이 있음
생명선 : 객체로부터 뻗어 나가는 점선
실행 : 오퍼레이션이 실행되는 시간을 직사각형으로 표현
메시지 : 객체 간의 상호 작용은 메시지 교환으로 이루어짐
5. UML 확장 모델의 스테레오 타입
- UML의 스테레오 타입은 UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘
- 형태는 기존의 UML의 요소를 그대로 사용하지만 내부 의미는 다른 목적으로 사용하도록 확장
- UML의 스테레오 타입은 '<<>>'기호를 사용하여 표현
- <<include>> -> 하나의 유스케이스가 어던 시점에 반드시 다른 유스케이스를 실행하는 포함 단계
- <<extend>> -> 하나의 유스케이스가 어던 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을수도 있는 확장 관계
- <<interface>> -> 모든 메소드가 추상 메소드, 추상 메소드와 상수만으로 구성된 클래스
- <<entity>> -> 정보 또는 오래 지속되는 연관된 행위를 형상화하는 클래스. 처리 흐름이 수행되는 과정에서 기억 장치에 저장되어야 할 정보를 표현하는 클래스
- <<boundary>> -> 시스템과 외부 액터와의 상호 작용을 담당하는 클래스
- <<control>> -> 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스
(4) 애자일(Agile)
1. 애자일이란
- 애자일 방법론은 소프트웨어 개발방법론의 하나로서 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법
2. 애자일 방법론 특징
- 프로젝트의 요구사항은 기능 중심으로 정의됨
- 절차와 도구보다 개인과의 소통을 중요시 여김
- 작업 계획을 짧게 세워 유연하고 신속하게 대응
- 소프트웨어가 잘 실행되는 데 가치를 둠
- 고객과의 피드백을 중요하게 생각
3. 애자일 방법론 유형
[1] XP
- XP는 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
- XP는 5가지 가치를 중요시 여김(용기, 단순성, 의사소통, 피드백, 존중)
- XP는 12가지 기본원리를 지켜야 함
[2]스크럼(SCRUM)
- 스크럼은 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론
▶ 스크럼 주요 용어 정리
백로그 : 제품과 프로젝트에 대한 요구사항
스프린트 : 2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품질 향상
스크럼 마스터 : 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람
스프린트 회고 : 스프린트 주기를 되돌아보며 개선점 등을 확인
번다운 차트 : 남아있는 백로그 대비 시간을 그래픽적으로 표현한 차트
[3] 린(lean)
- 낭비 요소를 제거하여 품질을 향상시킨 방법론
- 린의 7가지 원칙에는 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화가 있다.
[4] ASD
- ASD는 개발을 혼란 자체로 규정하고, 혼란을 대전제로 그에 적응할 수 있는 소프트웨어 방법을 제시하기 위해 만들어진 방법론
[5] FDD
- FDD 개발을 상품이나 서비스 단위가 아니라 신규 기능 단위로 하는 개발 방법론
'정처기(필기) > 소프트웨어설계' 카테고리의 다른 글
화면 설계 - UI (0) | 2022.05.25 |
---|---|
소프트웨어 설계-5(모델링 기법) (0) | 2022.05.24 |
소프트웨어 설계-3(네트워크, DBMS, 비즈니스 융합) (0) | 2022.05.24 |
소프트웨어 설계-2(운영체제) (0) | 2022.05.24 |
소프트웨어 설계 - 1 (플랫폼) (0) | 2022.05.19 |