OOAD-객체 지향 분석
소프트웨어 개발의 시스템 분석 또는 객체 지향 분석 단계에서 시스템 요구 사항이 결정되고 클래스가 식별되며 클래스 간의 관계가 식별됩니다.
객체 지향 분석을 위해 서로 함께 사용되는 세 가지 분석 기술은 객체 모델링, 동적 모델링 및 기능 모델링입니다.
개체 모델링
객체 모델링은 객체 측면에서 소프트웨어 시스템의 정적 구조를 개발합니다. 개체, 개체를 그룹화 할 수있는 클래스 및 개체 간의 관계를 식별합니다. 또한 각 클래스를 특성화하는 주요 속성 및 작업을 식별합니다.
객체 모델링 프로세스는 다음 단계로 시각화 할 수 있습니다.
- 개체를 식별하고 클래스로 그룹화
- 클래스 간의 관계 식별
- 사용자 개체 모델 다이어그램 만들기
- 사용자 개체 속성 정의
- 클래스에서 수행해야하는 작업 정의
- 용어집 검토
동적 모델링
시스템의 정적 거동을 분석 한 후 시간 및 외부 변화에 대한 거동을 조사해야합니다. 이것이 동적 모델링의 목적입니다.
동적 모델링은 "개별 개체가 다른 개체에 의해 트리거 된 내부 이벤트 또는 외부 세계에 의해 트리거 된 외부 이벤트에 대해 개별 개체가 어떻게 반응하는지 설명하는 방법"으로 정의 할 수 있습니다.
동적 모델링 과정은 다음 단계로 시각화 할 수 있습니다.
- 각 개체의 상태 식별
- 이벤트 식별 및 조치의 적용 가능성 분석
- 상태 전이 다이어그램으로 구성된 동적 모델 다이어그램 구성
- 객체 속성으로 각 상태 표현
- 그려진 상태 전환 다이어그램 유효성 검사
기능적 모델링
기능적 모델링은 객체 지향 분석의 마지막 구성 요소입니다. 기능 모델은 개체 내에서 수행되는 프로세스와 메서드간에 데이터가 이동함에 따라 어떻게 변경되는지를 보여줍니다. 객체 모델링 작업의 의미와 동적 모델링 작업을 지정합니다. 기능 모델은 전통적인 구조화 분석의 데이터 흐름 다이어그램에 해당합니다.
기능 모델링 과정은 다음 단계로 시각화 할 수 있습니다.
- 모든 입력 및 출력 식별
- 기능적 종속성을 보여주는 데이터 흐름 다이어그램 구성
- 각 기능의 목적 설명
- 제약 사항 식별
- 최적화 기준 지정
구조적 분석과 객체 지향 분석
SASD (Structured Analysis / Structured Design) 접근 방식은 폭포 모델을 기반으로하는 소프트웨어 개발의 전통적인 접근 방식입니다. SASD를 사용하는 시스템 개발 단계는 다음과 같습니다.
- 타당성 조사
- 요구 사항 분석 및 사양
- 시스템 디자인
- Implementation
- 구현 후 검토
이제 구조화 된 분석 접근 방식과 객체 지향 분석 접근 방식의 상대적인 장단점을 살펴 보겠습니다.
객체 지향 분석의 장점 / 단점
장점 | 단점 |
---|---|
구조화 된 분석에서와 같이 절차보다는 데이터에 중점을 둡니다. | 개체 내에서 기능이 제한됩니다. 이것은 본질적으로 절차 적이거나 본질적으로 계산적인 시스템에 문제를 일으킬 수 있습니다. |
캡슐화 및 데이터 숨김 원칙은 개발자가 시스템의 다른 부분에 의해 변조 될 수없는 시스템을 개발하는 데 도움이됩니다. | 어떤 개체가 최적의 시스템 설계를 생성하는지 식별 할 수 없습니다. |
캡슐화 및 데이터 숨김 원칙은 개발자가 시스템의 다른 부분에 의해 변조 될 수없는 시스템을 개발하는 데 도움이됩니다. | 객체 지향 모델은 시스템에서 객체 간의 통신을 쉽게 표시하지 않습니다. |
모듈화를 통해 소프트웨어 복잡성을 효과적으로 관리 할 수 있습니다. | 개체 간의 모든 인터페이스를 단일 다이어그램으로 표현할 수 없습니다. |
구조화 된 분석을 따르는 시스템보다 훨씬 쉽게 소규모 시스템에서 대형 시스템으로 업그레이드 할 수 있습니다. |
구조화 분석의 장점 / 단점
장점 | 단점 |
---|---|
객체 지향 분석의 상향식 접근 방식과 달리 하향식 접근 방식을 따르기 때문에 OOA보다 더 쉽게 이해할 수 있습니다. | 기존의 구조화 된 분석 모델에서는 다음 단계 전에 한 단계를 완료해야합니다. 이는 특히 오류가 발생하거나 요구 사항이 변경되는 경우 설계에 문제를 야기합니다. |
기능을 기반으로합니다. 전반적인 목적을 파악한 다음 소프트웨어 개발을위한 기능 분해를 수행합니다. 강조는 시스템에 대한 더 나은 이해를 제공 할뿐만 아니라보다 완전한 시스템을 생성합니다. | 전체 시스템을 한 번에 설계해야하므로 나중에 기능을 추가 할 수있는 옵션이 거의 없기 때문에 시스템을 구성하는 초기 비용이 높습니다. |
여기에있는 사양은 간단한 영어로 작성되었으므로 비 기술 인력이보다 쉽게 분석 할 수 있습니다. | 코드의 재사용을 지원하지 않습니다. 따라서 개발 시간과 비용이 본질적으로 높습니다. |