나의 공부 일기

정보처리기사) 1과목 정리 ( 4 / 4 ) 본문

자격증공부/정보처리기사

정보처리기사) 1과목 정리 ( 4 / 4 )

곽병권 2024. 4. 3. 15:46
728x90

객체 지향 설계

객체 지향 구성 요소

클래스

- Class

- 객체 지향 프로그램에서 데이터를 추상화하는 단위

 

객체

- Object

- 자신 고유의 데이터를 가지며 클래스에서 정의한 행위를 수행

 

메서드

- Method

- 클래스로부터 생성된 객체를 사용하는 방법

- 객체가 메시지를 받아 실행해야 할 객체의 구체적인 연산

 

메시지

- Message

- 객체에게 어떤 행위를 하도록 지시하기 위한 방법

 

인스턴스

- Instance

- 프로그램에서 클래스를 통해 만든 실제의 실행 객체, 프로그램의 실행 단계에서 나타남

 

속성

- Property

- 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의

- 성질, 분류, 식별, 수량, 현재 상태 등에 대한 표현 값

 

 


객체 지향 기법

캡슐화

- Encapsulation

- 서로 연관된 데이터와 함수를 함께 묶어 외부와 경계를 만들고 필요한 인터페이스만을 밖으로 드러내는 기법

 

상속성

- Inheritance

- 상위 클래스의 속성과 메서드를 하위 클래스에서 재정의 없이 물려받아 사용하는 기법

 

다형성

- Polymorphism

- 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력

 

추상화

- Abstraction

- 공통 성질을 추출하여 클래스를 설정하는 기법

 

정보은닉

- Information Hiding

- 코드 내부 데이터와 메서드를 숨기고 공개 인터페이스를 통해서만 접근이 가능하도록 하는 코드 보안 기술

 

관계성

- Relationship

- 두 개 이상의 엔터티 형에서 데이터를 참조하는 관계를 나타내는 기법


객체 지향 방법론

야콥슨

- Jacobson

- 유스케이스에 의한 접근 방법으로 유스케이스를 모든 모델의 근간으로 활용

 

럼바우

- Rumbaugh

- 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론

- 분석 잘차는 객체 모델링 --> 동적 모델링 --> 기능 모델링 순서로 진행

객체 모델링

- Object Modeling

- 정보 모델링이라고도 하며, 시스템에서 요구하는 객체를 찾고 객체 간의 관계를 정의하는 모델링

- 가장 중요하며 선행되어 진행

- 객체 다이어그램을 활용하여 표현

동적 모델링

- Dynamic Modeling

- 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위를 표현하는 모델링

- 상태 다이어그램,사건 흐름 다이어그을 활용하여 표현

기능 모델링

- Functional Modeling

- 프로세스들의 자료 흐름을 중심으로 처리 과정을 표현하는 모델링

- 자료 흐름도(DFD)를 활용하여 표현

 

부치

- Booch

- 설계 문서화를 강조하여 다이어그램 중심으로 개발하는 방법론

- 미시적(Micro) 개발 프로세스와 거시적(Macro) 개발 프로세스를 모두 사용하는 분석 방법

 

Coad 와 Yourdon

- E-R 다이어그램을 사용하여 객체의 행위를 모델링하며, 객체 식별, 구조 식별, 주체 정의, 속성 및 관계 정의, 서비스 정의 등의 과정으로 구성되는 객체 지향 분석 방법

 

Wirf-Brock

- 분석과 설계 간의 구분이 없고 고객 명세서를 평가해서 설계 작업까지 연속적으로 수행하는 분석 방법


객체 지향 분석 기법

- 소프트웨어를 개발하기 위한 비즈니스(업무)를 객체와 속성, 클래스와 멤버, 전체와 부분 등으로 나누어서 분석해 내는 기법

- 기본적으로 객체 지향 프로그래밍 언어에서 접근하는 방식인 상향식(Bottom-up) 방식임

- 동적 모델링 기법이 사용될 수 있음

- 데이터와 행위를 하나로 묶어 객체를 정의하고 추상화시키는 작업

- 코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가

 

객체 지향의 관계성

일반성

- is-a 관계 

- 클래스 간의 개념적인 포함 관계

- 상위 클래스의 특성을 하위 클래스가 상속 받음

 

집단화

- is-part-of 관계, part-whole 관계

- 서로 관련 있는 여러 개의 객체를 묶어 한 개의 상위 객체를 만드는 특징이 있음

- 일반화와 달리 상위 클래스의 성질들이 하위 클래스로 상속되지는 않음


디자인 패턴의 구성 요소

- 패턴의 이름, 문제 및 배경, 솔루션, 사례, 결과, 샘플 코드로 구성

 

디자인 패턴의 종류

행위패턴

- 미디에이터, 인터프리터, 이터레이터, 템플릿 메서드, 옵져버, 스트레이트, 비지터, 커맨드, 체인 오브 리스판서빌리티

 

생성패턴

- 빌더, 프로토타입, 팩토리 메서드, 앱스트랙 팩토링, 싱글톤

 

구조패턴

- 브리지, 데코레이터, 퍼사이드, 플라이 웨이트, 프록시, 컴포지트, 어댑터


인터페이스 설계

정형 기술 검토 기법

동료 검토

- Peer Review

- 2 ~ 3 명 진행하는 리뷰의 형태

- 요구사항 명세서 작성자가 요구사항 명세서를 설명하고 이해관계자들이 설명을 들으면서 결함을 발견하는 형태로 진행하는 검토 방법

 

워크 스루

- Walk Through

- 오류를 조기에 검출하는 데 목정이 있는 검토 방법

- 검토 자료를 회릐 전에 배포해서 사전 검토한 후 짧은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화 하는 비공식적인 검토 방법

 

인스펙션

- Inspection

- 소프트웨어 요구, 설계, 원시 코드 등의 저작자 외의 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적인 검토 방법

- 인스펙션 절차는 계획 --> 사전 교육 --> 준비 --> 인스펙션 회의 --> 수정 --> 후속 조치 순서로 진행


정형 기술 검토(FTR)의 지침 사항

- 제품의 검토에만 집중한다

- 의제를 제항하여 진행한다

- 논쟁과 반박을 제한한다

- 문제 영역을 명확히 표현한다

- 참가자 수를 제한하고 사전준비를 강요한다

- 자원과 시간 일정을 할당한다

- 모든 검토자들을 위해 의미있는 훈련을 행한다

- 검토자들은 사전에 작성한 메모들을 공유한다

- 검토 과정과 결과를 재검토한다.


요구사항 명세기법

비정형 명세기법

- 사용자의 요구를 표현할 때 자연어를 기반으로 서술함

- 사용자의 요구를 표현할 때 Z 비정형 명세기법을 사용함

 

정형 명세기법

- 사용자의 요구를 표현할 때 Z-스키마 언어를 활용함

- 비정형 명세기법에 비해 표현이 간결함

 

요구사항 검증

- 요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검하는 과정

- 개발 완료 이후에 문제점이 발견될 경우 막대한 재작업 비용이 들 수 있기 때문에 요구사항 검증은 매우 중요함

- 요구사항이 실제 요구를 반영하는지, 문서상의 요구사항은 서로 상충되지 않는지 등을 점검

- 요구사항 검증 과정을 통해 모든 요구사항 문제를 발견하기는 어렵다(일부 발견가능)

 

요구사항 개발 절차

도출

- 소프트웨어가 해결해야 할 문제를 이해하고, 고객으로부터 제시되는 추상적 요구에 대해 관련 정보를 식별하고 수집 방법 결정, 수집된 요구사항을 구체적으로 표현하는 단계

 

분석

- 도출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 단계

 

명세

- 체계적으로 검토, 평가, 승인될 수 있는 문서를 작성하는 단계

 

확인 및 검증

- 요구사항이 고객이 정말 원하는 시스템을 제대로 정의하고 있는지 점검하는 과정

 

요구사항 분석

- 추출된 요구사항에 대해 충돌, 중복, 누락 등의 분석을 통해 완전성과 일관성을 확보하는 활동

- 주요활동으로는 후보 요구사항 모델링, 요구사항의 우선순위 부여, 해당 릴리즈에 수행할 요구사항 선정, 요구사항 협의가 있음

- 요구사항 분석 활동으로 비용과 일정에 대한 제약설정, 타당성 조사, 요구사항 정의 문서화가 있음


인터페이스 시스템의 주요 구성

송신 시스템

- 연계할 데이터를 데이터베이스와 애플리케이션으로부터 연계 테이블 또는 파일 형태로 생성하여 송신하는 시스템

 

수신 시스템

- 수신한 연계 테이블 또는 파일의 데이터를 수신 시스템에서 관리하는 데이터 형식에 맞게 변환하여 데이터베이스에 저장하거나 애플리케이션에서 활용할 수 있도록 제공하는 시스템

 

중계 서버

- 송신 시스템과 수신 시스템 사이에서 데이터를 송수신하고 연계 데이터의 송수신 현황을 모니터링하는 시스템

- 연계 데이터의 보안 강화 및 다중 플랫폼 지원 등이 가능

 

시스템의 구성 요소

입력

- Input

- 처리 방법, 처리할 데이터, 조건을 시스템에 투입하는 행위

 

출력

- Output

- 처리된 결과를 시스템에서 산출하는 행위

 

처리

- Process

- 입력된 데이터를 처리 방법과 조건에 따라 처리하는 행위

 

제어

- Control

- 자료를 입력하고 출력될 때까지의 처리 과정이 올바르게 진행되는지를 감독하는 행위

 

피드백

- Feedback

- 출력 결과가 목표를 만족시키지 못하는 경우 달성을 위해 반복 개선하는 행위


미들웨어

- 클라이언트와 서버 간의 통신을 담당하는 시스템 소프트웨어

 

미들웨어 솔루션 유형

DB 미들웨어

- DB 솔루션 업체에서 제공하는 애플리케이션과 DB 간에 통신을 원활하게 하는것을 목적으로 하는 미들웨어

 

원격 프로시저 호출

- RPC: Remote Procedure Call

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

 

메시지 지향 미들웨어

- MOM: Message-Oriented Middleware

- 메시지 기반의 비동기형 메시지 전달 방식 미들웨어

- 서로 다른 이기종 분산 DB 시스템의 데이터 동기를 위하여 주로 사용

 

트랜잭션 처리 모니터

- TP: Transaction Processing 

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

- 분산 환경의 핵심 기술인 분산 트랜잭션을 처리하기 위한 미들웨어

- 주로 사용자가 많고 안정적이면서도 즉각적인 처리가 필요한 업무 프로그램의 개발에 많이 사용

 

레거시웨어

- Legacyware

- 기존의 애플리케이션이나 DB 기반에 새로운 업데이트된 기능을 덧붙이고자 할 때 사용되는 미들웨어

 

객체 기반 미들웨어

- ORB: Object Request Brokers

- 코바(CORBA) 표준 스펙을 구현한 객체 지향 미들웨어

- 각기 다양한 기반으로 구축된 컴퓨터 간의 프로그램과 데이터의 교환 및 변환이 편리하게 이루어질 수 있도록 자원

 

WAS

- Web Application Server

- 서버계층에서 애플리케이션이 동작할 수 있는 환경을 재공하고 안정적인 트랜잭션 처리와 관리, 다른 이기종 시스템과 애플리케이션 연동을 지원하는 미들웨어


기타

프로그램이나 하드웨어

EAI

- Enterprise Application Integration

- 비즈니스 프로세스를 중심으로 어댑터를 이용하여 기업 내 각종 플랫폼 및 애플리케이션 간의 상호 연동이 가능하도록 통합하는 솔루션

 

GPL

- General Public License

- 자유 소프트웨어 재단에서 만든 오픈 소스 소프트웨어 라이선스

- GPL 파생 저작물 조항에 의한 소스 코드 배포 의무가 있음

 

Duplexing

- 단일 매체, 장치, 포트에서 '동시 양방향 통신'을 가능하게 하는 전송 방식

 

아키텍처 설계과정

설계 목표 설정 --> 시스템 타입 결정 --> 스타일 적용 및 커스터마이즈 --> 서브 시스템의 기능, 인터페이스 동작 작성 --> 아키텍처 설계 검토

 

 

위험 모니터링

- 위험 요소 징후들에 대하여 계속적으로 인지하는 것

 

모델링 순서

입출력 자료 정의

- 외부와 시스템 간의 입출력 자료를 정의

 

자료 흐름도 작성

-입출력 자료 정의를 기반으로 시스템의 주요 기능을 나타내는 자료 흐름도(Data Flow Diagram)를 작성

 

기능 명세서 작성

- 프로세스 기능에 대한 정의를 기능 명세서로 작성

 

제약 조건 파악

- 시스템의 동작에 영향을 주는 제약 조건을 파악

 

소프트웨어 요구사항 명세서

- SRS: Software Request Specification

- 시스템에서 구현되어야 할 것에 대한 공식적인 문장으로 사용자, 시스템을 명세화한 산출물이다.

- 소프트웨어 개발 프로세스의 시작인 소프트웨어의 요구사항을 분석하고 정의하는 단계에서 작성되는 최종 산출물이다.

 

Tailoring

- 프로젝트의 특성과 필요에 따라 소프트웨어 개발 프로세스를 적합한 규모로 가공하는 과정 및 방법

 

CMMi

- 기존 CMM 모델을 통합하고 ISO15504를 준수하는 소프트웨어 개발 능력/성숙도 평가 및 프로세스 개선 활동의 지속적인 품질 개선 모델

 

SPICE

- 소프트웨어 프로세스를 평가하고 개선함으로써 품질 및 생산성을 높이고자 하는 국제표준(ISO15504)

728x90