#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)에 유용

 - 설계를 위한 문서화 기법을 강조함

 - 분석 단계와 구현 세부 사항에 취약

+ Recent posts