객체 지향(Object Oriented)
: 실 세계의 개체를 속성과 메서드로 결합한 형태의 객체로 표현하는 개념
▪ 객체들을 조립해서 작성할 수 있는 기법, 재사용 용이, 모형화, 확장 용이
객체
: 데이터와 그 데이터에 관련되는 동작을 모두 포함한 개념
객체 지향 구성요소
객체 / 클래스 / 메서드 / 메시지 / 인스턴스 / 속성
구성요소 | 설명 |
클래스(Class) | 하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화 |
객체(Object) | 자신 고유의 데이터를 가지며 클래스에서 정의한 행위를 수행 |
메서드(Method) | 클래스로부터 생성된 객체를 사용하는 방법, 객체에 명령을 내리는 메시지 |
메시지(Message) | 객체에게 어떤 행위를 하도록 지시하기 위한 방법 |
인스턴스(Instance) | 클래스에 속한 각각의 객체 |
속성(Property) | 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의 |
객체지향 기법
🔸 캡슐화 ( Encapsulation) : 정보 은닉과 관련, 데이터와 함수를 하나로 묶는 것, 결합도가 낮아짐
🔸 상속석 ( Inheritance ) : 상위 클래스의 모든 속성과 연산을 바로 사용 가능 재사용을 높임
🔸 추상화 ( Abstraction ) : 단순화 시켜서 나타냄
🔸 다형성 ( Polymorphism ) : 객체(클래스)들을 동일한 메소드명을 사용하며 같은 의미의 응답
모듈화
모듈 :
소프트웨어를 각 기능별로 분할하는 것, 소프트웨어 구조를 이루는 기본 단위
모듈과 모듈간의 연관이 없어야 한다.( 응집도는 높고 결합도는 낮아야함 )
🔸 모듈화는 독립성이 높아야하고 독립성은 결합도와 응집도에 의해 측정
🔷 결합도(Coupling) :
▪ 모듈 간의 상호의존도 측정, 연관 관계
▪ 결합도는 약할수록 좋다.
🌟 외우는 법 ( 어느 링크에서 ㅂ..봤다)
: (자)위 섹(스) (제)(외)하면 (공)놀이가 (내) 취미임
결합도 강함 결합도 약함 |
내용 결합도(Content Coupling) | 다른 모듈의 내부 기능을 직접 참조하거나 수정 |
공통 결합도(Common Coupling) | 공통 데이터 영역을 여러 모듈이 사용할때 | |
외부 결합도(External Coupling) | 외부의 다른 모듈에서 참조할때 | |
제어 결합도(Control Coupling) | 다른 모듈의 제어 요소가 전달 될 때 사용, 권리 전도 현상 | |
스탬프 결합도(Stamp Coupling) | 자료 구조가 전달 될때 | |
자료 결합도(Data Coupling) | 모듈과 모듈간의 자료 요소로만 구성 |
🔷 응집도(Cohesion) :
▪ 모듈 내에 있는 구성 요소들이 서로 관련되어 있는 정도를 의미
▪ 응집도는 강할 수록 좋다
🌟 외우는 법
: 소(우)랑 (논)밭 생각하면 그 (시)(잘) (통)은 (순)(기)였다
응집도 강함 응집도 약함 |
기능적 응집도(Functional Cohesion) | 모듈의 기능 요소들의 단일 문제와 연관 될 때 |
순차적 응집도(Sequential Cohesion) | 출력 데이터를 입력 데이터로 사용 할 때 | |
교환적(통신적) 응집도(Communication Cohesion) | 입력, 출력을 사용하여 서로 다른 기능을 수행하는 구성요소들이 모였을 때 ( 동일한 입력, 출력 => 서로 다른 기능) | |
절차적 응집도(Procedural Cohesion) | 모듈 안의 구성 요소들이 기능을 순차적으로 수행할 경우 | |
시간적 응집도(Temporal Cohesion) | 특정 시간에 처리되는 기능을 모여 작성 | |
논리적 응집도(Logical Cohesion) | 유사한 성격의 요소들로 하나의 모듈이 형성 | |
우연적 응집도(Coincidental Cohesion) | 서로 관련 없는 요소로만 구성 |
공통 모듈 :
▪ 전체 프로그램의 기능 중 공통적으로 사용할 수 있는 모듈
▪ 사용자 인증이나 계산식 같은 기능
🔸 공통 모듈 명세 작성의 명칙 : 정확성, 명확성, 완전성, 일관성, 추적성
▪ 정확성 : 시스템 구성을 표현할 때 기능이 필요한 것을 알 수 있도록 정확하게 작성
▪ 명확성 : 해당 기능을 표현할 때 중위적으로 해석되지 않도록 작성
▪ 완전성 : 시스템 구현을 위한 필요한 모든 것을 기술
▪ 일관성 : 공통된 기능들이 상호 충돌이 발생되지 않도록 작성
▪ 추적성 : 기능에 대한 요구사항에 대한 출처, 시스템 간의 관계를 파악할 수 있도록 작성
'이외 개발 스터디 > 정보처리기사' 카테고리의 다른 글
[ 정보처리기사 ] 2과목 - 데이터 입출력 구현 1 (0) | 2024.03.28 |
---|---|
[ 정보처리기사 ] 1과목 - 인터페이스 설계 (0) | 2024.03.28 |
[ 정보처리기사 ] 1과목 - 화면설계 4 (사용자 인터페이스(UI)) (0) | 2024.03.15 |
[ 정보처리기사 ] 1과목 - 화면설계 3 (사용자 인터페이스(UI)) (0) | 2024.03.15 |
[ 정보처리기사 ] 1과목 - 화면설계 2 (사용자 인터페이스(UI)) (1) | 2024.03.14 |