-
Part1 - 애플리케이션 설계와 인터페이스 설계 [정보처리기사필기 요약]정보처리기사 2021. 2. 9. 17:05728x90반응형
1과목 - 4,5 chapter 정리
모듈
: 전체 프로그램을 기능 단위로 분해함, sw 성능을 향상, 시스템 디버깅, 시험, 통합 및 수정에 용이, 추상화되어재사용 및 공유 가능한 수준으로 만들어진 기능 단위
모듈의 기본 요소
: 입력 요소, 출력 요소, 기능 요소, 기관 요소, 내부 자료 요소
공유도(Fan-in)와 제어도(Fan-out)
공유도 : 상위 모듈의 수
제어도 : 하위 모듈의 수
모듈의 개수 및 비용 간 상관도
X- 모듈 개수, Y- 노력비용
모듈 통합 비용은 모듈 개수가 늘어나면 노력 비용이 감소
모듈 별 개발 비용은 모듈 개수가 늘어나면 노력 비용이 증가함
둘의 교차점이 최소 노력 비용
공통 모듈의 원칙
: 정확성, 명확성, 완전성, 일관성, 추적성
공통 모듈의 재사용 범위에 따른 분류
: 함수와 객체 재사용, 컴포넌트 재사용, 애플리케이션 재사용
소프트웨어 재사용의 2가지 기본 기술
-
생성 중심(모듈화) : 재사용 단위를 찾아 발전시키는 기술, 전자 칩 같은 부품을 찾음
-
합성 중심(모델화) : 모듈을 생산성 있게 조립하는 기술, 블록을 끼워 맞추는 방법
소프트웨어 재사용의 이점
: 개발 시간과 비용 단축, 프로젝트 실패 위험 축소, 개발 지식 공유, 품질 향상, 개발 생산성 향상
모듈 평가 기준
: 결합도(모듈간위 관계성)는 작게, 응집도(한 모듈 내에처리 요소들 간기능적 연관 정도)는 크게
소프트웨어 모듈 결합도
자료 결합도 - 스탬프 결합도 - 제어 결합도 - 외부 결합도 - 공통 결합도 - 내용 결합도
(결합도 낮음) (결합도 높음)
[자스제외공내]
자료 결합도 : call by value, 가장 좋은 결합도로 실인수와 가인수 번지가 독립적, 모델 간인터페이스로 전달되는 파라미터를 통해서만 상호 작용 일어남
스탬프 결합도 : 같은 레코드를 부분적으로 공유
제어 결합도 : 처리하는 방법을 제어 요소로 전달, 모듈 간제어 변수로 종속적인 관계를 가짐
외부 결합도 : 외부 변수에 의해 영향을 받는 두 모듈이 결합된 관계
공통 결합도 : 모듈이 다른 모듈의 내부 자료를 참조하는 형태, call by reference, 파라미터가 아닌 모듈 밖에 선언되어 있는 동일한 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호 작용
내용 결합도 : 모듈이 다른 모듈의 내부 기능을 참조하는 형태, 모듈 내부에 있는 변수나 기능을 다른 모듈에서 직접적으로 사용하는 경우
소프트웨어 모듈 응집도
우연적 - 논리적 - 시간적 - 절차적 - 통식적 - 순차적 - 기능적
(응집도 낮음) (응집도 높음)
[우논시절통순기]
우연적 응집도 : 모듈 내부의 루틴들이 뚜렷한 관계없이 묶인 경우, 처리상의 연관성이 없는 서로 다른 기능을 수행하는 응집도
논리적 응집도 : 모듈 내부의 루틴들이 같은 범주에 속하는 기능끼리 묶인 모듈
시간적 응집도 : 모듈 내부의 루틴들이 시간적으로 수행 시기가 같은 기능끼리 묶인 모듈
절차적 응집도 : 모듈 내부의 루틴들이 수행 시기가 순위가 있는 기능끼리 묶인 모듈
통신적 응집도 : 모듈 내부의 루틴들 중 작업 대상이 같은 기능끼리 묶인 모듈(동일 입출력을 사용)
순차적 응집도 : 모듈 내부의 루틴들이 이전의 명령어로부터 나온 출력 결과를 그다음 명령어의 입력 자료로 사용하는 응집도
기능적 응집도 : 모듈 내부가 하나의 단일 기능으로 존재하는 경우(프로그램 라이브러리같은 것)
설계 모델링
: 요구사항 분석 단계에서 정의한 필수 기능들을 구체적인 구현 방법으로 명시하는 단계
구조 모델링
: 소프트웨어 구성 요소들 사이의 구조적 관계에 대한 특성 모델링, 구성 요소들을 상호 연결 구조로 모델링, 구성 요소들은 유형, 인터페이스, 내부 설계 구조 형태별로 분류
행위 모델링
기능적 특성 모델링 : 입출력 데이터, 데이터 흐름, 데이터 변환, 데이터 저장
동적 특성 모델링 : 상태 전이, 데이터 흐름 경로, 사건 발생 순서, 실행 경로
구조 모델링 도구
-
N-S도표 : 순차, 선택, 반복으로 표현, 임의의 제어 이동이 어려움, 논리의 기술에 중점을 둠
-
HIPO 도표 : 분석 및 설계 도구, 입력, 처리, 출력으로 구성, 하향식 개발에 적합
-
Dijkstra 의 구조적 설계 방법론 : 순차, 선택, 반복으로만 이용, 단일 입출력 구조, 한정적 GOTO문을 사용, 검증이 용이, 유지보수 용이
설계 모델의 요소
<구조 모델>
정적 요소 : 구성요소의 유형, 유형 계통, 배열 결합 관계, 인터페이스, 상호 적용 패널
동적 요소 : 동적 생성 및 소멸, 동적 결합과 연결, 위치 이동, 복제
<행위 모델>
정적 요소 : 입출력 데이터, 입출력 매핑, 데이터 흐름 채널
동적 요소 : 제어, 상호 작용 프로토콜, 상호 작용 실행 경로, 상태 전이, 처리 순서, 입출력 순서, 알고리즘
시스템 아키텍처
: 하드웨어와 소프트웨어를 포함하는 시스템 전체에 대한 논리적인 기능 체계
시스템 아키텍처의 설계
: 시스템 아키텍처는 소프트웨어 아키텍처의 상위 설계, 소프트웨어 아키텍처 안에 세부적인 설계 작업을 수행하는 소프트웨어 상세 설계 존재
시스템 아키텍처 설계 : 전체적인 아키텍처 설게, 인터페이스 정의, 사용자 인터페이스 설계
소프트웨어 아키텍처 설계 : 모듈이나 컴포넌트 설계 수행
시스템 아키텍처 설게 : 소프트웨어 아키텍처의 결정 제약
소프트웨어 개발 순서
: 요구분석 - 아키텍처 - 설계 - 구현 - 시험
소프트 아키텍처 개념
: 소프트웨어의 골격이 되는 기본 구조, 설계 및 구현을 위한 구조적, 비구조적인 틀을 제공, 모듈이나 컴포넌트를 다룬다. 모듈 간의상호작용이나 인터페이스가 어떻게 상호 작용하는지 정의, 아키텍처는 시스템의 구조나 설계 모형을 재사용할 때 사용하지만 디자인 패턴은 구현 단계에서 해결 방안까지 제공함, 아키텍처는 모든 종류의 시스템에 적용, 디자인 패턴은 일관된 문제에 적용
아키텍처 드라이버
: 요구사항 중 아키텍처에 영향을 주는 요구사항
입력물 : 아키텍처 드라이버, 테스크(Task)에 의해 아키텍처 설계 진행
출력물 : 아키텍처 문서, 아키텍처 가이드라인
소프트웨어 아키텍처의 비즈니스 품질 속성
: 시장 적시성, 비용과 이익, 예상 시스템 수명, 목표 시장, 신규 발매 일정 또는 공개 일정, 기존 시스템과의 통합
소프트웨어 아키텍처 모델
1. 계층화 패턴
기능을 분리한 계층
: 표현 계층, 프로세스 계층, 비즈니스 논리 계층, 데이터 접근 계층
N- Tier 패턴
1-tier : 3가지 기능을 한 클라이언트 서버 컴퓨터에 설치, 운영
2-tier : DB는 서버 컴퓨터에 나머지 2개는 클라이언트 컴퓨터에
3-tier : 3개의 컴퓨터 시스템에 기능을 각각 분리시켜 운영하는 경우
2. 클라이언트/서버 패턴
: 분산 네트워크 시스템으로 하나의 서버와 여러 클라이언트로구성, (E-mail, 문서 공유,은행)
3. 마스터/슬레이브 패턴
4. 파이프-필터 패턴
: 데이터 스트림을 생성하고 처리하는 시스템에서 사용, 처리는 filter를 통해서 이루어짐, 처리되는 데이터 스트림은 파이프를 통해 흐른다. 파이프는 버퍼링 or 동기화 목적으로 사용될 수 있다.
5. 브로커 패턴
: 분산 시스템에서 사용, 원격 서비스 실행을 통해 상호 작용, 브로커는 컴포넌트 간의 통신을 조정하는 역할(웹 서버, 메시지 브로커 모듈 등)
6. 피어 투 피어 패턴
: 피어는 하나의 서버 or 클라이언트일 수 있다. 파일 공유 네트워크 등에 사용
7. 이벤트-버스 패턴
: 알림 서비스 등에 활용/ 이벤트 소스, 이벤트 리스너, 채널, 이벤트 버스로 구성
8. MVC 패턴
View - 사용자에게 데이터를 보여주는 부분
Controller - 데이터와 비즈니스 로직 사이에 상호 동작을 관리, 모델의 변화에 따른 적용 가능한 명령을 추가, 삭제, 수정 가능
Model - 응용 프로그램의 데이터를 나타냄, 인터페이스에 영향을 받지 않으며 요청한 데이터 처리 담당
9. 블랙보드 패턴
: 블랙보드, 지식 소스, 제어 컴포넌트로 구성
10. 인터프리터 패턴
: 특정 언어나 명령어를 해석하는 컴포넌트를 설계할 때 사용(SQL쿼리 언어 등)
코드의 3대 기능
: 식별 기능, 분류 기능, 배열 기능
코드의 설계 원칙
: 적은 자릿수, 고유성, 정렬과 분리의 편리성, 적응성 및 확장성, 기계 처리의 용이성, 표의성
코드의 특성
: 단순성, 표의성, 분류성, 용이성, 고유성,확장성, 영속성, 편리성
코드 설계 시 고려사항
: 정보 체계화의 유무 고려, 처리 효율성의 유무 고려, 호환성 유무 고려, 표준화 유무 고려, 갱신이 용이, 추가 시 확장이 용이, 1:1로 대응
코드화 방식 결정 시 고려사항
: 코드 체계, 체크 디저트 사용 여부, 코드 자릿수, 코드화 부여 요령
코드의 유형 분류
-
순차 코드 : 일정한 일련번호를 부여하는 방법
-
블록 코드 : 블록을 나누어서 일련번호를 부여하는 경우(구분 순차 코드)
-
10진 코드 : 코드 내용이 좌측과 우측으로 분리됨, 구분시 10개이상으로 분류할 수 없음
-
그룹 분류 코드 : 대분류, 중분류, 소분류로 구분해 놓고 분류별로 개개의 대상을 표현(컴퓨터 처리에 가장 적합한 방식)
-
연상 코드 : 대상 항목의 명칭 등을 코드에 반영하여 연상이 가능하도록 한 코드
-
표의 숫자 코드 : 대상의 항목의 중량, 면적, 용량 등 물리적 수치를 이용하여 만든 코드
-
합성 코드 : 2개 이상의 코드를 조합하여 만든 코드(블록코드 + 순차 코드 조합)
순차 파일
엔트리 순차 파일 : 레코드가 추가되는 순서대로 저장되는 파일
키 순차 파일 : 레코드에 키 값을 두어 키 값의 순서로 저장되는 파일
순차 파일 특징
: 기록 밀도가 좋음, 어떤 매체든 용이하게 사용, 파일의 내용을 추가, 변경, 삭제가 불편, 검색할 때 검색 효율이 떨어짐, 파일 복사나 일괄 처리에 많이 사용
인덱스 파일
: 인덱스 파일과 데이터 파일로 존재, 인덱스 파일은 레코드를 구분할 수 있는 키(Key)와 레코드가 기억된 위치(주소)를 가짐, 데이터 파일은 실제 레코드들이 저장된 파일
인덱스 순차 파일 구성 방법
1. 인덱스 구역
트랙 인덱스 : 가장 작은 단위의 인덱스로 소제목
실린더 인덱스 : 중제목에 속하는 인덱스
마스터 인덱스 : 대제목에 속하는 인덱스
2. 기본 데이터 구역
3. 오버플로우 구역
인덱스 구성 방법
정적 인덱스 방법 : 인덱스 내용은 변화하지만 인덱스 파일 구조 자체는 변경되지 않음
동적 인덱스 방법 : 인덱스 파일과 데이터 파일을 블록으로 구성, 각 블록에 일정 비율 이상의 빈 공간을 미리 만들어 놓음
인덱스 순차 파일 특징
: 순차 처리와 랜덤 처리를 병행할 수 있음, 레코드 삽입 삭제에 용이, 오버플로우 구역이 별도 필요, 인덱스를 이용한 액세스로 랜덤 편성 파일과 비교해서 액세스 시간이 느림, 레코드 추가/삭제 시 파일 전체를 복사할 필요가 없음
역 파일 : 데이터 파일의 레코드에 접근할 인덱스를 여러 개 두어 사용하는 파일
다중 리스트 파일 : 데이터 파일의 레코드들을 여러 개의 연결 리스트로 구축
랜덤 편성 파일
: 논리적 순서와 관계없이 특정한 방법으로 키 변환에 의해 임의로 자료를 보관하고 처리 시에도 필요한 장소에 직접 접근하여 원하는 정보를 액세스
랜덤 편성 파일 특징
: 레코드를 키 변환에 따라 직접 변환 가능, 어떤 레코드라도 평균 접근 시간 내에 접근 가능, 키 변환법으로 공간 낭비를 가져올 수도 있음, 충돌을 해결할 준비가 필요, 키 변환에 지연시간이 따름, 대화형에 적합
인터페이스 개념
: 서로 다른 두 개의 시스템 사이에서 정보를 주고받는 경계면, 사물 간이나 사물과 인간의 의사소통을 위한 매개체
인터페이스 요구사항
: 시스템 인터페이스 요구사항은 인터페이스 명, 연계 대상 시스템, 연계 범위, 연계 내용, 연계 방식, 송신 데이터, 인터페이스 주기 등의 고려사항을 명시내 외부 인터페이스 요구사항 구성 요소
: 내 외부 인터페이스 이름, 연계 방식, 연계 대상 시스템, 송신 데이터, 연계 범위 및 내용, 인터페이스 주기
기능적 요구사항
: 내 외부 시스템 연계를 통해 수행될 기능과 관련되어 입출력 요구사항, 시스템 사이의 처리 과정에 대한 요구사항, 기능적 속성에 대한 요구사항
비기능적 요구사항
: 시스템 인터페이스 기능에 관련되지 않은 요구사항, 응답 시간,처리량, 사용 용이성, 신뢰도, 보안성, 운용상의 제약, 안전성에 대한 요구사항
시스템 인터페이스의 요구사항 명세서 작성 시 고려사항
: 시스템 인터페이스별로 연계 방식과 연계 유형, 연계 주기를 식별할 수 있도록 작성함 교환되는 데이터에 대한 정보를 식별, 보안이나 통신 네트워크 환경 작성, 업무 담당자와 정보 기술 담당자 정보를 확인
인터페이스 요구사항 검증 절차
: 인터페이스 요구사항 검토 계획 수립, 인터페이스 요구사항 명세서 검토와 오류 수정, 인터페이스 요구사항 베이스라인 설정
인터페이스 요구사항 품질 평가 항목별 측정 방법
-
기능 완전성 = 도출된 기능 요구사항 / 전체 기능 요구사항 수
-
품질 안전성 = 도출된 비 기능 요구사항 / 전체 비 기능 요구사항 수
-
기능 정확성 = 논리적으로 정확히 기술한 기능 요구사항 / 도출된 세부 기능 요구사항 수
-
품질 정확성 = 논리적으로 정확히 기술한 비 기능 요구사항 / 도출된 세부 기능 요구사항 수
-
요구사항 일관성 = 1- 연관된 요구사항 간 충돌 수 / 도출된 요구사항 내 연관 건수
인터페이스 송신 시스템
연계 데이터 생성, 추출 - 코드 매핑 및 데이터 변환 - 인터페이스 테이블/파일 생성 - 로그 기록 - 연계 서버 or 송신 어댑터
인터페이스 수신 시스템
연계 서버 or 수신 어댑터 - 인터페이스 테이블/파일 생성 - 코드 매핑 및 데이터 변환 - 로그 기록 - 연계 데이터 반영
인터페이스 중계 시스템
: 송수신 사이에서 데이터 송수신하고 송수신 현황을 감시
인터페이스 식별 대상 데이터
- 전문 공통부
-
전문 길이
-
시스템 공통부 : 인터페이스 ID, 전송 시스템 정보, 서비스 코드 정보 응답 결과 정보, 장애 정보
-
거래 공통부 : 직원 정보와 승인자 정보, 기기 정보, 매체 정보, 테스트 정도
- 전문 개별부(가변 길이, 데이터 포함)
- 전문 종료부(고정길이)인터페이스 방식
직접 연계 방식
: 중계 시스템을 사용하지 않고 송수신 시스템끼리 직접 인터페이스 하는 방식, 연계 처리 속도는 빠르고 구현이 단순, 시스템 변경에 민감, 개발 비용이나 기간이 짧음, 통합 환경 구축이 어려움, 보안은 별도로 처리해야 한다
간접 연계 방식
: 연계 솔루션에서 제공하는 송수신 엔진과어댑터를 활용, EAI 서버와 같은 연계 서버를 이용하는 방식, 서로 다른 네트워크나 프로토콜 간에 연계 통합이 용이, 인터페이스 변경에 유연하게 대처 가능, 보안이나 업무 처리 용이, 연계는 복잡, 중간 매개체로 성능 저하 요소가 존재
시스템 연계 기술
DB Link : 데이터베이스에서 제공하는 DB 객체를 이용, 수신 측에서 link 생성 후 송신 측에서 해당 link를 참조하는 방식
DB Connection : 수신 측 WAS에서 송신 측 데이터 베이스로 연결하는 DB Connection Pool을 생성
API/OpenAPI : 송신 측데이터베이스에서 데이터를 가져와 제공하는 인터페이스 프로그램
JDBC : 수신 측에서 JDBC 드라이버를 이용하여 송신 시스템의 데이터 베이스와 연결
Hyper Link : 웹 응용에서 하이퍼링크를 이용
Socket : 서버는 통신을 위한 Socket을 이용해 Port 할당, 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신하는 네트워크 기술
Web Service : 웹 서비스에서 WSDL 과 UDDI, SOAP 프로토콜을 이용하여 연계
인터페이스 정의서
: 인터페이스 명세는 데이터 송수신 시스템 간의 데이터 저장소와 속성 등의 상세 내역을 포함, 연계 방식에 따라 연계 방식을 확인한 후 인터페이스 설계서를 작성
항목 : 인터페이스 ID, 요구 성능, 시스템 정보, 데이터 정보
반응형'정보처리기사' 카테고리의 다른 글
정보처리기사 실기 요약[서버프로그램 구현 - Chapter4](정처기) (0) 2021.06.02 정보처리기사 실기 요약[통합 구현 - Chapter3](정처기) (0) 2021.06.02 정보처리기사 실기 요약[요구사항 확인 - Chapter1](정처기) (0) 2021.06.02 Part1 - 요구사항과 화면 설계 [정보처리기사 요약] (0) 2021.02.04 Part1 - 소프트웨어의 종류 및 개발 방법론 [정보처리기사 요약] (0) 2021.02.03 -