본문 바로가기

프로젝트

소프트웨어 설계 part.1

728x90
반응형
SMALL

# 소프트웨어 #설계

소프트웨어를 처음부터 설계해 보려고 한다.

물론 실무에 들어간다면 굳이 필요한 과정은 아니지만 코딩만 하다 보면 그 시스템의 구조도 모르고 하는 경우가 있어

구조의 중요성과 기초의 발전을 위하여 처음부터 하나하나 해보려 한다.

대학교2-3학년 때 하곤 하지만 기억을 되새기며 시작해본다.

먼저 주제를 선정해야하는데 내가 이번에 선정한 주제는 쉽고 예시로 많이 쓰이는 현금인출기(ATM) 이다.

첫번째 단계로 유스케이스 다이어그램을 그려보았다.

사실 더 복잡하다 atm기기 앞에 서면 카드를 넣거나 통장을 넣는 등을 먼저 행동하는 경향이 있긴 하지만 그 점까지 넣게 되면 너무 복잡해지는 경우가 생길 수 있을 것 같아서 최대한 간단 명료하게 작성하려 조금 축소시키고 다른 기능을 추가시켰다.

그리고 다음 단계는 atm기기의 대강적인 사용자인터페이스(ui)를 설계해보았다.

먼저 전체적인 화면구도이다.

각 화면마다 상단에 괄호안에 무슨 페이지 인지 간략하게 적어 놓긴 하였다.

제목은 atm service로 하였다.

입출송금 금액 선택하는 화면이 없긴 한데 반복되기에 비밀번호 과정까지 넣게 되었다.

상단에 보면 간략하게 적혀 있지만 일단 메인 화면이다.

안다 허접한거 하지만 대충 이런느낌의 버튼이 있다는 것을 보여주려고 간단한 버튼만 만들었다.

구조를 파악하려고 하는 것이지 디자인 연습을 하려고 하는것이 아니니까....

입금 출금 잔액조회 송금 관리자 모드 이렇게 총 5가지 버튼이 있다.

다음은 메인화면에 입금 또는 출금 또는 잔액조회를 누르면 나오는 화면을 설명하겠다.

입금 또는 출금 또는 잔액조회를 누르면 나오는 화면이다.

계좌번호를 입력하거나 카드/통장을 삽입하는 선택화면이 뜨게 된다.

물론 뒤로가기 버튼도 있다.

만들다보니 atm이 아닌 어플리케이션 같은 느낌이 든다.

물론 전체적인 베이스가 안드로이드라 이런 경우가 생긴듯하다.

다시말하지만 중점은 디자인연습보단 구조파악과 기초성장을 위한 점이다...

다음은 계좌번호 입력하기 버튼을 누르게 되면 나오는 화면이다.

보이는것과 같이 번호를 누르면 된다.

만약 카드/통장 삽입 버튼을 누른 뒤 삽입하게 되면 뜨는 화면이다.

일반적으로 많이 쓰이고 자주 보는 화면이다.

계좌번호 입력을 마치거나, 카드/통장 삽입을 완료하면 자동적으로 비밀번호를 입력하라는 표시가 나온다.

비밀번호를 입력하면 된다.

글자만 바뀐듯한 느낌이 나지만 놀랍게도 아니다.

이 화면은 메인화면에서 송금버튼을 누르게 되면 뜨는 화면이다.

송금할 계좌번호를 입력하면 된다.

입력된 계좌번호를 확인하여 자동으로 은행을 찾아준다.

카카오톡 송금하기를 오마주 하였다.

다음은 메인화면에서 관리자 버튼을 누르면 나오는 화면이다.

이 버튼을 굳이 왜만들었지 라고 의문을 가지실 수 있지만

atm기기를 일반 시민들이 가장 많이 다루기도 하지만 현금수송원들 같은 사람들도 업으로 자주 다루기에 넣게 되었다..

역시 관리자 모드이기에 아무나 접속을 하면 안되기에 인증번호 입력 버튼이 뜨게 설계하였다.

자동으로 관리자 otp같은걸로 인증번호가 뜨고 확인하여 입력하면 된다.

인증번호를 입력하고 그 다음으로 나오는 확인 버튼 화면은 설계하지 못했지만 확인버튼을 누르게 된다면

위 화면이 뜨고 소프트웨어를 자동으로 업데이트 하게 된다.

그리고 다음 화면은 오류 화면이다.

만약 출금하는 경우에 사용자가 원하는 출금금액이 atm기기 내 현금에비해 많은 경우 발생하는 화면이다.

허접한 삼각형 안에 있는 느낌표 주의표시 화면이 뜨면서 자동으로 관리자에게 현금부족 사인이 가게 되고 사용자는 출금을 할 수 없게 되는 경고 표시를 마주하게 된다.

만약 완벽한 설계를 한다면

이 화면이 나오고 뒤로가기 버튼을 누르게 된다면 기존의 메인화면이 아닌

다른 메인화면을 보여줄 것이다. 예를들어 ! 경고표시와 함께 출금 금액이 부족합니다. 라는 경고 문구를 상단에 띄어 놓고

기존 메인메뉴에 있던 출금 버튼을 삭제 시키는 것이다.

그냥 atm기기를 잠그는 방법도 있지만 이렇게 한다면 뭐가 쫌더 스마트한 구조설계가 될 것같다.

하지만 이렇게 한다면 무거워 지고 복잡해 진다는 단점이 있긴하다.

이렇게 유스케이스 부터 ui 까지 설계를 마쳐보았다.

다음에는 위에 했던 것들 바탕으로 클래스를 설계해 보도록 하겠다.

728x90
반응형
LIST