반응형

*요구사항

- 요구사항이란 문제의 해결 또는 목적 달성을 위하여 고객에 의해 요구되거나, 표준이나 명세 등을 만족하기 위해 시스템이 가져야 하는 서비스 또는 제약사항 이다.

 

1. 요구사항의 분류

- 요구사항 파악의 기본은 시스템의 요구사항에 대한 파악이다.

- 요구사항은 기능적 요구사항과 비 기능적 요구사항으로 분류된다.

- 기능적 요구사항 : 시스템이 제공하는 기능, 서비스에 대한 요구사항이다. 도출 방법으로는 특정 입력에 대해 시스템이 어떻게 반응해야 하는지에 대한 기술과 특정 상황에 대해 시스템이 어떻게 동작해야 하는지에 대한 기술이 있다. 특성으로는 기능성, 완전성, 일관성이 있다.

- 비 기능적 요구사항 : 시스템이 수행하는 기능 이외의 사항, 시스템 구축에 대한 제약사항에 관한 요구사항이다. 도출 방법으로는 품질 속성에 관련하여 시스템이 갖춰야할 사항에 대한 기술과 시스템이 준수해야 할 제약조건에 대한 기술이 있다. 특성으로는 신뢰성, 사용성, 효율성, 유지보수성, 이식성이 있다.

 

2. 요구사항 개발 프로세스

- 요구사항 개발 프로세스는 요구사항 도출, 분석, 명세, 확인 순으로 수행한다.

- 요구사항 도출 : 요구사항이 어디에 있고, 어떻게 수집할 것인지를 파악하는 단계이다. 이해관계자가 요구사항을 식별, 개발팀과 고객 사이의 관계가 형성된다. 다양한 이해관계자와 효율적인 의사소통이 중요하다.

- 요구사항 분석 : 상충되는 요구사항을 해결하고, 소프트웨어의 범위 파악, 소프트웨어가 환경과 어떻게 상호 작용하는지 이해하는 단계이다. 시스템 요구사항을 정제하여 소프트웨어 요구사항을 도출한다.

- 요구사항 명세 : 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 단계이다. 요구사항 명세에서는 시스템 정의, 시스템 요구사항, 소프트웨어 요구사항을 작성한다.

- 요구사항 확인 : 요구사항 문서가 표준에 적합하고 이해 가능하며, 일관성이 있고, 완전한지 검증하는 단계이다.

- 요구사항 개발 프로세스 중에서 요구사항 확인과 관련된 단계는 분석 및 검증 단계이다.

2-1. 요구사항 개발 프로세스 주요 기법

- 도출 (인터뷰) : 1:1의 관계에서 사용자 및 사용자 측 의사 결정권자와 시스템에 대한 요구사항을 추출한다. 철저한 사전 준비 작업이 필요하다.

- 도출 (설문 조사) : 설문지 또는 여론조사 등을 이용해 간접적으로 정보를 수집한다. 개발될 시스템의 사용자가 다수일 때 의견 수렴에 용이하다.

- 도출 (브레인스토밍) : 말을 꺼내기 쉬운 분위기로 만들어 회의 참석자들이 내놓은 아이디어들을 비판 없이 수용할 수 있도록 하는 회의이다.

- 도출 (워크숍) : 단기간의 집중적인 노력을 통해 다양하고 전문적인 정보를 획득하고 공유하는 방법이다. 프로젝트에 참여하는 모든 핵심 인물의 참여가 필요하다. 참석자들은 해당 전문 영역별로 팀 협력이 필요하며 사전 준비가 요구된다.

- 분석 (자료 흐름 지향 분석) : 데이터 흐름(DFD)으로부터 소프트웨어 구조를 유도하는 방법이다.

- 분석 (객체지향 분석) : 시스템 기능과 데이터를 함께 분석하는 방법이다. UML로 표준화 한다.

- 명세 (자연어에 의한 방법) : 사용자와 개발자의 이해가 용이하다. 명확성 및 검증에 문제가 있다.

- 명세 (정형화 기법 사용 방법) : 명확성 및 검증이 용이하다. 기법의 이해가 어렵다.

- 확인 (동료 검토) : 2~3명이 진행하는 리뷰의 형태이다. 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행한다.

- 확인 (워크 스루) : 오류를 초기에 검출하는 데 목적이 있다. 검토 자료를 회의 전에 배포해서 사전검토한 후 짧은 시간동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화 한다.

- 확인 (인스펙션) : 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법이다.

- 동료 검토, 워크 스루, 인스펙션은 확인 기법이자 검증 기법이다.

 

3. 요구사항 관리 프로세스

- 요구사항 관리를 위해서 요구사항 협상, 요구사항 기준선, 요구사항 변경 관리, 요구사항 확인 및 검증을 수행한다.

- 요구사항 협상 : 주요기법으로는 우선순위 설정, 시뮬레이션이 있다. 가용한 자원과 수용 가능한 위험 수준에서 구현 가능한 기능을 협상하기 위한 기법이다.

- 요구사항 기준선 : 주요기법으로는 공식 회의, 형상 관리가 있다. 공식적으로 검토되고 합의된 요구사항 명세서이다.

- 요구사항 변경 관리 : 주요기법으로는 CCB, 영향도 분석이 있다. 요구사항 기준선을 기반으로 모든 변경을 공식적으로 통제하기 위한 기법이다.

- 요구사항 확인 및 검증 : 주요기법으로는 확인 및 검증이 있다. 구축된 시스템이 이해관계자가 기대한 요구사항에 부합하는지 확인하기 위한 방법이다.

 

반응형
반응형

*개발 기술 환경 요구사항 파악(실기)

1. 기술 환경 정의를 위한 자료 수집

- 온라인 트랜잭션 처리(OLTP) 시스템의 조사항목 (시스템 구축 형태) : 단독 시스템, 고 가용성 시스템, 병렬 구성 여부

- 온라인 트랜잭션 처리(OLTP) 시스템의 조사항목 (사용자 수) : 전체 사용자 수, 동시 사용자 비율, 연간 사용자 증가율

- 온라인 트랜잭션 처리(OLTP) 시스템의 조사항목 (트랜잭션 수) : 연간 트랜잭션 수, 1일 평균 트랜잭션 수, 피크타임 트랜잭션 수, 예상 연간 트랜잭션 증가율

- 웹/웹 애플리케이션 서버(WEB/WAS)의 조사항목 (시스템 용도 및 서비스 형태) : 웹 페이지만 제공, 트랜잭션이 빈번하지 않은 웹 서비스, 트랜잭션이 빈번한 웹 서비스인지 여부

- 웹/웹 애플리케이션 서버(WEB/WAS)의 조사항목 (시스템 구성 형태) : 1계층, 2계층, 3계층

- 웹/웹 애플리케이션 서버(WEB/WAS)의 조사항목 (접속자 수) : 평균/최고/연간 접속자 수, 증가율

- 현행 시스템 담당자가 제공하는 자료와 인터뷰 기록 분석한다.

 

2. 조사 자료 분석 및 개발 기술 환경 결정

- 조사한 자료를 이용하여 운연체제(OS), 데이터베이스(DBMS), 웹 애플리케이션 서버(WAS) 등을 결정한다.

- 조사 자료 분석 시 각 항목별 고려 사항을 반영하여 개발 기술 환경을 결정한다.

2-1. 조사한 자료를 이용하여 시스템 용량을 산정하는 방법

2-2. CPU 용량 산정(OLPT/배치/데이터베이스 서버)

- 분당 트랜잭션 수 : 산정 대상 서버에서의 분당 트랜잭션 발생 추정치의 합

- 기본 tpmC보정 : 실험환경에서 측정한 tpmC 수치를 복잡한 실제 환경에 맞게 적용하기 위한 보정

- 피크타임 부하 보정 : 업무가 과중한 시간대에 시스템이 원활하게 운영할 수 있도록 피크타임을 고려한 보정

- 데이터베이스 크기 보정 : 데이터베이스 테이블의 레코드 건수와 전체 데이터베이스 볼륨을 고려한 보정

- 애플리케이션 구조 보정 : 애플리케이션 구조와 요구되는 응답 시간에 따른 성능 차이를 감안한 보정

- 애플리케이션 부하 보정 : 온라인 작업을 수행하는 피크타임에 배치 작업 등이 동시에 이루어지는 경우를 감안한 보정

- 클러스터 보정 : 클러스터 환경에서 장애발생 시를 대비한 보정

- 시스템 여유율 : 예기치 못한 업무의 증가 등을 위한 여유율

- 시스템 목표 활용률 : 시스템의 안정적인 운영을 전제로 한 CPU 활용률

- 산정식 : CPU(tpmC 단위) = (분당 트랜잭션 수) X (기본 tpmC 보정) X (peak time 부하 보정) X (DB 크기 보정) X (앱 구조 보정) X (앱 부하 보정) X (클러스터 보정) X (시스템 여유율) / (시스템 목표 활용률)

2-2. CPU 용량 산정(WEB/WAS 서버)

- 동시 사용자 수 : 소프트웨어나 시스템을 네트워크 상에서 동시에 사용하는 사용자

- 사용자당 오퍼레이션 수 : 사용자 한 사람이 초당 발생시키는 오퍼레이션 수

- 기본 OPS 보정 : 실험환경에서 측정한 ops 수치를 복잡한 실제 환경에 맞게 적용하기 위한 보정

- 업무용도 보정 : 적용대상 시스템 유형에 따른 보정치

- 인터페이스 부하 보정 : 서버가 타서버와 통신하게 될 때 인터페이스에서 발생하는 부하를 고려한 보정

- 피크타임 부하 보정 : 갑자기 많은 접속으로 인해 부하가 발생하는 것을 해결하기 위한 보정

- 클러스터 보정 : 클러스터 환경에서 장애발생시를 대비한 보정(노드수에 따른 적용)

- 시스템 여유율 : 시스템의 안정된 운영을 위한 보정

- 시스템 목표 활용률 : 시스템의 안정적인 운영을 전제로 한 CPU 활용률

- 산정식 : CPU(OPS 단위) = (동시 사용자 수) X (사용자당 operation 수) X (기본 OPS 보정) X (인터페이스 부하보정) X (peak time 부하 보정) X (클러스터 보정) X (시스템 여유율) / (시스템 목표 활용률)

2-3. 메모리 용량 산정

- 시스템 영역 : OS, DBMS 엔진, 미들웨어 엔진, 기타 유틸리티 등의 소요공간

- 사용자당 필요 메모리 : 애플리케이션, 미들웨어 DBMS의 사용에 필요한 사용자당 메모리

- 동시사용자 수 : 소프트웨어나 시스템을 네트워크상에서 동시에 사용하는 사용자

- OS 버퍼캐시 보정 : 처리 속도를 향상시키기 위해 일정량의 데이터를 임시로 모아 놓은 기억장소를 위한 보정

- 미들웨어 버퍼캐시 메모리 : DBMS의 공유메모리, WAS의 heap size 등 미들웨어에서 사용하는 캐시 영역

- 시스템 여유율 : 시스템의 안정된 운영을 위한 보정

- 산정식 : 메모리(MB 단위) = [(시스템 영역) + {(사용자당 필요 메모리) X (사용자 수)} + (미들웨어 버퍼캐시 메모리)] X (버퍼캐시 보정) X (시스템 여유율)

2-4. 디스크 용량 산정

- 시스템 OS 영역 : 운영체제 및 시스템 소프트웨어 등을 위한 영역

- 응용 프로그램 영역 : 미들웨어 및 응용 소프트웨어 영역, 데이터베이스 설치 영역, 기타 유틸리티 설치 영역 등 응용 프로그램을 대상으로 함

- SWAP 영역 : 시스템 장애 시의 Dump 역할 수행과 메모리 대용의 효율적인 Swapping을 수행하기 위한 작업공간

- 파일 시스템 오버헤드 : 일반 사용자 관리 영역을 위한 수퍼유저의 관리 공간 및 I-node Overhead, 수퍼블럭, 실린더 그룹 등 파일관리 공간

- 시스템/데이터 디스크 여유율 : 시스템의 안정된 운영을 위한 보정으로 업무의 중요도나 긴급도를 감안하여 적용

- 데이터 영역 : 실제 필요한 데이터량

- 백업 영역 : 데이터와 데이터의 변경내역 정보 등의 백업을 위한 공간

- RAID 여유율 : RAID 디스크가 도입될 경우 데이터 보호를 위한 패러티 영역으로 사용되는 공간을 위한 보정

 

3. 요구사항 정의서, 목표 시스템 구성도 반영 및 검토

- 운영체제, 데이터베이스, 웹 애플리케이션 서버 등 시스템 용량 산정 결과를 요구사항 정의서, 목표 소프트웨어 구성도, 목표 하드웨어 구성도에 반영한다.

- 각 팀별로 작성된 산출물을 상호 검토하여 의견을 제시한다.

- 다른 팀의 검토의견을 반영하여 산출물을 수정하고 최종 완료한다.

 

반응형

'자격증 > 정보처리기사' 카테고리의 다른 글

요구사항 분석/확인  (0) 2020.06.24
요구사항  (0) 2020.06.23
개발 기술 환경 현행 시스템 분석  (0) 2020.06.21
현행 시스템 분석서 작성 및 검토  (0) 2020.06.20
소프트웨어 아키텍처  (0) 2020.06.20
반응형

*개발 기술 환경 현행 시스템 분석

1. 운영체제 현행 시스템 분석

1-1. 운영체제란

- 컴퓨터 시스템이 제공하는 모든 하드웨어, 소프트웨어를 사용할 수 있도록 해주고, 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램이다.

- 사용자가 컴퓨터를 좀 더 쉽게 사용하기 위해 지원하는 소프트웨어이다.

1-2. 운영체제 현행 시스템 분석

- 운영체제 현행 시스템 분석 시 품질 측면과 지원 측면 등을 고려해야 한다.

- 품질 측면 (신뢰도) : 장기간 시스템 운영 시 운영체제의 장애 발생 가능성, 운영체제의 버그로 인한 재기동 여부

- 품질 측면 (성능) : 대규모 및 대량 파일 작업(배치 작업)처리, 지원 가능한 메모리 크기(32비트, 64비트)

- 지원 측면 (기술 지원) : 공급사들의 안정적인 기술 지원, 오픈 소스 여부

- 지원 측면 (주변 기기) : 설치 가능한 하드웨어, 다수의 주변 기기 지원 여부

- 지원 측면 (구축 비용) : 지원 가능한 하드웨어 비용, 설치할 응용 프로그램의 라이선스 정책 및 비용, 유지 및 관리 비용

1-3. 운영체제의 종류 및 특징

- 대표적으로 PC, 모바일 운영체제로 나뉜다.

- PC (윈도즈 Windows) : Microsoft, 중/소규모 서버, 일반 PC 등 유지, 관리 비용 장점

- PC (유닉스 UNIX) : IBM, HP, SUN, 대용량 처리, 안정성 높은 엔터프라이즈급 서버

- PC (리눅스 Linux) : Linus Torvalds, 중/대규모 서버 대상, 높은 보안성 제공

- 모바일 (안드로이드 Android) : Google, 스마트폰, 태블릿 PC, 다양한 기기의 호환성 제공

- 모바일 (IOS) : Apple, 스마트폰, 태블릿 PC의 높은 보안성과 고성능 제공

- 리눅스 기반 시스템이 하드웨어 및 소프트웨어 소유 비용이 가장 적게 소요된다.

 

2. 네트워크 현행 시스템 분석

2-1. 네트워크란

- 컴퓨터 장치들의 노드 간 연결(데이터 링크)을 사용하여 서로에게 데이터를 교환할 수 있도록 하는 기술이다.

- 데이터 링크들은 광 케이블과 같은 유선 매체 또는 와이파이(Wi-Fi)와 같은 무선 매체를 통해 확립된다.

2-2. OSI 7계층

- 네트워크 통신에서 생긴 여러 가지 충돌 문제를 완화하기 위해 국제 표준화 기구(ISO)에서 제시한 네트워크 기본 모델이다.

- 응용 계층 : 사용자와 네트워크 간 응용 서비스 연결, 데이터 생성 (HTTP, FTP 프로토콜 / 전송단위는 데이터)

- 표현 계층 : 데이터 형식 설정과 부호 교환, 암호화/복호화 (JPEG, MPEG 프로토콜 / 전송단위는 데이터)

- 세션 계층 : 연결 접속 및 동기제어 (SSH, TLS 프로토콜 / 전송단위는 데이터) 

- 전송 계층 : 신뢰성 있는 통신 보장, 데이터 분할과 재조립, 흐름 제어, 오류 제어, 혼잡제어 등을 담당 (TCP, UDP 프로토콜 / 전송단위는 세크먼트)

- 네트워크 계층 : 단말 간 데이터 전송을 위한 최적화된 경로 제공 (IP, ICMP 프로토콜 / 전송단위는 패킷)

- 데이터 링크 계층 : 인접 시스템 간 데이터 전송, 전송오류 제어, 동기화, 흐름 제어 등의 전송 기능 제공, 오류 검출, 재전송 등 기능 제공 (이더넷 / 전송단위는 프레임)

- 물리 계층 : 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환 (RS-232C / 전송단위는 비트)

2-3. 네트워크 현행 시스템 분석

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

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

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

- 네트워크 분석 시 물리적인 위치 관계 파악, 조직 내 보안 취약성 분석 및 대응이 가능하다.

- 네트워크 장애 발생 추적 및 대응 등의 다양한 용도로 활용할 수 있다.

 

3. DBMS 현행 시스템 분석

3-1. DBMS란

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

3-2. DBMS의 기능

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

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

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

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

- 샤딩/파티셔닝 : 구조 최적화를 위해 작은 단위로 나누는 기능 제공

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

- 백업 및 회복 : 데이터베이스 장애 발생 시 데이터의 보존 기능 제공

3-3. DBMS 현행 시스템 분석

- 성능 측면 (가용성) : 장기간 시스템을 운영할 때 장애 발생 가능성, 백업 및 복구 편의성, DBMS 이중화 및 복제 지원 여부

- 성능 측면 (성능) : 대규모 데이터 처리 성능, 대량 거래 처리 성능, 다양한 튜닝 옵션 지원 여부, 비용 기반 최적화 지원 및 설정의 최소화 지원 여부

- 성능 측면 (상호 호환성) : 설치 가능한 운영체제 종류, 다양한 운영체제에서 지원되는 JDBC, ODBC

- 지원 측면 (기술 지원) : 공급 업체들의 안정적인 기술 지원 여부, 다수의 사용자 간의 정보 공유 여부, 오픈 소스 여부

- 지원 측면 (구축 비용) : 라이언스 정책 및 비용, 유지 및 관리 비용

 

4. 미들웨어의 현행 시스템 분석

4-1. 미들웨어란

- 미들웨어는 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간에 원만한 통신이 이루어질 수 있도록 제어해주는 소프트웨어이다.

- 운영체제와 소프트웨어 애플리케이션 사이에 위치하고 있다.

- 대표적인 미들웨어로는 WAS가 있다.

4-2. 웹 애플리케이션 서버(WAS)란

- 웹 애플리케이션 서버는 서버계층에서 애플리케이션이 동작할 수 있는 환경을 제공하고 안정적인 트랜잭션 처리와 관리, 다른 이 기종 시스템과의 애플리케이션 연동을 지원하는 서버이다.

4-3. 미들웨어의 현행 시스템 분석

- 성능 측면 (가용성) : 장기간 시스템을 운영할 때 장애 발생 가능성, 안정적인 트랜잭션 처리 능력, WAS의 버그 등을 개선하는 패치 설치를 위한 재기동 기능 지원 여부, WAS 이중화 지원 여부

- 성능 측면 (성능) : 대규모 데이터 처리 성능, 다양한 설정 옵션 지원 여부, 가비지 컬렉션의 다양한 옵션 기능 여부

- 지원 측면 (기술 지원) : 공급 벤더들의 안정적인 기술 지원 여부, 다수의 사용자들 간의 정보 공유 여부, 오픈 소스 여부

- 지원 측면 (구축 비용) : 라이선스 정책 및 비용, 유지 및 관리 비용, 총 소유 비용

 

5. 오픈 소스 사용 시 고려 사항

- 오픈 소스를 사용하는 경우에는 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려해야 한다.

- 오픈 소스 소프트웨어의 전체 조건인 자유 배포, 소스 코드 공개, 파생작업 허용, 소스 코드 일관성 확보, 차별금지, 라이선스 배포, 포괄적 허용을 고려해야 한다.  

반응형
반응형

*현행 시스템 분석서 작성 및 검토

1. 현행 시스템 관련 자료 수집

- 현행 시스템 관련 자료 수집을 위해서 수집 자료의 특성에 따라 3개의 팀을 구성한다.

- 정보시스템 구성/기능 및 인터페이스 자료 수집팀 : 정보시스템 구성도, 정보시스템 기능 구성도, 정보시스템 인터페이스 현황

- 현행 시스템 아키텍처 및 소프트웨어 자료 수집팀 : 현행 시스템 아키텍처 구성도, 소프트웨어 구성도

- 하드웨어 및 네트워크 자료 수집팀 : 하드웨어 구성도, 네트워크 구성도

- 수집 자료의 성격에 따라서 팀을 명확하게 구분하는 것이 필요하다.

 

2. 수집 자료의 분석

- 수집된 정보들을 취합, 정제하고, 중복되거나 유효하지 않은 정보들은 삭제 한다.

- 불명확한 부분은 체크한 후 분석 및 설계 단계를 통해 구체적으로 조사한다.

- 현행 시스템의 이슈 및 문제점을 파악한다.

 

3. 분석한 결과를 기반으로 산출물 작성

- 각 취득 자료를 분석한 결과를 기반으로 산출물을 작성한다.

- 현행 시스템의 이슈나 문제점을 산출물에 상세하게 포함하여 작성한다.

 

4. 산출물에 대한 검토 수행

- 팀별로 작성된 산출물을 상호 검토하여 의견을 제시한다.

- 다른 팀의 검토의견을 반영하여 산출물을 수정하고 최종 완료한다.

반응형

+ Recent posts