도서 개발 공부/정보 처리 기사 필기

1. 소프트웨어 설계 - 인터페이스 설계(시스템 인터페이스 요구사항 분석 ~ 미들웨어 솔루션 명세)

캐티시 2022. 3. 28. 21:11

29. 시스템 인터페이스 요구사항 분석

1) 시스템 인터페이스 

: 독립적인 시스템들끼리 서로 연동하여 상호작용하기 위한 접속 방법이나 규칙

 

- 시스템 인터페이스 요구사항

: 개발할 시스템과 외부 시스템을 연동하는데 필요한 시스템 인터페이스에 대한 요구사항

  • 시스템 인터페이스 요구사항 명세서에 포함되는 항목
    • 인터페이스 이름
    • 연계 대상 시스템과 연계 범위 및 내용
    • 송신 데이터
    • 인터페이스 주기
    • 기타 고려사항
    • etc

 

2) 시스템 인터페이스 요구사항 분석

: 요구사항 명세서의 요구사항들을 기능/비기능 요구사항으로 분류(1) 및 조직화하여 명세(2)하고 이를 이해관계자에게 전달(3)하는 일련의 과정

  • 소프트웨어 요구사항 분석 기법(요구사항 분류, 개념 모델링, 요구사항 할당, 요구사항 협성, 정형 분석, etc.) 활용
  • 요구사항의 분해가 필요한 경우 적절히 세분화
  • 분석 시 누락되었거나 추가할 요구사항, 제한조건 첨가
  • 요구사항 별 우선순위 부여

 

- 시스템 인터페이스 요구사항 분석 절차

  1. 소프트웨어 요구사항 목록에서 시스템 인터페이스 관련 요구사항을 선별, 시스템 인터페이스 요구사항 목록 작성
  2. 시스템 인터페이스 요구사항과 관련된 자료 준비
  3. 요구사항 명세서를 확인하여 기능적/비기능적 요구사항 분류
  4. 내용 추가 및 수정
  5. 이해관계자들에게 전달 및 검토

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)

: 클라이언트와 원격의 데이터베이스를 연결하기 위해 데이터베이스 벤더에서 제공하는 미들웨어

DB는 클라이언트가 원격의 데이터베이스에 접근하여 데이터를 이용할 수 있도록 해준다.

  • 2-Tier 아키텍처 : DB를 사용하여 구축된 시스템
  • ex) ODBC(Microsoft), IDAPI(Borland), Glue(Oracle)

 

2. RPC (Remote Procedure Call)

: 응용 프로그램의 프로시저를 사용해 원격 프로시저를 로컬 프로시저처럼 호출하는 방식의 미들웨어

RPC 메커니즘의 구현

  • ex) Entera(eCube), ONC/RPC(OSF)

 

3. MOM (Message Oriented Middleware)

: 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어

MOM 방식의 미들웨어

  • 다른 기종의 분산 데이터 시스템 간 데이터 동기를 위해 주로 사용
  • ex) MQ(IBM), Message Q(Oracle), JMS(JCP)

 

4. TP-Monitor (Transaction Processing Monitor)

: 온라인 트랜잭션 업무에서 트랜잭션을 처리하고 감시하는 미들웨어

분산 시스템에서의 TP-Monitor

  • 사용자 수가 증가해도 빠른 응답 속도를 유지해야 하는 업무에 주로 사용
  • ex) tuxedo(Oracle), tmax(Tmaxsoft)

 

5. ORB (Object Request Broker)

: 객체 지향 미들웨어, 네트워크에서 분산 프로그램 객체의 생성, 배포, 관리를 위한 규격인 CORBA 표준 스펙을 구현한 미들웨어

  • ex) Orbix(Micro Focus), CORBA(OMG)

 

6. WAS (Web Application Server)

: 사용자의 요구에 따라 변하는 동적인 컨텐츠 처리를 위한 미들웨어

정적인 컨텐츠를 처리하는 Web server와 동적인 컨텐츠를 처리하는 WAS의 차이

  • 클라이언트-서버 환경보다는 웹 환경 구현에 이용
  • ex) WebLogic(Oracle), WebSphere(IBM)

 

2) 미들웨어 솔루션 식별

: 개발 및 운영 환경에서 사용될 미들웨어 솔루션 확인 및 목록 작성

  • 아키텍처 구성 정보와 구매가 진행 중인/구매 예정의 소프트 내역을 기반으로 미들웨어 솔루션 식별
  • 식별된 미들웨어 솔루션에 대한 각 솔루션의 정보를 정리한 목록 작성 (솔루션 명 및 버전, 제조사, etc.)

 

3) 미들웨어 솔루션 명세서 작성

: 미들웨어 솔루션 목록의 솔루션 별로 관련 정보를 상세히 기술

  • 솔루션의 설명 자료나 제품 안내서를 바탕으로 제품명 및 버전 정보, 사용 목적, 사용 환경, 특징 등을 검토
  • 솔루션이 지원하는 시스템 범위, 정상적 서비스 제공을 위한 제약 사항 등을 검토
  • 검토한 솔루션 정보를 바탕으로 명세서 작성