자격증

정보처리기사 필기 정리 ⑤

record2080 2025. 2. 2. 22:08

■  모듈     vs     컴포넌트(인터페이스가 있음) : 둘 다 소스코드의 집합이라는 공통점이 있음

   소스코드          실행코드

■ 모듈은 어떤 특정기능을 완벽히 할 수 없다

재사용과 공통모듈

함수와 개체< 컴포넌트< 어플리케이션

공통모듈: 각 서브시스템에서 공통사용기능(예) gps)

모듈명세화도구 : 흐름도, N-S 도표,의사코드, 의사결정도 등

- Nassi-schneiderman chart : 순차,선택, 반복을 사각형(삼각형)으로 도식화 (화살표를 쓰지 않음)

소프트웨어 아키텍쳐 : 뼈대, 소프트웨어 여러가지 원칙들의 집합

아키텍쳐 프레임워크(설계도- 주택, 상가, 공장)

1. AD - 아키텍쳐 설계도 설명서(기록위한산출물)

2. 이해관계자

3. 관심사

4. 관점

5. 뷰

  소프트웨어 아키텍쳐 4+1 view model

: uml이 정의되면서 4+1이 되었다

 <5계층 분류모델>

-Logical view : 분석, 설계

-Implementation view : 프로그래머 (실코딩)

-Process view : 시스템 엔지니어

- Usecase view  : 사용자

소프트웨어 아키텍쳐 평가 방법론

- SAAM : 최초 정리된 평가방법

- ATAM :  모든품질속성평가, 절충점

- CBAM:  cost, ATAM 경제적 부분 보완 형태

- ARID :  전체가 아닌 한 부분 품질요소

  아키텍쳐 패턴 (>디자인패턴)

예) Layered, cliet-server

: 설계도를 미리 구상해 놓은 것 

: 아키텍쳐 패턴= 스타일패턴= 표준 아키텍쳐

: 개발시간단축, 고품질소프트웨어, 안정적, 유지보수용이

 

-계층패턴(Layered) =N-tier아키텍쳐 패턴

: 정보은닉원칙적용, 높은 이식성

: 추가 실행시 오버헤드 발생(너무 많은 계층으로 성능감소 발생)

  4계층

UI(presentation) / 서비스(app) / 도메인(비즈니스) / 영속

- MVC

- 클라이언트-서버패턴

: 하나의 서버- 다수의 클라이언트

-파이프필터 : 데이터흐름

                     : 노드와 간선으로 구성

:필터교환, 재조합 => 높은 유연성

: 비용소요, 데이터 변환 과부화

: 필터 컴포넌트를 통해 처리되는 데이터---> 파이프 통해서 -----> 파이프는 버퍼링 또는 동기화 목적 사용

-peer to peer : 분산 컴퓨팅에서 사용

: 컴포넌트가 클라이언트 서버 역할 모두 수행

-브로커 : 컴포넌트가 컴퓨터와 사용자를 연결하는 역할

-블랙보드 : 결정적 해결전략이 존재하지 않을 떄 사용

               : 음성인식, 신호해석 등에 활용됨

-이벤트버스 : 소스(생성),리스너(수행),채널(통로),버스(관리)

-인터프리터 : 특정언어로 작성된 프로그램을 해석하는 컴포넌트 설계

                     (SQL과 같은 데이터베이스 언어)

 

<객체지향 설계>

-구조적설계 : 한개의 입력, 한개의 출력 / 순차,선택,반복 / GOTO문(분기문)사용 X

-절차적설계 : 일련의 명령어을 나열해 프로그래밍

                    : funcion 기반의 프로그램밍

                    : 규모가 커지면 함수가 기하급수적으로 늘어남 

개체를 속성 + 메소드 => 객체로 표현

object- attribute : 데이터값

          - mathod  : object의 행위인 함수

class=틀= 타입(단위테스트 unit test 같은 개념)

  object= 실체= 변수= instance

   (캡슐화)

객체지행 기법에서의 관계성

-is member of : 연관성

-is part of : 집단화

-is a : 일반화, 특수화

객체지향 원칙(SOLID)

-단일책임원칙(SRP) : 단일목적, 하나의 책임

-개방-폐쇄 원칙(OCP) : 확장-개방/ 수정-폐쇄

- 리스코프치환원칙(LSP) : 부모클래스가 들어간 자리에 자식클래스로 대체해도 작동해야 한다

  (상속관계에서의 원칙)

- 인터페이스분리원칙 (ISP)

- 의존 역전원칙(DIP)

객체지향 개발방법

-booch : OOD(다이어그램 기반)

-OOSE : use case의 한 접근방법

-OMT(럼바우) : 객체, 동체, 기능 모델링

-Coad와 Yourdon 방법 : E-R다이어그램

 

클래스 설계 : 객체상태 변화 모델링 필수

  클래스 인터페이스 : 구현/사용/확장

  협약에 의한 설계(Designed by contract)

1. 선행조건

2. 결과조건

3. 불변조건

 

<디자인패턴> : 인테리어의  표준을 정해놓은 것

-개발자와 원활한 소통, 재사용, 초기투자비용 높음, 객체지향 설계 및 구현 위주로 사용

구성요소 4가지(필수)

이름/ 문제/ 해결/ 결과

+ 사례, 코드, 정당성

GoF 디자인패턴 : 재사용에 관한 유용한 설계를 디자인 패턴화

생성패턴, 구조패턴, 행위패턴

-생성패턴

: fatory method, virtual construtor

: 싱글톤 - 전역변수사용x, 객체 하나만 생성

: 프로토타입

: 빌더(builder)- 인스턴스 조립

: Abstraction Factory

-구조패턴(연결-원활한 기능)

: Adapter

: Bridge

-행위패턴(통제)

: chain of responsibility (책임연대)

: Iterator, Command, Interpreter, Observer, Mediator

 

디자인패턴 vs 아키텍쳐패턴(상위설계)

: 서브시스템 내                     : 시스템 전체구조

컴포넌트와 그들간의

관계구성위한 참조모델

 

<인터페이스 요구사항> : 컴포넌트가 어떻게 연결되는가?

기능적:기능적속성에 관한 요구사항

비기능적 : 그외 

  인터페이스 요구사항 검증방법

-프로토타이핑

-테스트설계

-CASE

- 요구사항 검토 : 동료검토, 워크스루, 인스펙션(감사)

 검증절차

검토계획수립 --> 검토 오류수정--> 베이스라인 설정

인터페이스 대상 식별

송신--> 중계--> 수신

 상세설계

- 직접연계 : 중계서비스 또는 솔루션을 사용하지 않음

- 간접연계 : 사용함

■인터페이스 연계기술

DB Link                                 WSDL/UDDI/SOAP 

WAS                                      (웹서비스 프로토콜)

API/OPEN API

JDBC

HYPER LINK

SOCKEY

시스템 사이의 상호교환되는 데이터는 표준 형식을 정의해 사용할 때 사용하는 인터페이스 데이터 구성

=> 공동부, 개별부, 종료부

시스템 연계기술

-API

-WSDL : webservices

-UDDI : Univercial , XML

-SOAP(Simple Object Access Protocol) : 웹서비스를 실제로 이용하기 위한 객체간의 통신규약

 

  인터페이스 설계서는 인터페이스 목록과 인터페이스 정의 작성을 통해 구현된다.

 

<미들웨어 솔루션> : 클라이언트 서버 간 통신담당 시스템 소프트웨어

  미들웨어 솔루션 유형

- DB

-TP- Monitor(Transaction Processing Monitor)

-ORB

- RPC : 원격 프로시저를 로컬 프로시저처럼 호출하는 방식

-MOM : 메시지 기반

-WAS : 많이 사용 , HTTP, 서버단위, 데이터 접근,세션 , 트랜잭션 등 라이브러리 제공

-OTM: Tp모니터 + ORBs

미들웨어 솔루션 분류

DB                      vs                      통신

(app-to-데이터)                       (app-to-app)

ODBC                                      RPC

IDAD                                        DCE

DRDA                                       MOM

OLEDB                                     ORB

                                                 OTM