1. 현행 시스템 분석
현행 시스템 파악 절차
시스템 구성 파악 | 현행 시스템의 구성은 조직의 주요 업무를 담당하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 기술 |
시스템 기능 파악 | 현행 시스템의 기능은 단위 업무 시스템이 혀내 제공하는 기능들을 주요 기능과 하부 기능, 세부 기능으로 구분하여 계층형으로 표시 |
시스템 인터페이스 파악 | 현행 시스템의 인터페이스에는 단위 업무 시스템 간에 주고받는 데이터의 종류, 형식, 프로토콜, 연계 유형, 주기 등을 명시 |
아키텍처 구성 파악 | 현행 시스템의 아키텍처 구성은 기간 업무 수행에 어떠한 기술 요소들이 사용되는지 최상위 수준에서 계층별로 표현한 아키텍처 구성도로 작성 |
소프트웨어 구성 파악 | 소프트웨어 구성에는 단위 업무 시스템별로 업무 처리를 위해 설치되어 있는 소프트웨어들의 제품명, 용도, 라이선스 적용 방식, 라이선스 수 등을 명시 |
하드웨어 구성 파악 | 하드웨어 구성에는 단위 업무 시스템들이 운용되는 서버의 주요 사양과 수량, 그리고 이중화의 적요 여부를 명시 |
네트워크 구성 파악 | 네트워크 구성은 업무 시스템들의 네트워크 구성을 파악할 수 있도록 서버의 위치, 서버 간의 네트워크 연결 방식을 네트워크 구성도로 작성 |
개발 기술 환경
설명
운영체제 (Operating System, OS) | 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어 |
데이터베이스 관리 시스템 (DBMS) | 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어 |
웹 애플리케이션 서버 (Web Application Server, WAS) | 정적인 콘텐츠 처리를 하는 웹 서버와 달리 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어 |
오픈 소스 (Open Source) | 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 공개한 것으로 오픈 소스 라이선스를 만족하는 소프트웨어 |
고려 사항
운영체제 | 가용성, 성능, 기술 지원, 구축 비용, 주변기기 |
데이터베이스 관리 시스템 | 가용성, 성능, 기술 지원, 구축 비용, 상호 호환성 |
웹 애플리케이션 서버 | 가용성, 성능, 기술 지원, 구축 비용 |
오픈 소스 | 라이선스의 종류, 사용자 수, 기술의 지속 가능성 |
- 가용성, 성능, 기술 지원, 구축 비용이 겹치니까 가성기구 + @ 로 외우면 편할듯하다!
2. 요구사항 확인
요구사항 유형
기능 요구사항 | 시스템이 갖춰야할 필수 기능에 대한 요구사항 |
비기능 요구사항 | 필수 기능 외 품질, 제약사항에 관한 요구사항 |
사용자 요구사항 | 사용자 관점에서 본 시스템이 제공해야 할 요구사항 |
시스템 요구사항 | 개발자 관점에서 본 시스템 전체가 사용자와 다른 시스템에 제공해야 할 요구사항 |
요구사항 개발 프로세스
요구사항 도출 | - 시스템, 사용자, 시스템 개발 관련자들이 서로 의견을 교환하여 요구사항이 어디에 있고 어떻게 수집할 것인지 식별하고 이해하는 과정 - 주요 기법 : 인터뷰, 설문, 브레이 스토핑, 워크샵, 프로토타이핑, 유스케이스 |
요구사항 분석 | - 개발 대상에 대한 사용자의 요구사항중 명확하지 않거나 모호해 이해되지 않는 부분을 발견하고 거르기 위한 과정 - 비용과 일정에 대한 제약 설정, 타당성 조사 |
요구사항 명세 | 요구사항을 체계적으로 분석한 후 승인될 수 있도록 문서화 |
요구사항 확인 | 개발 자원을 요구사항에 할당하기 전에 요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토 |
요구사항 분석 기법
개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호한 부분을 걸러내기 위한 방법
요구사항 분류 | 요구사항을 명확히 확인할 수 있도록 분류함 |
개념 모델링 | 요구사항을 보다 쉽게 이해할 수 있도록 현실 세계의 상황을 단순화하여 개념적으로 표현한 것을 모델이라고 하며, 이러한 모델을 만드는 과정을 모델링이라고 한다. |
요구사항 할당 | 요구사항을 만족 시키기 위한 구성 요소 식별 |
요구사항 협상 | 요구사항이 서로 충돌될 경우 적절히 해결하는 과정 |
정형 분석 | 구문과 의미를 갖는 정형화된 언어를 이용해 요구사항을 수학적 기호로 표현한 후 이를 분석하는 과정 |
개념 모델 종류
- 유스케이스 다이어그램, 데이터 흐름 모델, 상태 모델, 목표기반 모델, 사용자 인터액션, 객체 모델, 데이터 모델 등.
요구사항 확인 기법
요구사항 개발 과정을 거쳐 문서화된 요구사항 관련 내용을 확인하고 검증하는 방법
요구사항 검토 | 가장 일반적인 요구사항 검증 방법, 문서화된 요구사항을 확인 |
프로토타이핑 | 초기 요구사항 기반 *프로토타입을 만든 후 개발이 진행되는 동안 도출되는 요구사항을 반영하며 지속적으로 프로토타입 재작성. 프로토타입 : 상품이나 서비스가 출시되기 전 개발 대상 시스템 또는 일부분을 개략적으로 만든 원형 |
모델 검증 | 요구사항 분석 단계에서 개발된 모델이 요구사항을 충족시키는지 검증 |
인수 테스트 | 사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인 |
3. 분석 모델 확인
UML (Unified Modeling Language)
시스템 개발 과정(분석, 설계, 구현 등)에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어
UML의 구성 요소
- 사물 (Things)
- 관계 (Relationships)
- 다이어그램 (Diagram)
사물
모델을 구성하는 가장 중요한 기본 요소, 다이어그램 안에서 관계가 형성될 수 있는 대상들
구조 사물 | 시스템의 개념적, 물리적 요소 표현 |
행동 사물 | 시간, 공간에 따른 요소들의 행위 표현 |
그룹 사물 | 요소들을 그룹으로 묶어서 표현 |
주해 사물 | 부가적인 설명이나 제약조건 등을 표현 |
관계
사물과 사물 사이의 연관성을 표현함
연관 관계 | 2개 이상의 사물이 서로 관련되어 있음을 표현 |
집합 관계 | 하나의 사물이 다른 사물에 포함되어 있는 관계 표현 |
포함 관계 | 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계 표현 |
일반화 관계 | 하나의 사물이 다른 사물에 비해 일반적인지 구체적인지를 표현 |
의존 관계 | 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로 영향을 주는 짪은 시간 동안만 연관을 유지하는 관계를 표현 |
실체화 관계 | 사물이 할 수 있거나 해야하는 기능(행위, 인터페이스)으로 서로를 그룹화 할 수 있는 관계를 표현 |
다이어그램
사물과 관계를 도형으로 표현한 것
정적 모델링 | 사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적 구조 표현. 주로 구조적 다이어그램을 사용. |
동적 모델링 | 시스템 내부 구성 요소들의 상태가 시간의 흐름에 따라 변화하는 과정과 그 과정에서 발생하는 상호 작용 표현. 주로 행위 다이어그램을 사용. |
구조적 다이어그램
클래스 다이어그램 | 정적 모델링의 대표적 다이어그램. 클래스와 클래스가 가지는 속성, 클래스 사이의 관계 표현 |
객체 다이어그램 | 클래스에 속한 객체(=인스턴스)를 특정 시점의 객체와 객체 사이의 관계로 표현 |
컴포넌트 다이어그램 | 실제 구현 모듈인 컴포넌트간의 관계나 인터페이스를 표현 |
배치 다이어그램 | 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현 |
복합체 구조 다이어그램 | 클래스나 컴포넌트가 복합 구조를 갖는 경우 내부 구조를 표현 |
패키지 다이어그램 | 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현 |
클래스 다이어그램의 구성 요소
클래스 | 각각의 객체들의 갖는 속성과 동작(오퍼레이션)을 표현 일반적으로 3개의 컴포넌트(구획)로 나눠 이름, 속성, 오퍼레이션 표기 - 속성 : 클래스의 상태, 정보 표현 - 오퍼레이션 : 클래스가 수행할 수 있는 동작으로 함수(메서드) 라고도 함. |
제약 조건 | 속성에 입력될 값에 대한 제약 조건이나, 오퍼레이션 수행 전후 지정해야할 조건이 있다면 표현 |
관계 | 클래스와 클래스 사이의 연관성 표현 |
행위 다이어그램
- 동적 모델링
시퀀스 다이어그램 | 시스템이나 객체들이 메세지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 그림으로 표현한 것 |
커뮤니케이션 다이어그램 | 참여하는 객체들이 주고 받는 메세지와 객체들 간의 연관 표현 |
상태 다이어그램 | 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현 |
- 기능 모델링
유스케이스 다이어그램 | 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자 관점에서 표현 |
활동 다이어그램 | 자료 흐름도와 유사한 것으로 사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현 |
구성 요소
시퀀스 다이어그램
액터 | 시스템으로 부터 서비스를 요청하는 외부 요소. 사람이나 외부 시스템. |
객체 | 메세지를 주고 받는 주체. 객체 : 클래스명 으로 기술 |
라이프라인 | 객체가 메모리에 존재하는 기간. 객체 아래쪽에 점선을 그어 표현 |
활성 상자 | 객체가 메시지를 주고 받으며 구동되고 있음을 라이프 상에 겹쳐 직사각형 형태로 표현 |
메시지 | 객체가 상호 작용을 위해 주고받는 메시지 |
객체 소멸 | 라이프라인 상에서 객체 소멸 표시를 만나면 해당 객체는 더 이상 메모리에 존재하지 않음을 의미 |
프레임 | 다이어그램 전체 또는 일부를 묶어 표현 |
커뮤니케이션 다이어그램
- 액터, 객체, 링크, 메시지 등
링크 | 객체들 간의 관계를 표현하는 데 사용. 액터와 객체, 객체 간에 실선을 그어 표현 |
상태 다이어그램
상태 | 객체의 상태를 둥근 사각형 안에 기술 시작 상태 : ● 종료 상태 : ◉ |
이벤트 | 조건, 외부 신호, 시간의 흐름 등 상태에 변화를 주는 현상 |
상태 전환 | 상태 사이의 흐름, 변화를 화살표로 표현 |
프레임 | 상태 다이어그램의 범위를 표현 |
유스케이스 다이어그램
시스템 범위 | 시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위 표현 |
액터 | 시스템과 상호 작용을 하는 모든 외부요소. 사람과 외부시스템. |
유스케이스 | 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스, 기능 표현 |
관계 | 액터-유스케이스, 유스케이스-유스케이스 간 나타나며 포함 관계, 확장 관계, 일반화 관계의 3종류가 있다. |
활동 다이어그램
액션/액티비티 | 액션 : 더 이상 분해할 수 없는 단일 작업 액티비티 : 액션으로 분리될 수 있는 작업 |
노드 | 시작 노드 : 액션/액티비티가 시작 종료 : 액티비티 안의 모든 흐름 종료 조건(판단) 노드 : 조건에 따라 제어의 흐름이 분리됨 병합 노드 : 여러 경로의 흐름이 하나로 합쳐짐을 표현 포크 노드 : 액티비티의 흐름이 분리되어 수행됨을 표현 조인 노드 : 분리되어 수행되던 액티비티의 흐름이 다시 합쳐짐을 표현 |
스윔레인 (Swim Lane) | 액티비티 수행을 담당하는 주체를 구분 |
'ETC > 정보처리기사' 카테고리의 다른 글
정보처리기사 실기 정리 4. 서버 프로그램 구현 (1) | 2023.04.21 |
---|---|
정보처리기사 실기 정리 2. 데이터 입출력 구현 (0) | 2023.04.21 |