반응형
기본적인 내용이라 당연히 알고 있다 생각해도
시험 풀 때 갑자기 헷갈린다면? 내가 고른 정답에 확신이 없다면?
이런 것도 헷갈려하는 내 자신을 원망하기 싫다면 필수적으로 알아야 한다.
객체 (Object)
- 독립적으로 식별 가능한 이름을 갖고 있다.
- 객체와 객체는 상호 연관성에 의한 관계가 형성
- 객체는 행위의 특징을 나타내며, 객체가 반응할 수 있는 메세지의 집합을 행위(연산, Method)라고 한다.
클래스 (Class)
- 하나 이상의 유사한 객체들을 묶어 하나의 공통된 특성을 표현한 것
- 공통된 속성과 연산(행위)를 갖는 객체의 집합
- 객체지향 프로그램에서 유사한 객체들을 묶어 공통된 특성을 표현한 데이터를 추상화하는 단위
- 각각의 객체들이 갖는 속성과 연산(Method)을 정의하고 있는 틀
- Super Class는 특정 클래스의 상위(부모) 클래스, Sub Class는 특정 클래스의 하위(자식) 클래스
메서드 (Method)
- 클래스로부터 생성된 객체를 사용하는 방법
- 전통적 시스템의 함수(Function) 또는 프로시저(Procedure)에 해당하는 연산
인스턴스 (Instance)
- 클래스에 속한 각각의 객체
- 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)라고 한다.
상속 (Inheritance)
- 이미 정의된 상위(부모) 클래스의 모든 속성과 연산을 하위(자식) 클래스가 물려받는 것
- 소프트웨어의 재사용(Reuse)을 높이는 필수적 개념
- 한 개의 클래스가 두 개 이상의 상위(부모) 클래스로부터 속성과 연산을 상속받는 다중 상속(Mutiple Ingeritance)
컴포넌트 (Component)
- 프로그래밍에 있어 재사용이 가능한 각각의 독립된 모듈
- 여러 개의 프로그램 함수들을 모아 하나의 특정한 기능을 수행할 수 있도록 구성한 작은 기능적 단위
캡슐화 (Encapsulation)
- 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
- 인터페이스를 제외한 세부내용이 은폐(정보 은닉) 돼 외부 접근 제한
- 인터페이스가 단순해지며 재사용 용이
- 결합도는 낮아지고 응집도는 높아진다.
다형성 (Polymorphism)
- 하나의 메세지에 대해 각각 객체(클래스)가 갖고 있는 고유한 방법(특성)으로 응답할 수 있는 능력
ex) '+' 연산자의 경우, 숫자 클래스에서는 덧셈 기능 / 문자 클래스에서는 문자열 연결 기능
공통 모듈 |
|
정확성 (Correctness) |
시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성 |
명확성 (Clarity) |
해당 기능에 대해 일관되게 이해하고, 중의적인 표현 없이 한 가지로 해석될 수 있도록 작성 |
완전성 (Completeness) |
시스템 구현을 위해 필요한 모든 것을 기술 |
일관성 (Consistency) |
공통 기능들 간 상호 충돌이 발생하지 않도록 작성 (사전: 방법이나 태도 따위가 한결같은 성질) |
추적성 (Traceablity) |
기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성 |
결합도 (Coupling)
- 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미
- 결합도는 낮을 수록 좋다.
내용 결합도 (Content Coupling) |
한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때의 결합도 |
공통 결합도 (Common Coupling) |
공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도 (전역 변수) |
외부 결합도 (External Coupling) |
어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도 (순차적) |
제어 결합도 (Control Coupling) |
어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호를 이용해 통신하거나 제어 요소를 전달하는 결합도 |
스탬프 결합도 (Stamp Coupling) |
모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도 |
자료 결합도 (Data Coupling) |
어떤 모듈이 다른 모듈을 호출하면서 매개변수(파라미터)나 인수로 데이터를 넘겨주고 호출 받은 모듈은 받은 데이터에 대한 처리 결과를 다시 돌려주는 결합도 |
응집도 (Cohesion)
- 모듈 내부 요소들의 서로 관련되어 있는 정도
- 응집도는 높을 수록 좋다.
우연적 응집도 (Coincidental Cohesion) |
모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도 |
논리적 응집도 (Logical Cohesion) |
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도 |
시간적 응집도 (Temporal Cohesion) |
특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도 |
절차적 응집도 (Procedural Cohesion) |
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도 |
통신적(교환적) 응집도 (Communication Cohesion) |
동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도 |
순차적 응집도 (Sequential Cohesion) |
모듈 내 하나의 활동으로부터 나온 출력 데이터(출력값)를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도 |
기능적 응집도 (Functional Cohesion) |
모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도 |
반응형
'자격증 > 정보처리기사' 카테고리의 다른 글
정보처리기사 1과목 소프트웨어 설계 (인터페이스 요구사항 검증 / 처리유형과 통신유형) (0) | 2023.05.04 |
---|---|
정보처리기사 1과목 소프트웨어 설계 (뒷목을 잡게 만드는 디자인 패턴 외우는 꿀팁) (0) | 2023.05.03 |
정보처리기사 1과목 소프트웨어 설계 (소프트웨어 아키텍처 패턴 종류) (0) | 2023.05.03 |
정보처리기사 1과목 소프트웨어 설계 (User Interface / UI 설계 도구) (0) | 2023.05.03 |
정보처리기사 1과목 소프트웨어 설계 (UML / 구조적 다이어그램 (Structural Diagram) / 행위 다이어그램 (Behavioral Diagram)) (0) | 2023.05.03 |