새소식

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

UML(Unified Modeling Language)

  • -
반응형
  • UML의 개요
    • UML의 정의
      • 객체 기술에 관한 국제 표준화 기구(OMG; Object Management Group)에서 인정한 객체 지향 분석, 설계를 위한 통합 모델링 언어
      • Jabcoson(Use Case Model), Rumbaugh(OMT), Booch(Object Design)의 기법 통합
    • 방법론과 모델링 언어의 차이점
      • 방법론 : 생각과 행동을 구조화하는 방법을 제공(모델을 만들 때 어떻게, 언제, 무엇을, 왜라는 모든 방법을 제시하는 것
      • 모델링 언어 : 모델을 단지 표현하는 것
    • UML의 출현 배경
      • 시스템의 대형화 및 복잡도가 증가하여 좋은 모델링 언어의 필요성이 부각
      • 모든 영역에 있어서 어떤 구조의 복잡도라도 설명할 수 있는 표기(Notation)와 의미(Semantic)를 표현 가능한 모델링 언어가 필요함
      • 객체 지향 분석/설계 개발 방법론의 표준 부제
    • UML의 특징
      • 단순한 표기법이라기 보다는 사용하는 형식과 각각의 표기에 의미를 가지며, 즉시 사용 가능하면서 표현력이 강한 시각적 모델링 언어
      • 개발자, 관리자, 공급자, 획득자에게 통일된 인터페이스 제공함으로써 이용 시 의사소통이 원할하며 개발규모, 개발 프로세스, 개발 언어에 관계없이 적용 가능
      • UML은 객체 지향 개발만을 위한 것이 아니라 통합 모델링이므로 다른 모델을 모델링 시 사용가능
      • Framework, Pattern, CBD에 적용이 가능하고 특히 분산 처리/Web/임베디드(Embedded) 시스템에 적합
  • UML의 구성
    • UML의 구성 요소
구성요소 종류
사물(Things) 구조(Structure), 행동(Behavioral), 그룹(Grouping), 주해(Annotation)
관계(Relationship) 의존(Dependency), 연관(Association), 일반화(Generalization),실체화(Realization)
도해(Diagrams) Class, Object, Use Case, Sequence, Collaboration, State, Activity, Component, Deployment

   

  • UML의 구조
  • 소프트웨어 중심 시스템의 아키텍처 모델링(Rational 4+1 View Model)
분류 관점 목적 기능 정적도 동적도
Logical
View
End User
  • Functionality
  • Vocabulary
시스템의 기능적 요구를 작성하여 초기 클래스들의 정적인 그림과 그들의 관계를 제공
  • 클래스도
  • 객체도
  • 교류도
  • 상태도
  • 활동도
Component
(Implementation) View
Programmers
  • S/W Management
개발 환경 내에서 실제의 소프트웨어 모듈 조직을 관리
  • 컴포넌트도
  • 교류도
  • 상태도
  • 활동도
Use Case View Analysts / Testers
  • Behavior
시스템의 개괄적인 요구 분석 단계에서 사용 --> 이벤트와 기능 위주로 표현
  • 쓰임새도
  • 교류도
  • 상태도
  • 활동도
Process View System Integrators
  • Performance
  • Throughput
프로세스의 분해에 초점, 프로세스에 대한 컴포넌트 할당을 보여줌 --> 실행 시 소프트웨어 구조를 의미
  • 클래스도
  • 객체도
  • 활성 클래스도
  • 교류도
  • 상태도
  • 활동도
Deployment
View
System Engineer
  • Delivery & Installation
  • Communication
프로세싱 노드에 대해 프로세스들을 매핑
  • 배치도
  • 교류도
  • 상태도
  • 활동도

표 UML의 View 비교

   

  • 모델의 종류
기능 모델 Use-Case Diagram(Static), Activity Diagram(Dynamic)
정적 모델 Class Diagram, Component Diagram, Deployment Diagram
동적 모델 Sequence Diagram, Collaboration Diagram, State Diagram

   

  • 객체(정적) 모델링
    • 시스템에 요구되는 객체들을 보여줌으로써 주로 시스템의 정적 구조를 모델링
    • 객체 모델링은 시스템의 기능에 초점을 맞추기보다 시스템을 구성하고 있는 객체를 강조함으로써, 실 세계에 더욱 접근한 표현을 가능하게 하고 계속적인 변화에 탄력적으로 대처할 수 있게 해줌
    • 추상화, 분류화, 일반화, 집단화 등의 개념들이 사용
  • 동적 모델링
    • 객체 모델링이 끝난 후 시간의 흐름에 따른 객체들 상이의 변화를 조사
    • 객체들 사이의 제어 흐름, 상호 작용, 동작 순서 등을 다룸
    • 상태(State), 사건(Event), 동작(Action) 등의 개념들이 사용
  • 기능 모델링
    • 입력 값으로 부터 계산을 거쳐 어떤 결과가 나타나는지의 기능을 보여주며, 어떻게 유도되어쓴지의 구현 방법은 아직 고려하지 않음
    • 객체 모델링에서 규명된 객체와 동적 모델링에서 밝혀진 각 객체의 형태 변화에서 새로운 상태로 들어갔을 때 수행되는 동작들을 기술하는데 사용
         
  • UML의 역할
    • 가시화 언어 : 개념 모델 작성, 오류없이 전달, 의사소통 용이, 그래픽 언어
    • 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성, 분석/설계의 결정 표현
    • 구축 언어 : 다양한 프로그램 언어와 연결, 왕복 공학 가능(순공학/역공학), 실행 시스템 예측 가능
    • 문서화 언어 : 시스템에 대한 통제, 평가, 의사소통의 문서(요구사항 아키텍처, 설계, 원시 코드, 프로젝트 계획, 테스트, 프로토타입, 릴리즈)
         
  • UML의 동향
    • 객체 지향 소프트웨어를 개발하기 위한 풍부한 분석 및 설계 장치를 제공
    • 향후 상당 기간 동안 산업계 표준으로 지속적인 활용이 예상됨
    • 웹 서비스, 웹 프로그래밍 방법론으로 RUP의 반복 프로세스(Iteration Process) 적용이 확산
    • 재사용성, 개발 생산성 향성을 위한 방안으로 지속적 사용이 확산
반응형

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

객체 지향 분석 설계의 개요  (0) 2011.08.19
UML Diagram  (0) 2011.08.19
소프트웨어 품질의 개요  (0) 2011.01.03
소프트웨어 품질 보증  (0) 2011.01.03
소프트웨어 품질 표준  (0) 2011.01.03
Contents

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

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