1. 소프트웨어 설계 - 인터페이스 설계(시스템 인터페이스 요구사항 분석 ~ 미들웨어 솔루션 명세)
29. 시스템 인터페이스 요구사항 분석
1) 시스템 인터페이스
: 독립적인 시스템들끼리 서로 연동하여 상호작용하기 위한 접속 방법이나 규칙
- 시스템 인터페이스 요구사항
: 개발할 시스템과 외부 시스템을 연동하는데 필요한 시스템 인터페이스에 대한 요구사항
- 시스템 인터페이스 요구사항 명세서에 포함되는 항목
- 인터페이스 이름
- 연계 대상 시스템과 연계 범위 및 내용
- 송신 데이터
- 인터페이스 주기
- 기타 고려사항
- etc
2) 시스템 인터페이스 요구사항 분석
: 요구사항 명세서의 요구사항들을 기능/비기능 요구사항으로 분류(1) 및 조직화하여 명세(2)하고 이를 이해관계자에게 전달(3)하는 일련의 과정
- 소프트웨어 요구사항 분석 기법(요구사항 분류, 개념 모델링, 요구사항 할당, 요구사항 협성, 정형 분석, etc.) 활용
- 요구사항의 분해가 필요한 경우 적절히 세분화
- 분석 시 누락되었거나 추가할 요구사항, 제한조건 첨가
- 요구사항 별 우선순위 부여
- 시스템 인터페이스 요구사항 분석 절차
- 소프트웨어 요구사항 목록에서 시스템 인터페이스 관련 요구사항을 선별, 시스템 인터페이스 요구사항 목록 작성
- 시스템 인터페이스 요구사항과 관련된 자료 준비
- 요구사항 명세서를 확인하여 기능적/비기능적 요구사항 분류
- 내용 추가 및 수정
- 이해관계자들에게 전달 및 검토
30. 인터페이스 요구사항 검증
: 인터페이스 설계 및 구현 전에 요구사항을 검토하고 개발 범위의 기준인 베이스라인을 설정하는 것
요구사항 검토 계획 수립 | ▶ | 검토 및 오류 수정 | ▶ | 베이스 라인 설정 |
1) 인터페이스 요구사항 검토 계획 수립
: 프로젝트 이해관계자들이 다음의 검토 계획의 세부 사항 수립
- 검토 기준 및 방법
- 요구사항 검토 참여자 (프로젝트 관리자, 인터페이스 분석가, 소프트웨어 아키텍트, 시스템 사용자, etc.)
- 검토 체크리스트 (완전성, 일관성, 명확성, etc.)
- 검토에 필요한 관련 자료
- 검토 일정
※ 인터페이스 요구사항 검증의 주요 항목
- 완전성 (Completeness) : 사용자의 모든 요구사항이 완전히 반영되었는가?
- 일관성 (Consistency) : 요구사항의 모순이나 충돌 없이 일관성을 유지하는가?
- 명확성 (Umambiguity) : 요구사항이 이해하기 쉽고 명확한가?
- 기능성 (Functionality) : 요구사항이 '어떻게' 보다 '무엇을'에 중점을 두는가?
- 검증 가능성 (Verifiability) : 요구사항을 검증할 수 있는가?
- 추적 가능성 (Traceability) : 요구사항 명세서와 설계서를 추적할 수 있는가?
- 변경 용이성 (Easily Changeability) : 요구사항 명세서의 변경이 쉬운가?
2) 인터페이스 요구사항 검토 및 오류 수정
: 검토 체크리스트 항목에 따라 인터페이스 요구사항 명세서를 검토하고 오류 목록과 시정 조치서를 작성하여 오류 수정
3) 인터페이스 요구사항 베이스 라인 설정
: 검토를 통과해 검증된 인터페이스 요구사항을 주요 의사 결정자에게 공식적으로 승인 받고 명세서의 베이스 라인 설정
4) 요구사항 검증 방법
1. 요구사항 검토 (Requirements Review)
: 요구사항 명세서의 오류나 결함 여부를 검토 담당자들이 수작업으로 분석하는 방법
- 동료 검토 (Peer Review) : 명세서 작성자가 명세서 내용을 설명하고 동료들이 들으면서 결함 발견
- 워크스루 (Walk Through) : 검토 회의 전 요구사항 명세서를 배포하여 사전 검토 후 짧은 검토회의를 거치는 방법
- 인스펙션 (Inspection) : 명세서 작성자를 제외한 다른 검토 전문가들이 결함 발견
2. 프로토타이핑 (Prototyping)
: 실제 개발될 소프트웨어에 대한 프로토타입을 만들어 최종 결과물을 예측하는 방법
3. 테스트 설계
: 테스트 케이스를 생성하여 요구사항이 현실적으로 테스트 가능한지 검토하는 방법
4. CASE 자동화 도구 활용
: 일관성 분석을 통해 요구사항을 검토하는 방법
31. 인터페이스 시스템 식별
기반 자료 | 식별 대상 | |
개발 시스템 식별 | 인터페이스 관련 자료 | - 개발할 시스템의 상세 식별 정보 (시스템 이름 및 설명, 시스템 레벨, 상위 시스템, etc.) |
내외부 시스템 식별 | 인터페이스 관련 자료 | - 개발할 시스템과 연계할 내외부 시스템의 상세 식별 정보 (시스템 이름 및 설명, 시스템 레벨, 상위 시스템, etc.) |
내외부 시스템 환경 및 관리 주체 식별 |
인터페이스 관련 자료 | - 연계할 시스템 접속에 필요한 시스템 운용 환경 (필요 IP 또는 URL, Port 정보, etc.) - 하드웨어 실제 관리 담당자인 관리 주체 식별 |
내외부 시스템 네트워크 연결 정보 식별 |
인터페이스 관련 자료 | - 시스템 연계에 필요한 네트워크 연결 정보 (시스템 로그인 정보 및 DB 정보) |
인터페이스 식별 | 인터페이스 요구사항 명세서 인터페이스 요구사항 목록 |
- 개발할 시스템과 연계할 내외부 시스템 간의 인터페이스 식별 (인터페이스 ID 및 이름, 인터페이스 설명, 관련 요구사항, etc.) |
인터페이스 시스템 식별 | 인터페이스 관련 자료 | - 식별한 인터페이스 별로 인터페이스에 참여하는 시스템 (인터페이스 ID 및 이름, 대외/대내 구분, 송신 시스템, 수신 시스템) |
32. 송수신 데이터 식별
1) 식별 대상 데이터
: 송수신 시스템 사이에서 교환되는 데이터로, 규격화된 표준 형식에 따라 전송됨
- 교환되는 식별 대상 데이터의 종류
- 인터페이스 표준 항목 : 송수신 시스템을 연계하는데 표준적으로 필요한 데이터
- 시스템 공통부 : 시스템 간 연동에 필요한 공통 정보 (인터페이스 ID, 전송 시스템 정보, 서비스 코드, 응답 결과 및 장애에 대한 정보)
- 거래 공통부 : 연동 후 실제 송수신되는 데이터를 처리하는데 필요한 데이터 (직원, 승인자, 기기, 매체 등에 대한 정보)
- 송수신 데이터 항목 : 송 수신 시스템의 업무 수행에 사용되는 데이터
- 공통 코드 : 시스템들 간에 공통적으로 사용하는 코드 (상태 및 오류 코드 등의 동일한 항목에 대한 코드값 및 코드 명, 코드 설명)
2) 정보 흐름 식별
: 개발할 시스템과 내외부 시스템 사이에서 전송되는 정보들의 방향성을 식별하는 것
- 개발할 시스템과 내외부 시스템 사이의 인터페이스 목록을 확인해 정보 흐름 식별
- 식별한 정보 흐름을 기반으로 교환되는 주요 데이터 항목이나 정보 그룹 도출
3) 송수신 데이터 식별
: 개발할 시스템과 내외부 시스템 간 정보 흐름과 데이터베이스 산출물을 기반으로 송수신 데이터 식별
- 인터페이스 표준 항목 및 송 수신 데이터 항목 (인터페이스 ID 및 이름, 정보 그룹, 관련 DB, 데이터의 각 항목)
- 코드성 데이터 항목 (코드, 코드 이름, 코드 설명)
- 송신 시스템과 수신 시스템이 사용하는 코드 정보가 동일하다면 공통 코드 정보 확보, 다르다면 매핑하여 분류
33. 인터페이스 방법 명세화
: 내외부 시스템이 연계하여 작동할 때 인터페이스 별 인터페이스 방법에 대한 상세 내용을 문서화하는 것
1) 시스템 연계 기술
: 개발할 시스템과 내외부 시스템을 연계할 때 사용되는 기술
- DB Link : DB에서 제공하는 DB Link 객체 이용
- API/Open API (Application Programming Interface)
- 연계 솔루션 : EAI (Enterprise Application Integration) 서버와 송수신 시스템의 클라이언트 이용
- 소켓 (Socket) : 서버가 통신을 위한 소켓을 생성하여 포트를 할당해 클라이언트와 연결
- Web Service : 웹 서비스의 WSDL, UDDI, SOAP 프로토콜 이용
2) 인터페이스 통신 유형
: 개발할 시스템과 내외부 시스템 사이에 데이터를 주고받는 형태
- 단방향 : 시스템에서 거래를 요청만 하고 응답은 하지 않음
- 동기 : 시스템에서 거래를 요청하고 응답이 올 때까지 대기 (Request-Reply)
- 비동기 : 시스템에서 거래 요청 후 다른 작업을 수행하다가 응답이 오면 처리 (Send-Receive-Acknowledge)
3) 인터페이스 처리 유형
: 송수신 데이터를 어떤 형태로 처리할 것인지에 대한 방식. 업무의 성격과 데이터 전송량을 고려하여 결정
- 실시간 처리 방식 : 사용자가 요청한 내용을 즉시 처리
- 지연 처리 방식 : 요청 내용을 매건 즉시 처리할 경우 비용이 큰 경우 사용하는 방식
- 배치 방식 (일괄 처리) : 데이터를 일정 기간 모아두었다가 한번에 처리, 대량의 데이터 처리에 이용
4) 인터페이스 발생 주기
: 개발할 시스템과 내외부 시스템 사이에 인터페이스를 사용하여 데이터를 주고받는 주기. 업무의 성격과 데이터 전송량을 고려하여 결정
5) 송수신 방법 명세화
: 개발할 시스템과 내외부 시스템 사이의 각각의 인터페이스에 대해 송수신 방법 정의 및 명세화
- 아키텍처 정의서를 기반으로 업무 및 데이터의 성격, 데이터 발생 건수, 기술 구조, 성능 등을 고려
- 참여하는 송신 시스템과 수신 시스템
- 연계 방식, 통신 유형, 처리 유형, 인터페이스 발생 주기, etc.
6) 송수신 데이터 명세화
: 인터페이스 목록의 각각의 인터페이스에 대해 송수신 데이터에 대한 명세 작성
7) 오류 식별 및 처리 방안 명세화
: 인터페이스 목록의 각각의 인터페이스에 대해 발생가능한 오류 식별 및 오류 처리 방안에 대한 명세 작성
- 시스템 또는 전송 오류, 예외 상황 등 다양한 오류사항을 식별하고 분류
- 식별한 오류상황에 대해 오류 코드, 오류 메시지, 오류에 대한 설명, 해결 방법 등을 명세화
34. 시스템 인터페이스 설계서
: 시스템의 인터페이스 현황을 확인하기 위해 인터페이스 목록과 각 인터페이스의 상세 데이터 명세를 정의한 문서
- 시스템 인터페이스 목록과 시스템 인터페이스 정의서로 구성
- 설계서 작성 후에는 시스템 인터페이스 정의서와 비교하여 누락된 부분 추가 및 보완
- 설계서는 내외부 모듈 간 공통적으로 제공되는 기능과 인터페이스 확인에 사용됨
1) 시스템 인터페이스 목록
: 업무 시스템과 내외부 시스템 간 데이터 전달에 사용하는 인터페이스의 목록
- 연계 업무, 연계에 참여하는 송신 시스템과 수신 시스템의 정보
- 연계 방식, 통신 유형, 처리 형태, 연계 주기, etc.
2) 시스템 인터페이스 정의서
: 인터페이스 별로 시스템 간 연계를 위해 필요한 데이터항목 및 구현 요건에 대한 기술
- 인터페이스 정보 (인터페이스 ID 및 이름, 연계 방식, 통신 유형, 처리 형태, 연계 주기, etc.)
- 인터페이스 송수신 데이터 명세를 참고하여 데이터에 대한 상세정보 (데이터 저장소, 데이터의 속성, etc.)
- 코드 매핑 규칙 작성
35. 미들웨어
: 분산 컴퓨팅 환경에서 서로 다른 기종 간의 하드웨어, 프로토콜, 통신 환경 등을 연결하여 원만한 통신이 이루어지도록 서비스를 제공하는 소프트웨어 (Middle + Software)
1) 미들웨어의 종류
1. DB (Database)
: 클라이언트와 원격의 데이터베이스를 연결하기 위해 데이터베이스 벤더에서 제공하는 미들웨어
- 2-Tier 아키텍처 : DB를 사용하여 구축된 시스템
- ex) ODBC(Microsoft), IDAPI(Borland), Glue(Oracle)
2. RPC (Remote Procedure Call)
: 응용 프로그램의 프로시저를 사용해 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어
- ex) Entera(eCube), ONC/RPC(OSF)
3. MOM (Message Oriented Middleware)
: 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어
- 다른 기종의 분산 데이터 시스템 간 데이터 동기를 위해 주로 사용
- ex) MQ(IBM), Message Q(Oracle), JMS(JCP)
4. TP-Monitor (Transaction Processing Monitor)
: 온라인 트랜잭션 업무에서 트랜잭션을 처리하고 감시하는 미들웨어
- 사용자 수가 증가해도 빠른 응답 속도를 유지해야 하는 업무에 주로 사용
- ex) tuxedo(Oracle), tmax(Tmaxsoft)
5. ORB (Object Request Broker)
: 객체 지향 미들웨어, 네트워크에서 분산 프로그램 객체의 생성, 배포, 관리를 위한 규격인 CORBA 표준 스펙을 구현한 미들웨어
- ex) Orbix(Micro Focus), CORBA(OMG)
6. WAS (Web Application Server)
: 사용자의 요구에 따라 변하는 동적인 컨텐츠 처리를 위한 미들웨어
- 클라이언트-서버 환경보다는 웹 환경 구현에 이용
- ex) WebLogic(Oracle), WebSphere(IBM)
2) 미들웨어 솔루션 식별
: 개발 및 운영 환경에서 사용될 미들웨어 솔루션 확인 및 목록 작성
- 아키텍처 구성 정보와 구매가 진행 중인/구매 예정의 소프트 내역을 기반으로 미들웨어 솔루션 식별
- 식별된 미들웨어 솔루션에 대한 각 솔루션의 정보를 정리한 목록 작성 (솔루션 명 및 버전, 제조사, etc.)
3) 미들웨어 솔루션 명세서 작성
: 미들웨어 솔루션 목록의 솔루션 별로 관련 정보를 상세히 기술
- 솔루션의 설명 자료나 제품 안내서를 바탕으로 제품명 및 버전 정보, 사용 목적, 사용 환경, 특징 등을 검토
- 솔루션이 지원하는 시스템 범위, 정상적 서비스 제공을 위한 제약 사항 등을 검토
- 검토한 솔루션 정보를 바탕으로 명세서 작성