소프트웨어설계-4(데이터흐름도, 자료사전, UML, 애자일)

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 개발을 상품이나 서비스 단위가 아니라 신규 기능 단위로 하는 개발 방법론