04. 소프트웨어 시스템 컨텍스트&이해관계자 명지대학교 융합소프트웨어학부 김정호 교수
Retrospect 소프트웨어는 생각이다. 따라서 소프트웨어를 잘 만들기 위해서는 소프트웨어는 생각을 도와주는 생각들의 모임이다. 생각을 공유해야 한다. 따라서 소프트웨어를 잘 만들기 위해서는 모델링을 잘해야 한다. 생각을 표현하는 모델링 언어(UML)에 대해서 알아야 한다. 프로세스를 잡아야 한다. 이해관계자가 참여하는 에자일 프로세스를 이해하라.
목 차 컨텍스트&이해관계자 컨텍스트 다이어그램 예제 이해관계자 이해관계자 예시 이해관계자와 관심사항 관심사항 예시
시스템과 컨텍스트 다이어그램 정의 목적 시스템의 컨텍스트를 파악하는 다이어그램으로 구축할 시스템 밖에는 무엇이 있으며, 시스템과 상호작용하는 외부 실체로는 어떤 것이 있는지 보여준다. 목적 시스템과 상호작용하는 외부의 객체를 파악한다. 시스템의 범위를 확립한다. 시스템의 내부에 대해서는 파악하려는 것은 아니다.
컨텍스트 다이어그램 예제 공공 기관 - Frontend Description 사용자는 크게 중앙예방정보시스템을 사용하는 사용자와, 시도예방정보시스템을 사용하는 사용자로 나뉜다. 시도사용자는 PC 브라우저를 통해 접근할 수 있고, MDT를 통해서도 동일한 시스템을 접근할 수 있다. 각 시스템의 내부 구성은 J2EE기반의 웹 어플리케이션이다. 이 두 시스템은 내부적으로 데이터 연계가 이루어 진다. 이 어플리케이션을 사용하기 위해서 외부의 통합된 SSO인증을 거쳐 로그인 한다. 이를 위한 Data의 송수신이 외부시스템과 연계된다.
컨텍스트 다이어그램 예제 은행 - Backend Description 개발할 시스템과 연계되는 외부 시스템은 다음과 그림과 같다. BizMaster(TMAX EAI 솔루션)을 중심으로 연동하며 연동된 데이터는 기간계와 정보계로 나뉘어 사용된다. 아울러 연동하는 외부 시스템의 환경(OS, AP, Adapter, 연계 방식 등)조건이 동일해야 한다.
컨텍스트 다이어그램 예제 임베디드 - UML Description 시스템의 사용자와 외부 연동 시스템으로 probe hardware와 network이 있다. 사용자는 탐사 하드웨어에서 보내온 이미지를 화면을 통해 볼 수 있다. 탐사 하드웨어에서 획득한 여러 이미지는 획득 조절 프로시저를 통해 시스템으로 가져온다. 획득한 이미지는 네트워크를 통해 외부로 전송된다.
컨텍스트 다이어그램 예제 The NavClus System Eclipse IDE를 통해 여러 명의 개발자가 자신들의 인터랙션 히스토리를 통해 작업과 관련한 코드를 공유할 수 있도록 하는 코드 추천 시스템
시스템과 이해관계자 시스템은 하나 이상의 이해관계자를 갖고 있다. 소프트웨어 시스템의 이해관계자 분류 * Reperenced by Sungwon Choi, Myoungji Univ.
이해관계자 예시 – Service 분야 중분류 소분류 클래스 실례 (개발 범위) 획득자 비즈니스범위 비즈니스 관리자 프로젝트 발주사 기획, 마케팅 팀원, 발주사 임원, 스폰서 프로젝트범위 프로젝트관리자 전산실 담당 팀장, 프로젝트 발주사 PM, 프로젝트 발주사 PMO 시스템범위 엔지니어 전산실 시스템 담당 팀원 공급자 비즈니스관리자 영업, 법무, 사장 PM, PMO, QA 아키텍트, 개발자, 분석가, 테스터, 인프라 엔지니어 (서비스 범위) 사용자 비지니스 사용자 증권사 고객 증권사 창구 직원 관리범위 유지보수자 시스템관리자, 유지보수자 시스템 운용자 이해관계자의 분류(Class)는 실제 적용하는 S/W 시스템의 개발 유형에 따라 여러 형태로 실체화(Instantiation) 될 수 있다. 구체적 환경에 따라 이해 당사자의 구체적인 역할이 틀리기 때문이다. 예를 들어 수주 기반(IT Service)의 소프트웨어 시스템과 제품(Product) 기반의 소프트웨어 시스템에서 동일한 이해 당사자 타입이 현실적으로 다른 역할을 가질 수 있다. 수주 기반 소프트웨어 시스템의 개발 에서는 특정 목적의 획득자가 구체적인 요구사항을 기반으로 공급자에게 시스템 개발을 요구하지만, 제품 기반 소프트웨어 시스템의 개발에서는 불특정 다수를 위해 공급자가 정의하는 시스템을 개발 하기 때문이다. 예를 들어 수주기반 소프트웨어 시스템 개발의 경우 획득자 환경의 비즈니스 관리자는 발주업체의 비즈니스 관리자를 말하며, 제품 기반의 소프트웨어 시스템 개발의 경우 획득자 환경의 비즈니스 관리자는 해당 업체의 마케팅 혹은 기획 부서가 된다. * Reperenced by Sungwon Choi, Myoungji Univ.
이해관계자 예시 – Product 분야 중분류 소분류 클래스 실례 개발 범위 (획득자) 비즈니스범위 비즈니스 관리자 제품(서비스) 기획자, 마케팅 팀원, 영업사원, 임원, 스폰서 프로젝트범위 프로젝트관리자 N/A (해당사항 없음) 시스템범위 엔지니어 (공급자) 비즈니스관리자 PM, PMO, QA 아키텍트, 개발자, 분석가, 테스터, 인프라 엔지니어 서비스 범위 (사용자) 비즈니스범위 비지니스 사용자 제품(서비스) 사용자 시스템범위 사용자 고객센터 직원 (공급자) 관리범위 유지보수자 시스템관리자, 유지보수자 시스템 운용자 * Reperenced by Sungwon Choi, Myoungji Univ.
이해관계자와 관심사항 관심 사항(Concern) 이해관계자가 시스템에게 갖는 관심사항 performance, reliability, security, evolvability, distribution, … 아키텍트는 이해관계자 별로 관심사를 정의한다. 이를 기반으로 아키텍처를 정의하기 위한 요구사항을 정리한다. 이해관계자들의 관심사들은 빠짐없이 정확하게 기록되어야 한다. * Reperenced by Sungwon Choi, Myoungji Univ.
관심사항 예시 클래스 실례 관심사항 비즈니스관리자 기획, 마케팅 비용, 시간, 비즈니스 환경, 시스템 설치용이성(다양한 플랫폼에 포팅 가능한지?) 프로젝트관리자 전산실 비용, 프로젝트 완료일, 빈번한 변경이 없어야 함 엔지니어 실무담당자 기능, 시스템 안정성 영업, 법무 비용, 개발 기간, 깔끔한 제품 특징, 경쟁 제품과의 차별성 비용, 개발자 유지 아키텍트, 개발자 기능, 시스템 안정, 유지보수, 시스템 확장 비즈니스 사용자 비즈니스 서비스 사용자 사용이 용이한가?, 시스템 성능, 기능, 보안, 시스템 안정성, 사용자 업무 담당자 기능 유지보수자 시스템관리자 시스템 안정성, 유지보수성, 확장성 시스템 운영자 유지보수자, 운용자 유지보수성, 변경용이성, 쉬운 시스템 모니터링 * Reperenced by Sungwon Choi, Myoungji Univ.
Question ?