본문 바로가기
자격증/정보처리기사

1과목 소프트웨어 설계 (3)

by 동욷 2023. 2. 17.

1. HIPO(Hierarchy Input Process Output)

- 시스템의 분석 및 설계나 문서화 할때 사용하는 기법

- 시스템 실행과정인 입력, 처리, 출력의 기능

 

특징 :

체계적인 문서 관리가 가능 / 기본 시스템 모델은 입력, 처리, 출력 / 하향식 소프트웨어 개발/ 

기호, 도표 등을 사용하여 보기 쉽고 이해 쉬움/ 변경 및 유지보수가 용이 / 기능과 자료의 의존 관계를 동시 표현 가능

 

HIPO Chart : 시스템의 기능을 여러 개의 고유 모듈들로 분할하여 이들 간의 인터페이스를 계층 구조로 표현

 

종류

 

1) 가시적 도표 (도식 목차) : 시스템의 전체적인 기능과 흐름을 보여주는 계층 구조도

 

2) 총체적 도표 (총괄 도표, 개요 도표) : 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력에 대한 전반적인 정보를 제공하는 도표

 

3) 세부적 도표 (상세 도표) : 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술하는 도표

 

 

2. UML(Unified Modeling Language)

- 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어지도록 하는 표준 객체지향 모델링 언어

 

- Rumbaugh, Booch, Jacobson 의 객체지향 방법론의 장점을 통합 OMG에서 표준으로 지정함

- 6개의 구조 다이어그램(시스템 구조) , 7개의 행위 다이어그램(시스템 동작)

- 사물(Things), 관계(Relationships), 다이어그램(Diagram)

 

 

3. UML의 관계

 

- 연관 관계 (Association) : 2개 이상의 사물이 서로 관련되어 있음을 표현

 

- 집합 관계 (Aggregation) : 하나의 사물이 다른 사물에 포함되어 있는 관계를 표현

 

- 포함 관계 (Composition) : 집합관계의 특수형태, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 결과 표현

 

- 일반화 관계 (Generalization) : 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현

 

- 의존 관계 (Dependency) : 연관은 있으나, 필요에 의해 서로에게 영향을 주는 짧은 시간 동안에만 연관을 유지

                                            한 클래스가 다른 클래스를 오퍼레이션의 매개 변수로 사용하는 경우에 나타나는 관계

 

- 실체화 관계 (Realization) : 사물이 할 수 있거나 해야하는 기능(행위, 인터페이스)으로 서로를 그룹화 할 수 있는 관계

 

 

4. UML의 다이어그램

 

정적 모델링 -> 주로 구조적 다이어그램

동적 모델링 -> 주로 행위 다이어그램

 

- 구조적 다이어그램

 

1) 클래스 다이어그램 (Class Diagram) : 클래스와 클래스가 가지는 속성, 클래스 사이의 관계

                                                                시스템의 구조 파악하고, 구조상의 문제점 도출 가능

2) 객체 다이어그램 (Object Digram) : 클래스에 속한 사물(객체) 즉, 인스턴스를 특정 시점의 객체와 객체 사이의 관계 로                                                                표현,  럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용

3) 컴포넌트 다이어그램(Component Diagram) : 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스 표현,

                                                                             구현 단계에서 사용되는 다이어그램

4) 배치 다이어그램(Deployment Diagram) : 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치 표현, 노드와 의사소통                                                                         (통신) 경로로 표현, 구현 단계에서 사용되는 다이어그램

5) 복합체 구조 다이어그램(Composite Structure Diagram) : 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를                                                                                                   표현

6) 패키지 다이어그램(Package Diagram) : 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현

 

- 행위 다이어그램

 

1) 유스케이스 다이어그램 (Use Case Diagram) : 사용자의 요구를 분석하는 것으로 기능 모델링 작업에 사용,

                                                                              사용자(Actor)와 사용 사례(Use Case)로 구성, 사용 사례 간에는 여러 형                                                                                태의 관계로 이루어짐

2) 순차 다이어그램 (Sequence Diagram) : 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현

3) 커뮤니케이션 다이어그램(Communication Diagram) : 순차 다이어그램과 같이 동작에 참여하는 객체들이 주고 받는 메                                                                                            시지 표현하며, 객체들 간의 연관까지 표현

4) 상태 다이어그램(State Diagram) : 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라상태가 어떻게 변화하는지를 표현, 럼바우(Rumbaugh) 객체 지향 분석 기법의 동적 모델링

5) 활동 다이어그램 (Activity Diagram) : 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현

6) 상호작용 개요 다이어그램 (Interaction Overview Diagram) : 상호작용 다이어그램 간의 제어 흐름을 표현

7) 타이밍 다이어그램 (Timing Diagram) : 객체 상태 변화와 시간 제약을 명시적으로 표현

 

 

5. 스트레오 타입(Stereotype)

- UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현

- 길러멧(Guilemet)이라 부르는 겹화살괄호(<<>>) 사이에 표현할 형태를 기술

 

<<include>>  연결된 다른 UML요소에 대해 포함관계에 있는 경우

<<extend>> 연결된 다른 UML요소에 대해 확장관계에 있는 경우

<<interface>> 인터페이스를 정의하는 경우

<<exception>> 예외를 정의하는 경우

<<constructor>> 생성자 역할을 수행하는 경우

 

6.  유스케이스(Use Case) 다이어그램

- 개발될 시스템과 관련된 외부 요소들, 즉 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자 관점(View)에서 표현한 것

 

시스템(System) / 시스템 범위(System Scope)

: 시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현

 

엑터(Actor) : 시스템과 상호작용을 하는 모든 외부요소, 사람이나 외부 시스템

 

주엑터 : 시스템을 사용함으로써 이득을 취하는 대상 , 주로 사람이 해당됨

부엑터 : 주엑터의 목적을 달성하기 위해 시스템에 서비스를 제공하는 외부 시스템, 조직이나 기관

 

유스케이스(Use Case) : 사용자가 보는 관점에서 시스템이 엑터에게 제공하는 서비스 또는 기능을 표현

 

관계 (Relationship) : 유스케이스 다이어그램에서 관계는 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있으며, 연관/포함/확장/일반화 관계를 표현 가능

 

7. 클래스(Class) 다이어그램

 

- 시스템을 구성하는 클래스, 클래스의 특성인 속성과 오퍼레이션, 속성과 오퍼레이션에 대한 제약조건, 클래스 사이의 관계를 표현

 

클래스(Class) : 각각 객체들이 갖는 속성과 오퍼레이션(동작)을 표현

                         3개의 구획(Compartment)로 나누어 클래스의 이름, 속성, 오퍼레이션을 표기

                         속성(Attribute) : 클래스의 상태나 정보

                         오퍼레이션(Operation) : 클래스가 수행할 수 있는 동작, 함수(method)

 

제약조건 : 속성에 입력될 값에 대한 제약조건이나 오퍼레이션 수행 전후에 지정해야 할 조건이 있다면 이를 적용

 

관계(Realtionships) : 클래스와 클래스사이의 연관성을 표현 , 연관/집합/포함/일반화/의존 관계가 있음

 

 

8. 순차(Sequence) 다이어그램

- 시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 엑터, 객체, 메시지 등의 요소를 사용하여 그림으로 표현

 

엑터(actor) : 시스템으로부터 서비스를 요청하는 외부요소, 사람/외부시스템

객체(object) : 메시지를 주고받는 주체

생명선(LifeLine) : 객체가 메모리에 존재하는 기간, 객체 아래쪽에 점선을 그어 표현

실행 상자(active Box) : 객체가 메시지를 주고받으며 구동되고 있음을 표현

메시지(Message) : 객체가 상호작용을 위해 주고받는 메시지

 

 

9. 사용자 인터페이스(UI)

- 사용자의 만족도에 가장 큰 영향을 미치는 중요한 요소

- 소프트웨어 영역 중 변경이 가장 많이 발생

- 사용자의 편리성과 가독성을 높임으로써 작업 시간을 단축시키고 업무에 대한 이해도를 높여줌

- 최소한의 노력으로 원하는 결과를 얻게 해줌

- 사용자 중심으로 설계되어 사용자 중심의 상호 작용이 되도록 한다

- 수행 결과의 오류를 줄인다

- 사용자의 막연한 작업 기능에 대해 구체적인 방법을 제시해 준다

- 정보 제공자와 공급자 간의 매개 역할을 수행

- 소프트웨어 아키텍처를 반드시 숙지해야 한다

 

10. 사용자 인터페이스 구분

 

CLI (Command Lune Interface) : 명령과 출력이 텍스트 형태로 이뤄지는 인터페이스

 

GUI (Graphical User Interface) : 아이콘이나 메뉴를 마우스로 선택하여 작업을 수행하는 그래픽 환경의 인터페이스

 

NUI (Natural User Interface) : 사용자의 말이나 행동으로 기기를 조작하는 인터페이스

 

VUI (Voice User Interface) : 사람의 음성으로 기기를 조작하는 인터페이스

 

OUI (Organic User Interface) : 모든 사물과 사용자 간의 상호작용을 위한 인터페이스

하드웨어 분야에서 사물 인터넷(IOT) , 가상현실(VR) , 증강현실(AR) , 혼합현실(MR)등과 함께 대두되고 있다.

 

 

 

 

 

 

 

728x90