본문 바로가기

정보처리기사/1과목 소프트웨어 설계

Part 1. 요구사항 확인 23.01.11(수)

1. 요구사항 확인 현행 시스템 분석 플랫폼 기능 분석

1) 플랫폼의 유형

(1) 싱글 사이드 플랫폼

제휴 관계를 통해 소비자와 공급자를 연결하는 형태 ex) 아이튠즈, 안드로이드 마켓

 

(2) 투 사이드 플랫폼

두 그룹을 중개하고 모두에게 개방하는 형태 ex) 소개팅 앱

 

(3) 멀티 사이드 플랫폼

다양한 이해관계 그룹을 연결하여 중개하는 형태 ex) 페이스북, 인스타그램

 

2) 플랫폼의 기능

소프트웨어 개발과 운영비용이 감소하고 생산성이 향상된다.

동일 플랫폼의 커뮤니티를 형성하고 네트워크 효과를 유발한다.

* 네트워크 효과

어떤 상품에 대한 수요가 형성되면 이것이 다른 사람들의 상품 선택에 큰 영향을 미치는 현상이다.

 

3) 플랫폼 성능 특성 분석 기법

(1) 사용자 인터뷰

현행 플랫폼 사용자 인터뷰를 통해 속도의 적정성 확인

산출물 : 인터뷰 결과서

 

(2) 성능 테스트

현행 플랫폼을 대상으로 성능, 부하 테스트를 수행

산출물 : 성능 테스트, 부하 테스트 결과서

 

(3) 산출물 점검

현행 플랫폼과 유사한 타사 제품의 성능 자료 등을 분석

산출물 : 벤치마킹 테스트 결과서

 

4) 플랫폼 성능 특성 측정 항목

(1) 경과 시간

애플리케이션에 작업을 의뢰(요구)한 시간부터 처리가 완료될 때까지 걸린 시간

 

(2) 사용률

애플리케이션이 의뢰한 작업을 처리하는 동안 CPU, 메모리 등의 자원 사용률

 

(3) 응답시간

애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간

 

(4) 가용성

서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용 가능한 정도

 

5) 운영체제 현행 시스템 분석

품질 측면

(1) 신뢰도

장기간 시스템 운영 시 운영체제의 장애 발생 가능성

운영체제의 버그로 인한 재기동 여부

 

(2) 성능

대규모 및 대량 파일 작업(배치 작업) 처리

지원 가능한 메모리 크기(32bit, 64bit)

* 배치작업이란 실시간 작업의 반대 개념으로 일련의 작업들을 하나의 작업 단위로 묶어서 일괄로 처리하는 작업이다.

 

지원 측면

(1) 기술 지원

공급사들의 안정적인 기술 지원

오픈 소스 여부

 

(2) 주변 기기

설치 가능한 하드웨어

다수의 주변 기기 지원 여부

 

(3) 구축 비용

지원 가능한 하드웨어 비용

설치할 응용 프로그램의 라이선스 정책 및 비용

유지 및 관리 비용

 

6) 네트워크 현행 시스템 분석

현행 시스템이 구성된 네트워크 구조를 네트워크 구성도를 통해 분석한다.

네트워크 구성도의 작성을 통해 서버 위치, 서버 간 연결 방식을 파악할 수 있다.

백본망, 라우터, 스위치, 게이트웨이, 방화벽 등을 대상으로 분석한다.

 

* 백본망이란 다양한 네트워크를 상호 연결하는 컴퓨터 네트워크의 일부로서, 각기 다른 LAN이나 부분망 간에 정보를 교환하기 위한 경로를 제공하는 망이다. - 경로 제공

 

* 라우터3계층 데이터 패킷을 발신지에서 목적지까지 전달하기 위해 최적의 경로를 지정하고, 이 경로를 따라 데이터 패킷을 다음 장치로 전달하는 네트워크 장비이다. - 최적 경로 지정

 

* 스위치2계층 장비로서, 동일 네트워크내에서 출발지에 들어온 데이터 프레임을 목적지 MAC 주소 기반으로 빠르게 전달하는 네트워크 장비이다. - MAC 주소 기반

 

* 게이트웨이란 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 네트워크 장비이다.

 

* 방화벽이란 외부로부터 불법 침입과 내부의 불법 정보 유출을 방지하고, /외부 네트워크의 상호 간 영향을 차단하기 위한 보안 시스템이다.

 

7) DBMS의 개념 및 기능

DBMS는 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램이다.

 

(1) 중복제어

동일한 데이터가 여러 위치에 중복으로 저장되는 현상 방지

 

(2) 접근 통제

권한에 따라 데이터에 대한 접근 제어

 

(3) 인터페이스 제공

사용자에게 SQL CLI, GUI 등 다양한 인터페이스 제공

* CLI : 명령어를 텍스트로 입력하여 조작하는 사용자 인터페이스이다. - 명령어 기반

* GUI : 그래픽 환경을 기반으로 한 마우스나 전자펜을 이용하는 사용자 인터페이스이다. - 그래픽 기반

 

(4) 관계 표현

서로 다른 데이터 간의 다양한 관계를 표현할 수 있는 기능 제공

 

(5) 샤딩/파티셔닝

구조 최적화를 위해 작은 단위로 나누는 기능 제공

 

(6) 무결성 제약조건

무결성에 관한 제약조건을 정의/검사하는 기능 제공

 

(7) 백업 및 회복

데이터베이스 장애 발생 시 데이터의 보존 기능 제공

 

8) DBMS 현행 시스템 분석시 고려사항

성능 측면

(1) 가용성

장기간 시스템을 운영할 때 장애 발생

백업 및 복구 편의성

DBMS 이중화 및 복제 지원

 

(2) 성능

대규모 데이터 처리 성능

대량 거래 처리 성능

다양한 튜닝 옵션 지원 여부

비용 기반 최적화 지원 및 설정의 최소화

 

(3) 상호 호환성

설치 가능한 운영체제 종류

다양한 운영체제에서 지원되는 JDBC, ODBC

* JDBC : 자바에서 데이터베이스를 사용할 수 있도록 연결해주는 응용 프로그램 인터페이스이다.

* ODBC : 데이터베이스를 액세스하기 위한 표준 개방형 응용 프로그램 인터페이스이다.

 

지원 측면

(1) 기술 지원

공급 업체들의 안정적인 기술 지원

다수의 사용자 간의 정보 공유

오픈 소스 여부

 

(2) 구축 비용

라이선스 정책 및 비용

유지 및 관리 비용

 

2. 요구사항 확인 요구사항 확인 요구분석 기법

1) 요구 분석의 개념

요구분석은 사용자의 요구를 추출하여 목표를 정하고 어ᄄᅠᆫ 방식으로 해결할 것인지 결정하는 단계이다.

요구분석은 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정이다.

 

2) 요구 분석의 특징

요구분석은 소프트웨어 개발의 실제적인 첫 단계로 사용자의 요구에 대해 이해하는 단계이다.

분석 결과의 문서화를 통해 향후 유지보수에 유용하게 활용할 수 있다.

보다 구체적인 명세를 위해 소단위 명세서가 활용될 수 있다.

* 소단위 명세서 : 데이터 흐름도에 나타나 있는 처리 항목을 1~2페이지 정도의 소규모 분량으로 요약 하여 작성하는 논리적 명세서이다.

* 개발 비용이 가장 많이 소요되는 단계는 유지보수 단계이다.

 

3) 요구사항 분석 기술

(1) 정취 기술

이해관계자로부터 의견을 듣는 기술

 

(2) 인터뷰와 질문 기술

이해관계자를 만나 정보를 수집하고 이야기를 나누는 기술

 

(3) 분석 기술

추출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 기술

 

(4) 중재 기술

이해관계자들의 상반된 요구에 대한 중재기술

 

(5) 관찰 기술

사용자가 작업하는 것을 관찰하면서 사용자가 언급하지 않은 미묘한 의미를 탐지할 수 있는 기술

 

(6) 작성 기술

문서 작성 기술

 

(7) 조직 기술

수집된 방대한 정보를 일관성 있는 정보로 구조화하는 능력

 

(8)모델 작성 기술

수집한 자료를 바탕으로 제어의 흐름, 기능 처리, 동작 행위, 정보 내용등을 이해하기 쉽도록 모델로 작성하는 기술

 

4) 데이터 흐름도(DFD)의 개념

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

시스템 분석과 설계에서 매우 유용하게 사용되는 다이어그램이다.

데이터 흐름도는 시스템의 모델링 도구로서 가장 보편적으로 사용되는 것 중의 하나이다.

 

5) 데이터 흐름도 구성요소

(1) 처리기(Porocess)

입력된 데이터를 형태태로 변환하여 출력하기 위한 요소, 표기 : (O)

 

(2) 데이터 흐름(Data Flow)

DFD의 구성요소(프로세스, 데이터 저장소, 외부 엔터티)들 간의 주고받는 데이터 흐름을 나타내는 요소

표기 : 화살표()

 

(3) 데이터 저장소(Data Store)

데이터가 저장된 장소를 나타내는 요소

평행선 안에는 데이터 저장소의 이름을 넣음

표기 : 형행선(=)

 

(4) 단말(Terminator)

프로세스 처리 과정에서 데이터가 발생하는 시작과 종료를 나타내는 요소

사각형 안에는 외부 엔터티의 이름을 넣음

표기 : 사각형 ()

 

6) 자료 사전 개념 및 목적

자료 사전은 파일 혹은 데이터베이스에 있는 자료에 대한 자료 또는 각 자료 항목에 주어진 이름과 길이 그리고 서술과 같은 데이터를 포함하는 참조를 위한 작업이다.

자료 사전은 조직에 속해 있는 다른 사람들에게 특정한 자료 용어가 무엇을 의미하는지를 알려주기 위하여, 용어의 정의를 조정하고 취합하고 문서로 명확히 하는 목적이 있다.

 

7) 자료 사전 기호

(1) =

자료의 정의로서 ‘~으로 구성되어 있다는 것을 나타내는 기호

 

(2) +

자료의 연결을 나타내는 기호

 

(3) ( )

자료 생략 가능함을 나타내는 기호

 

(4) { }

자료의 반복을 나타내는 기호

 

(5) [ ]

자료의 선택을 나타내는 기호

 

(6) ** 자료의 설명을 나타내는 기호, 주석

 

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

개발자와 사용자 간의 지식이나 표현의 차이가 커서 상호 이해가 쉽지 않다.

사용자의 요구 사항이 모호하고 불명확하다.

소프트웨어 개발 과정 중에 요구사항이 계속 변할 수 있다.

사용자의 요구는 예외가 많아 열거와 구조화가 어려운 편이다.

 

3. 요구사항 확인 요구사항 확인 UML

1) UML의 개념

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

 

2) UML의 특징

(1) 가시화 언어

개념 모델 작성 시 오류가 적고 의사소통이 용이

 

(2) 구축 언어

다양한 프로그래밍 언어로 실행 시스템의 예측 가능

UML을 소스 코드로 변환하여 구축 가능, 역 변환하여 역공학 가능

 

(3) 명세화 언어

정확한 모델 제시, 완전한 모델 작성 가능

 

(4) 문서화 언어

시스템에 대한 평가 및 의사소통의 문서

 

3) UML의 구성 요소

(1) 사물(Things)

추상적인 개념으로 주제를 나타내는 요소

 

(2) 관계(Relationships)

사물의 의미를 확장하고 명확히 하는 요소, 사물과 사물을 연결하여 관계를 표현하는 요소

 

(3) 다이어그램(Diagrams)

사물과 관계를 모아 그림으로 표현한 형태

 

4) UML 다이어그램

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

(1) 클래스

시스템 내 클래스의 정적 구조를 표현

속성과 동작으로 구성

 

(2) 객체

클래스에 속한 사물(객체), 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현

연관된 모든 인스턴스를 표현

* 인스턴스란 객체지향 프로그래밍에서 해당 클래스의 구조로 컴퓨터 저장 공간에서 할당된 실체이다.

 

(3) 컴포넌트

코드 컴포넌트 기반의 물리적 구조 표현

 

(4) 배치

컴포넌트 사이의 종속성을 표현

 

(5) 복합체 구조

클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현

 

(6) 패키지

유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현


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

(1) 유스케이스

사용자 관점에서 시스템의 활동을 표현

유스케이스는 시스템의 기능적 요구 정의에 활용

 

(2) 시퀀스

객체 간 상호 작용을 메시지 흐름으로 표현

객체 사이 메시지를 보내는 시간을 표현

 

(3) 커뮤니케이션

시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지뿐만 아니라 객체 간의 연관까지 표현

 

(4) 상태

하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현

 

(5) 활동

시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름으로 순서대로 표현

 

(6) 타이밍

객체 상태 변화와 시간 제약을 명시적으로 표현

 

5) 클래스 다이어그램 구성요소

(1) 클래스 이름

클래스의 이름

 

(2) 속성

클래스의 특징에 이름을 부여

 

(3) 연산

클래스에 속하는 객체에 적용될 메서드를 정의

클래스의 동작을 의미하며, UML에서는 동작에 대한 인터페이스를 지칭

 

(4) 접근 제어자
클래스에 접근할 수 있는 정도를 표현

* 접근 제어자는 접근 제한자라고도 불린다. 정보처리기사 시험에서도 두 용어가 혼용해서 나오고 있다.

 

6) 유스케이스 다이어그램 개념

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

 

7) 유스케이스 다이어그램 구성요소

(1) 유스케이스

시스템이 제공해야 하는 서비스

액터가 시스템을 통해 수행하는 일련의 행위

 

(2) 액터

사용자가 시스템에 대해 수행하는 역할

시스템과 상호 작용하는 사람 또는 사물

액터는 필수 항목 중심으로 최소화하여 만들어야 함

하나의 액터는 여러 개의 유스케이스와 상호작용이 가능

 

(3) 시스템

전체 시스템의 영역을 표현

 

8) 유스케이스 다이어그램 구성요소 간의 관계

(1) 연관관계

유스케이스와 액터 간의 상호작용이 있음을 표현

 

(2) 포함 관계

하나의 유스케이스가 다른 유스케이스의 실행을 전제로 할 때 형성되는 관계

 

(3) 확장 관계

특정 조건에 따라 확장 기능 유스케이스를 수행하는 관계

 

(4) 일반화 관계

유사한 유스케이스 또는 액터를 모아 추상화한 유스케이스 또는 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계

 

9) 시퀀스 다이어그램 개념

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

 

10) UML의 관계

(1) 연관 관계

2개 이상의 사물이 서로 관련된 상태를 표현하는 관계

사물 사이를 실선으로 연결하여 표현하며, 방향성은 화살표로 표현

서로에게 영향을 주는 양방향 관계의 경우 화살표를 생략하고 실선으로만 연결

 

(2) 의존 관계

사물 사이에 서로 연관은 있으나 필요에 다라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현하는 관계

사물의 변화가 다른 사물에도 영향을 미치는 관계

영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현

 

(3) 일반화 관계

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

일반적인 개념을 부모(상위)라고 하고, 구체적인 개념을 자식(하위)이라 함

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

 

(4) 실체화 관계

한 객체가 다른 객체에 오퍼레이션을 수행하도록 지정하는 관계를 표현하는 관계

사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현

 

(5) 포함 관계

집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계를 표현하는 관계

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

 

(6) 집합 관계

하나의 사물이 다른 사물에 포함된 관계 표현하는 관꼐

포함되는 쪽(부분)에서 포함하 쪽(Whole)으로 속이 빈 마름모를 연결하여 표현

 

11) UML 확장 모델의 스테레오 타입(Stereotype)

UML의 스테레오 타입은 UML의 기본적 요소 이외의 새로운 요소를 만들어 내기 위한 확장 메커니즘이다.

형태는 기존의 UML의 요소를 그대로 사용하지만 내부 의미는 다른 목적으로 사용하도록 확장한다.