본문 바로가기

유스 케이스5

UML - 유스 케이스 - 기능(스토리) - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 유스 케이스와 기능(스토리) 많은 접근 방법에서 시스템의 기능을 요구사항을 설명하기 위해 사용한다.(Extreme Programming 에서는 유저 스토리라고 부른다.) 기능을 곧바로 기술할 수도 있겠지만 보통은 유스 케이스를 먼저 만들고 기능의 리스트를 만든다. 기능은 유스케이스에서 꼭 하나의 요소는 아니며 아래 요소가 모두 될 수 있다. 보통은 유스 케이스보다 더 작은 단위가 된다. 전체 유스케이스 유스 케이스의 시나리오 유스 케이스의 단계 유스 케이스에 포함되지 않는 다양한 행동 - 유스 케이스는 언제 사용하는가? 유스 케이스는 시스템의 외형을 나타내는 것이므로 작성하면서 "이 유스 케이스는 어떤 클래스하고 맵핑이.. 2021. 2. 11.
UML - 유스 케이스 - 다이어그램과 수준 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - https://en.wikipedia.org/wiki/Use_case#Cockburn_style - 유스 케이스 다이어그램 UML의 유스케이스 다이어그램이 유용하긴 하지만 필수적인 것은 아니다. 따라서 유스케이스 작업에 필요이상으로 몰두하면 본질을 넘어서 tool 사용에 집착하는것이 된다. 그러므로 유스케이스 다이어그램보다는 유스케이스 내용의 텍스트 작업에 정성을 쏟아야 한다. 유스케이스 다이어그램은 시스템의 영역을 나타내고 외부 세계와의 교류를 보여준다. 유스케이스 다이어그램에는 액터와 유스 케이스가 있으며 이 둘의 관계는 다음과 같다. 어떤 액터가 어떤 유스 케이스를 수행하는가? 어떤 유스케이스가 다른 유스 케이스를.. 2021. 2. 11.
아키텍처 - 클린 아키텍처 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 지난 수십년간 많은 시스템 아키텍처가 있었다. 이런 아키텍처들은 공통된 목표가 있는데 바로 관심사의 분리이다. 이들은 모두 소프트웨어를 계층으로 분리하였다. 업무규칙에 대한 계층과, 사용자 및 인터페이스를 위한 계층등이 있다. 또한 업무규칙이 아닌 다른 요소와의 독립성도 강조한다. 프레임워크 독립성: 아키텍처는 프레임워크의 존재 여부에 의존하지 않는다. 테스트 용이성: 업무규칙은 외부요소없이도 테스트가 가능해야 한다. UI 독립성: 업무규칙을 변경하지 않고도, UI를 쉽게 변경할 수 있어야 한다. 데이터베이스 독립성: 업무규칙에 영향을 주지 않고, 데이터베이스를 변.. 2021. 2. 10.
아키텍처 - 아키텍처의 오해 - 이 글은 로버트 C.마틴의 Clean Architecture를 기반으로 작성되었습니다. (가능하면 책을 읽어보는것을 추천한다.) - 개요 만약 어떤 건물에 대한 설계도를 본다고 해보자. 해당 설계도에 독서 공간, 회의실, 책장을 배치한 많은 진열장이 있다면 정확히는 몰라도 도서관이라고 추측할것이다. 어플리케이션을 만들기 위해 패키지 구조를 잡았다고 하자. 좋은 아키텍처라면 어떤 사람이 해당 패키지 구조를 보았을 때 "이 어플리케이션은 헬스 케어 시스템이다" 라고 생각하게 만들어야 한다. 만약 패키지구조를 보고나서 드는 생각이 스프링으로 구현했나? ASP인가? 하이버네이트를 사용했나? MySQL인가? 라는 생각이 들도록 만들었다면 제대로된 아키텍처인지 다시 한번 생각해볼 필요가 있다. - 목적 나를 포.. 2021. 2. 10.
UML - 유스 케이스 - 개요와 내용 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 유스 케이스 유스 케이스는 시스템의 기능적인 요구사항을 잡아내는 기술이다. 유스케이스는 시스템과 사용자간의 교류를 기술한다. 유스 케이스를 곧바로 판별해내는것은 사실 어려운일이다. 보통은 시나리오를 생각해본 뒤 유스케이스를 식별한다. 시나리오는 사용자와 시스템간의 교류를 단계적으로 나타낸것이다. 예를 들어 온라인 쇼핑몰에서 물건을 산다면 시나리오는 아래와 같다. 고객은 상품 목록을 보고 원하는것을 선택하여 장바구니에 담는다. 물건을 구매하기 위해 배송지 및 신용카드 정보를 기술한다. 시스템은 신용카드 승인을 확인하고 물건 구매 확정을 한다. 그리고 그 결과를 이메일로 발송한다. 위의 시나리오는 개발자가 구현하기 좋은 전.. 2021. 2. 10.