[TIL] 웹 서비스 기획 2

우기·2023년 6월 7일
0
post-thumbnail

📒 오늘 공부한 내용

🔍 수업목차

[2-1] UML의 개념 및 모델링
[2-2] 유스케이스 다이어그램 개념 및 실습
[2-3] 액티비티 다이어그램 개념 및 실습

✅ UML의 개념 및 모델링

UML은 Unified Modeling Language(통합 모델링 언어)의 약자로, 소프트웨어 시스템을 시각적으로 표현하기 위해 사용되는 표준화된 모델링 언어다. UML은 객체지향 분석, 설계, 구현, 테스트 등의 단계에서 사용되며, 시스템의 구조, 동작, 상호작용을 표현하기 위한 다양한 다이어그램을 제공한다.

UML은 객체지향 개념을 기반으로 하며, 시스템을 객체, 클래스, 관계, 메서드 등의 요소로 모델링할 수 있다. UML을 사용하면 시스템의 구성 요소들과 그들 간의 관계를 시각화하고 이해하기 쉽게 표현할 수 있다. 또한 UML은 여러 이해 관계자들 간에 의사 소통을 원활하게 하고, 설계와 구현 간의 일관성을 유지하는 데 도움을 준다.

UML은 클래스 다이어그램, 객체 다이어그램, 시퀀스 다이어그램, 상태 다이어그램, 컴포넌트 다이어그램 등 다양한 다이어그램 유형을 제공한다. 각 다이어그램은 특정 측면을 강조하고 시스템의 다른 측면을 표현하기 위해 사용된다. 이러한 다이어그램들은 UML의 표준 요소와 표기법을 기반으로 하며, 시스템을 모델링하고 문서화하는 데 사용된다.

UML에서 정의하는 모델링

  • 내부 구조나 동작에 대한 자유로운 표현 : UML은 시스템의 내부 구조와 동작을 다양한 방식으로 표현할 수 있는 도구
  • 시스템 구성 요소 간 연결 확인 : UML을 사용하면 시스템의 구성 요소들이 어떻게 연결되어 있는지 쉽게 확인할 수 있다.
  • 설계와 구현 간의 일관성 유지 : UML은 설계와 구현 단계 간의 일관성을 유지하는 데 도움이 된다.
  • 레벨화 가능 : UML을 사용하여 시스템을 다양한 레벨로 추상화하고 표현할 수 있다.
  • 명확한 의사 소통 도구 : UML은 기획자와 개발자들 간에 명확한 의사 소통을 위한 효과적인 도구다.

기획자와 개발자들은 이러한 모델링 개념을 이해하고 활용할 필요가 있다.

UML을 배워야하는 이유

현대의 소프트웨어 시스템은 복잡성변경의 요구에 직면하고 있다. 이에 UML은 중요한 도구로서 소프트웨어 개발자에게 필수적인 이유가 있다.

  • 복잡성 관리 : 소프트웨어 시스템은 다양한 요소들로 이루어져 있다. 클래스, 객체, 관계 등의 요소들이 복잡하게 얽혀 있을 수 있으며, 이를 이해하고 관리하는 것은 어려움을 겪을 수 있다. UML은 다양한 다이어그램을 제공하여 시스템의 구조와 동작을 시각적으로 표현할 수 있다. 클래스 다이어그램은 시스템의 구성 요소와 그들 간의 관계를 명확하게 보여주고, 객체 다이어그램은 특정 시점에서의 객체 간의 관계와 상태를 표현한다. 이를 통해 개발자들은 복잡한 시스템을 파악하고 이해하는 데 도움을 받을 수 있다.

  • 변경 관리 : 소프트웨어 시스템은 시간이 지남에 따라 변경되어야 한다. 요구사항의 변경, 비즈니스 규칙의 변경, 기술적인 제약 사항의 변경 등이 발생할 수 있다. UML은 시스템의 설계와 구현 사이의 일관성을 유지하는 도구로서 유용하다. 변경 사항을 UML 다이어그램에 반영하고, 이를 통해 시스템의 다른 부분에 미치는 영향을 파악할 수 있다. 이를 통해 변경에 따른 리스크를 줄이고, 시스템의 유지보수와 확장을 효과적으로 수행할 수 있다.

UML을 배우고 활용하는 것은 복잡성과 변경 관리에 대응하기 위해 필수적인 요소다. UML을 이해하고 사용하는 개발자들은 시스템을 효과적으로 구축하고 관리할 수 있으며, 이는 성공적인 소프트웨어 개발과 유지보수에 기여할 것이다.

UML 모델링의 이점

UML은 사람의 행위를 기반으로 한다. UML은 사람의 행위를 기반으로 한 단계적 과정을 시점별로 표현한 것으로, 절차와 단계의 가설을 키워드로 표현하고 시나리오를 확정하는 순차적인 단계를 가지고 있다. 또한, 사용자들의 문제를 기반으로 모델링함으로써 보다 효율적이고 완성도 높은 플랫폼을 구축할 수 있다.

  • 시각화 : UML을 사용하면 시스템을 시각적으로 표현할 수 있으며, 구성 요소들의 관계와 동작을 명확하게 보여준다.

  • 이해도 : UML 다이어그램을 통해 시스템의 구조와 동작을 이해하기 쉽게 표현할 수 있다. 이는 개발자들 간의 협업과 의사 소통을 원활하게 한다.

  • 정확성 : UML은 시스템을 추상화하고 모델링함으로써 정확성을 유지할 수 있다. 시스템의 요구사항과 기능을 명확하게 표현하여 오류를 최소화할 수 있다.

  • 의사전달 : UML은 시스템에 대한 의사 소통 도구로 사용된다. 다이어그램을 통해 개발자들은 아이디어와 설계를 다른 이해 관계자들에게 명확하게 전달할 수 있다.

  • 일관성 : UML을 사용하여 시스템을 모델링하면 설계와 구현 사이의 일관성을 유지할 수 있다. 변경 사항을 다이어그램에 반영하고, 이를 통해 시스템의 일관성을 유지할 수 있다.

UML은 효과적인 시스템 모델링을 위해 필요한 도구로, 시스템의 시각화, 이해도, 정확성, 의사 전달, 일관성 등 다양한 이점을 제공한다

✅ 유스케이스 다이어그램

유스케이스 다이어그램은 시스템의 행위를 모델링하며, 시스템의 요구 사항을 표현하는 데 사용된다. 이 다이어그램은 시스템의 상위 레벨 기능과 범위를 기술하며, 시스템이 어떤 기능이 필요한지를 표현한다. 그러나 시스템이 기능을 어떻게 구현할 것인지에 대해서는 기술하지 않는다.

다이어그램이라는 단어를 사용할 때는 "다이어그램"이라고 적는 것이 맞다. 또한, "시스템이 어떤 기능이 필요한지에 대해서만 표현"으로 문장을 마무리하는 것이 자연스러운 문법적인 표현이다.

✅ 액티비티 다이어그램

액티비티 다이어그램은 시스템이나 소프트웨어의 동적인 행위를 시각적으로 표현하는 UML 다이어그램이다. 이 다이어그램은 작업 흐름을 나타내며, 프로세스, 작업, 상태 등의 요소를 활용하여 시스템의 동작을 모델링한다. 액티비티 다이어그램은 복잡한 프로세스를 단순하게 표현하고, 이해하기 쉽게 만들어주는 도구로 사용된다.

  • 액티비티 (Activity) : 액티비티 다이어그램의 주요 요소로, 작업이나 동작을 나타타낸다. 각 액티비티는 원형으로 표시되며, 액티비티의 이름을 가진다. 액티비티는 프로세스의 단계를 나타내거나, 특정 작업을 수행하는 동작을 표현한다.

  • 연결선 (Flow Edge) : 액티비티들 간의 연결을 나타내는 선으로, 화살표로 표현된다. 연결선은 액티비티의 흐름을 나타내며, 어떤 액티비티가 다른 액티비티로 이어지는지를 보여준다.

  • 의사결정 (Decision) : 액티비티의 흐름을 제어하기 위해 사용되는 요소다. 다양한 조건에 따라 프로세스의 흐름을 분기하거나 결정하는 데 사용된다. 의사결정은 다이아몬드 모양으로 표시되며, 조건이 참인 경우와 거짓인 경우에 따라 서로 다른 경로로 연결선을 이어준다..

  • 병합 (Merge) : 분기된 경로를 다시 하나로 합치는 요소다. 병합은 의사결정과 반대로, 여러 개의 연결선을 하나로 합쳐서 프로세스의 흐름을 단일 경로로 다시 합치는 역할을 한다. 병합은 의사결정의 역할을 완료한 후에 사용된다.

액티비티 다이어그램은 시스템의 동작 흐름을 명확하게 표현하고, 프로세스의 논리적인 흐름을 이해하기 쉽게 도와준다. 프로세스의 각 단계나 작업의 상세 내용을 표현하는 것 외에도, 병렬 작업, 반복문, 예외 처리 등을 표현할 수 있어 다양한 시나리오를 모델링할 수 있다. 액티비티 다이어그램은 시스템의 동작을 분석하고 설계할 때 유용하게 사용되는 도구로, 개발자, 시스템 분석가, 프로젝트 관리자 등에게 중요한 도구다.

✍ 알게된 점 / 과제

  • UML의 개념과 필요성
  • 유스케이스 다이어그램 특징
  • 액티비티 다이어그램 특징

💫 느낀점

UML은 변경에 따른 리스크를 줄일 수 있다는 것은 어느 정도 생각해볼 수 있었지만, 개발이 시작된 이후에 시스템의 유지보수와 확장에도 영향을 줄 수 있다는 사실을 새롭게 알게 되었다.

📥 Reference

profile
개발 블로그

0개의 댓글