수달이네 기술 블로그

1. 소프트웨어 설계(요구사항, UML)(정보처리기사 1일차) 본문

공부/정보처리기사

1. 소프트웨어 설계(요구사항, UML)(정보처리기사 1일차)

슬픈 수달이 2026. 4. 30. 19:52

참고: 수제비 정보처리기사 필기

소프트웨어를 설계하는 순서는 요구사항 확인 > 화면(UI)설계 > 어플리케이션 설계(기능적 부분) > 인터페이스 설계

요구사항 확인

현행 시스템 분석

개발할 시스템의 목표 설정을 위하여 현재 시스템에 대한 분석(이해)를 해야한다.

플랫폼

어플리케이션 구동에 필요한 SW 환경

  • 동일 플랫폼에서 상호 호환이 가능하도록 만들어진 결합체
  • 공급자, 수요자의 복수 그룹이 가치를 얻도록 거래로 교환하도록 구축된 환경

성능 측정

  • 경과시간: 어플리케이션이 작업을 요구한 시간부터 처리가 완료되는데 걸리는 시간
  • 사용률: CPU, 메모리등의 자원사용률
  • 응답시간: 어플리케이션에 요청을 전달한 시간부터 응답이 도착할때 까지 걸리는 시간
  • 가용성: 서버, 네트워크, 프로그램등 정보 시스템이 정상적으로 사용 가능한 정도

운영채제 분석(OS: windows, Linux…)

HW및 SW의 자원 관리 SW

운영체제 현행 시스템 분석

  • 품질(신뢰도, 성능) + 지원(기술지원, 주변기기, 구축비용)
  • 품질은 프로그램 자체, 지원은 프로그램 외적의 시스템이라 보자!

네트워크 분석

네트워크: Node간 연결을 통한 데이터 교환

  • 시스템간의 데이터를 주고받거나, 한 시스템내에서 데이터를 주고받음

DBMS 분석

DBMS: DB 생성, 저장, 관리하는 응용프로그램

DBMS 현행 시스템 분석

  • 성능(프로그램 자체)
    • 가용성: 장애 발생 가능성, 복구 편의성, DBMS이중화, 복제 지원등
    • 성능: 대규모 데이터, 대량 거래, 다양한 옵션등
    • 상호 호환성: OS 호환성, JDBS, ODBC의 지원
  • 지원(외적)
    • 기술지원: 사용자, 업체 간 정보, 기술 지원 가능성, 오픈소스 여부
    • 구축비용: 라이선스 정책, 유지 관리 비용 등

요구사항 확인

요구 분석 기법

요구 분석의 개념

  • 사용자의 요구 추출, 요구사항 명세(개발 목표, 목표달성을 위한 해법)

특징

  • 소단위 명세서(나중에 구체적으로 발전시킴)
  • 도메인 분석(요구 정보 수집을 통한 모델링)
  • 기능 요구사항(SW가 가져야할 기능)
  • 비기능 요구사항(성능, 보안, 품질 등 필수 기능 외적)
  • SW개발의 첫 단계

분석 절차

  • 요구사항 분류 > 개념 모델링 생성및 분석 > 요구사항 할당 > 요구사항 협상 > 정형 분석(시각화)

요구사항 분석 기술

  • 정취, 인터뷰와 질문, 분석, 중재, 관찰, 작성(문서화), 조직(정보), 모델작성

요구사항 분석에 사용하는 모델링 기법

데이터 흐름도(Data Flow Diagram, DFD),혹은 버블차트(bubble)

  • 데이터가 프로세스를 거치며 변환되는 과정을 시각화

  • 특징: 구조적 분석 기법, 데이터의 흐름 표현 (컨트롤, 시간 흐름은 표현되지 않음!!!)
  • 구조
    • 처리기(Process, 원): 입력 데이터를 원하는 형태로 변환하여 출력하기 위한 요소(행위)
    • 데이터 흐름(Data Flow. 화살표): 데이터의 흐름을 나타내는 요소
    • 데이터 저장소(Data Store, =): 데이터가 저장된 장소명
    • 단말(Terminator, 둥근사각형): 프로세스 시작과 종료를 나타내는 요소(연결된 외부 엔티티명)

자료사전(Data Dictionary, DD)

  • Create table문에서 사용된 데이터 자료형 등(DB구조, 업무용어등) 세세하게 만듦
  • 파일이나 DB자료의 특성을 서술
  • 위 흐름도에 기술된 자료를 기술함.

기호

  • =: 자료의 정의(의미) > 주석으로 의미 기술, 자료 원소의 값, 단위를 나타냄
  • +: 자료의 연결(join으로 만드는 클래스) > 학생 + 과목 => 수강클래스
  • (): 자료의 생략 가능성
  • {}: 자료의 반복 (중복)을 나타냄 > {최소반복횟수, 최대반복횟수}
  • []: 자료의 선택을 나타냄 ‘|’ 기호를 통해 분리된 항목중 하나가 선택됨을 표시
  • **: 주석 > 자료설명

원칙: 자료의 의미 기술, 자료 구성항목 기술, 동의어 규정 준수, 자료 정의의 중복 제거

요구사항 분석이 어려운 이유

개발자와 사용자간 지식 표현의 차이  > (개발자: 개발자의 언어, 사용자: 업무용어)

사용자 요구사항이 모호함

SW개발과정에서 요구사항이 변경됨

예외로 인해 열거, 구조화가 난해함.

UML(Unified Modeling Language)

모델링 기술과 방법론을 통합한 범용으로 모델링

  • 객체지향 SW개발에서 산출물을 명세화, 시각화, 문서화

특징

  • 가시화 언어(의사소통), 구축언어(UML > 코딩), 명세화 언어(정확한 모델), 문서화 언어(의사소통)

구성요소

  • 사물, 관계, 다이어그램(사물+관계)

사물

구조사물: UML모델의 정적 부분(Field)

행동사물: UML모델의 동적 부분(Method)

그룹사물: 요소들을 그룹화(Package)

주해사물: 주석

다이어그램

구조적(정적) 다이어그램(Structural/Static Diagram)

  • 클래스
  • 객체
  • 컴포넌트
  • 배치(위치)
  • 복합체구조
  • 패키지

행위적(동적) 다이어그램(Behavioral/Dynamic Diagram)

  • 외울때 상태, 행동등을 포함하는 단어
  • 유스케이스: 사용자 관점 시스템의 활동
  • 시퀀스: 상호작용 메세지 흐름
  • 커뮤니케이션: 객체간의 메세지 표현
  • 상태: 상태 변화 전이
  • 활동: 객체 처리 로직, 흐름
  • 타이밍: 상태 변화와 시간제약을 명시적으로 표현

클래스 다이어그램

객체지향 모델링에서 클래스의 속성 연산과 정적 관계를 표현

구조

  • 클래스 이름
  • 속성
  • 연산: 클래스의 메서드(getAge등)
  • 접근제어자: public(+), private(-), protected(#), default(~)

유스케이스 다이어그램

시스템이 제공하는 기능, 그와 관련한 외부요소를 사용자 관점에서 표현

유스케이스: 시스템의 서비스(행위)

액터: 사용자(행위자)

시스템: 유스케이스 + 액터등 환경

상태 다이어그램

하나의 객체가 자신이 속한 클래스의 상태 변화를 나타냄

상태: 객체가 존재할 수 있는 조건

시작상태: 속이 채워진 원으로 표현

종료상태: 원안에 속이 채워진 원으로 표현

전이: 객체의 상태가 다른 상태로 변경(화살표)

이벤트: 상태의 변화를 주는 현상(화살표 위에 이벤트명 표시)

전이조건: if문 같이 조건 만족시 전이 발생

UML의 관계 표현

연관(Association)관계: 실선

의존(Dependancy)관계: 점선

일반화(Generalization)관계: 하위개념 > 상위개념으로 표현

실체화(Realization)관계: 한 객체가 다른 객체에 오퍼레이션을 수행

포함(Composition)관계

집합관계(Aggregation)관계

UML확장 모델의 스테레오 타입

<<>>해당 기호로 표현

  • <<include>>: 하나의 유스케이스가 반드시 어떤 유스케이스를 실행
  • <<extend>>: 하나의 유스케이스가 다른 유스케이스를 실행할수도 아닐수도 있음
  • <<interface>>: 모든 메서드가 추상메서드