현행 시스템 분석
현행 시스템 분석
현행 시스템 분석의 정의와 목적
- 현 시스템이 어떤 하위 시스템으로 구성되어 있는 지 파악하는 절차
- 현행 시스템의 제공 기능과 타 시스템과의 정보 교환 분석을 파악
- 현행 시스템의 기술 요소와 소프트웨어, 하드웨어를 파악
- 목적: 개발 시스템의 개발 범위를 확인하고 이행 방향성을 설정
현행 시스템 파악 절차
1단계: 시스템 구성 파악 > 시스템 기능 파악 > 시스템 인터페이스 현황 파악
2단계: 아키텍처 파악 > S/W 구성 파악
3단계: 시스템 H/W 현황 파악 > 네트워크 구성 파악
시스템 아키텍처
- 상위 시스템과 하위 시스템들이 어떤 관계로 상호작용하는 지 각각의 동작 원리와 구성을 표현
- 단위 업무 시스템별로 아키텍처가 다른 경우 핵심 기간 업무 처리 시스템을 기준으로 함
- 시스템의 전체 구조, 행위, 그리고 행위 원리를 나타내며 시스템이 어떻게 작동하는 지 설명하는 틀
- 시스템의 목적 달성을 위해 시스템에 구성된 각 컴포넌트를 식별하고 각 컴포넌트의 상호작용을 통하여 어떻게 정보가 교환되는 지 설명함
[시스템 아키텍처] < > [소프트웨어 아키텍처] > [소프트웨어 상세 설계]
시스템 구성 파악
-
조직 내의 주요 업무를 기간 업무와 지원 업무로 구분하여 기술
-
모든 단위 업무를 파악할 수 있도록 하며, 시스템 내의 명칭, 기능 등 주요 기능을 명시
-
시스템 구성 현황 작성 예
구분 | 시스템명 | 시스템 내용 |
---|
기간업무 | 단위 A업무 | 기간 단위 업무 A처리를 위한 A1, A2 등의 기능 제공 |
| 단위 B업무 | 기간 단위 업무 B처리를 위한 B1, B2 등의 기능 제공 |
지원 업무 | 지원 C업무 | 지원 업무 C처리를 위한 C1,C2 등의 기능 제공 |
시스템 기능 파악
- 단위 업무 시스템이 현재 제공하고 있는 기능을 주요기능과 하부기능으로 구분하여 계층형으로 표시
- 시스템 기능 구성도 예
시스템명 | 기능 L1 | 기능 L2 | 기능 L3 |
---|
A 단위 업무 시스템 | 기능 1 | 하부 기능 11 | 세부 기능111 |
| | 하부 기능 11 | 세부 기능112 |
| | 하부 기능 12 | 세부 기능121 |
| | 하부 기능 12 | 세부 기능122 |
| 기능 2 | 하부 기능 21 | 세부 기능211 |
| | 하부 기능 21 | 세부 기능212 |
인터페이스 현황 파악
- 현행 시스템의 단위 업무 시스템이 타 단위 업무 시스템과 서로 주고받는(inter-face) 데이터의 연계 유형, 데이터 형식과 종류, 프로토콜 및 주기 등을 명시
- 인터페이스 현황 작성 예
송신 시스템 | 수신 시스템 | 연동 데이터 | 연동 형식 | 통신규약 | 연계 유형 | 주기 |
---|
A 단위 업무 시스템 | 대외 기관 시스템 C | 연체정보 | XML | TCP/IP | EAI | 1시간 |
A 단위 업무 시스템 | 대외 기관 시스템 D | 신용 정보 | XML | X25 | FEP | 수시 |
기업 앱 통합(EAI; Enterprise Application Integration)
- 기업 내의 컴퓨터 앱들을 현대화, 통합, 조정하는 것을 목표로 세운 계획, 방법 및 도구 등을 의미
전위 처리기(FEP; Front-End Processor)
- 입력 데이터를 프로세서가 처리하기 전에 미리 처리하여 프로세스가 처리하는 시간을 줄여주는 프로그램이나 하드웨어
- 여러 통신 라인을 중앙 컴퓨터에 연결
- 터미널의 메세지가 보낼 상태로 있는 지 받을 상태로 있는 지 검색
- 통신 라인의 에러 검출함
소프트웨어, 하드웨어, 네트워크 현황 파악
소프트웨어 구성 파악
- 시스템 내의 단위 업무 시스템의 업무 처리용 소프트웨어의 품명, 용도, 라이선스 적용방식, 라이선스 수를 명시
- 시스템 구축 시 많은 예산 비중을 차지하므로 라이선스 적용 방식과 보유한 라이선스 수량 파악이 중요
- 라이선스 적용 방식 단위
하드웨어 구성 파악
- 각 단위 업무 시스템의 서버 위치 및 주요 사양, 수량, 이중화 여부 파악
- 서버사양: CPU 처리 속도, 메모리 크기, 하드디스크 용량
- 서버 이중화: 장애 시 서비스의 계속 유지를 위하여 운영
- 기간 업무의 장애 대응 정책에 따라 필요 여부가 달라짐
- 현행 시스템에 이중화가 적용되어 있다면 대부분 목표 시스템도 이중화가 요구되므로 그에 따른 기술 난이도, 비용 증가 가능성 파악
네트워크 구성 파악
- 현행 업무 처리 시스템의 네트워크 구성 형태를 그림으로 표현
- 장애 발생 시 추적 및 대응 등의 다양한 용도로 활용됨
- 서버의 위치, 서버 간 연결 방식 등을 파악
- 물리적인 위치 관계, 조직 내 보안 취약성 분석 및 대응 방안 파악
개발 기술 환경 분석
- 개발 대상 시스템의 플랫폼, OS, DBMS, Middleware 등을 분석
플랫폼
- 응용 소프트웨어 + (하드웨어 + 시스템 소프트웨어)
- 다양한 앱이 작동하는 기본이 되는 운영 체제 소프트웨어를 의미함
- 종류
- JAVA 플랫폼
- .NET 플랫폼
- IOS
- Android
- Windows
- 기능
- 개발/운영/유지보수 비용의 감소
- 생산성 향상
- 동일 플랫폼 간의 네트워크 효과
플랫폼 성능 특성 분석
- 현행 시스템의 사용자가 요구사항을 통하여 시스템 성능상의 문제를 요구할 경우 플랫폼 성능 분석을 통하여 사용자가 느끼는 속도를 파악하고 개선 방향 제시 가능
특성 분석 항목
- 응답시간(Response Time)
- 가용성(Availability)
- 사용률(Utilization)
플랫폼 성능 특성 분석 방법
- 기능 테스트(Performance Test)
- 현재 시스템의 플랫폼을 평가할 수 있는 기능 테스트 수행
- 사용자 인터뷰
- 사용자를 대상으로 현행 플랫폼 기능의 불편함을 인터뷰
- 문서 점검
현행 시스템의 OS 분석
OS의 정의 및 기능
- HW, SW 자원 관리 및 공통 서비스 제공
- 사용자와의 인터페이스 제공
현행 시스템의 OS 분석항목 및 고려사항
- 분석 항목
- 현재 정보 시스템의 OS 종류와 버전, 패치일자, 백업주기 부석
- 고려사항
- 가용성, 성능, 기술지원, 주변기기, 구축비용(TCO)
- 현행 환경 분석 과정에서 라이선스의 종류, 사용자 수, 기술의 지속 가능성 등을 고려
- 메모리 누수
- 실행 SW가 정상 종료되지 않고 남아 있는 증상
TCO(Total Cost of Ownership)
- 일정 기간 자산 획득에 필요한 직/간접적인 총비용
- HW/SW구매 비용, 운영 교육, 기술지원, 유지보수, 손실, 에너지 사용 비용
오픈 소스 라이선스 종류
- GNU(
GNU's Not Unix
)
- 컴퓨터 프로그램은 물론 모든 관련 정보를 돈으로 주고 구매하는 것을 반대하는 것이 기본 이념
- 리눅스(Linux)
- GNU GPLv1(
General Public License
)
- 소스 코드를 공개하지 않으면서 바이너리만 배포하는 것을 금지
- 사용할 수 있는 쉬운 소스 코드를 같이 배포해야 함
- BSD(
Berkeley Software Distribution
)
- 아무나 개작할 수 있고 수정한 것을 제한 없이 배포할 수 있음
- 단 수정본의 재배포는 의무적인 사항이 아님
- 공개하지 않아도 되는 사용 소프트웨어에서도 사용 가능
- Apache 2.0
- Apache 재단 소유의 SW 적용을 위해 제공하는 라이선스
- 소스코드 수정 배포 시 Apache 2.0을 포함해야 함
- Android, HADOOP
HADOOP?
- 다수의 저렴한 컴퓨터를 하나처럼 묶어 대량 데이터(Big Data)를 처리하는 기술
현행 시스템 DBMS 분석
DBMS(DataBase Management System)
- 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
- 응용 프로그램과 데이터의 중재자로서 모든 응용 프로그램들이 DB를 공유할 수 있도록 관리
- DB 구성, 접근 방법, 관리 유지에 대한 모든 책임
현행 시스템 DBMS 분석
- DBMS 종류, 버전, 구성방식, 저장용량, 백업주기, 벤더의 유지보수 여부 등 분석
- 테이블 수량, 데이터 증가 추이, 백업 방식 등 분석
- 논리/물리 테이블의 구조도를 파악하여 각 테이블의 정규화 정도, 조인 난이도, 각종 프로시저, 트리거 등을 분석
DBMS 분석 시 고려사항
구분 | 설명 |
---|
가용성 | 장시간 운영 시 장애 발생 가능성 패치 설치를 위한 재 기동 시간과 이중화 및 복제 지원 백업 및 복구 편의성 등 고려 |
성능 | 대규모 데이터 처리 성능(분할 테이블의 지원 여부) 대량 거래 처리 성능 및 다양한 튜닝 옵션 지원 비용 기반 최적화 지원 및 설정의 최소화 등 고려 |
기술지원 | 제조업체의 안정적인 기술 지원 같은 DBMS 사용자들 간의 정보 공유 여부와 오픈소스 여부 등 |
상호 호환성 | 설치 가능한 OS 종류 JDBC, ODBC 등 상호 호환성 |
구축 비용 | 라이선스 정책 및 비용, 유지 / 관리 비용, 총 소유비용(TCO) |