본문 바로가기
정보처리기사

CH1.소프트웨어 설계

by anion 2023. 3. 5.
요구사항 확인
요구분석 기법

기능 요구사항 : 기능적 속성에 대한 요구사항

비기능 요구사항 : 기능적 속성이 아닌 성능, 보안, 품질 등에 대한 요구사항

모델 : 현실 세계의 상황을 단순화, 개념적으로 표현한 것 -> 모델링

모델링 표기를 위해 DFD, UML 다이어그램, E-R 다이어그램 사용

요구사항 모델링 : 유스케이스 다이어그램, 시퀀스 다이어그램, 애자일 방법론

 

데이터 흐름도(DFD; Data Flow Diagram)

데이터가 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림

시스템 분석과 설계

가장 보편적으로 사용

자료 흐름그래프 또는 버블 차트라고도 함

 

<특징>

구조적 분석 기법에 이용

데이터 흐름에 중심을 두는 분석용 도구

제어의 흐름은 중요하지 않음

시간 흐름을 명확하게 표현할 수 없음

 

<구성요소>

처리기:원

데이터 흐름:화살표

데이터 저장소:평행선(=)

단말:사각형

 

자료사전(DD)

<기호>

= : 자료의 정의

+ : 자료의 연결

() : 자료 생략 가능함

{} : 자료의 반복

[] : 자료의 선택

** : 자료의 설명

 

UML

UML : 객체 지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 모델링 언어

특징 : 가시화 언어, 구축 언어, 명세화 언어, 문서화 언어 (가구명문)

UML 구성요소 : 사물, 관계, 다이어그램

 

UML 다이어그램

구조적 다이어그램 / 정적 다이어그램

->클래스, 객체, 컴포넌트, 배치, 복합체 구조, 패키지

 

행위적 다이어그램 / 동적 다이어그램

->유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동, 타이밍

 

클래스 다이어그램

정적인 관계를 표현한 다이어그램

클래스 속성 사이의 관계를 표현

구성요소 : 클래스 이름, 속성, 연산, 접근 제어자

 

유스케이스 다이어그램

시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자의 관점에서 표현하는 다이어그램

<구성요소>

유스케이스 : 시스템이 제공해야 하는 서비스, 액터가 시스템을 통해 수행하는 일련의 행위

액터 : 사용자가 시스템에 대해 수행하는 역할, 하나의 액터는 여러 개의 유스케이스와 상호작용 가능

시스템 : 전체 시스템의 영역을 표현

 

<구성요소 간의 관계>

연관(Association) : 유스케이스와 액터 간의 상호작용이 있음, 실선 연결

포함(Include) : 하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계, 화살표를 점선 <<include>>

확장(Extend) : 특정 조건에 따라 확장 기능 유스케이스를 수행, 화살표를 점선 <<extend>>

일반화(Generalization) : 유사한 유스케이스, 액터를 모아 추상화한 유스케이스, 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계, 실선 화살표

 

시퀀스 다이어그램

객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램

순차 다이어그램, 동적 다이어그램

<구성요소>

객체 : 사각형 안에 밑줄 친 이름으로 명시

생명선 : 객체로부터 뻗어 나가는 점선, 실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트

실행 : 직사각형은 오퍼레이션(함수)이 실행되는 시간, 직사각형 길어질수록 오퍼레이션 수행시간 긺

메시지 : 상호작용은 메시지 교환으로 이루어짐, 화살표

회귀 메시지 : 같은 객체에 대한 함수(메소드)를 호출, 생명선으로 회귀하는 화살표

 

UML의 관계

연관(Association) : 2개 이상의 사물이 서로 관련된 상태, 실선으로 연결, 방향성은 화살표로 표현

의존(Dependency) : 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계

영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표

일반화(Generalization) : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현하는 관계

일반적인 개념 -> 부모(상위) , 구체적인 개념 -> 자식(하위)

구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표

실체화(Realization) : 한 객체가 다른 객체에 오퍼레이션(함수)을 수행하도록 지정하는 관계

사물에서 기능 쪽으로 속이 빈  점선 화살표

집합(Aggregation) : 하나의 사물이 다른 사물에 포함된 관계를 표현

포함되는 쪽(부분)에서 포함하는 쪽(전체)으로 속이 빈 마름모를 연결

포함(Composition) : 집합 관계의 특수한 형태, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계

포함되는 쪽(부분)에서 포함하는 쪽(전체)으로 속이 채워진 마름모를 연결

 

애자일 방법론

소프트웨어 개발방법론의 하나로서 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법

<특징>

기능 중심으로 정의

개인과 소통을 중요하게 생각

작업 계획을 짧게 세워 요구 변화에 유연하고 신속하게 대응

소프트웨어가 잘 실행되는 데 가치

고객과의 피드백 중요

포괄적인 문서보다 동작하는 소프트웨어

변화에 대응

 

<유형>

XP(eXtreme Programming) 익스트림 프로그래밍

의사소통 개선과 즉각적 피드백으로 소프트웨어품질을 높이기 위한 방법론

실용성 강조

1~3주의 반복 개발 주기

스크럼(SCRUM)

매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 방법론

린(lean)

낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화

 

미들웨어

컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어

통신을 지원해 주는 소프트웨어

분산 시스템 관점에서 위치 투명성을 제공하고, 여러 컴포넌트가 요구하는 재사용 가능한 서비스의 구현을 제공

<미들웨어 솔루션 유형>

DB 미들웨어

원격 프로시저 호출 (RPC)

메시지 지향 미들웨어(MOM)

트랜잭션 처리(TP)

레거시웨어

객체 기반 미들웨어(ORB)

WAS(Web Application Server)

'정보처리기사' 카테고리의 다른 글

CH2.소프트웨어 개발  (0) 2023.02.27
CH5.정보시스템 구축관리  (0) 2023.02.13