1. 현행 시스템 파악
- 하위 시스템 구성 요소, 제공 기능 및 연계 정보, 기술 요소 파악 활동
- 사용 중 소프트웨어 및 하드웨어, 네트워크 구성에 대한 파악 활동
현행 시스템 파악 절차
절차 | 구성/기능/인터페이스 파악 | 아키텍처 및 소프트웨어 구성 파악 | 하드웨어 및 네트워크 구성 파악 |
설명 | 구성 주요 업무의 처리기간 업무와 이를 지원하는 지원업무로 구분하여 파악 명칭, 주요 기능들을 명시 모든 정보시스템의 현황 파악 가능하도록 함 기능 현재 제공하고 있는 기능 파악 주요기능과 하부기능으로 구분하여 계층형으로 표시 인터페이스 주고받는 데이터 종류, 데이터 형식, 프로토콜, 연계유형, 주기 파악 데이터 형식(XML, 고정포맷 등), 통신규약(TCP/IP, X25 등), 연계유형(EAI 등) 표시 |
아키텍처 구성 어떤 기술 요소들을 사용하고 있는지 최상위 수준에서 파악 시스템별 아키텍쳐가 상이한 경우 가장 핵심 기간 업무 처리 시스템 기준으로 파악 소프트웨어 구성 제품명, 용도, 라이선스 적용방식, 라이선스 수 파악 상용 소프트웨어의 경우 라이선스 적용방식의 기준, 보유한 라이선스 수량 파악 중요 |
하드웨어 구성 서버의 위치, 운용 서버의 주요 사양과 수량, 이중화 구현 여부 파악 이중화 필요성 여부에 따라 인프라 구축 기술 난이도 및 비용 증가 가능성 존재 네트워크 구성 네트워크 장비 파악 네트워크 구성도 작성을 통해 서버의 위치, 서버 간의 네트워크 연결 방식을 파악할 수 있도록 표현 |
소프트웨어 아키텍처
- 여러가지 소프트웨어 구성요소와 그 구성요소가 가진 특성 중 외부에 드러나는 특성
- 구성요소 간의 관계를 표현하는 시스템 구조, 구조체를 의미
- 소프트웨어를 설계, 전개하기 위한 지침 혹은 원칙
소프트웨어 아키텍처 프레임워크 구성요소
아키텍처 명세서
- 이해관계자들의 시스템에 대한 관심을 관점에 맞춰어 작성한 뷰로 표현
- 개별 뷰, 뷰 개괄 문서, 인터페이스 명세 등
이해관계자
- 시스템 개발에 관련된 모든 사람과 조직(고객, 최종사용자, 프로젝트 관리자, 유지보수자, 마케티 담당자 등)
관심사
- 사용자 입장(기능, 보안, 사용성 등의 품질), 유지보수자 입장(유지보수의 용이성), 개발자(적은 비용과 인력으로 개발)
관점
- 개별 뷰를 개발할 때 토대가 되는 패턴이나 양식
- 이해관계자들이 서로 다른 역할이나 책임으로 시스템이나 산출물들에 대해 보고싶은 관점
뷰
- 서로 관련 있는 관심사들의 집합의 관점에서 전체 시스템을 표현
- 시스템에 대한 아키텍처 설명에는 하나 이상의 뷰로 구성
근거
- 아키텍처 결정 근거
- 회의 결과, 보고 결과
소프트웨어 아키텍처 4+1 뷰
고객의 요구사항을 4개의 관점에서 바라보는 소프트웨어적 접근 방법
유스케이스 뷰, 논리 뷰, 프로세스 뷰, 구현 뷰, 배포 뷰
뷰 | 설명 |
유스케이스 뷰(Use-Case View) | 아키텍처를 도출, 설계 작업을 주도하는 뷰 다른 뷰 검증 목적 |
논리 뷰(Logical View) | 설계 모델 추상화, 주요 설계 패키지와 서브시스템, 클래스를 식별하는 뷰 시스템 기능적 요구사항 지원 |
프로세스 뷰(Process View) | 런타임 시 시스템의 Task, 스레드, 프로세스와 이들 사이의 상호작용 등의 관계를 표현하는 뷰 시스템의 비기능적 요구사항 고려 |
구현 뷰(Implementation View) or 컴포넌트 뷰(Component View) |
개발 환경 내 정적 소프트웨어 모듈의 구성 표현 뷰 개발자 관점에서 소프트웨어의 구현과 관리적인 측면을 컴포넌트 다이어그램으로 표현 |
배포 뷰(Deployment View) | 물리적 노드 구성과 상호 연결 관계를 배포 다이어그램으로 표현하는 뷰 |
현행 시스템 분석 결과 산출물
정보시스템 구성 현황
정보시스템 기능 구성도
인터페이스 현황
현황시스템 아키텍처 구성도
소프트웨어 구성도
하드웨어 구성도
네트워크 구성도
2. 개발 기술 환경 정의
개발 기술 환경 현행 시스템 분석
운영체제 현행 시스템 분석
품질측면 : 신뢰도, 성능
지원측면 : 기술 지원, 주변 기기, 구축 비용
네트워크 현행 시스템 분석
OSI 7계층(Layer)
응용 계층(Application Layer)
표현 계층(Presentation Layer)
세션 계층(Session Layer)
전송 계층(Transport Layer)
네트워크 계층(Network Layer)
데이터 링크 계층(Data Link Layer)
물리 계층(Physical Layer)
DBMS 현행 시스템 분석
중복제어
접근통제
인터페이스 제공
관계표현
샤딩/파티셔닝
무결성 제약조건
백업 및 회복
분석시 고려사항
성능 측면 : 가용성, 성능, 상호 호환성
지원 측면 : 기술 지원, 구축 비용
미들웨어의 현행 시스템 분석
분석시 고려사항
성능 측면 : 가용성, 성능
지원 측면 : 기술 지원, 구축 비용
오픈 소스 사용시 고려사항
라이선스 종류, 사용자 수, 기술의 지속 가능성 등을 고려
오픈 소스 소프트웨어의 전제 조건인 자유 배포, 소스코드 공개, 파생작업 허용, 소스 코드 일관성 확보, 차별금지, 라이선스 배포, 포괄성 허용을 고려
개발 기술 환경 요구사항 파악
1. 기술 환경 정의를 위한 자료 수집
2. 조사 자료 분석 및 기술 환경 결정
3. 요구사항 정의서, 목표 시스템 구성도 반영 및 검토