본문 바로가기
(Pilot) 탑기공/소프트웨어 개발

[탑기공] 소프트웨어 아키텍처 설계 표현 방법

by 두음달인 2023. 1. 6.
반응형


소프트웨어 분야가 전공이 아니다 보니,

책을 볼 때 개념만 서술되어 있으면 저 역시 이해하는데 많은 어려움을 느낍니다.

 

실제 시험볼때 UML, 다이어그램 등 나오면 대부분 Skip 했던 경험이 떠 오르는데,

해당 분야는 소프트웨어 공학 도메인 필수 토픽입니다. 

 

확실하게 정리하시길 권고드립니다. 

 

저도 꾸준히 보게 되면 언젠가는 전문가가 되겠죠..


컨텍스트(Context) 모델

 

요구사항 분석 초기, 시스템과 외부 환경의 경계를 정해야 한다.

컨텍스트 다이어그램은 분할되기 이전의 시스템을 하나의 큰 프로세스로 이해한 것이다.

이 모델은 개발해야 할 시스템의 영역을 기술하고, 시스템과 외부 환경과의 경계를 결정하며, 

외부와의 인터페이스를 제시하여 시스템의 입출력 데이터를 보여준다.

 

다이어그램(Diagram)

 

사물과 관계를 도형으로 표현한 것

 

여러 관점에서 시스템을 가시화환 뷰(View)를 제공함으로써 의사소통에 도움을 준다.

 

정적 모델링에서는 주로 구조적 다이어그램을 사용하고, 

 

동적 모델링에서는 주로 행위 다이어그램을 사용한다.

 

구조적(Structural) 다이어그램의 종류

 

클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 배치 다이어그램,
복합체 구조 다이어그램, 패키지 다이어그램

 

행위(Behavioral) 다이어그램의 종류

 

유스케이스 다이어그램, 시퀀스 다이어그램, 커뮤니케이션 다이어그램,
상태 다이어그램, 활동 다이어그램, 상호작용 개요 다이어그램, 타이밍 다이어그램

 

컴포넌트 다이어그램

 

소프트웨어 개발 속도와 생산성을 높이기 위해 다른 분야와 같이 잘 만들어진 부품을 사다가 조립(Plug-in)하여 만들 수 있도록 재사용 가능한 부품을 컴포넌트(Component)라고 부른다.

 

이 기술의 근간을 이루는 것은 재사용성(Reusability)

 

컴포넌트가 다른 시스템이나 외부 장치와 통신하고 협동해야 한다.

 

컴포넌트의 결합은 컴포넌트를 조립하는 프로세스이며, 순차적 결합, 계층적 결합, 부가적 결합 등의 유형이 존재한다.

 

실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현한다.

 

패키지 다이어그램

 

다수의 사용자를 위해 개발된 상업용 소프트웨어를 패키지라 부른다.

 

패키지로 정의되면 패키지 내부의 자세한 사항을 외부에 감추어 패키지 사이의 의존 관계를 최소화할 수 있다.

 

패키지 다이어그램은 서브시스템들 사이의 의존 관계를 나타낸 것으로 높은 수준의 추상화된 서브시스템을 나타내어 소프트웨어  아키텍처를 표현하는데 적합하다.

유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한다.

기출 문제

 

(관리 127-4-5)
UML 2.0의 순차 다이어그램(Sequence Diagram)에 대한 아래의 사항을 작성하시오.

가. 순차 다이어그램의 목적과 작성순서, 구성요소별 표기법
구성 요소: Frame, Object, Lifelines, Activation Box, Messages, Guard

나. 아래의 도서예약시스템의 협력 다이어그램(Collaboration Diagram)을 순차 다이어그램으로 변환

 

(관리 126-2-4)
다음 주사위게임유스케이스(Usecase)에 대하여 작성하시오.

1) 개념적 객체 모델 (Conceptual Object Model)
2) 시퀀스 다이어그램 (Sequence Diagram)
3) 클래스 다이어그램 (Class Diagram)

 

(관리 122-4-6)
아래 내용을 반영한 클래스 다이어그램(Class Diagram)을 작성하시오.

가. 훈련교사(Trainer)는 하나 이상의 여러 종목(Program)을 훈련시킬 수 있다.
나. 각 종목(Program)은 훈련시간표 상 슬롯(Slot)에 훈련시간(Time)과 훈련실(Room)이 할당되어 있다.

 

(관리 93-3-6)
UML(Unified Modeling Language)에서 사용하는
행위 다이어그램(behavior diagram) 인 액티비티 다이어그램(activity diagram),
스테이트 다이어그램(state diagram), 그리고 유스케이스 다이어그램(use-case diagram)에 대하여 설명한 후, 레스토랑에서 일어나는 상황을 고객, 웨이터, 요리사, 그리고 계산대 직원을 고려하여
유스케이스 다이어그램으로 표현하시오.

 

참고 자료

 

탑싯 에센스 - 소프트웨어 개발

 

시나공 정보처리기사 필기

 

Context Model (tistory.com)

 

Context Model

1. 들어가면서 아래 보시는 그림은 무엇을 의미하는 것일까요? 네 맞습니다. 요구사항의 중요성을 이야기하는 그림입니다. 직관적으로는 시스템 개발 단계에서 발생한 결함을 해결하는 비용이

doug.tistory.com

 

소프트웨어 공학 활용 - 7 컨텍스트 모델 :: 집밖은 위험해 (tistory.com)

 

소프트웨어 공학 활용 - 7 컨텍스트 모델

시스템 모델 system model - HW/SW 전체적 구조, 구성요소, 모듈, 인터페이스 등 규정하는 작업 - 외부/행위/구조 관점을 대표적으로 모델링하는 방법이 UML Unified Modeling Language - 외부 관점 : 시스템 배

throwexception.tistory.com

 

반응형

댓글