Use Case Modeling

zhyun·2020년 10월 12일
0
post-custom-banner

참고사이트

.Use Case Modeling

  • use(사용) case(사례)

유스케이스 명세서

요구사항

  • 1step : 요구사항분석
    • 업무 분석
    • 유스케이스 명세서

유스케이스 다이어그램

  • 동그라미 : 유스케이스
  • 학생, 교수 .. 사람모양 : 액터
  • 선 : Assocation, relationship(관계)

유스케이스 사이의 포함 관계

  • 포함관계 (<<include>>) ★★
    • 여러 유스케이스들에서 중복적으로 발생하는 이벤트 흐름을 표현하기 위해서 사용
    • 스테레오 타입 ( '<' 꺽쇠 2개씩 열고 닫고) : 명확해진다

유스케이스 사이의 확장 관계

  • 확장관계(<<extend>>)
    • 한 유스케이스에서 흐름이 특정 조건에서 여러가지 형태로 분류될 경우에 사용하는 관계
    • 확장 관계와 대안 흐름
    • 스테레오 타입 ( '<' 꺽쇠 2개씩 열고 닫고) : 명확해진다

Use Case 보고서 점검사항

  • Use Case간에는 Association 관계를 정의할 수 없다. (actor를 통해서 정의 가능)
  • Actor의 모호성
    • actor가 누구인지 어떤 use case를 통해서 무엇을 할 것인지 정확히 명시
  • Association의 navigability의 잘못된 표현
  • 외부시스템 Actor는 일반적으로 수행 Actor로 정의 하지 않는다.
  • Use Case 추출시 대응 되는 필요 기능
  • 잘못된 Actor 추출
    • 도서 대출 시스템 개발 시
      • 도서 대출 시스템은 액터가 될 수 없음
      • 액터는 개발될 시스템과 상호작용하는 모든 대상
      • 개발될 시스템 자체가 액터가 아님

클래스 다이어그램 들어가기전..

참고

  • https://gmlwjd9405.github.io/2018/07/04/class-diagram.html
  • UML (Unified Modeling Language)이란
    • 시스템을 모델로 표현해주는 대표적인 모델링 언어
  • UML 다이어그램의 종류
    • 구조 다이어그램
      • 클래스 다이어그램, 객체 다이어그램, 복합체 구조 다이어그램, 배치 다이어그램, 컴포넌트 다이어그램, 패키지 다이어그램
    • 행위 다이어그램
      • 활동 다이어그램, 상태 머신 다이어그램, 유즈 케이스 다이어그램, 상호작용 다이어그램

.클래스 다이어그램

  • 시간에 따라 변하지 않는 시스템의 정적인 면을 보여주는 대표적인 UML 구조 다이어그램
    • 목적 : 시스템을 구성하는 클래스들 사이의 관계를 표현한다.

클래스

  • 클래스(Class)란
    • 동일한 속성과 행위를 수행하는 객체의 집합
    • 객체를 생성하는 설계도
      • 즉, 클래스는 공통의 속성과 책임을 갖는 객체들의 집합이자 실제 객체를
        생성하는 설계도
  • 클래스는 변화의 기본 단위

UML 클래스의 표현

  • 가장 윗부분 : 클래스 이름
  • 중간 부분 : 속성(클래스의 특징)
  • 마지막 부분 : 연산(클래스가 수행하는 책임)
  • 경우에 따라 속서 부분과 연산 부분 생략 가능
  • 속성과 연산의 가시화를 정의
    • UML에서는 접근제어자를 사용해 나타낸다.
  • 분석 단계설계 단계에서의 클래스 다이어그램

관계

  • UML에서 제공하는 클래스들 사이의 관계

연관 관계(association)

  • 실선(양방향)이나 화살표 (단방향)
  • 두개의 클래스가 관련이 있다
  • 클래스들이 개념상 서로 연결되었음을 나타낸다.
  • 보통은 한 클래스가 다른 클래스에 제공하는 기능을 사용하는 상황일 때 표시
  • 오랜 시간 동안 같이할 객체와의 관계
  • 예시 : 자동차(Car)와 소유한 사람(Person)의 관계
public class Person {
    // 클래스의 속성("멤버 변수")에서 참조
    private Car owns;
    // getter, setter
    public void setCar(Car car) {
      this.owns = car;
    }
    public Car getCar() {
      return this.owns;
    }
}

의존 관계(dependency)

  • 점선 화살표
  • 짧은 시간 동안 이용하는 관계
  • 일반적으로 한 클래스가 다른 클래스를 사용하는 경우
    • 클래스의 속성(멤버변수)에서 참조할때 연관관계
    • 연산의 인자(참조값)으로 사용될 때 의존 관계
    • 메서드 내부의 "지역객체"로 참조될 때 의존 관계
  • 예시 : 자동차(Car)와 주유기(GasPump)의 관계
public class Car {
  ...
  // 연산의 "인자"(참조값)로 사용
  public void fillGas(GasPump p) {
    p.getGas(amount);
  }
}

일반화 관계(generalization)

  • 속이 빈 화살표
  • 객체지향 개념에서는 일반화 관계를 상속 관계
  • 부모 클래스
    • 추상적인 개념(실제로 존재하지 않는다.)
    • 삼각형 표시가 있는 쪽
  • 자식 클래스
    • 구체적인 개념
    • 삼각형 표시가 없는 쪽
  • 추상 클래스
    • 추상 메서드를 하나 이상 가지는 클래스
    • 추상 메서드 : 부모 클래스에서 구현되지 않은 빈 껍데기만 있는 연산
    • 스테레오 타입('<<','>>'기호 안에 원하는 이름을 넣음)

집합관계

집약 관계(aggregation)

  • 속이 빈 다이아몬드
  • 한 객체가 다른 객체를 포함하는 것
  • 생성자참조값을 인자로 받아 필드를 세팅
public class Computer {
   private MainBoard mb;
   private CPU c;
   // 생성자
   public Computer(MainBoard mb, CPU c) {
   this.mb = mb;
   this.c = c;
   }
}

합성 관계(composition)

  • 속이 찬 다이아몬드
  • 부분 객체가 전체 객체에 속하는 관계
  • 전체 객체가 없어지면 부분 객체도 없어진다
  • 생정자에서 필드에 대한 객체를 생성한다
public class Computer {
   private MainBoard mb;
   private CPU c;
   // 생성자
   public Computer() {
   this.mb = new MainBoard();
   this.c = new CPU();
   }
}

실체화 관계(realization)

  • 빈 삼각형과 점선
  • 인터페이스란 책임이다.
  • 스테레오 타입 <<interface>> 표시
  • 객체지향 개념에서는 can do this 관계
  • (책임)인터페이스와 그 인터페이스를 구현한 클래스들 사이의 관계

참고 (해보기)

암호화

http://jmlim.github.io/java/2018/12/06/java-aes256/

해싱 알고리즘

https://needjarvis.tistory.com/251

profile
HI :)
post-custom-banner

0개의 댓글