자격증/정보처리기사

정보처리기사 1과목 소프트웨어 설계 (정처기 필기시험 때 무조건 알아야 하는 기본 용어 정리)

ByeongJun 2023. 5. 3. 17:42
반응형

기본적인 내용이라 당연히 알고 있다 생각해도

시험 풀 때 갑자기 헷갈린다면? 내가 고른 정답에 확신이 없다면?

 

이런 것도 헷갈려하는 내 자신을 원망하기 싫다면 필수적으로 알아야 한다.

 

 

 

 

 


객체 (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)
모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
반응형