#128_구조적 프로그래밍의 규칙
- 프로그램의 제어 흐름을 선형화
- 단일 입구와 단일 출구만 가지게 함
- GOTO문은 사용하지 안흠
- 구조화 이론의 세 가지 기본 논리 구조만을 사용함(순차, 선택(조건), 반복 구조)
#129_결합도(Coupling)
- 두 모듈간의 상호 의존도를 측정하는 것으로, 좋은 설계는 모듈간의 결합도를 최소화하여 모듈의 독립성을 높인 것을 의미
- 결합도의 순서(약함→강함) : 자료 결합도 → 스탬프 결합도 → 제어 결합도 → 외부 결합도 → 공통 결합도 → 내용 결합도
자료 결합도 | 서로 다른 모듈 간에 매개 변수 또는 인수를 통해 꼭 필요한 자료만들 교환하는 경우의 결합도로, 설계 품질이 가장 좋음 |
스탬프 결합도 | 서로 다른 모듈이 동일한 자료 구조를 참조하는 경우의 결합도 |
제어 결합도 | 서로 다른 모듈 간에 교환하는 매개 변수(Parameter)가 제어 정보인 경우의 결합도 |
외부 결합도 | 어떤 모듈에서 외부(External)로 선언되어 있는 자료(변수)를 다른 모듈에서 참조하는 경우의 결합도 |
공통 결합도 | 서로 다른 모듈들이 하나의 기억 장소에 설정된 공통의 데이터 영역을 공유하는 경우의 결합도 |
내용 결합도 | 한 모듈이 다른 모듈의 내부 자료를 직접적으로 참조하는 경우의 결합도로, 결합도 중 의존도가 가장 높고, 순서 변경이 다른 모듈이 영향을 주기 쉬움 |
#130_응집도(Cohesion)
- 한 모듈 내에 있는 구성 요소의 기능적 관련성을 평가하는 기준으로서, 응집도가 높을수록 모듈의 독립성은 높아짐
- 응집도의 순서(약함→강함) : 기능적 응집도 → 순차적 응집도 → 통신적 응집도 → 절차적 응집도 → 시간적 응집도 → 논리적 응집도 → 우연적 응집도
#131_객체(Object)
- 데이터(속성)와 이를 처리하기 위한 연산(메소드)을 결합시킨 실체
- 객체마다 각각의 상태(State)를 가지고 있음
- 행위(Behavior)에 대한 특징을 나타냄
- 객체는 식별성을 가짐
- 모든 객체는 다른 객체들과 구별할 수 있는 이름을 가짐
- 일정한 기억 장소를 가지고 있음
#132_객체지향 기법 관련 용어
- 속성(Attribute) : 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의하는 것으로서 성질, 분류, 식별, 수량 또는 현재 상태 등을 표현함
- 메소드(Method) : 객체에 정의된 연산을 의미하며, 객체의 상태를 참조하거나 변경하는 수단이 됨
- 클래스(Class) : 2개 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하는 요소 즉, 공통된 특성과 행위를 갖는 객체의 집합이라고 할 수 있음. 한 클래스를 기준으로 하여 그 기준 클래스의 상위 클래스를 수퍼 클래스, 하위 클래스를 서브 클래스 라고 함
- 인스턴스(Instance) : 하나의 클래스에 속하는 각각의 객체를 의미
- 인스턴스화(Instantiation) : 클래스로부터 새로운 객체를 생성하는 행위
- 메세지(Message) : 외부로부터 하나의 객체에 전달되는 메소드(행위)의 요구
#133_객체의 특정
- 주체성 : 다른 객체들과 식별할 수 있는 속성을 의미
- 분류성 : 동일 속성과 행위를 갖는 객체들을 하나의 클래스로 분류하는 속성을 의미
- 다형성 : 하나의 메세지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 의미 즉, 같은 연산자라도 각 클래스에 따라 다른 기능을 수행할 수 있음
- 상속성(Inheritance) : 이미 정의된 상위 클래스의 메소드를 비롯한 모든 속성을 하위 클래스가 물려받을수 있는 것을 의미
- 추상화(Abstraction) : 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화하는것을 의미
- 캡슐화(Encapsulation) : 데이터 구조와 데이터를 조작하는 연산을 하나로 묶어 하나의 모듈 내에서 결합되도록 하는 것을 의미
- 정보 은닉(Information Hidden) : 캡슐화된 정보를 외부에 감추는 것을 의미
#134_럼바우(Rumbaugh)의 분석 기법
- 객체 모델링 기법(OMT)이라고 하며 그래픽 표기법을 이용하여 모든 소프트웨어 구성 요소들의 객체를 모델링함
- 시스템의 무엇(객체 모델링)에서 언제(동적 모델링), 어떤 일(기능 모델링)이 일어나는가를 분석함
- 분석 절차 : 객체 모델링 → 동적 모델링 → 기능 모델링
ㆍ객체 모델링(Object Modeling) : 실세계 문제 영역으로부터 시스템에 요구되는 객체를 찾아내어 객체들 간의 관계를 연관성, 집단화, 일반화 관계를 중심으로 정의하고 객체 다이어그램으로 나타내는 것
ㆍ동적 모델링(Dynamic Modeling) : 시간의 흐름에 따라 변하는 객체들 사이의 제어 흐름, 상호 작용, 연산 순서 등의 동적인 행위를 상태 다이어그램으로 나타내는 것
ㆍ기능 모델링(Fuction Modeling) : 다수 프로세스 간의 데이터 흐름을 중심으로 처리과정을 데이터 흐름도로 나타내는 것
#135_코드(Coad)와 요돈(Yourdon)의 객체지향 기법
- 분석 기법 : E-R다이어그램(개체 관계도)을 사용하여 개체의 활동들을 데이터 모델링하는데 초점을 둔 기법
- 설계 기법 : 분석 사항을 하향식 방법으로 설계에 접근하여 프로토타입으로 개발하는 객체지향 설계 기법으로, 문제 영역 요소, 사람과 상호 작용 요소, 타스크(Task)관리 요소, 데이터 관리 요소로 구성됨
#136_Booch의 객체지향 설계
- 1991년 Booch에 의해 발표된 객체지향 설계 기법으로, 설계 단계에 중점을 두어 클래스 및 객체의 식별과 그것들 간의 관계를 강조하였음
- 데이터 흐름도(DFD)를 사용해서 객체를 분해하고, 객체들 간의 인터페이스를 찾아 Ada 프로그램으로 변환시키는 기법
- 전체 시스템의 가시화와 실시간 처리(Real Time)에 유용
- 설계를 위한 문서화 기법을 강조함
- 분석 단계와 구현 세부 사항에 취약
'자격증 > 정보처리산업기사 - 개정전' 카테고리의 다른 글
정보처리산업기사 필기_4과목, 운영체제(#148~#158) (0) | 2020.06.14 |
---|---|
정보처리산업기사 필기_4과목, 운영체제(#137~#147) (0) | 2020.04.18 |
정보처리산업기사 필기_3과목, 시스템 분석 및 설계(#117~#127) (0) | 2020.04.18 |
정보처리산업기사 필기_3과목, 시스템 분석 및 설계(#106~#116) (0) | 2020.04.17 |
정보처리산업기사 필기_3과목, 시스템 분석 및 설계(#95~#105) (0) | 2020.04.17 |