소프트웨어공학

본문 바로가기
사이트 내 전체검색


소프트웨어공학
소프트웨어공학

1. UML의 개요

페이지 정보

작성자 관리자 댓글 0건 조회 282회 작성일 22-08-12 08:03

본문

1. UML의 개요

1. UML의 개요


1) UML의 개념  


- 통합모델링 언어

- UML은 1994년 소프트웨어 방법론의 선구자인 그래디 부치(Grady Booch), 제임스 럼바(James Rumbaugh), 이바 야콥슨(Ivar Jacobson)에 의해 연구

- 1997년 객체관리그룹(OMG, Object Management Group)에서 여러 표기법을통합하여 UML 발표

- UML은 객체지향 시스템 개발 분야에서 가장 우수한 모델링 언어로 인식되고 있다.



2) UML의 특징 

- UML은 가시화 언어이다
UML은 소프트웨어의 개념 모델을 시각적인 그래픽 형태로 작성
표기법에 있어서는 각 심벌에 명확한 정의가 존재
개발자들 사이에 오류 없는 원활한 의사소통이 가능

- UML은 명세화 언어이다
명세화란 정확하고, 명백하며, 완전한 모델을 만드는 것을 의미
UML은 소프트웨어 개발 과정인 분석, 설계, 구현 단계의 각 과정에서 필요한 모델을 정확하고 완전하게 명세화할 수 있는 언어

- UML은 구축 언어이다
UML은 Java, C++, Visual Basic과 같은 다양한 프로그래밍 언어로 표현
UML로 명세화된 설계 모델은 프로그램 소스 코드로 변환하여 구축 가능
 구축되어 있는 소스를 UML로 역변환하여 분석하는 역공학이 가능

- UML은 문서화 언어이다
UML은 시스템 아키텍처와 이에 대한 모든 상세 내역에 대한 문서화를 다루며, 요구사항을 표현하고 시스템을 테스트하는 언어 제공


3) UML의 역사

1990년대에는 OOD/Booch, OMT, OOAD, RDD, GOOD, HOOD, OOSD, OOJSD 등과 같은 많은 방법론들은 실제 시스템을 구축하는 데 있어서 각각의 객체지향 기술들이 갖는 방법과 심벌이 서로 달랐다. 

호환성에 있어서 장애가 되었다. 

UML은 많은 객체지향 방법론들 때문에 발생하는 문제점을 인식하고, 이의 해결을 위해 통합된 객체지향 모델링 언어를 정의하기 위한 노력의 결과로 탄생

1.PNG



4) UML의 용도

 시스템을 만들기 전에 모델을 만드는 것은 건물을 짓기 위한 설계도처럼 아주 중요한 역할 


시스템을 만드는 데도 어휘와 규칙을 마련하여 시스템을 개념적, 물리적으로 표현하는 모델이 필요


성공적으로 시스템을 만들기 위해서는 객체지향적인 분석과 설계를 위한 표준으로 인정받는 모델링 언어인UML이 필요




2. 객체지향 모델링

1) 객체지향 개념
- 1970년대 이전의 소프트웨어 개발 방식
체계적인 계획이나 설계 없이 프로그램들을 필요할 때마다 하나씩 개발하여 최종 시스템에 맞추어 나가는 방식으로 진행

- 1970년대 프로그램을 여러 개의 작은 부분으로 쪼개어 개발하는 구조적 개발 방법이 많이 사용

구조적 개발 방법 
- 소프트웨어를 단위 모듈로 분할하여 전체 프로그램의 구조를 세부적으로 쪼갠 다음 각 부분을 구현하고, 다시 통합해서 완성하는 방법
- 프로그램의 논리와 데이터를 분리해서 소프트웨어를 설계하기 때문에, 생명주기 각 단계에서 단계별로 자연스럽게 연결되지 않음
- 문제점 : 유지보수 비용이 많이 발생

객체지향이란 
구조적 방법의 문제점을 극복하고, 인간이 사고하는 방식대로 프로그램을 개발하려는 노력으로부터 탄생

현실세계에 존재하는 실체 및 개념들을 객체라는 독립된 단위로 구성하고, 이 객체들이 메시지를 통하여 상호작용함으로써전체 시스템이 운영되는 개념


2) 객체지향 기본개념
- 객체
객체란 우리가 살아가는 세계에 존재하거나 생각할 수 있는 것을 말함

현실세계에 존재하는 개념들 중 소프트웨어 개발 대상이 되는 것들은 모두 객체라고 할 수 있다.

- 클래스
클래스는 객체를 생성할 수 있는 구조와 정보를 가지는 틀이라고 정의할 수 있다.
붕어빵 기계를 클래스라고 하면 이 기계에서 나오는 붕어빵은 객체
클래스는 개념적인 의미이며, 객체는 구체적인 의미
클래스에서 생성된 객체들은 같은 속성과 같은 오퍼레이션에 대한 정의를 갖음

- 메시지
객체들 사이의 상호작용 수단이 바로 메시지

메시지는 어떤 한 객체가 다른 객체에게 특정 작업을 요청하는 신호

메시지를 보내는 객체를 송신 객체(Sender)라 하고, 메시지를 받아서 동작을 수행하는 객체를 수신 객체(Receiver)라 한다.


2.PNG




3) 객체지향 특성


- 캡슐화

캡슐화란 자료와 이 자료를 처리하는 오퍼레이션이 한 틀 안에서 결합되어 객체라는 단위로 묶여서 사용되는 것


객체 외부에서는 객체 내부 정보를 직접 접근하거나 조작할 수 없고, 외부에서 접근할 수 있도록 정의된 오퍼레이션을 통해서만 관련 데이터에 접근


캡슐화는 클래스로 구현


캡슐화를 통하여 정보은닉(Information Hiding)이 가능하다. 


정보은닉은 보다 높은 독립성, 유지보수성 그리고 향상된 이식성을 제공


- 상속

객체지향의 기본 개념으로, 프로그램을 쉽게 확장할 수 있도록 도와주는 수단


상위 클래스의 모든 특성을 하위 클래스가 이어받음으로써 이미 정의한 클래스를 재사용하고 확장할 수 있도록 지원하는 개념


상위 클래스의 속성을 상속받아 하위 클래스에서 실체화시키는 관계를 특수화라고 하고, 반대로 하위 클래스의 공통적인 특성을 추상화하여 상위 클래스로 정의하는 것을 일반화라 한다.


- 다형성

여러 클래스에 같은 이름의 함수가 존재하지만 동작은 다르게 수행함을 의미


객체지향 언어에서 메서드 오버라이딩(Method Overriding) 방식으로 구현


상위 클래스에 메서드(오퍼레이션)가 정의되고 그 메서드를 하위 클래스에서 상속받아 그대로 사용할 수 있지만, 하위 클래스의 객체가 다른 방법으로 동작을 해야 하는 경우에는 상속받은 메서드를 같은 이름으로 재정의함으로써 생성된 객체가 상위 클래스의 정의와는 다른 동작을 할 수 있도록 구현




4) 추상클래스와 인터페이스

객체지향의 4가지 특성을 실제로 구현함에 있어서 반드시 알아야 할 것이 추상 클래스(Abstract Class)와 인터페이스(Interface)


- 추상클래스

추상 클래스는 클래스의 명칭과 메서드는 있으나 메서드의 처리 내용은 없다. 

상속을 통해서 메서드가 구체화(Implementation) 

추상 클래스를 상속받은 하위 클래스에서는 추상적인 기능 구현


- 인터페이스

인터페이스는 상수와 추상 메서드만을 가진다.

클래스는 하나의 상위 클래스로서만 상속받을 수 있지만, 인터페이스는 여러 개의 인터페이스로부터 상속받을 수 있기 때문에 다중 상속의 기능 제공






댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.