본문 바로가기

클래스17

UML - 클래스 다이어그램 고급 - 키워드, 책임, static - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 개요 사실 앞의 클래스 다이어그램편에서 언급한 표기법을 사용할 줄 안다면 이미 대부분을 사용하고 있는것이다. 고급편에서는 적절한 곳에 사용하면 유용한 그 외의 표기법을 소개한다. - 키워드 그래픽언어의 단점은 심볼을 모두 외워야 한다는것이다. UML에는 키워드라는것이 있다. 만약 모델링을 위해 UML을 사용하는데 비슷한 기호만 존재할 때, 해당 기호를 사용하고 키워드로 표시하면 사용자에게 해당기호를 어떤 의미로 사용했다고 어필할 수 있다. UML 인터페이스는 몸체가 없는 public 오퍼레이션만 정의되어 있다. 이것을 클래스의 특별한 타입이라고 본다면, 클래스 기호를 사용하고 키워드로 표시해주면 해당 의도를 표현할 수 .. 2021. 2. 10.
UML - 클래스 다이어그램과 제약 규칙 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 제약 규칙 클래스 다이어그램을 작성할 때 시간이 많이 소요되는 부분은 무엇일까? 사각형을 그리고 화살표 방향을 정하는데 오래걸린다고 생각하겠지만 제약(constraint)을 표시하는데 많은 시간이 걸린다. 위 다이어그램에서 Order와 Customer의 다중성은 Order:Customer = *:1 이다. 만약 다중성이 헷갈린다면 한 요소를 1로 고정해놓고 생각해보길 바란다. 예를 들면 Order가 1개 라고 가정한다면 Customer는 1 명이다. 이번엔 반대로 Customer 가 1명이라면 이에 해당하는 Order는 다수이다. 또한 Order와 OrderLine, Product 관계에서 Line Item을 생각해보자.. 2021. 2. 10.
UML - 클래스 다이어그램과 의존 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 의존 한 요소가 다른 요소에게 영향을 미칠 때 두 요소 사이에는 의존이 존재한다고 얘기한다. 한 클래스가 다른 클래스에 메시지를 보내거나, 다른 클래스를 매개변수로 사용하거나, 다른 클래스 데이터의 일부를 갖고 있을 수 있다. 어플리케이션의 규모가 커질수록 의존에 신경을 써야한다. 의존을 제어하는데 실패하면 프로젝트 초반에는 별 영향이 없겠지만, 후반부로 갈수록 기능 하나를 개발하거나 변경하는데 드는 공수가 걷잡을 수 없이 커진다. 위 다이어그램은 어플리케이션에서 흔히 볼 수 있는 의존구조이다. Benefits Window는 Employee 클래스에 의존하고 있다. Benefits Window 는 표현 (presenta.. 2021. 2. 10.
UML - 클래스 다이어그램과 일반화 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 일반화(Generalization) 일반화의 가장 전형적인 예제는 사업에 대해 개인 고객과 기업 고객에 관한 예제이다. 이 둘의 공통점은 상위 타입(고객)으로 추출하고, 차이점은 하위 타입에서 표현한다. 모델링의 관점에서 고객에 관련된 모든것(연관, 속성, 오퍼레이션)은 기업 고객에 대해서도 성립하는것이다. 소프트웨어 관점에서 일반화는 상속과 관련있다. 상속에서 가장 중요한 원칙은 치환 가능성이다. 치환 가능성이란 만약 고객의 타입으로 참조하여 수행한 오퍼레이션이 있다면, 이 참조하는 인스턴스가 기업 고객이어도 적절하게 동작해야 한다는 의미이다. 고객 Customer와 기업 고객 EnterpriseCustomer가 있다.. 2021. 2. 10.
UML - 클래스 다이어그램과 오퍼레이션 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 오퍼레이션 오퍼레이션은 클래스가 수행하는 액션이며, 클래스에서 메소드에 대응된다. 오퍼레이션에 대한 UML 문법은 아래와 같다. [가시성] [이름] ([매개변수 리스트]) : [리턴 값 타입] {[프로퍼티 문장]} ex) + balanceOn (date: Date) : Money 가시성(visibility): public(+)와 private(-)가 있다. (다른 것은 추후에 다룬다.) 이름: 이름을 나타내는 스트링 매개변수 리스트: 매개변수의 목록 리턴 값 타입: 리턴값이 있는 경우 해당 타입 프로퍼티 문자열: 오퍼레이션에 적용되는 프로퍼티 값 매개변수 리스트에 매개변수들의 문법은 아래와 같다. 방향은 매개변수의 입력.. 2021. 2. 10.
UML - 클래스 다이어그램과 프로퍼티 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 개요 클래스 다이어그램은 가장 기본적이며 많이 사용되는 다이어그램이다. 클래스 다이어그램은 객체의 타입과 이 타입간의 존재하는 관계에 대하여 기술한다. 또 프로퍼티와 오퍼레이션 및 제약사항을 보여준다. UML 에서는 클래스의 프로퍼티와 오퍼레이션을 특징이라는 단어로 언급한다. 클래스 다이어그램에서 상자는 클래스이며, 클래스의 이름과, 속성(attribute), 오퍼레이션(operation)을 표시한다. 클래스 간의 관계에는 연관(association)과 일반화(generalization)이다. - 프로퍼티(Property) 프로퍼티는 클래스의 구조를 나타낸다. 원래는 더 복잡하지만 우선 클래스의 필드라고 생각하면 된다... 2021. 2. 10.
UML - 개발 공정 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - UML과 개발 공정 UML은 객체지향 분석 설계 방법과 함께 발전했다. 프로젝트 개발시 어떤 공정법을 사용하느냐에 따라 UML 사용법도 달라진다. 흔히 UML에 대해 이야기할 때 RUP(Rational Unified Process)를 많이 언급한다. RUP는 UML과 함께 사용하는 공정중의 하나이지만, Rational 사의 사람들이 UML에 참여한것과 이름에 Unified 가 있는것만 빼면 둘은 관련이 없다. - 반복 공정과 폭포수 공정 폭포수(Waterfall) 방식은 프로젝트를 액티비티 기준으로 나눈다. 소프트웨어 개발에는 분석, 설계, 개발, 테스트 액티비티가 필요하다. 각 단계사이에는 특정 형태의 산출물이 있다... 2021. 2. 10.