| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- RNN
- 딥러닝
- TTS
- LangGraph
- RDBMS
- 캐글
- CLIP
- 힙정렬
- 에이전트
- 머신러닝
- UMAP
- ASR
- CNN
- 기초
- 알고리즘
- 생성형 인공지능
- Python
- dementional reduction
- SQL
- 데이터엔지니어
- 소프트웨어 개발
- python기초
- 객체지향
- 트랜스포머
- Transformer
- 정보처리기사
- 랭그래프
- python 기초
- 데이터 시각화
- 자연어처리
- Today
- Total
수달이네 기술 블로그
1. 소프트웨어 설계(요구사항, UML)(정보처리기사 1일차) 본문
참고: 수제비 정보처리기사 필기
소프트웨어를 설계하는 순서는 요구사항 확인 > 화면(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>>: 모든 메서드가 추상메서드
'공부 > 정보처리기사' 카테고리의 다른 글
| 2. 소프트웨어 개발(자료구조) (0) | 2026.05.05 |
|---|---|
| 1. 소프트웨어 설계(인터페이스) (1) | 2026.05.04 |
| 1. 소프트웨어 설계(객체지향, 디자인 패턴) (3) | 2026.05.01 |
| 1. 소프트웨어 설계(설계, 소프트웨어 아키텍처) (0) | 2026.04.30 |
| 1. 소프트웨어 설계(에자일, UI, 모델링)(정보처리기사 1일차) (0) | 2026.04.30 |