컴퓨터 과학 기초발행일 2023. 3. 22.원본 https://blog.naver.com/jword_/223052164760 ↗

소프트웨어 설계 유스케이스 다이어그램 이해하기(유즈케이스)

소프트웨어 설계 유스케이스 다이어그램 이해하기(유즈케이스) — #소프트웨어설계 #유스케이스 #유스케이스다이어그램 #유즈케이스 컴퓨터 공학과 학사과정 중에 공부한 내...

#Basic keyword#Naver Blog

#소프트웨어설계 #유스케이스 #유스케이스다이어그램 #유즈케이스

​

컴퓨터 공학과 학사과정 중에 공부한 내용을 정리했습니다.

소프트 웨어 설계

학생 신분에서는 전혀 와닿지는 않지만, 실제 현업에서는 매우 중요한 이론인 소프트웨어 설계입니다.

​

오늘은 소프트웨어란 무엇인지에 대한 개념과 유스케이스 다이어그램까지 간략하게 알아보고자 합니다.

소프트웨어란?

이미지

소프트웨어란

현 시대를 살아가는 모든 분들은 한번쯤 소프트웨어라는 단어를 들어보셨을 겁니다. 소프트웨어라는 말을 들으면 어떤 생각이 먼저 떠오르시나요? 아무래도 프로그램이 바로 떠오르시리라 생각됩니다. 우리가 컴퓨터를 통해 하는 모든 행위는 이 프로그램을 기반으로 이루어집니다.

​

그럼 이 프로그램은 뭘로 이루어져있을까요? 네, 바로 컴퓨터 명령어들입니다. 즉 명령어의 집합을 우리는 프로그램으로 부르고, 그 프로그램이 소프트웨어이기도 한 셈이죠.

소프트웨어 프로덕트

software product

그럼 우리가 이 소프트웨어로 무엇을 할것인가가 중요한 문제가 되겠습니다. 아무래도 개발자를 희망하시는 분들이라면 프로그래밍을 하여 소프트웨어를 만드는 일을 하고 싶으실 것 같은데요. 이렇게 만든 소프트웨어는 상품적인 가치가 있습니다. 이것을 소프트웨어 프로덕트(software product)라 부릅니다.

​

이미지

​

Generic vs Customized

소프트웨어 프로덕트는 구매자에 따라 두가지 종류로 나뉠 수 있습니다. 첫번째는 오픈마켓에서 판매되는 Generic product입니다. 이 경우에는 특정 고객이 아닌 전세계인을 대상으로 범용성 있게 만든 제품입니다. 대표적인 예로 Adobe의 photoshop, Ms Office등이 있겠네요.

​

반면에 Customized product는 특정 고객을 위한 맞춤형 소프트웨어 프로덕트입니다. 사용자의 요구에 맞춰 특정 목정을 위해 개발됩니다. 예를들어 병원에서 사용하는 환자 관리 시스템 같은게 있겠네요.

​

하지만 요즘에는 이둘의 경계선이 거의 희미해지고 있습니다. 특정 목적을 위해 개발하였다 하더라도, 다른 곳에서 많이 사용한다면 범용성 있는 것으로 봐도 무방하닌깐요. 그래서 요즘은 Generic을 기반으로 소프트웨어를 만들고 있습니다.

​

사용자는 자신이 원하는 것이 뭔지 모른다

소프트웨어의 개념은 이정도만 하면 될 것 같고, 우리가 집중해야할 부분은 바로 소프트웨어 프로덕트를 어떻게 만들어갈 것 인가에 대한 부분입니다.

​

사용자의 요구사항을 파악하라

우선 소프트웨어 사용자의 요구(Needs)를 이해할 필요가 있습니다. 그래야 개발이 시작될테닌깐요. 여기서 중요한점은 개발자가 사용자의 요구사항을 임의로 결정해서는 안된다는 것입니다. 사용자의 요구는 사용자에게 들어야합니다.

​

이미지

​

하지만, 문제가 생깁니다. 사용자는 자신의 요구사항을 정확하게 개발자에게 전달하지 못합니다. 머릿속에 있는 추상화된 아이디어를 말로 표현하기가 어렵고, 컴퓨터나 프로그래밍에 대한 지식이 부족하기 때문입니다. 디자이너에게 "패딩, 마진값 ~로 해주세요"가 아니라, "여기좀 띄우고 저기좀 붙이고 해서 이쁘고 보기 좋게 만들어주세요"라고 말하는 느낌입니다.

​

그결과 개발자가 있는 그대로 요구사항을 정리해서 보여줘도 "제가 말한건 맞는데... 제가 원하는건 아니에요 ㅠㅠ" 라는 이야기가 나옵니다.

요구사항을 결정하기

요구사항 워크플로우

사용자가 정확히 자신의 요구사항을 전달하지 못하기 때문에 개발자는 요구사항 결정을 위한 워크플로우를 실행합니다. 말을 좀 거창하게 워크플로우라고 했는데 결국은 사용자한테 "너가 원하는게 나올때까지 계속 질문하고 수정할거야"라고 말하는 것과 같습니다.

​

​

  1. 도메인 이해
  2. 비즈니스 모델 이용
  3. 사용자가 만족할때까지 반복(수정)

​

이미지

​

도메인 이해

우선 소프트웨어가 사용될 환경에 대한 이해가 중요합니다. 예를 들어 병원에서 사용할 소프트웨어을 개발하고자 한다면 실제 간호사와 의사들이 사용하는 용어나, 환자 관리 프로세스 등을 이해할 필요가 있습니다. 이렇게 개발자들이 서로 모은 정보를 합쳐 하나의 기술적 용어집을 구축해두면 훨씬 사용자와 소통하기 편해지어, 요구사항을 결정하기가 쉬워집니다.

​

비즈니스 모델 이용하기

비즈니스 프로세스를 구축하기

먼저 조직의 비즈니스 모델에 대한 이해가 필요합니다. 앞선 예시로 병원이라면 어떻게 병원이 이윤을 남기는지 등을 이해하는 것처럼 말이죠.

​

비즈니스 모델을 구축하기 위해서는 사용자에게 인터뷰를 하는 방법이 제시됩니다. 이 언터뷰는 사용자로 부터 모든 정보를 얻었다고 생각될 때 까지 계속적으로 반복해야합니다.

유스 케이스(Use Case) 사용하기

유스 케이스 다이어 그램

유스 케이스로 비즈니스 모델링하기

유스 케이스 다이어그램은 소프트웨어와 그 기능, 사용자들의 관계를 나타내는 그림입니다. 앞서 비즈니스 모델링을 통해 얻은 정보를 활용하여 유스케이스 다이어그램을 그려가면 됩니다.

​

​

이미지

​

간단하게 병원 소프트웨어를 예로들어, 사용자의 입원 절차를 시스템 상에 구현한다고 가정해보겠습니다. 유스케이스 내에서는 사용자는 액터로 불리며 사람 처럼 그립니다. 여기서 액터는 사람일수도 있고 또 다른 소프트웨어가 될 수동 있습니다.

​

큰 네모는 소프트웨어 시스템 자체를 의미합니다. 네모안은 시스템 안쪽에서 일어나는일, 외부는 시스템 밖에서 일어나는 일을 한눈에 알아볼 수 있습니다.

​

시스템이 제공하는 기능을 표현하려면 타원형으로 나타내시면 됩니다. 예를들어 "진료 신청하기", "입원 신청하기" 등이 될 수 있습니다.

​

오늘은 기본적인 개념만 알아보았고, 다음글에는 유스케이스를 좀더 디테일하게 나타내 보겠습니다.

​

​

​

​