정보처리기사 공부

[필기 1과목] 1장 요구사항 확인

youbing 2025. 2. 12. 19:08

섹션 1 : 소프트웨어 생명 주기

프로토타이핑 모형 : 새로운 요구사항이 도출될 때마다 이를 반영한 프로토타입을 새롭게 만들면서 소프트웨어를 구현하는 방법

  • 새롭게 도출된 요구사항을 충분히 반영
  • 구축하고자 하는 시스템의 요구사항이 불분명할 때 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 견본을 만들어 최종 결과물을 예측하는 개발 모형

폭포수 모형 : "고전적 생명 주기 모형, 선형 순차적 모델"

나선형 모형 : 프로토타입을 지속적으로 발전시켜 최종 소프트웨어 개발까지 이르는 개발 방법

  • 위험 관리가 중심인 소프트웨어 생명 주기 모형 - 개발 진행 과정에서 반복적으로 위험 분석 수행
  • 계획 -> 분석 -> 개발 -> 평가

애자일 기법 : 계획을 따르기보다는 변화에 반응하는 것에 더 가치를 두는 개발 방법론

  • 모듈 중심 개발 X

섹션 3 : XP(eXtreme Programming) 기법

XP

  • 5가지 핵심 가치 : 의사소통, 단순성, 용기, 존중, 피드백
  • 단순한 설계를 통해 소프트웨어를 빠르게 개발하는 것을 목적으로 함.
  • 테스트가 지속적으로 진행될 수 있도록 자동화한 테스팅 도구 사용
  • 스크럼이나 XP는 애자일 개발 방법론을 기반으로 한 대표적인 모형
  • refactoring : 동작의 변화없이 내부 구조를 변경하는 것

섹션 6 : 요구사항 정의

요구사항의 유형

기능 요구사항 시스템이 무엇을 하는지, 어떤 기능을 하는지에 대한 사항
사용자가 시스템을 통해 제공받기를 원하는 요구사항(예 : 차량 대여 시스템에서 제공하는 모든 화면은 3초 안에 사용자에게 보여야 한다.)
비기능 요구사항 시스템 장비 구성, 성능, 인터페이스, 데이터, 테스트, 보안, 품질 등의 요구사항, 제약사항, 프로젝트 관리/지원 요구사항
사용자 요구사항 사용자 관점에서 본 시스템이 제공해야 할 요구사항
사용자를 위한 것으로 친숙한 표현으로 이해하기 쉽게 작성
시스템 요구사항 게빌지 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항
전문적이고 기술적인 용어로 표현
= 소프트웨어 요구사항

 

요구사항 개발 프로세스

  1. 도출(Elicitation)
  2. 분석(Analysis)
  3. 명세(Specitication)
  4. 확인(Validation)

섹션 7 : 요구사항 분석

  • 소프트웨어 개발의 실제적인 첫 단계
  • 사용자 요구의 타당성을 조사하고 비용과 일정에 대한 제약 설정
  • 비용을 설정하는 단계에서 비용이 많이 소요되지는 않음.

 

자료 흐름도(DFD; Data Flow Diagram) : 자료의 흐름을 표현하는 도구

프로세스 (Process) 자료 저장소 (Data Store) 평행선
자료 흐름 (Data Flow) 화살표 단말 (Terminator) 사각형
  • 자료 저장소의 입력 화살표는 데이터의 입력 및 수정을 의미하는 것으로, 입력 화살표가 있다고 하여 반드시 출력 화살표가 있어야 하는 건 아님.

 

자료 사전(DD; Data Dictionary) : 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것

= 자료의 정의 : ~로 구성되어 있다.
+ 자료의 연결 : 그리고
( ) 자료의 생략
[ | ] 자료의 선택 : or
{ } 자료의 반복
* * 자료의 설명 : 주석

섹션 9 : UML(Unified Modeling Language)

UML : 시스템 분석 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어

 

구성 요소

  • 사물 : 구조 사물, 행동 사물, 그룹 사물, 주해 사물
  • 관계
    • 연관(Association) 관계
    • 집합(Aggregation) 관계 : 하나의 사물이 다른 사물에 포함되어 있는 관계
    • 포함(Composition) 관계 : 집합 관계인데 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계
    • 일반화(Generalization) 관계 : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현
    • 의존(Dependency) 관계 : 연관 관계인데, 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관은 유지하는 관계
    • 실체화(Realization) 관계 : 사물이 할 수 있거나 해야 하는 기능으로 서로를 그룹화 할 수 있는 관계
  • 다이어그램
    • 구조적 다이어그램 : 클래스(Class), 객체(Object), 컴포넌트(Component), 배치(Deployment), 복합체 구조(Composite Structure), 패키지(Package) 다이어그램
    • 행위 다이어그램 : 유스케이스(Use Case), 순차(Sequence), 커뮤니케이션(Communication), 상태(State), 활동(Activity), 상호작용 개요(Interaction Overview), 타이밍(Timing) 다이어그램
      • 상태 다이어그램 : 객체들 사이에서 발생하는 이벤트(event)에 의한 객체들의 상태 변화를 그림으로 표현한 것.
        • 럼바우 객체지향 분석 기법에서 동적 모델링에 활용되는 다이어그램

 

스테레오 타입 : UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하기 위해 사용 (기호 : << >>)


섹션 10 : 주요 UML 다이어그램

유스케이스(Use Case) 다이어그램 - 행위 다이어그램

: 개발될 시스템과 관련된 외부 요소들, 즉 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것

  • 시스템 / 시스템 범위
  • 액터(Actor) : 시스템과 상호작용을 하는 모든 외부요소로, 사람이나 외부 시스템을 의미
  • 유스케이스
  • 관계

 

클래스(Class) 다이어그램 - 구조적 다이어그램

: 시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 속성과 오퍼레이션에 대한 제약조건, 클래스 사이의 관계를 표현한 것이다.

  • 클래스 - 이름, 속성, 오퍼레이션
    • 오퍼레이션(Operation) : 클래스가 수행할 수 있는 동작 (= 함수)
  • 제약조건
  • 관계 - 연관, 집합, 포함, 일반화, 의존 관계

 

순차(Sequence) 다이어그램 - 행위 다이어그램

: 시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 액터, 객체, 메시지 등의 요소를 사용하여 그림으로 표현한 것

  • 액터, 객체, 생명선, 실행 상자, 메시지, 회귀 메시지, 제어 블록