제 2 장 객체지향의 이해
차례 2.1 객체 – 어디서나 볼 수 있는 객체 2.2 객체지향을 이루는 몇 가지 개념들 객체들은 어떻게 통신을 할까? 객체들은 다른 객체와 어떤 관계를 가질까? 어떻게 객체들을 결합시킬 수 있을까? 2.3 결론은? 2.4 요약 2010-2학기 소트트웨어설계
2.1 객체 – 어디서나 볼 수 있는 객체 객체(Object) 객체는 클래스(범주)의 인스턴스 객체는 속성(attributes)과 행동(behavior)을 갖는다 행동은 자신이 수행하는 오퍼레이션(operation)으로 구성 특성(feature) = 속성 + 오퍼레이션 2010-2학기 소트트웨어설계
2.1 객체 – 어디서나 볼 수 있는 객체 객체지향 클래스의 예(세탁기) (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.1 객체 – 어디서나 볼 수 있는 객체 객체지향 클래스의 예(세탁기): 속성과 오퍼레이션의 추가 (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 객체지향 개념은 단지 속성과 오퍼레이션만 가지고는 설명할 수 없다 (1) 추상화 (Abstraction) (2) 상속 (Inheritance) (3) 다형성 (Polymorphism) (4) 캡슐화 (Encapsulation) (5) 메시지 전송 (Message Sending) (6) 연관 (Association) (7) 집합연관 (Aggregation) (8) 복합연관 (Composition) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (1) 추상화 (Abstraction) (2) 상속 (Inheritance) 객체를 모델링할 때 필요한 만큼의 속성과 오퍼레이션을 추출 모델에 무엇을 포함하고, 무엇을 뺄 것인지 아는 것이 가장 중요 (2) 상속 (Inheritance) 가전제품(Appliance) 클래스의 각 서브클래스(subclass; 세탁기, 냉장고, 전자레인지 등)는 슈퍼클래스(superclass; 가전제품)의 모든 특성을 물려받는다 각 서브클래스는 물려받은 특성 외에 자신만의 속성과 행동을 추가 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 예: 가전제품 클래스 그림에 나온 물건들은 모두 가전제품(Appliance) 클래스의 속성과 오퍼레이션을 상속 받으며, 가전제품 클래스의 서브클래스가 된다. 가전제품(Appliance) 클래스는 이들 서브클래스의 슈퍼클래스이다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 예: 가전제품 클래스 슈퍼클래스는 자신이 서브클래스가 되어 다른 슈퍼클래스로부터 상속받을 수도 있다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (3) 다형성 (Polymorphism) 다른 클래스인데 같은 이름의 오퍼레이션을 가지는 경우 예 - “open” 문을 열다.(open door) 창문을 열다.(open window) 신문을 펼치다.(open newspaper) 선물 꾸러미를 풀다.(open present) 은행 계좌를 개설하다.(open account) 객체지향 세계에서 각 클래스는 자신의 오퍼레이션이 어떻게 행동하는지 알고 있다. 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 다형성의 예 다형성은 동일한 이름의 오퍼레이션이라도 그 오퍼레이션이 일어나는 클래스에 따라 각기 다른 행동을 수행하도록 한다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (4) 캡슐화 (Encapsulation) 객체는 자신의 동작 원리를 클래스라는 껍데기로 캡슐화한다. 즉, 그 객체만 자신의 오퍼레이션이 어떻게 작동하는지 알고 있으며, 외부에서는 알 수 없다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (5) 메시지 전송 (Message Sending) 한 객체에서 다른 객체로 메시지를 전달 예: 리모콘 객체는 TV 객체로 메시지를 보내어 TV를 켜도록 한다. TV 객체는 자신의 인터페이스인 적외선 수신기를 통해 이 메시지를 받는다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (6) 연관 (Association) 객체는 다른 객체와 “어떤 의미의” 연관 관계를 가질 수 있다. 여러분이 TV를 켜면, 여러분은 TV와 단방향성 연관을 가지게 된다. 하나의 객체는 다른 객체와 두 개 이상의 연관을 가질 수 있다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (6) 연관 (Association) 클래스는 한 개 이상의 다른 클래스와 연관될 수 있다. 다중성(multiplicity) 은 특정한 집합 내에서 하나의 객체가 몇 개의 객체와 연관될 수 있는지 알려준다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (7) 집합연관 (Aggregation) 하나의 객체가 다른 객체들의 조합에 의하여 만들어진 경우 컴퓨터 시스템은 전형적인 집합연관이다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.2 객체지향을 이루는 몇 가지 개념들 (8) 복합연관 (Composition) 집합체(aggregate) 전체와 그 객체를 구성하는 컴포넌트가 밀접한 관계를 갖는 집합연관의 한 형태 복합연관에서는 복합체보다 컴포넌트가 먼저 사멸하는 경우가 있다. 복합체가 없어지면 컴포넌트도 따라 없어진다. (출처: J. Schmuller, Teach Yourself UML in 24 Hours, 3rd Ed., Sams, 2004) 2010-2학기 소트트웨어설계
2.3 결론은? 모든 시스템의 중심은 객체와 객체들간의 연관관계 의뢰인의 요구사항을 조사할 때는 의뢰인의 지식 도메인을 빨리 이해해야 함 UML 적용방법의 학습 필요 2010-2학기 소트트웨어설계
2.4 요약 객체 지향 개념의 기본 원리 클래스와 객체 속성과 오퍼레이션 상속 다형성 객체의 인터페이스 메시지 교환 객체의 연관관계 집합연관 복합연관 2010-2학기 소트트웨어설계