나의 공부 일기
정보처리기사) 1과목 정리 ( 4 / 4 ) 본문
객체 지향 설계
객체 지향 구성 요소
클래스
- 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)
'자격증공부 > 정보처리기사' 카테고리의 다른 글
정보처리기사) 1과목 정리 ( 3 / 4 ) (0) | 2024.04.02 |
---|---|
정보처리기사) 1과목 정리 ( 2 / 4 ) (0) | 2024.04.01 |
정보처리기사) 1과목 정리 ( 1 / 4 ) (1) | 2024.03.29 |