[SE] 소프트웨어 공학 객체지향분석
Updated:
2020.05.18 객체지향 분석
객체란?
물리적으로 존재하거나 추상적으로 생각할 수 있는 것. 객체는 속성과 동작 으로 구성되어있음.
객체의 성질
- 상태 - 속성
-
객체의 현재 모습 (시간/조건에 의해 변화)
- 동작 - 메소드
- 객체가 실행할 수 있는 움직임
-
- 외부에 제공하는 서비스 / 내부 상태를 변화시킬 수 있는 동작
- 식별성 - SW실행되면서 , 고유식별자가 암묵적으로 할당됨
- 어떤 객체ㅏ 다른 객체와 명확하게 구별될 수 있는 성질
-
- 2개 객체의 상태 & 동작이 동일하더라도, 2개 객체는 서로다른 객체임(식별자 부여하여 객체들을 구별)
객체지향 분석
현실세계의 사물을 추상화하여, 객체들을 기본구성단위로 소프트웨어를 구축하는 체계
- 2개 객체의 상태 & 동작이 동일하더라도, 2개 객체는 서로다른 객체임(식별자 부여하여 객체들을 구별)
인지과학 관점에서 객체지향
인간이 사물 과 개념을 인식/전달하기 위해서 필요한 3가지 개념
- 외연 : 무엇과 유사한가? -> 분류 -> 무엇과 비슷하게 생겼는가?
- 내포 : 무엇을 하는가? -> 기능 -> 어디에서 사용할 수 있지?
- 속성 : 무엇으로 구성되어 있는가? -> 구조
객체지향 프로그래밍 특징
캡슐화 (encapsulation)
- 객체의 속성과 동작을 하나로 묶고, 실제 구현 내용을 감추는 것.
- 외부 객체는 객체 내부의 구조를 알지 못하며, 객체가 노출해서 제공하는 필ㄷ르와 메소드만 이용할 수 있다.
캡슐화를 하는 이유
외부의 잘못된 사용으로인해 객체가 손상되지 않도록 하기 위해서.
상속 (Inheritance)
- 객체 지향 프로그래밍에서 부모역할의 상위 객체가 갖고있는 속성과 동작을 자식역할의 하위 객체에게 물려주어 하위 객체가 사용할 수 있도록 하는 것.
상속을 사용하는 이유
상속은 상위객체를 재사용 함으로써 하위 객체를 쉽고 빨리 설계할 수 있도록 도와주고, 이미 잘 개발된 객체를 재사용해서 새로운 객체를 만들기 때문에 반복된 코드의 중복을 줄임.
single inheritance
오직 하나의 클래스 만을 상위 클래스로 할 수 있음 (?) 속성과 동작을 파악하기 쉽다.
multiple inheritance
하나의 클래스가 여러 개의 클래스를 상위 클래스로 할 수 있는 상속구조임 (?) 왜 프로그래밍 언어로는 구현하기 힘든가?
Leave a comment