요구사항 정의

DeadWhale·2022년 5월 16일
0

UML

목록 보기
1/1
post-thumbnail

UML ( Unified Modeling Language )

소프트웨어 공학에서 사용되는 표준화된 범용 모델링 언어

소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적 표기법


UML의 필요성


1 ) 의사소통에 용이하다
2 ) 대규모 프로젝트 로드맵 구축에 유용
3 ) 개발할 시스템 구축에 대한 기초를 마련한다
4 ) 백엔드 문서용으로 적합 (해당 프로젝트를 다른 팀이 맡을 경우 유용하다 )

유스케이스 다이어그램(Usecase Diagram) 이란?

Actor와 시스템이 수행하는 활동간의 관계를 표시하고
시스템의 기능적인 요구사항을 설명하기 위한 도구


구성 요소들

  • System : 만들고자 하는 어플리케이션
  • Actor : 시스템 외부에 있으면서 시스템과 상호작용하는 사람/시스템
  • Usecase : 시스템이 액터에 제공해야하는 기능의 집합.

시스템 요구사항에서 유스케이스 다이어그램 엑터 /유스케이스를 도출

[온라인 쇼핑몰 시스템 요구사항 ]

  • 온라인 쇼핑몰의 회원을 회원과 비회원으로 구분한다.
  • 회원은 ID, 이름, 주민번호, 마일리지 회원등급 정보를 갖는다.
  • 비회원은 이름, 주민번호 정보를 갖는다.
  • 회원은 Login, 등록, 수정, 삭제, 조회 처리가 가능하며,
  • 비회원은 등록, 수정, 삭제, 조회 처리가 불가능하다.(비회원은 Login처리만 가능하다.)


    액터 : 회원, 비회원
    유스케이스(기능) : Login, 등록, 수정, 삭제, 조회

유스케이스 다이어그램의 관계 종류

아래서 작성할 클래스다이어그램의 관계랑은 다르다 이건 actor(시스템과 상호작용할 외부의 요소들)와 시스템의 관계를 포현하는거고 클래스다이어그램은 java class간의 관계를 표현하는 것이다

연관 관계

유스케이스와 액터간 상호 작용을 의미하는 관계
연관 관계만 유스케이스 액터가 같이 사용된다.

일반화 관계

유사한 유스케이스 또는 액터들을 모아서 추상화한 것.

포함관계

!!반드시!! 선행되어 수행되는 관계

확장 관계

선택적으로 다른 유스캐이스에서 수행할 수 있는 관계


UseCase diagram 예시

1 ) 제품 조회를 해야지 상품을 결제할 수 있는 포함관계(필수)
2 ) 회원정보를 조회하고 나면 '선택적'으로 할 수 있는 회원탈퇴,회원수정(선택)


유스케이스 정의서

유스케이스 다이어그램을 보완하기 위한 산출몰로 유스케이스 다이어그램이 시스템의 기능을 표현한다면 각각의 유스케이스에 대해서 그 유스케이스가 어떻게 수행되는지 표현한다.


기능적 요구사항

  • 요구하는 어플리케이션의 구현을 위해 소프트웨어가 가져야 하는 기능적인 속성

비기능적 요구사항

  • 어플리케이션의 품질 기준등을 만족시키기 위해 소프트웨어가 가져야 하는 성능 , 사용의 용이성







Class Diagram

클래스 다이어그램 UML모델링에서 가장 일반적으로 사용한다
시스템의 구조들 간 상호 관계를 나타내고
시스템의 논리적 , 물리적 구성요소 설계시에 주로 사용된다.

클래스 다이어그램의 메소드 표현 방식

  • 접근 제어자 + 메소드명(매개변수) + 리턴타입
  • 접근 제어자는 각각에 맞는 기호로 표현
  • 매개변수는 (변수명 : 데이터타입)의 모양으로 작성된다.

접근 제어자

+ public : 접근 제한 없음
# protected : 같은 패키지 + 상속 관계에서만
~ default(생략) : 같은 패키지안에서만
- private : 같은 클래스 내부에서만.

클래스 다이어그램 표기방법.

  • static : 밑줄
  • Constant(상수) : 대문자
  • Abstract(추상) : 기울어진 문자

** interface는 모두 추상메서드임으로 따로 기울지이 않아도 된다.**

ex)

접근 제어자 + 메소드명(매개변수명:타입) + 자료형 + 반환형


abstract / Interface (추상클래스/인터페이스)

차이점 상기시키기


연관관계 ( Associaction )

하나의 클래스애 멤버변수로 다른 클래스 참조변수를 가지는 관계
한 클래스가 다른 클래스에서 제공하는 기능을 사용하는 상황을 의미

의존관계 ( Dependency )

클래스간 지역변수로 참조하는 관계를 의미한다.

  • A---> B인 경우 A클래스의 지역변수에서 B클래스를 참조한다.

집합관계 ( Aggregation )

멤버 변수로 클래스를 참조하는 관계( 연관 관계가 비슷)
참조하는 클래스와 참조되는 클래스의 생명주기가 독립된다.

  • 생성자 매개변수로 전달 받은 값을 멤버 변수에 대입한다.

    Project 클래스안에서 생성된 member 객체와 매개변수로 전달받은 member객체는 관련이 없다


    Project 생성자에서는 이미 존재하고 있는 외부의 member객체를 전달받아 내부에서 새로 생성된 member객체에 세팅하는 것이다
    project가 제거되어도 외부의member객체에는 영향이 없다.

합성관계 ( Composition )

멤버 변수로 클래스를 참조하는 객체
참조하는 클래스와 참조되는 클래스의 생명 주기가 일치한다

Home 객체가 생성될 때 Home 생성자에 의해 Room 객체로 같이 만들어지만
같은 의미로 Home이 제거 되면 Rome도 같이 제거된다.

집합관계 : 외부로부터 매개값만 받는 관계
합성관계 : 내부에서 객체를 생성하는 관계


일반화 관계 (Generalization)


** 추상메서드는 상속받은 자식 클래스에서 구현(오버라이딩)해야 한다.

그림 상으로 보이는 메서드는 한개이지만 실제로는 상속받은 메서드를 구현해줘야 한다.(구현 할때는 더이상 abstract가 아니니깐 제외하고 작성)




실체화 관계 (Realization)


( 점선 + 머리빈 화살표 : 가르키는 대상을 실체화 하겠다 )


인터페이스

  • 모든 필드: public static final
  • 모든 메서드 : public abstract

클래스 다이어 그램의 관계

0개의 댓글