Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

객체지향 개발 방법론 본문

Software Engineering

객체지향 개발 방법론

d5ngs 2019. 4. 15. 17:30

특징

  • 재사용율이 높다
  • 유지보수 향상
  • 사용자 중심, 대화식 프로그램 등 대형 프로젝트 개발에 적합
  • 각 개발 단계의 순서가 뚜렷하게 구별되지 않음
  • 분석, 설계 및 구현 단계들 사이에 의미적 갭이 크지 않다.
  • S/W 위기의 해결책으로 채택되어 사용


분석
  • 정의
    - S/W를 개발하기 위한 업무를 객체와 속성, 클래스와 멤버, 전체와 부분등으로 나누어서 분석해 내는 기법

  • 특징
    - 클래스, 객체, 속성, 연산들을 표현해서 모형화를 함 (ERD)
    - 객체는 인스턴스화 되고, 클래스를 식별
    - Rumbaugh 분석 기법을 이용
    - 객체의 이름과 상태, 행위들을 개념적으로 파악




설계

  • 특징
    - 시스템을 구성하는 객체, 속성, 연산을 인식하는 것이 가장 중요
    - 문서화할 때 계층차트를 이용하여 객체와 부객체의 계층적 구조를 보여주게 함
    - 객체는 순차적, 동시적으로 구현할 수 있음
    - 서브 클래스와 메세지 특성을 세분화
    - 객체들을 클래스로 정의하고 상관관계를 상속단계로 정의
    - 객체를 속성과 연산으로 정의, 접근방법을 구체화


구현
  • 특징
    - 절차 중심 프로그래밍 기법이 아님
    - 정의된 클래스들에 대해 특정언어를 이용하여 1:1로 정의



테스트
  • 순서
    1. 단위(class) 테스트
    2. 통합 테스트
    3. 검증과 시스템 테스트



분석 방법론
  • 정의
    - 요구사항을 분석하여 이와 관련된 모든 클래스, 속성, 연산, 관계 등을 정의하여 모델링하는 작업

  • Booch
    "미시적, 거시적 개발 프로세스를 모두 사용하는 분석 방법"
    "클래스와 객체들을 분석, 식별하고 속성과 연산을 정의"
    "절차지향-동사 / 객체지향-명사"

  • Jacobson
    "Use Case를 사용"

  • Wirfs-Brock
    "분석과 설계간 구분이 없음"
    "고객 명세서를 평가해서 설계작업까지 연속으로 수행"

  • Coad, Yourdon
    "E-R 다이어그램 사용"
    "주로 관계를 분석"

  • Rumbauh
    "가장 일반적으로 사용"
    "S/W 구성요소를 그래픽 표기법을 이용하여 모델링"
    "객, 동, 기"



Object (객체)

  • 정의
    - 현실 세계의 개체
    - 서로 상호작용은 메세지를 통해 이루어짐
    - 데이터와 함수를 묶어 놓은 하나의 S/W 모듈

  • 특징
    - 객체마다 각각의 속성, 상태를 갖고 있다.
    - 식별성을 가진다
    - 객체의 메소드는 다른 객체들로부터 메세지를 받았을 때 수행
    - 행위에 대하여 그 특징을 나타낼 수 있다.
    - 일정한 기억장소를 가지고 있다.



Class (클래스)

  • 정의
    - 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화
    - 공통된 속성과 연산을 갖는 객체의 집합
    - Instance : 클래스에 속한 각각의 객체



Message (메세지)
  • 정의
    - 객체들 간의 상호작용을 하는데 사용되는 수단
    - 메세지가 전달되면 메소드를 시작



Method (메소드)
  • 정의
    - 객체지향 시스템에서 함수, 프로시저에 해당하는 연산기능
    - 메세지를 받아 실행해야 할 객체의 구체적인 연산



Encapsulation (캡슐화)
  • 정의
    - 자료, 연산 등 정보처리에 필요한 기능을 테두리로 묶는 것
    - 정보 은폐
  • 특징
    - 외부에서 변경을 못한다
    - 프로그램 변경에 대한 오류의 파급효과가 적다
    - 재사용이 용이하다
    - 객체간의 인터페이스 단순화
    - 응집도 향상, 결합도 감소



Information Hiding (정보은폐)
  • 정의
    - 객체가 다른 객체로부터 자료를 숨기고 자신의 연산만을 통해 접근을 허용



Inheritance (상속)
  • 정의
    - 상위 클래스의 메소드, 속성을 하위 클래스가 물려 받는 것
    - 다중 상속
    "한 클래스가 여러 상위 클래스로부터 상속 받는 것"



Abstraction (추상화)
  • 정의
    - 불필요한 부분을 생략하고 속성 중 중요한 것에만 중점
    - 모델화




Polymorphism (다형성)

  • 정의
    - 한 메세지에 의해 객체가 연산을 수행할 때 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
    - 서로 다른 클래스들이 동일한 메소드명을 사용




Rumbaugh 분석 기법



  • 절차
    1. 객체 모델링
    2. 동적 모델링
    3. 기능 모델링

  • 객체 모델링
    - 객체를 찾아내어 객체들의 특성을 규명

  • 동적 모델링
    - 상태도를 이용하여 객체들의 제어 흐름, 상호 반응 연산 순서 등 동적인 행위를 표현

  • 기능 모델링
    - DFD를 이용하여 객체에서 수행되는 동작을 기술
    1. 입출력 결정
    2. DFD 작성
    3. 기능의 내용을 상세히 기술
    4. 제약사항을 결정하고 최소화