시스템 모델링
- 시스템의 추상 모델을 개발하는 프로세스
- 각 모델은 시스템의 서로 다른 뷰나 관점을 나타냄
- UML 다이어그램 유형 기반 그래픽 표기법으로 나타냄
- 모델의 단계별 사용
요구공학 프로세스
: 시스템의 상세 요구사항을 이끌어내기 위해 사용설계 프로세스
: 엔지니어들에게 시스템을 설명하기 위해 사용구현 후
: 시스템의 구조와 동작을 문서화하기 위해 사용
기존 및 새 시스템의 모델 개발
- 요구공학 중에 사용됨
기존 시스템의 모델
- 기존 시스템이 무엇을 하는지 알려줌
- 이해당사자간 논의를 강점과 약점에 집중하는 데 사용
새 시스템의 모델
- 제안된 요구사항들을 다른 시스템 이해당사자들에게 설명하는 데 사용
- 엔지니어들은 이 모델들을 설계를 논의하고 시스템을 문서화하는 데 사용
- 제안된 요구사항들을 다른 시스템 이해당사자들에게 설명하는 데 사용
시스템 모델
- 검토 중인 시스템의 추상화(시스템의 다른 표현이 아님)
- 이해하기 쉽도록 자세한 부분 제외
- 추상화는 시스템 설계를 계획적으로 단순화하고 가장 현저한 특성을 골라냄
- 표현하는 개체에 대한 모든 정보를 유지해야 함
- 여러 관점에서 시스템을 표현하기 위해 여러 모델들을 개발 가능
- 외부 관점 - 시스템의 콘텍스트나 환경을 모델링
- 상호 작용 관점 - 시스템과 그 환경 사이의 상호 작용을 모델링
- 구조 관점 - 시스템의 구성이나 시스템에 의해 처리되는 데이터의 구조를 모델링
- 동작 관점 - 시스템의 동적인 행동을 모델링
시스템 그래픽 모델들을 사용하는 방법
- 토론을 자극하고 초점을 맞추기 위한 방법
- 토론 대상 : 시스템 개발에 관여하는 소프트웨어 엔지니어
- 불완전한 모델링을 사용할 수 있으며, 모델링 표기법을 약식으로 사용 가능
- 기존의 시스템을 문서화하는 방법
- 모델을 사용하여 시스템의 일부분을 문서화하는 방법
- 완전할 필요는 없으나, 올바른 표기법을 사용하여 시스템의 설명이 정확해야 함
- 시스템 구현을 생성하는 데 사용될 수 있는 상세 시스템 설명
- 모델기반 개발 프로세스의 일부로 모델이 사용되는 경우 - 완전하고 정확해야 함
- 시스템의 소스코드를 생성하기 위한 기반으로 사용되므로 기호 혼동 주의
UML(Unified Modeling Language)
- 객체지향 모델링의 표준 언어
- 13개의 다이어그램 유형
- 여러 서로 다른 유형의 시스템 모델을 지원
- 대부분 5개의 다이어그램 유형으로 시스템의 핵심 표현
UML 다이어그램 유형 설명
다이어그램 다이어그램
: 프로세스나 데이터 처리와 관련된 액티비티를 보여줌유스케이스 다이어그램
: 시스템과 그 환경 간의 상호 작용을 보여줌시퀀스 다이어그램
: 액터와 시스템 간, 시스템 컴포넌트들 간의 상호 작용을 보여줌클래스 다이어그램
: 시스템의 객체 클래스들과 클래스들 간의 연관을 보여줌상태 다이어그램
: 시스템이 내부 또는 외부 이벤트에 대해 어떻게 반응하는지 보여줌
콘텍스트 모델
시스템 경계
- 어떤 것이 개발되는 시스템에 포함되는지 결정하는 기준
- 시스템 명세 초기 단계에 결정
- 이해당사자들과 작업하며 결정
- 시스템 경계의 정의는 가치중립적 판단이 아님
→ 기술적이 아닌 다른 요소에 의해 정해질 수 있음
- 시스템 경계에 대한 결정을 내면, 단순한 아키텍처 모델을 생성
- 콘텍스트와 시스템이 환경에 가지는 의존성에 대해 정의
콘텍스트 모델
- 여러 자동화된 시스템을 포함하는 환경을 보여줌
- 포함된 시스템들과 명세하려는 시스템 간 관계들의 유형을 보여주진 않음
- 포함된 시스템들과 명세하려는 시스템 간 관계들의 유형을 보여주진 않음
- 시스템과 외부 시스템의 관계는 반드시 고려
← 정의하려는 시스템의 요구사항과 설계에 영향 줄 수 있음
- 관계 예시
- 외부 시스템과 시스템 간의 데이터 관계(생성, 소비, 공유)
- 외부 시스템과 시스템과의 연결 여부(직접 연결, 네트워크 연결 등)
- 시스템의 물리적 위치(같은 장소, 다른 건물 등)
- 관계 예시
- 간단한 모델은 비즈니스 프로세스 모델 같은 다른 모델들과 같이 사용
비즈니스 프로세스 모델
: 특정 소프트웨어 시스템이 사용되는 자동화된 프로세스들과 사람들
UML 액티비티 다이어그램
- 프로세스들의 액티비티들과 한 액티비티에서 다른 액티비티로 제어의 흐름을 보여줌
- 각 요소 및 표기법
채워진 원
: 프로세스의 시작이중 채워진 원
: 프로세서의 끝모서리가 둥근 사각형
: 액티비티- 특정한 서브프로세스들이 수행되어야 한다는 뜻.
- 액티비티 차트에 객체를 포함시킬 수도 있음
화살표
: 작업의 흐름- 흐름의 조건을 나타내는 가드를 표시 가능
- 흐름의 조건을 나타내는 가드를 표시 가능
굵은 막대
: 액티비티 조정- 굵은 막대로부터 여러 액티비티로 흐름이 연결된 경우 병렬 수행 가능
상호 작용 모델
상호 작용 모델
- 상호 작용 모델링
사용자 상호 작용 모델링
: 사용자 요구사항을 확인하는데 도움시스템 간 상호 작용 모델링
: 일어날 수 있는 시스템 간 통신 문제를 밝혀줌컴포넌트 상호 작용 모델링
제안된 시스템 구조가 요구되는 수준의 시스템 성능과 확실성이 제공되는지 이해되는지 도움
- 상호 작용 모델링의 두 가지 접근법
유스케이스 모델링
: 시스템과 외부 에이전트와의 상호 작용을 모델링시퀀스 다이어그램
: 시스템 컴포넌트들 간의 상호 작용 모델링- 두 개 같이 사용 가능
- 서로 다른 수준의 상세함으로 상호작용 가능
- 상위 수준 유스케이스와 관련된 상호작용의 상세 내역을 시퀀스 다이어그램으로 문서화
유스케이스(UML의 기본요소)
- 그래픽 모델과 구조적인 글을 이용하여 사용자와 시스템 사이의 상호 작용을 설명하기 위한 방법
- 사용자가 어떤 인터페이스를 통해 시스템에 무엇을 기대하는지 간단한 기술
- 구성방법
- 상호 작용에 참여하는 액터(actor)를 식별
- 상호 작용의 형태에 이름을 붙임
- 시스템과의 상호작용을 나타내기 위한 추가적인 정보 기입
유스케이스 모델링
- UML 시퀀스 다이어그램 또는 상태 다이어그램 같은 여러 그래픽 모델이나 글
- 유스케이스 다이어그램
- 상호 작용을 단순 개략적으로 보여줌
- 완전한 상호작용을 위해서는 상세 내역 추가(글, 표, 시퀀스 다이어그램 등)
- 예시
액터 병원 접수원, 환자 정보 시스템 설명 접수원은 Mentcare 시스템에서 보건당국에 의해 관리되는
일반 환자 기록 데이터베이스를 데이터를 전송할 수 있다. … 생략데이터 환자 개인정보, 치료 요약 자극 접수원의 명령 실행 반응 환자 정보 시스템이 갱신되었음을 확인 주석 접수원은 환자 정보와 환자 정보 시스템이 접근하기에 적합한 보안허가가 있어야 한다.
- 고수준의 유스케이스 다이어그램을 이용하여 문서화
- 시스템 요구사항에 가능한 모든 상호 작용을 유스케이스를 이용하여 표현
- 시스템 요구사항에 가능한 모든 상호 작용을 유스케이스를 이용하여 표현
- 시스템과 사용자 또는 다른 시스템 사이에서의 개별적인 상호 작용을 식별
- 각각의 유스케이스에 대해서는 글로 작성한 설명을 넣어 문서화
- 각각의 유스케이스에 대해서는 글로 작성한 설명을 넣어 문서화
- 시나리오를 더 상세히 개선시키기 위한 UML의 다른 모델과 연결될 수 있음
- 간단한 설명을 추가할 수 있다.
- “추가적으로, 협진을 할 때 도움이 되도록 문자 채팅 창이 열리게 된다.
음성 통신을 위한 전화 호출도 개별적으로 마련될 수 있을 것으로 생각한다.”
- “추가적으로, 협진을 할 때 도움이 되도록 문자 채팅 창이 열리게 된다.
- 간단한 설명을 추가할 수 있다.
요구공학 과정에서의 유스케이스
- UML은 객체지향 모델링을 위한 표준
- 유스케이스는 요구사항을 논하기에 유용하지 않음
- 너무 상세함
- 이해 당사자들은 유스케이스라는 용어를 이해 못 함
복합 유스케이스 다이어그램
서로 다른 유스케이스를 보여줌
- 복합 유스케이스 다이어그램 표현 방법
- 한 시스템에서 가능한 모든 상호작용을 포함하게 구성 가능
- 여러 다이어그램을 작성하되,
각 다이어그램이 관련된 유스케이스를 보여주도록 구성 가능
시퀀스 다이어그램
- 액터와 시스템의 객체들 간의 상호작용, 객체들 간의 상호작용을 모델링
- 시퀀스 다이어그램은 풍부한 문법을 가지고 있음
- 시퀀스 다이어그램은 풍부한 문법을 가지고 있음
- 특정 유스케이스나 유스케이스 인스턴스에서 일어나는 상호작용의 순서를 보여줌
환자 정보 조회의 시퀀스 다이어그램
상단에 수직으로 나열된 점선
- 관련된 객체들과 액터들
- 관련된 객체들과 액터들
주석이 달린 화살표
- 객체들 간의 상호작용
- 객체의 호출, 반환값, 인자
점선 위의 사각형
- 관련 객체의 생명선
- 관련 객체의 생명선
위에서 아래로 시간 순 배치
- 상호작용
데이터 전송의 시퀀스 다이어그램
- 두 가지 특징을 추가 확인 가능
- 시스템의 액터들 간의 직접 통신
- 오퍼레이션 순서의 일부로서 객체의 생성
- 모든 상호 작용을 다이어그램에 포함시킬 없음
- 시퀀스 다이어그램을 코드 생성이나 상세 문서화에 사용하지 않는 경우
구조모델
- 시스템을 구성하는 컴포넌트들과 그들 간의 관계로 시스템 구성을 보임
- 정적/동적 모델 둘 다 가능
- 정적/동적 모델 둘 다 가능
- 시스템 아키텍처를 논의하고 설계할 때 생성
- 아키텍처 설계는 소프트웨어 공학에서 중요한 주제
- 아키텍처 모델을 표현하는데 UML 컴포넌트, 패키치, 배치 다이어그램 등 사용
클래스 다이어그램
- 클래스들 간의 연관을 보여주는 객체지향 시스템 모델을 개발할 때 사용
클래스
: 한 가지 종류의 시스템 개체를 일반적으로 정의한 것연관
: 클래스들 사이에 어떤 관계가 있다는 것을 표시(클래스 사이의 연결)- 그와 연결된 클래스에 대해 어느 정도 알고 있어야 가능
- 소프트웨어 공학 프로세서에서의 단계별 개체
- 모델을 개발할 때 : 실세계의 무엇인가를 표현(환자, 처방, 의사 등)
- 구현 시: 시스템에서 처리되는 데이터를 표현하는 구현 객체 정의
- UML 클래스 다이어그램은 상세 수준을 다르게 표현 가능
모델 개발 시의 클래스 다이어그램
- 작성법
- 클래스 이름을 상자 안에 기입
- 선을 연결하여 연관 존재 표시
- 시맨틱 데이터 모델랑이랑 비슷하게 생김
→ 시맨틱 데이터 모델 표현하는 데 사용 가능 - 시맨틱 데이터 모델
- 데이터베이스 설계에 사용됨
- 데이터 엔티티들과 연관된 속성 보여줌
- 데이터 엔티티들 간의 관계 보여줌
구현시의 클래스 다이어그램 작성법
- 객체를 더 상세하기 정의하기 위해 작성
- 속성(객체의 특성) 정보 추가
- 오퍼레이션(객체의 함수) 정보 추가
- UML에서는 클래스를 표시하는 단순한 사각형을 확장하여 속성과 오퍼레이션을 보여줌
- UML 시맨틱 데이터 모델 표현
- 시맨틱 데이터 모델의 엔티티 :
단순화된 객체 클래스 - 속성 : 객체 클래스 속성
- 관계 : 객체 클래스들 간 연관에 이름을 붙임
- 시맨틱 데이터 모델의 엔티티 :
객체 클래스 이름
: 제일 윗부분클래스 속성
: 중간 부분객체 클래스와 연관된 오퍼레이션
: 제일 아랫부분
일반화
- 복잡도를 다루기 위해 사용하는 기술
- 모든 것의 상세한 특징을 배우는 것보다 일반적인 클래스를 배우고 이 클래스들의 특징을 배움
- 일반적인 서술은 모든 클래스 구성원에 적용
- 예) 다람쥐와 쥐는 설치류 클래스의 구성원이므로 설치류의 특징을 공유
- 시스템 모델링할 때 클래스들에 대해 일반화와 클래스 생섬 범위 검사하는 것은 유용
- 공통 정보가 한 곳에서만 유지된다는 것을 의미하니까
- 변경할 때마다 모든 클래스를 살펴볼 필요가 없어짐
일반화 계층구조
- 일반화를 표시하기 위한 특수한 연관 유형
- 화살촉이 부모 클래스를 가리킴
- 화살촉이 부모 클래스를 가리킴
- 여기서는 세 가지 유형의 병원 의사가 있음
- 수련의, 전공의, 전문의
상세내역이 추가된 일반화 계층구조
- 상위 수준 클래스와 연관된 속성과 오퍼레이션은
하위 수준 클래스에서도 연관- 하위 수준 클래스들은 속성과 오퍼레이션을 상속받음
집합
- UML에서 제공하는 특별한 유형의 클래스들 간 연관
- 한 객체(전체)가 다른 객체들(부분)로 구성된다는 의미
- 집합을 정의하기 위해서 전체에 해당하는 객체 쪽 연결에 마름모 모양을 추가