[소프트웨어 설계] OOP(Object Oriented Programming)

이도연·2024년 6월 6일

정보처리기사

목록 보기
3/21
post-thumbnail

객체 개념을 사용하여 실세계를 표현 및 모델링하며,
객체와 객체들이 모여 프로그램을 구성

Objected

  • 속성과 이를 처리하기 위한 동작(연산, 메서드)을 결합시킨 실체
  • 행위에 대한 특징을 나타내며, 객체는 식별성을 가짐
  • 각 객체를 구분하기 위한 이름을 가짐.
  • 객체와 객체는 상호 연관성에 의해 관계 형성

    속성(attribute) : 객체가 갖고 있는 특성이나 값을 의미('명사')
    메소드(method) : 함수, 서비스, 동작 등 객체에 정의되 연산을 의미('동사')
    클리스(class) : 공통된 속성의 객체들을 하나의 집합으로 묶은 단위로 객체의 일반적인 타입 의미
    인스턴스(instance) : 하나의 클래스에 속하는 각각의 객체를 의미, 클래스로부터 새로운 객체를 생성하는 것을 '인스턴스화'라고 함.



Object Oriented

주체성

다른 객체들과 식별할 수 있는 속성

다형성

하나의 메시지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력

분류성

동일 속성과 행위를 갖는 객체들을 하나의 클래스로 분류하는 속성

상속성(Inheritance)

이미 정의된 상위 클래스의 메소드를 비롯한 모든 속성을 하위 클래스가 물려받는다.

추상화(abstraction)

불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화시킨다.
데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정한다.

캡슐화(Encapsulation)

데이터와 데이터를 조작하는 연산들을 함께 묶어 하나의 모듈 내에서 결합시킨다.
객체의 자료가 변조되는 것을 막으며 그 객체의 사용자들에게 내부적인 구현의 세부 내용 은폐한다.

정보은폐(information hiding)

캡슐화된 정보를 외부에 감추는 것.
외부에서는 해당 정보 확인 불가



럼바우(Rumbaugh)객체 지향 분석기법

객체모델링 기법(OMT) 라고 하며 그래픽 표기법을 이용하여 모든 소프트웨어 구성요소들의 객체를 모델링

분석 절차

객체 모델링 -> 동적 모델링 -> 기능 모델링

객체모델링(Object Modeling)

현실세계 영역으로부터 시스템에서 요구되는 객체와 클래스를 찾아 그들간의 연관성, 집단화, 일반화 중심으로 규명하여 'E-R 다이어그램'을 나타냄.

동적모델링(Dynamic Modeling)

시간의 흐름에 따라 변하는 객체들 사이의 제어 흐름, 상호 작용, 연산 순서 들의 동적인 행위를 '상태 다이어드램'으로 나타냄

기능모델링(Function Modeling)

다수 프로세스 간의 데이터 흐름을 중심으로 처리 과정을 '데이터 흐름도(DFD)'로 나타냄.

데이터 흐름도(DFD)

시간이 경과함에 따라 자료가 흐르는 관점에 맞게 처리되는 작업 절차를 그린 자료 흐름도

  • 시스템에 대한 정보 흐름이 표현
  • 세분화 필요
  • 제어의 흐름보다 데이터의 흐름을 중요시



코드(Coad)와 요오돈(yourdon) 기법

분석 기법

E-R 다이어그램을 사용하여 개체(ENTITY) 의 활동들을 데이터 모델링

설계 기법

분석사항을 하향식 방법으로 설계에 접근하여
프로토 타입으로 개발하는 객체지향 설계기법이다.
문제영역요소, 사람과 상호작용 요소, 작업관리 요소, 데이터 관리 요소로 구성



Booch 기법

설계 단계에 중점을 두어 클래스 및 객체의 식별과 관계를 강조

정적 모델링

논리적 관점을 표현하는 클래스도 및 객체도,
물리적 관점을 표현하는 모듈구조도 및 프로세스 구조도로 구성

동적 모델링

실세계의 사건 발생에 의해 동작되어야 할 일들을 표현
상태도와 타이밍도


데이터 흐름도를 사용해서 객체를 분해하고
객체들 간의 인터페이스를 찾아 ADA 프로그램으로 변환시키는 기법이다.
설계를 위한 문서화 기법을 강조하며, 분석 단계와 구현의 세부 사항에 취약하다.

0개의 댓글