본문 바로가기
정보처리기사[필기]

[정보처리기사][요약]1. 소프트웨어 설계(1)요구사항(2.확인)

by IT돌이 2023. 5. 11.

0. 서론


- 정보처리기사 자격증을 준비하는 사람들을 위한 두 번째 요약 포스팅입니다.

   이번 장에서는 소프트웨어 설계 중, '요구사항을 확인하는 방법(2)' 에 대해 배워 볼 것입니다.

 

1. 요구 분석 기법


- 요구분석 기법의 1)개념 2)특징 3)단계절차 4)분석기술 5)모델링기법 에 대해 알아보겠습니다.

 

1) 개념

- 사용자의 요구를 추출하여 목표를 정하는 것입니다.

애매모호한 부분이 없을 수록 좋습니다.

 

2) 특징
- 첫 번째 단계입니다.

- 문서화를 통해 유지보수에 사용됩니다.

 

3) 단계절차

  • 분류 : 기능/비기능 요구사항을 확인합니다.
  • 개념 모델링 생성 및 분석 : 상황을 한 눈에 알아볼 수 있도록 단순화, 개념적으로 표현(모델링) 한 것 입니다.
  • 요구사항 할당 : 요구사항을 만족시키기 위해 구성요소를 식별합니다. 다른 구성 요소와의 관계를 분석하여 추가적인 요구사항을 발견하기도 합니다.
  • 요구사항 협상 :식별된 요구사항을 더 잘게 나누는 단계입니다. 요구사항 충돌 시 우선순위를 정하는 것이 중요합니다
  • 정형 분석 : 형식적으로 정의된 의미를 지닌 언어로 요구사항을 표현하는 단계로, 가장 마지막 단계 입니다. 

 

4) 요구사항 분석 기술

- 청취/인터뷰 질문/분석/중재/관찰/작성/조직/모델 작성 등이 있습니다.

 

5) 기능 모델링 기법

  • 데이터 흐름도(DFD) : 데이터 흐름을 나타내는 것입니다. '제어에 신경을 쓰지 않는다.' 는 특징이 있습니다. 
    4가지 구성요소로 이루어져 있습니다.
    • 처리기(원) : 입력된 데이터를 원하는 형태로 바꿔 출력하기 위한 구성요소입니다.
    • 데이터 흐름(화살표) : 데이터가 흐름는 것을 나타내는 구성요소로, 화살표 방향을 따라갑니다.
    • 데이터 저장소(평행선) : 데이터를 저장하는 DB를 나타냅니다. 
    • 단말(네모) : 프로세스의 시작과 종료를 나타냅니다.(처음과 끝에 위치해야 합니다.)

 

  • 자료사전(DD) : 자료들 위주로 데이터 참조를 위한 작업입니다. 즉, 자료를 라벨링하여 정의하기 위해서 작업합니다.자료 사전에도 기호가 존재하는데, 총 6가지가 존재합니다.
    • = : '~로 구성되어 있음'을 뜻하는 기호입니다.
    • () : '생략됨' 을 뜻하는 기호입니다.
    • + : '자료들이 연결됨' 을 나타내는 기호입니다.
    • a{ }b : '자료의 반복'을 나타냅니다, { } 기호 기준 왼쪽이 최소 반복, 오른쪽이 최대 반복 횟수이며 미입력시 0~무한대를 나타냅니다.
    • [] : '자료의 선택' 을 나타냅니다. [ ] 안의 모든 것들 중 선택을 요청합니다.
    • ** : '참조' 를 의미합니다. 주석이라고도 불립니다.
  • 자료사전에도 작성원칙이 있습니다.
    • 자료의 뜻 설명 : **을 통해 나타냅니다. 중복을 피하는 것이 좋습니다.
    • 자료 구성항목 설명 : 구성항목들을 그룹으로 묶는 작업을 뜻합니다. 그룹별로 이름을 붙이는 편이 좋습니다.
    • 동의어 규정 준수 : 같은 자료들은 다른 사용자라더라도, 하나의 약속으로 사용하는 용어를 통일시키는 것입니다.
    • 자료 정의의 중복 제거 : 동일한 자료에 대해 각기 다른 사용자가 붙인 이름을 하나로 통일하는 것입니다.

 

2. UML(Unified Modeling Language)


1) 개념

- 객체 지향 소프트웨어 개발 시 산출물 모델링 기술과 방법론을 통합해서 만든 범용 모델링용 언어입니다.

 

2) 특징

- 가시화/구축/명세화/문서화 언어라는 특징이 있습니다.

   *'가구명문' 으로 외워주시면 편합니다.

 

3) 구성요소

- '사물, 관계, 다이어그램' 으로 구성됩니다.

  • 사물 = 주제
  • 관계 = 주제를 연결하는 것
  • 다이어그램 = 그림으로 표현한 것 으로 생각해주시면 됩니다.

 

4) UML 다이어그램 상세보기

- 다이어그램은 '구조/행위' 로 나뉩니다.

  • 구조적 다이어그램(정적) : 외부 환경에 관계없이 일정한 결과값을 제공합니다.
  • 행위적 다이어그램(동적) : 외부 환경에 따른 다른 결과값을 제공합니다.

- 구조적 다이어그램

  • 클래스 : 속성과 동작으로 구성되어 있으며 관계를 표현합니다.
  • 객체 : 클레스에 속한 사물로, 인스턴스를 표현합니다.
  • 컴포넌트 : 실질적 프로그래밍에 이용되는 재사용이 가능한 각각의 독립된 모듈을 뜻합니다.
  • 배치 : 컴포넌트 간의 종속성을 표현하는 것으로, 물리적 요소들의 위치를 나타냅니다.
  • 복합체 구조 : 클래스나 컴포넌트가 복합 구조를 가질 때 내부 구조를 표현합니다.
  • 패키지 : 유스케이스나 클래스 등의 모델 요소들을 그룹화한 관계를 표현합니다.

- 행위적 다이어그램

  • 유스케이스 : 사용자 관점에서 시스템이 어떻게 활동하는지를 보여줍니다.(기능적 요구)
  • 시퀀스 : 객체 간 연결을 메세지의 흐름으로 표현합니다.
  • 커뮤니케이션 : 객체들이 연결되어 주고받는 메세지를 표현합니다.
  • 상태 : 하나의 객체가 자신 혹은 클래스가 상호작용에 따라 변화는 것을 나타내는 것입니다.
  • 활동 : 시스템이 기능을 수행 및 처리하는 작업의 흐름을 순선대로 나타낸 것입니다.
  • 타이밍 : 객체 상태 변화와 시간 제약을 정확하게 나타낸 것입니다.

 

+) UML 세부

- 클래스 다이어그램

- 유스케이스 다이어그램

액터 : 동적다이어그램을 위해, 시스템에 대해 사용자가 수행하는 것(최소화, 추상화) 입니다.

시스템 : 전체적 시스템 영역을 표시해줘야 합니다.

 

관계를 묻는 질문이 시험에 나올 수 있으니 확인해야 합니다.

  • 연관관계
    - 상호작용을 표시해줍니다. 실선으로 그립니다.
  • 포함관계
    - 선행조건을 가지고 있을 경우, 포함관계라고 말합니다. 화살표를 점선으로 나타내고 <<include>>를 표기합니다.
  • 확장관계
    - 특정 조건에 따라 실행할 수도, 하지 않을 수도 있을 때 사용합니다. 화살표를 점선으로 나타내고 <<extend>> 를 표기합니다.
  • 일반화 관계
    - 유사한 것들기리 모아 그룹을 만들어 이해도를 높입니다. 실선에 화살표로 표기합니다.

 

5) UML의 관계

  • 연관 관계 : 두 사물을 실선으로 이어주며, 화살표로 방향성을 표시합니다.
  • 의존 관계 : 짧은 시간동안만 연관을 가지는 관계를 표현합니다. 영향을 주는 사물이 영향을 받는 사물쪽으로 점선 화살표를 연결합니다.
  • 일반화 관계 : 부모, 자식 관계를 나타냅니다. 일반 실선에 화살표로 나타냅니다. 부모 = 대분류, 자식 = 소분류 라고 생각해주시면됩니다.
  • 실체화 관계 : 일반화 관계에서 점선으로 바뀐 것으로 생각해주시면 됩니다. '날수있음' 을 예로 들면, 비행기와 새가 '날수있음'의 실체화 관계입니다.
  • 포함 관계 : 여러가지 속성에 영향을 미치는 관계를 나타냅니다. 포함의 주체에 속이 채워진 마름모에 실선과 화살표를 연결합니다.
  • 집합 관계 : 여러가지 속성을 가지고 있는 관계를 나타냅니다. 포함의 주체에 속이 빈 마름모에 실선을 연결하변 됩니다.

 

3. 애자일(Agile)


- [개발->피드백->수정] 의 사이클을 반복하는 방식입니다.

- 기능 중심으로 정의하는것이 중요합니다.
- 즉각적이고 개인적이며, 빠른 것을 우선시합니다.

 

4. 마치며


- 모두 해당 자료로 공부하여, 정보처리기사 필기 시험을 잘 보시기 바랍니다.

  자료는 요약본이 올라가며, 모르는 용어와 그림은 직접 찾아보면 공부에 더 큰 도움이 될 것입니다.

  긴 글 읽어주셔서 감사합니다.