이슈 기반 요구사항 관리 시스템을 개발하여, 제품별 요구사항의 생명주기(추가-채택-변경-삭제 ) 및 이력을 관리하며,
+ 이와 함께 ALM 시스템과 통합하여 Business Intelligence를 제공하는,
+ Atlassian 제품군 기반의 Requirement Management System - RMS (for atlassian)시스템을 개발하는 것을 목표로 합니다.
+
+
1.2 범위
+
본 프로젝트 범주는 aRMS 의 인증 및 인가 시스템을 제공합니다.
+
1.2.1 aRMS → Auth Scope
+
본 프로젝트 범주는 aRMS 내부의 데이터를 분류하는 시스템을 jsTree framework를 활용하여 관리하는 시스템을 제공합니다.
+
1.2.2 aRMS → Product and Service Scope
+
본 프로젝트 범주는 aRMS가 Atlassian 제품군을 대상으로, 요구사항(Requirement)을 기준하여 관리하는 시스템을 제공합니다.
+
1.2.3 aRMS → Requirement Scope
+
본 프로젝트 범주는 aRMS가 Atlassian 제품군 및 Java Application을 대상으로, 인스턴스 모니터링을 관리하는 시스템을 제공합니다.
+
1.2.4 aRMS → Monitoring Scope
+
+
1.3 관련 문서
+
+
+
+
+
구분
+
URL
+
+
+
+
+
Project Charter
+
+ ARMS ( Atlassian RMS ) Project Charter
+
+
+
+
SRS ( Software Requirement Specification ) → Business Architecture
+ → 시스템 구성도
+ → System Architectur
+
1 ea ( 와스 서버 - java application - ARMS )
+ 클러스터링 기능 제공 시 ( Enterprise mode 제공 )
+
+
+
+
Cache Server - Redis Sentinel
+
가상
+
3 ea ( 세션 클러스터링 및 큐 용도 )
+
+
+
ElasticSearch
+
가상
+
4 ea 클러스터링 ( 검색엔진 : 1 Master - 3 Slave )
+
+
+
ElasticSearch HQ
+
가상
+
1 ea ( 검색엔진 관리 툴 )
+
+
+
+
Kibana
+
가상
+
1 ea ( 검색엔진 리포팅 툴 )
+
+
+
Logstash
+
가상
+
1 ea ( 클라이언트 데이터 수집기 - 검색엔진 데이터 마이닝 )
+
+
+
ZooKeeper
+
가상
+
3 ea ( 서비스 디스커버리 클러스터 )
+
+
+
Kafka
+
가상
+
3 ea ( 메세지 큐 클러스터 )
+
+
+
Kafka Manager
+
가상
+
1 ea ( 메세지 큐 클러스터 관리 툴 )
+
+
+
APM Server
+
가상
+
1 ea ( 클라이언트 성능 데이터 수집기 )
+
+
+
influxDB
+
가상
+
1 ea ( 시계열 데이터베이스 )
+
+
+
chronograf
+
가상
+
1 ea ( 시계열 데이터베이스 관리 툴 )
+
+
+
grafana
+
가상
+
1 ea ( 시계열 데이터베이스 리포트 툴 )
+
+
+
scouter
+
가상
+
1 ea ( 클라이언트 성능 데이터 수집기 )
+
+
+
mysql
+
가상
+
1 ea ( 데이터베이스 )
+ 클러스터링 기능 제공시 ( Enterprise mode 제공 )
+
+
+
+
+
Docker Swarm Infra 설치 스크립트 1종 - Linux base
+ All-in-one Monitoring System 설치 스크립트 1종 - Docker Swarm Infra 기준 yml 파일 1종
+ aRMS 설치 스크립트 1종 - Docker Swarm Infra 기준 yml 파일 1종 - App server, DB Server, Cache Server 등.
+ aRMS 프로그램 소스 코드 1종 - jsTree Base Java Application
구체화된 요구사항에 맞춰서 비지니스 아키텍쳐가 이 요구사항을 대응할 수 있어야 하고, 추상화 단계는 최상위 레벨인 시스템 수준의 대단위 모듈로 대응 할 수 있어야
+ 합니다.
+
+
input인 비지니스 아키텍쳐로 부터, 세부적인 요구사항의 기능을 대응할 시스템 하위 컴포넌트 레벨의 모듈을 구성하고, 해당 모듈의 핵심적인 기능을 기록하도록 합니다.
-
+
2.2 제품(서비스) 동작 방식
+
2.2.1 인증 시스템 모듈 동작 방식
+
2.2.1.1 통합 계정 관리 시스템
+
+
통합 계정 관리 시스템은 계정 관리를 목적으로 하는 시스템 입니다.
+
통합 계정 관리 시스템은 로컬 계정 관리 시스템과 연동 계정 관리 시스템을 연동합니다.
+
통합 계정 관리 시스템은 2개의 각 시스템으로부터 계정을 취합하는 기능을 가지게 됩니다. 통합 계정 관리 시스템은 주기적으로 2개의 연동 시스템으로부터 계정을
+ 취합합니다.
+
+
통합 계정 관리 시스템은 취합된 계정의 CRUD 기능을 제공합니다.
+
통합 계정 관리 시스템은 권한을 부여할 수 있습니다.
+
통합 계정 관리 시스템은 통합 권한 관리 시스템으로부터 권한을 확인하고 추가, 갱신, 삭제, 조회를 할 수 있습니다.
+
+
2.2.1.2 통합 권한 관리 시스템
+
+
통합 권한 관리 시스템은 Tree 형식의 권한 체계를 구성 할 수 있습니다.
+
+
통합 권한 관리 시스템은 미리 anonymous, user, admin 으로 구분되 있습니다.
+
+
통합 권한 관리 시스템은 미리 정의된 권한 체계의 하위로 세부 권한을 추가할 수 있습니다.
+
+
통합 권한 관리 시스템은 미리 정의된 3개의 권한과 동일한 레벨로 권한을 생성할 수는 없습니다.
+
+
통합 권한 관리 시스템은 미리 정의된 3개의 권한에 대해 URL 패턴이 지정되 있습니다. 통합 권한 관리 시스템은 추가된 세부 권한은 3개의 권한 체계 내부 로직에서
+ 처리합니다.
+
+
통합 권한 관리 시스템은 통합 계정 관리 시스템과 연동됩니다.
+
+
+
+
2.2.1.3 로컬 계정 관리 시스템
+
+
로컬 계정 관리 시스템은 aRMS 내부의 미리 정의된 admin 계정을 관리합니다.
+
+
로컬 계정 관리 시스템은 admin 이외 자체 계정을 관리합니다. ( 장애 상황 대비 )
+
+
로컬 계정 관리 시스템은 연동 계정 이외 서비스 계정을 관리하기 위한 목적이 있습니다.
+
+
+
+
2.2.1.4 연동 계정 관리 시스템
+
+
연동 계정 관리 시스템은 LDAP, Crowd, 등 계정 통합 관리 시스템과 연동하여 데이터를 로드합니다.
+
+
연동 계정 관리 시스템은 로드된 데이터를 기계적으로 저장하거나 갱신할 뿐, 사용자에 의한 변경은 처리하지 않습니다.
+
+
+
+
2.2.1.5 사용자별 맞춤 시스템
+
+
사용자별 맞춤 시스템은 사용자 권한별 대시보드 시스템을 제공합니다.
+
+
사용자별 맞춤 시스템은 미리정의된 anonymous, user, admin을 구분하여 대시보드를 제공합니다.
+
+
사용자별 맞춤 시스템은 anonymous 의 경우 동일한 하나의 대시보드를 통해 정보를 제공합니다.
+
+
사용자별 맞춤 시스템은 user의 경우 사용자가 정의한 하위 권한 체계 만큼 대시보드를 생성하여 구성할 수 있습니다.
+
+
사용자별 맞춤 시스템은 admin 을 위한 시스템 관리 대시보드를 제공합니다.
+
+
+
2.2.2 제품(서비스) 관리 시스템 모듈 동작 방식
+
2.2.2.1 제품(서비스) 관리 시스템
+
+
제품(서비스) 관리 시스템은 제품(서비스)를 등록하고 관리 할 수 있는 시스템을 제공합니다.
+
+
제품(서비스) 관리 시스템은 사용자에 의해 Tree 로 관리됩니다 ( CRUD ) 및 복사 기능 제공을 합니다.
+
+
+
+
2.2.2.2 제품(서비스) ALM 간 Mapping 시스템
+
+
제품(서비스) ALM Mapping 시스템은 제품(서비스)에서 사용할 Jira 의 정보를 관리 할 수 있습니다.
+
+
제품(서비스) ALM Mapping 시스템은 제품(서비스)와 Jira 간 Project mapping 을 관리 할 수 있습니다.
+
+
제품(서비스) ALM Mapping 시스템은 Jira 정보 적용시 사용할 계정 정보를 관리 할 수 있습니다.
+
+
제품(서비스) ALM Mapping 시스템은 연동된 Jira 정보로부터 연계된 VCS, Build 등의 시스템 정보를 관리 할 수 있습니다.
+
+
제품(서비스) ALM Mapping 시스템은 Issue track, wiki, vsc, analysis, build, deploy 의 연계 시스템을 관리 할 수
+ 있습니다. 그러므로 제품(서비스) 별로 연관된 시스템의 정보를 수집하여 통계-수치화 할 수 있습니다.
+
+
제품(서비스) 별로 등록된 요구사항에 대한 필터를 적용하여 정보를 수집- 통계 및 수치화가 가능합니다.
+
+
+
2.2.2.3 제품(서비스) - 요구사항 - Jira Issue 맵핑 관리 시스템
+
+
요구사항 Jira Isuue 맵핑 관리 시스템은 요구사항 이슈를 연계된 Jira project 에 등록하고 관리하는 시스템입니다.
+
+
요구사항 Jira Isuue 맵핑 관리 시스템은 연계된 Jira project 에 요구사항 타입의 이슈를 추가합니다.
+
+
요구사항 Jira Isuue 맵핑 관리 시스템은 이후 요구사항 승인 및 연동 시스템에 의하여 처리 액션을 실행합니다.
+
+
+
2.2.2.4 제품(서비스) - 요구사항 - Confluence 맵핑 관리 시스템
+
+
요구사항 Confluence 맵핑 관리 시스템은 요구사항 이슈가 관리될 때, 등록된 confluence 의 space에 template 문서를 등록하고 연계합니다.
+
+
요구사항 Confluence 맵핑 관리 시스템은 template 문서를 등록하고 연계시 요구사항 승인 및 연동 시스템의해 처리됩니다.
+
+
+
2.2.2.5 제품(서비스) - 요구사항 - Bitbucket 맵핑 관리 시스템
+
+
요구사항 BitBucket 맵핑 관리 시스템은 Jira 에 등록된 VCS의 정보를 로드하여 표시합니다.
+
+
요구사항 BitBucket 맵핑 관리 시스템은 VCS 정보를 로드할 때 요구사항 승인 및 연동 시스템처리기를 통해 로드합니다.
+
+
+
2.2.2.6 제품(서비스) - 요구사항 - Sonarqube 맵핑 관리 시스템
+
+
요구사항 Sonarqube 맵핑 관리 시스템은 Jira 에 등록된 CodeQulity System의 정보를 로드하여 표시합니다.
+
+
요구사항 Sonarqube 맵핑 관리 시스템은 CodeQulity 정보를 로드할 때 요구사항 승인 및 연동 시스템처리기를 통해 로드 합니다.
+
+
+
2.2.2.7 제품(서비스) - 요구사항 - CI/CD 맵핑 관리 시스템
+
+
요구사항 Sonarqube 맵핑 관리 시스템은 Jira 에 등록된 CICD System의 정보를 로드하여 표시합니다.
+
+
요구사항 Sonarqube 맵핑 관리 시스템은 CICD정보를 로드할 때 요구사항 승인 및 연동 시스템처리기를 통해 로드합니다.
+
+
+
2.2.3 요구사항 관리 시스템
+
+
2.2.3.1 요구사항 등록 시스템
+
+
요구사항 등록 시스템은 제품(서비스) 하위에서 관리할 요구사항 타입의 이슈를 동록 할 수 있도록 지원합니다.
+
+
요구사항 등록 시스템은 제품(서비스) 와 연계된 Jira Project에 등록한 요구사항이 자동으로 등록됩니다.
+
+
+
2.2.3.2 요구사항 리뷰 시스템
+
+
요구사항 리뷰 시스템은 제품(서비스)에 등록된 요구사항에 대하여 리뷰어를 등록할 수 있도록 합니다.
+
+
요구사항 리뷰 시스템은 등록된 리뷰어의 리뷰가 완료됬을 때, 연계된 Jira Project 에 요구사항이 등록, 갱신, 삭제 처리 됩니다.
+
+
+
2.2.3.3 요구사항 권한 관리 시스템
+
+
요구사항 권한 관리 시스템은 조회의 경우 제품(서비스)에 등록된 사용자는 모두 가능합니다.
+
+
요구사항 권한 관리 시스템은 등록의 경우 제품(서비스)에 등록 권한을 가진 사용자만이 새로운 요구사항을 등록할 수 있습니다.
+
+
요구사항 권한 관리 시스템은 갱신의 경우 등록 권한을 가진 사용자는 갱신의 권한을 가집니다. ( 등록 = 갱신 )
+
+
요구사항 권한 관리 시스템은 갱신의 경우 등록된 리뷰어의 일정수준 ( 80% ) 이상의 승인을 받을 경우 가능합니다.
+
+
요구사항 권한 관리 시스템은 삭제의 경우 삭제 권한을 가진 사용자만 이 요구사항을 삭제 처리 할 수 있습니다.
+
+
요구사항 권한 관리 시스템은 삭제 처리의 경우 등록된 리뷰어의 과반 (50%)의 승인을 얻을 경우 가능합니다.
+
+
+
2.2.3.4 요구사항 버전 관리 시스템
+
+
요구사항 버전 관리 시스템은 제품(서비스) 관리 시스템의 하위에 요구사항의 집합을 적용할 버전을 관리하는 시스템입니다.
+
+
요구사항 버전 관리 시스템은 제품(서비스) 관리 시스템에 연계된 Jira Project 에 의하여 버전을 등록할 수 있습니다.
+
+
요구사항 버전 관리 시스템은 요구사항 관리 시스템에 의해 승인된 요구사항을 Version 에 맵핑 할 수 있습니다.
+
+
+
2.2.3.5 요구사항 승인 및 연동 시스템 처리
+
+
요구사항 승인 및 연동 시스템은 요구사항 권한 관리 시스템의 변동이 생겼을 경우 처리 하는 시스템입니다.
+
+
요구사항 승인 및 연동 시스템은 변동된 요구사항의 이슈 처리를 연계된 Jira Project 에 반영하고 반영된 결과를 리뷰어를 포함하여 알립 니다.
+
+
+
2.2.3.6 모니터링 시스템
+
+
2.2.6.1 Server 모니터링 시스템
+
+
MetricBeat 를 활용한 데이터 수집 및 모니터링
+
+
+
2.2.6.2 Application 성능 모니터링 시스템
+
+
Elastic APM 과 Scouter를 활용한 성능 데이터 수집 및 모니터링
+
+
+
2.2.6.3 Database 모니터링 시스템
+
+
Packetbeat 를 활용한 SQL 데이터 수집 및 모니터링
+
+
+
2.2.6.4 연동 시스템 모니터링
+
+
Heartbeat 를 활용한 연동시스템 상태 데이터 수집 및 모니터링
+
+
+
2.2.6.5 클라이언트 모니터링 시스템
+
+
+
Filebeat 를 활용한 Log 분석 시스템을 통하여 클라이언트 데이터 수집 및 모니터링
+
+
+
2.2.6.6 장애 탐지 알람 시스템
+
+
+
상기 데이터 수집의 결과 데이터를 InfluxDB ( 시계열 데이터베이스 )에 누적하여, 임계 수치를 적용, 알람 시스템을 통한 상황 전파를 담당하는 시스템 입니다
+
+
+
+
+
+
+
+
+
3. 인터페이스 요구사항
+
3.1 사용자 인터페이스
+
모듈별 사용자 UI 및 스토리보드 형식의 와이어프레임 기제
+
+
+
+
+
모듈 명
+
와이어 프레임 링크 ( 현재 링크 없음)
+
+
+
+
+
인증 시스템
+
+ 인증 시스템 - UI/UX Page 정의 리스트
+
+
+
+
분류 시스템
+
+
+ 분류 시스템 - UI/UX Page 정의 리스트
+
+
+
+
요구사항 관리 시스템
+
+
+ 요구사항 관리 시스템 - UI/UX Page 정의 리스트
+
+
+
+
요구사항 맵핑 시스템 ( 연동 시스템 포함 )
+
+
+ 요구사항 지원 시스템 - UI/UX Page 정의 리스트
+
+
+
+
프로젝트 분석 시스템 ( 알람 시스템 포함 )
+
+
+ 프로젝트 분석 시스템 - UI/UX Page 정의 리스트
+
+
+
+
모니터링 시스템
+
+
+ 모니터링 시스템 - UI/UX Page 정의 리스트
+
+
+
+
+
+
+
3.2 시스템 인터페이스
+
+
+
시스템 인터페이스는 시스템 아키텍쳐로 갈음하도록 합니다.
+ 비지니스 아키텍쳐로 목적 시스템을 구성한 후 → 시스템 구성도로 목적 시스템 세부 컴포넌트를 구성할 수 있다.
+ 이 세부 컴포넌트를 기준으로 시스템 아키텍쳐를 표기하는 input으로 활용하여 시스템간 인터페이스 내용을 표기하기 때문입니다.
+
+
+
+
+
4. 제품(서비스) 기능 요구사항
+
4.1 A-RMS → Auth 기능 요구사항
+
* 본 프로젝트 범주는 A-RMS의 인증과 인가에 대한 내용을 다룹니다
+
+
+
+
+
Requirement
+
Summarize Function
+
Middle Function
+
Detail function
+
+
+
+
+
인증 시스템 REQ ID : AUTH
+
통합 계정 관리 시스템 REQ ID : SUMACCOUNT
+
통합 로그인 사용자 검색 시스템 REQ ID : TOTAL
+
+ User Account Search Service
+ - 사용자 계정 정보를 검색하고
+ - 사용자 세부정보를 확인할 수 있다.
+
+
+
+
계정 그룹 관리 시스템 ( CRUD )
+ REQ ID : ACCOUNT GROUP
+
Group Manager
+ - 사용자 계정을 그룹화 하기 위하여,
+ - 그룹을 정의 설정, 관리 할 수 있다. Group - User Mapper
+ - 사용자 계정을 그룹화 하고,
+ - 그룹을 대상으로 권한을 관리 할 수 있다.
+
+
+
통합 권한 관리 시스템
+ REQ ID : SUMPERMISSON
+
권한 관리 시스템 ( CRUD )
+ REQ ID : GRANT
+
Global - Permission Mapper
+ - 그룹을 대상으로 권한을 관리한다.
+ - 권한은 admin, user, anonymous 로 구분 Permission Manager
+ - 권한을 정의하고 관리한다.
+ - 권한관리는 admin user 만이 가능하다. Group - Permission Mapper
+ - 그룹을 대상으로 권한을 관리한다.
+ User - Permission Mapper
+ - 계정을 대상으로 권한을 관리한다.
+
+
+
+
로컬 계정 관리 시스템
+ REQ ID : LOCALACCOUNT
+
로컬 로그인 계정 관리 ( CRUD )
+ REQ ID : LOCAL
+
+
Local Account Manager
+ - 로컬 계정을 관리한다. ( CRUD )
+ - Global 권한과 Permission 권한을 관리
+
+
+
연동 계정 관리 시스템
+ REQ ID : INTEGACCOUNT
+
User Directories 시스템 REQ ID : DIRECTORY
+
+
OAuth Manager
+ - OAuth를 지원하는 시스템과 연결
+ - JIRA, Crowd, etc
+ LDAP Join Manager
+ - LDAP을 연결하고 계정 정보를 연결
+
+
+
+
사용자별 맞춤형 REQ ID : FORUSER
+
개발자 및 프로젝트 진행 담당자
+ REQ ID : DEV
+
+
+
Project Collected Data Viewer
+ - 프로젝트 진행 담당자 관련 데이터 뷰어 - DashBoard Viewer
+