새소식

반응형
밥벌이/소프트웨어 공학

객체 지향 분석 설계의 개요

  • -
반응형
  • 객체의 이해
    • 객체의 개념
      • 실세계에서 어떤 구체적 의미를 구성하는 하나의 실체 단위로 특정 사물 및 개념이며 클래스(범주)의 인스턴스
      • 필요로 하는 데이터와 그 위에 수행되는 함수들을 가진 작은 소프트웨어 모듈
      • 데이터는 객체의 상태를 저장하는데 사용되고, 함수는 그 객체가 수행할 수 있는 기능을 정의
    • 객체의 특성
      • 객체는 속성과 행동을 가지고 있으며, 객체의 행동은 자신이 수행하는 연산(Operation)으로 구성됨
      • 객체는 상태를 유지할 수 있어야 하며 기능을 가져야 함
      • 객체는 다른 객체와 구별할 수 있는 식별자를 가져야 함
           
  • 객체 지향의 이해
    • 객체 지향의 의미
      객체(예를 들어 "학생","교수","지도' 등)의 구체적 의미를 구성하는 각각의 실체 단위를 정의하고, 그 관계를 파악하는데 주의를 기울이는 작업 방법을 의미
      • 기존의 시각
        • 하나의 프로그램은 여러 개의 데이터와 그 위에 수행되는 함수들의 집합
        • 상호 연관된 데이터와 함수들이 별도의 독립된 정보인 것처럼 취급
      • 객체 지향적 시각
        • 하나의 프로그램은 여러 개의 객체들로 구성
        • 각 객체들은 소수의 데이터와 함수들로 구성
    • 객체 지향의 등장 배경
      • 전통적 방법론의 실 세계 모델링의 어려움
      • 소프트웨어 재사용의 어려움
      • 소프트웨어의 대형화, 복잡화로 인한 소프트웨어의 위기
    • 객체 지향의 특징
      • 업무 영역을 상호작용하는 객체들의 집단으로 이해하고 시스템을 구축
      • 데이터와 기능을 캡슐화하고 객체간 상호작용은 메시지를 통해 이루어짐
      • 안정된 모델로서 중요한 측면만 모델링 하므로 분석의 초점이 명확함
      • 하나의 시스템을 여러 객체를 모아 구성하는 방법으로, 컴포넌트 기반의 기초가 됨
    • 객체 지향 기법의 장,단점
장점 단점
  • 문제에 대한 자연스러운 모델링
  • 재사용을 통한 보다 높은 생산성
  • 점증적인 개발 및 유지보수 용이
  • 근본적이 전문가 집단이 부족
  • 초기 read tiem이 김
  • 구현 기술로만 적용하면 장점이 없음
  • 기본적인 소프트웨어 공학의 기술이 필요
  • 객체 지향의 원리
    • 객체 지향의 3요소
      • 객체(Object) : 현실 세계에서 개념적으로 이해되고 표현될 수 DT는 모든 대상
      • 클래스(Class) : 객체를 구체적으로 정의하는 형식으로, 속성과 메소드로 구성
      • 메시지(Message) : 객체들간의 상호작용을 위한 것으로, 공개된 메소드
    • 객체 지향의 근본 원라
      • 객체 지향에서 클래스는 어떤 범주, 즉 특정 사물 및 개념을 나누는 역할을 함
      • 클래스는 객체를 생성하는 템플릿으로 다른 인스턴스(객체)를 새로 만드는데 사용
      • 객체 지향의 목적이 실세계의 일부 혹은 전체를 본뜬 것이므로 속성과 행동들이 좀더 많이 반영된 클래스일수록 실세계에 가까운 모델이 됨
  • 객체 지향의 기본 개념
    • 추상화(Abstraction)
    • 캡슐화(Encapsulation)
    • 상속성(Inheritance)
    • 다형성(Polymorphism)
      • 수평적(Overloading) : 동일한 상위 클래스에서 상속받지 않고 메소드명만 같은 다형성
      • 수직적(Override) : 상속관계에서의 다형성으로, 다른 시그니처(서명)를 사용할 경우에는 다른 메소드로 간주
    • 메시지 전달
    • 관계성(Relationship)
      객체와 클래스 사이 또는 클래스들 사이의 상호 참조하는 관계를 표현하는 방식
관계성의 종류 의미 특성
is member of 연관성(Association) 클래스와 객체의 참조 및 이용관계
"객체 A는 클래스 B에 속한다."
is part of 집단화(Aggregation) 클래스들 간의 구조적인 집약 관계
"클래스 A는 클래스 B와 클래스 c로 구성된다."
is a 일반화(Generalization)
특수화(Specialization)
클래스들 간의 개념적인 포함 관계
"자식 클래스 A는 부모 클래스 B의 일종이다."

   

  • 객체 지향 기법의 발전 방향
    • 객체 지향 기술의 발전
    • 객체 지향 기법의 동향
      • 인간의 사고 방식과 유사하고 개발 접근이 쉬워 인공 지능, 신경망 같은 차세대 컴퓨터 산업에 응용
      • CBD의 한 경로인 컴포넌트 개발에 객체 지향 분석, 설계, 구현 기법이 사용되고 있음
      • 소비자들도 개발(Build) 위주의 소프트웨어가 아닌 구매(Buy) 위주의 소프트웨어 이용 패턴을 가질 수 있음
반응형

'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글

UML(Unified Modeling Language)  (0) 2011.08.19
UML Diagram  (0) 2011.08.19
소프트웨어 품질의 개요  (0) 2011.01.03
소프트웨어 품질 보증  (0) 2011.01.03
소프트웨어 품질 표준  (0) 2011.01.03
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.