Frog is cry
시스템 분석 설계 : 9-객체지향 분석 및 설계 본문
1장 객체지향의 기법
객체지향의 장단점
> 규모가 큰 대형 프로젝트 개발에 적당하다.
> 소프트웨어의 재사용률이 높아진다.
> 소프트웨어의 확장성이 높아진다.
> 객체를 재사용하면서 프로그래밍할 수 있어 신속하게 개발할 수 있다.
> 소프트웨어의 유지보수성이 향상된다.
> 자연적인 모델링이 가능하다.
> 전형적인 사용자 타입 중심이다.
> 대화식 프로그램 개발에 용이하다.
> 객체를 이용하여 쉽게 프로그래밍할 수 있지만 객체를 설계하기가 어렵다.
> 객체의 규모가 크기 떄문에 실행속도가 느려진다.
객체지향의 용어
클래스(Class)
클래스 라는 것은 같은 유형의 객체나 유사한 객체들을 묶어서 공통된 특성이나 특징을 정의하고 그 특성이나 특징을 변화시키는 함수를 정의하는 개념이다.
> 객체 타입(Object Type)을 의미한다.
> 클래스로부터 새로운 객체를 생성하는 행위를 인스턴스화(Instantiation)라 한다.
> 클래스에는 객체의 특성을 나타내는 기억 장소를 정의하고 그 기억 장소를 변경시킬 수 있는 함수가 정의된다.\
객체(Object)
객체라는 것은 현실 세계를 표현하는 도구로 객체의 특성이나 상태를 나타내는 속성(Attribute)(자료)과 이 속성을 변화시키고 다루는 메소드로 구성된 캡슐화 개념이다.
> 데이터구조와 함수로 구성된 소프트웨어 모듈이다.
> 하나의 객체는 어떤 기능을 수행할 수 있는 능력을 가지고 있다.
> 상태와 행위를 가지고 있다.
> 식별성을 가진다.
객체지향의 기본원칙
자료와 행위의 결합(Combining Data and Behavior)
> 객체는 객체의 상태나 특성을 나타내는 속성(데이터)과 이 속성을 다루는 행위(메소드)의 집합체이다.
추상화(Abstraction)
현실 세계에 존재하는 특정 대상을 표현하는데 있어 불필요한 부분을 생략하고 객체의 속성중 가장 중요한 것에만 중점을 두어 개략화시킨 것이다.
기능 추상화
> 여러 개의 서브루틴을 묶어 타 그룹에 보여지는 가시적인 루틴과 그렇지 않은 은폐된 루틴을 만들어 가시적인 루틴과 그렇지 않은 은폐된 루틴을 만들어 가시적인 루틴은 타 그룹과 통신하고 은폐된 루틴은 가시적인 루틴을 지원하는 개념을 의미한다.
데이터 추상화
> 데이터 객체들에 대한 연산 및 데이터형을 정의하고 그에 대한 표현과 처리 내용은 은폐한다.
제어 추상화
> 연산자와 제어 행위는 내부 안에 은폐하고 원하는 효과를 정의하게 된다.
캡슐화(Encapsulation)
분석자나 설계자가 주어진 문제를 데이터와 함수 등 세부적인 사항에 대해서 생각하지 않고 연관되어 있는 데이터와 행위를 캡슐화하여 객체로 나타내고 이 객체라는 덩어리로 문제를 사고하게 하여 단순화시키는 것을 의미하는 것으로 다음과 같은 이점 있다.
> 사용자에게는 상세한 구현을 감추고 필요한 사항만 보이게 한다(Information Hiding).
> 캡슐화된 덩어리(객체)를 재사용할 수 있다(Reusability).
> 프로그램상에서 연산이 적용되는 한계를 명백하게 할 수 있다(Continuity).
> 변경이 발생할 때 오류의 파급 효과가 적다(Protection).
> 설계자가 큰 문제를 작은 문제로 분할하여 사고할 수 있도록 한다(Decomposability).
> 작은 문제로 분할되어 있으므로 이해가 용이하다(Understandability).
2장 객체지향 개발
OMT 모델링 방법
> 실세계를 모델링하는 것으로 시스템의 무엇에서 언제 무슨일이 일어나는가를 모델링 하는 것이다.
객체 모델링(Object Modeling)
>시스템화를 하고자 하는 대상 범위의 세계에서 객체를 끌어내어 객체들 간의 관계를 정의하여 시스템의 정적 구조를 객체 다이어그램으로 나타내는 과정으로 다음과 같이 진행된다.
동적 모델링(Dynamic Modeling)
시간 흐름에 따른 객체들과 객체들 사이의 제어 흐름, 상호 작용, 동작 순서 등을 표현하는 것으로 시스템의 변화를 보여주는 객체 상태 다이어그램을 작성하는 모델링이다.
> 사건(Event)과 상태(State)를 정의한다.
> 조건에 따른 활동을 정의한다.
> 네스트 상태(Nested State)를 확인한다.
> 같은 유형의 상태들을 조합한다.
기능 모델링(Function modeling)
시스템에 무슨 일이 일어나는가를 모델링하는 것으로 데이터 흐름도(DFD)를 이용하여 다수의 프로세스 간의 데이터 흐름을 중심으로 처리 과정을 표현한 모델링이다.
> 입출력 데이터를 정의한다.
> 자료 흐름도(DFD)를 작성한다.
> 제어 흐름 및 제약 조건을 기술한다.
'자격증 > 정보처리산업기사' 카테고리의 다른 글
CBT-140525 오답노트 (0) | 2020.08.09 |
---|---|
CBT-140302 오답노트 (0) | 2020.08.08 |
시스템 분석 설계 : 8-구조적 분석 및 설계 (0) | 2020.08.08 |
시스템 분석 설계 : 7-소프트웨어 공학 및 IPT (0) | 2020.08.08 |
시스템 분석 설계 : 6-시스템 평가와 문서화 (0) | 2020.08.08 |