1. 객체지향의 개념
재래식 방법과 비교
재래식 방법
기능중심
변경의 파급효과 큼
객체지향 방법
자료와 관련 함수의 결합
객체
정의
소프트웨어 모듈(객체) = 자료구조 + 함수
속성
상태
능력
연산(Operation)을 수행할 수 있는 능력
정체성
구별 가능성
객체 인스턴스
객체 인스턴스(Instance) = 객체
특징
비슷한 객체의 구조와 행동은 공통 클래스로 선언
클래스(Class) vs 인스턴스 (Instance)
개념 비교
객체의 타입(Object Type) : 클래스
클래스에 속하는 개개의 객체 : 인스턴스
클래스의 속성(Attribute)
예 - 직원 클래스
클래스의 의의
클래스는 객체들이 갖는 속성과 적용 연산을 정의하고 있는 틀(Templet)
Employee Hong_kildong();
Employee* Hone_kildong = new Emplyoee();
캡슐화(Encapsulation)
캡슐화의 정의
관련된 항목을 모아서 캡슐을 씌움
추상화의 수단
세부사항은 차후에 생각
정보은닉(Information Hiding)
외부의 직접적 접근 불가, 일종의 블랙박스
구현에 따라 선택 가능
문법
Public
Private
Protected
객체 사이의 관계
객체는 일반적으로 상호작용하여 동작
객체에 있는 서비스를 호출하면 두 객체는 관계가 맺어져야 함
상호작용할 필요가 있는지 찾아내는 작업이 필요
연관
서로 상대의 존재를 알 수 있도록 관련이 맺어진 것
서로 알고 접근 가능하게 하는 방법은 여러 가지가 있음
집합 관계
전체 개념과 부분 개념 사이의 관계
격납의 의미
예 - 디스크 □ 트랙 □ 섹터
상속(Inheritance)
의미
상위 클래스의 속성과 연산을 물려 받음
슈퍼클래스(Superclass), 서브클래스(Subclass)
예 - 직원 → 슈퍼클래스
관리자 → 서브클래스
복수상속 (Multiple Inheritance)
두 개 이상의 슈퍼클래스에서 상속 받음
다형성(Polymorphism)
정의
여러 형태를 가지고 있음 = 여러 형태를 받아들일 수 있음
특징
같은 이름의 메시지를 다른 객체나 서브클래스에서 호출
예 - getarea() 를 도형의 모양이 달라도 호출
메소드
특정한 클래스를 위하여 오퍼레이션을 구현
하나 이상의 메소드를 가진 오퍼레이션
매개변수나 객체가 속한 클래스의 이름으로 구분
왜 객체지향 방법인가?
객체지향의 장점
소프트웨어 위기 1
시스템을 쉽게 구축할 수 있는 방법 2
– 문제를 정확히 해결
– 적절한 작업
– 유지보수 가능
– 확장 가능
– 재사용 가능
응용문제를 더 쉽게 인식 3
구현이 덜 복잡해짐 4
분석과 구현 사이의 차이가 적음 6
자료구조와 함수의 결합이 자연스러움 5
의사교환이 효과적인 비주얼 모델링 7
모델링 과정에 사용자와 개발자 사이에 공통으로 이해할 수 있는 용어와 개념 8
객체모델을 이해하기 위하여 꼭 프로그래머일 필요 없음 9
비용의 절감 10
객체는 이런 장점이 있지만 모든 것을 자동으로 제공하지는 않음
객체지향의 특징
모형의 적합성
객체중심 모형은 우리의 사고 방식과 유사
뚜렷하게 구별되는 객체로 나누고 객체들의 메시지 패싱이모여 프로그램이 됨
재사용 용이
Openness, Closeness를 다 갖춘 재사용 단위
상속(Inheritance), 다형성(Polymorphism)
Time – to – Market
종래의 폭포수모형은 단계가 길고 문서 작업이 많음
클래스의 재사용과 확장에 의한 빠른 개발이 가능
설계와 프로그램의 매핑
개발 각 단계의 전환이 자연스럽고 신속
객체지향 분석과 설계 과정
분석과 설계
요구를 사용 사례로 정리하고 사용 사례 다이어그램을 작성
클래스 후보를 찾아내고 개념적인 객체 모형 작성
사용 사례를 기초하여 순서 다이어그램을 작성
클래스의 속성, 오퍼레이션 및 클래스 사이의 관계를 찾아 객체모형을 완성
상태 다이어그램이나 액티비티 다이어그램 등 다른 다이어그램을 추가하여 UML 모형을 완성
서브 시스템을 파악하고 전체 시스템 구조를 설계
적당한 객체를 찾아내거나 커스텀화 또는 객체를 새로 설계
객체지향 개발
특징
반복 및 점증적 개발 프로세스를 사용
설계와 구현 작업 사이에 공통의 개념들을 사용하기 때문에 전환이 용이
Coad / Yourdon법
사고법, 표기방법이 가장 간결
초보자 지향형
Booch법
도큐먼트 작성에 있어서 관점을 자세하게 규정
객체지향의 특징을 설계공정에 최대한 반영
초보자 부적합
OMT(Object-Modeling Technique)법
가장 형평성이 우수
초보자부터 베테랑까지 이용가능, CASE와 연동도 충실
'소프트웨어공학 > 수업' 카테고리의 다른 글
17. UI 설계(9-1) (0) | 2017.06.15 |
---|---|
16. 객체지향 분석 및 설계(8-2) (0) | 2017.06.06 |
12. 설계(6-2) (0) | 2017.05.30 |
6. 프로젝트 계획 수립과 관리(3-2) (0) | 2017.05.22 |
10. 소프트웨어 아키텍처(5-2) (0) | 2017.05.21 |