정보처리기사_필기(ft. note)

박하영·2021년 7월 13일
0
post-thumbnail

0장 학습 순서

0) 단원 > 장 > 섹션으로 구분되어 있는 구조. 순차적으로 학습할 예정
1) 섹션 끝에 있는 기출문제 따라잡기 살펴본다.
2) 다시 처음으로 돌아와서 본문 읽기 전에 전문가의 조언 부분 먼저 읽어본다.
3) 본문 내용 읽기.
4) 기출문제 따라잡기 풀어보기. (그래도 모르는 문제는 체크)
5) 예상문제은행이 각 장의 끝마다 존재, 다 풀어보고 틀린거나 모르는거 체크하고 넘어가기.
6) 진도다 끝나면 처음으로 돌아와서, 기출문제 따라잡기 파트와 예상문제은행만 쭉 다시 살피면서 풀어본다. (역시나 틀리거나 모르는 문제 체크)
7) 시험 직전에 체크해둔 문제들만 위주로 쭈욱 살펴보면서 약한 개념들 위주로 복습 -> 문제풀기.

1단원: 소프트웨어 설계

1장 요구사항 확인

소프트웨어 생명주기

소프트웨어 생명주기는 소프트웨어 개발 방법론의 바탕이자, 소프트웨어를 개발하기 위해 필요한 과정을 각 단계별로 나눈 것이다.

소프트웨어 공학의 기본 원칙 3가지
1) 현대적인 프로그래밍 기술을 적용해야한다.
2) 개발된 소프트웨어의 품질이 유지되도록 검증해야한다.
3) 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야한다.

소프트웨어 개발 방법론

1) 폭포수 모형

폭포에서 물은 아래에서 위로 올라갈 수 없듯이 소프트웨어 개발도 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 마무리하고 그 결과를 검토하여 다음 단계를 진행하는 개발 방법론이다.

2) 프로토타입 모형

프로토타입 모형은 사용자의 요구사항을 정확히 파악하기 위해 실제 개발될 소프트웨어에 대한 프로토타입을 만들어 최종 결과물을 예측하는 모형이다.

3) 나선형 모형

나선형 모형은 폭포수 모형과 프로토타입 모형의 장점에 "위험 분석" 기능을 추가한 모형이다.

4) 애자일 모형

애자일은 '민첩함'이란 뜻으로 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발과정을 진행한다.

애자일 선언

애자일 개발 4가지 핵심 가치
1) 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
2) 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
3) 계약 협상보다는 고객과 협업에 더 가치를 둔다.
4) 계획을 따르기 보다는 변화에 반응하는 것에 더 가치를 둔다.

애자일 모형 - 폭포수 모형 비교

폭포수: 순차적 완성 진행 형태기 때문에, 새로운 요구사항의 반영이 어렵고, 고객이랑 의사소통이 적고 테스트가 마지막에 모든 기능을 테스트하며, 개발 중심이 계획, 문서(매뉴얼) 인 반면에,
애자일: 새로운 요구사항이 지속적으로 반영하며, 고객과의 협업을 중시하고, 반복되는 일정 주기가 끝날 때마다 테스트하며 개발 중심이 고객이다.

스크럼(Scrum) 기법

스크럼의 개요

스크럼은 팀이 중심이 되어 개발의 효율성을 높인다는 의미가 내포된 용어이다.

스크럼 팀은 팀 자체적으로 팀 구성(self-organizing)과, 스스로 해결(corss-functional)할 수 있어야 한다.

스크럼 팀은
1) 제품 책임자
2) 스크럼 마스터
3) 개발팀으로 나뉜다.

스크럼 개발 프로세스

1) 제품 백로그: 제품 개발에 필요한 모든 요구사항을 우선 순위에 따라 나열한 목록이다.

2) 스프린트 계획 회의: 제품 백로그 중 이번 스프린트에서 수행할 작업을 대상으로 단기 일정을 수립하는 것 이다.

3) 스프린트: 실제 개발 작업을 진행하는 과정으로, 보통 2 ~ 4주 정도의 기간 내에서 진행한다.

4) 일일 스크럼 회의: 모든 팀원이 매일 약속된 시간에 약 15분 정도의 짧은 시간동안 진행 상황을 점검한다.

5) 스프린트 검토 회의: 부분 또는 전체 완성 제품이 요구사항에 잘 부합되는지 사용자가 포함된 참석자 앞에서 테스팅을 수행한다.

6) 스프린트 회고: 스프린트 주기를 되돌아보며 정해놓은 규칙을 잘 준수했는지, 개선할 점은 없는지 등을 확인하고 기록한다.

++vocab)

이해관계자: 소프트웨어 개발과 관련해서 이해 관계자는 소프트웨어 개발 의뢰자, 소프트웨어 개발자, 소프트웨어 사용자 등이다.

백로그(Backlog): 백로그란 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록을 말한다.

스토리(Story): 백로그에 담겨질 요구사항은 단어 형태로 표현된 것이 아니라 '고객은 상품 주문을 위해 로그인을 수행해야 한다' 와 같이 이야기를 서술하는 형태로 표현한다. 떄문에, 백로그에 작성되는 요구사항을 스토리라고 한다.

XP(eXtreme Programming)

XP란?

XP는 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발을 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법이다.

XP 개발 프로세스

1) 사용자 스토리: 고객의 요구사항을 간단한 시나리오로 표현한 것이다.

2) 릴리즈 계획 수립: 몇 개의 스토리가 적용되어 부분적으로 기능이 완료된 제품을 제공하는 것을 릴리즈라고 한다.

3) 스파이크: 요구사항의 신뢰성을 높이고 기술 문제에 대한 위험을 감소시키기 위해 별도로 만드는 간단한 프로그램이다.

4) 이터레이션: 하나의 릴리즈를 더 세분화 한 단위를 이터레이션이라고 한다.

5) 승인 검사: 하나의 이터레이션 안에서 계획된 릴리즈 단위의 부분 완료 제품이 구현되면 수행하는 테스트이다.

6) 소규모 릴리즈: 릴리즈를 소규모로 하게 되면, 고객의 반응을 기능별로 확인할 수 있어, 고객의 요구사항에 좀 더 유연하게 대응할 수 있다.

XP의 주요 실천 방법

1) Pair Programming: 다른 사람과 함께 프로그래밍을 수행함으로써 개발에 대한 책임을 공동으로 나눠 갖는 환경을 조성한다.

2) Collective Ownership: 개발 코드에 대한 권한과 책임을 공동으로 소유한다.

3) Test-Driven Development: 개발자가 실제 코드를 작성하기 전에 테스트 케이스를 먼저 작성하므로 자신이 무엇을 해야할지를 정확히 파악한다.

4) Whole Team: 개발에 참여하는 모든 구성원(고객 포함)들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야 한다.

5) Continuous Integration: 모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합된다.

6) Design Improvement 또는 Refactoring: 프로그램 기능의 변경 없이, 단순화 유연성 강화 등을 통해 시스템을 재구성한다.

7) Small Releases: 릴리즈 기간을 짧게 반복함으로써 고객의 요구 변화에 신속히 대응할 수 있다.

현행 시스템 파악

현행 시스템 파악 절차

새로 개발하려는 개발 범위를 명확히 설정하기 위해 현행 시스템의 구성과 제공 기능, 시스템 간의 전달 정보, 사용되는 기술 요소, 소프트웨어, 하드웨어 그리고 네트워크의 구성 등을 파악한다.

시스템 구성 파악

현행 시스템의 구성은 조직의 주요 업무를 담당하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 기술한다.

시스템 기능 파악

현행 시스템의 기능은 단위 업무 시스템이 현재 제공하는 기능들을 주요 기능과 하부 기능, 세부 기능으로 구분하여 계층형으로 표시한다.

시스템 인터페이스 파악

현행 시스템의 인터페이스에는 단위 업무 시스템 간에 주고받는 데이터의 종류, 형식, 프로토콜, 연계 유형, 주기 등을 명시한다.

아키텍처 구성 파악

형행 시스템의 아키텍처 구성은 기간 업무 수행에 어떠한 기술 요소들이 사용되는지 최상위 수준에서 계층별로 표현한 아키텍처 구성도로 작성한다.

소프트웨어 구성 파악

소프트웨어 구성에는 단위 업무 시스템별로 업무 처리를 위해 설치되어 있는 소프트웨어들의 제품명, 용도, 라이선스 적용 방식, 라이선스 수 등을 명시한다.

하드웨어 구성 파악

하드웨어 구성에는 단위 업무 시스템들이 운용되는 서버의 주요 사양과 수량, 그리고 이중화의 적용 여부를 명시한다.

네트워크 구성 파악

네트워크 구성은 업무 시스템들의 네트워크 구성을 파악할 수 있도록 서버의 위치, 서버 간의 네트워크 연결 방식을 네트워크 구성도로 작성한다.

개발 기술 환경 파악

개발 기술 환경의 정의

개발하고자 하는 소프트웨어와 관련된 운영체제, 데이터베이스 관리 시스템, 미들웨어 등을 선정할 때 고려해야 할 사항을 기술하고, 오픈 소스 사용 시 주의해야 할 내용을 제시한다.

운영체제(OS, Operationg System)

운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 소프트웨어이다.

운영체제 관련 요구사항 실별 시 고려사항

운영체제 관련된 요구사항 식별 시 다음과 같은 사항을 고려해야한다.

1) 가용성
2) 성능
3) 기술 지원
4) 주변 기기
5) 구축 비용

데이터 베이스 관리 시스템 (DBMS)

DBMS는 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해 주는 소프트웨어이다.

DBMS 관련 요구사항 식별 시 고려사항

DBMS 관련된 요구사항 식별 시 다음과 같은 사항을 고려해야한다.

1) 가용성
2) 성능
3) 기술 지원
4) 상호 호환성
5) 구축 비용

웹 애플리케이션 서버(WAS)

웹 애플리케이션 서버는 정적인 콘텐츠 처리를 하는 웹 서버와 달리 사용자의 요구사항에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어이다.

웹 애플리케이션 서버(WAS) 관련 요구사항 식별 시 요구사항

웹 애플리케이션 서버(WAS)와 관련된 요구사항 식별 시 다음과 같은 사항을 고려해야한다.

1) 가용성
2) 성능
3) 기술 지원
5) 구축 비용

오픈 소스 사용에 따른 고려사항

오픈 소스는 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 공개한 것으로 오픈 소스 라이선스를 만족하는 소프트웨어이다.

++vocab)

미들웨어: 미들웨어는 운영체제와 해당 운영체제에 의해 실행되는 응용 프로그램 사이에서 운영체제가 제공하는 서비스 이외에 추가적인 서비스를 제공하는 소프트웨어이다.

자원: 자원은 시스템에서 사용할 수 있는 CPU, 주기억장치, 보조기억 장치, 프린터, 파일 및 정보 등을 의미한다.

가용성: 프로그램에 주어진 시점에서 요구사항에 따라 운영될 수 있는 능력

메모리 누수: 응용 프로그램이 더 이상 사용하지 않는 메모리를 반환하지 않고 계속 점유하고 있는 현상

오픈 소스: 누구나 별다른 제한없이 사용할 수 있도록 소스 코드를 공개해 무료로 사용하이 가능한 소프트웨어

총 소유 비용: 어떤 자산을 획득하려고 할 때 지정된 기간 동안 발생할 수 있는 직 / 간접적 비용들

응용 프로그램: 응용 프로그램은 조직이나 기업체에서 특정 부서에 정보를 제공하기 위해 데이터베이스에 접근하여 운영되는 프로그램으로 데이터베이스는 여러 개의 응용 프로그램들이 공동으로 사용한다.

가비지 컬렉션: 실제로는 사용되지 않으면서 가용 공간 리스트에 반환되지 않는 메모리 공간인 가비지를 강제로 해제하여 사용할 수 있도록 하는 메모리 관리 기법이다.

개발 기술 환경 파악

요구사항 정의

요구사항은 소프트웨어가 어떤 문제를 해결하기 위해 제공하는 서비스에 대한 설명과 정상적으로 운영되는데 필요한 제약조건 등을 나타낸다.

요구사항의 유형

요구사항은 일반적으로 기술하는 내용에 따라 기능 요구사항과 비기능 요구사항으로 구분하며, 기술 관점과 대상의 범위에 따라 시스템 요구사항과 사용자 요구사항으로 나눈다.

1) 기능 요구사항
2) 비기능 요구사항
3) 사용자 요구사항
4) 시스템 요구사항

요구사항 개발 프로세스

요구 사항 개발 프로세스는 개발 대상에 때한 요구사항을 체계적으로 도출하고 이를 분석한 후 분석 결과를 명세서에 정리한 다음 마지막으로 이를 확인 및 검증하는 일련의 구조화된 활동이다.

도출 -> 분석 -> 명세 -> 확인 순서.

요구 공학: 요구 공학은 무엇을 개발해야 하는지 요구사항을 정의하고, 분석 및 관리하는 프로세스를 연구하는 학문이다.

요구사항 도출

요구사항 도출은 시스템, 사용자, 그리고 시스템 개발에 관련된 사람들이 서로 의견을 교환하여 요구사항이 어디에 있는지, 어떻게 수집할 것인지를 식별하고 이해하는 과정이다.

요구사항 분석

요구사항 분석은 개발 대상에 대한 사용자의 요구사항 중 명확하지 않거나 모호하여 이해되지 않는 부분을 발견하고 이를 걸러내기 위한 과정이다.

요구사항 명세

요구사항 명세는 분석된 요구사항을 바탕으로 모델을 작성하고 문서화하는 것을 의미한다.

요구사항 확인

요구사항 확인은 개발 자원을 요구사항에 할당하기 전에 요구사항 명세서가 정확하고 완전하게 작성되었는지를 검토하는 활동이다.

요구사항 분석

문제 키워드: 요구사항 분석, 요구사항 분석 과정, DFD, 자료 흐름도, 자료 사전

요구사항 분석의 개요

요구사항 분석은 소프트웨어 개발의 실제적인 첫 단계로 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화(명세화)하는 활동을 의미한다.

구조적 분석 기법

구조적 분석 기법은 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법이다.

구조적 분석 기법의 특징: 도형 중심의 분석용 도구와 분석 절차를 이용하여 사용자의 요구사항을 파악하고 문서화한다.

구조적 분석 기법의 도구들: 구조적 분석 기법에서는 자료 흐름도, 자료 사전, 소단위 명세서, 개체 관계도, 상태 전이도, 제어 명세서 등의 도구를 이용하여 모델링한다.

자료 흐름도(DFD)

자료 흐름도는 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법으로 자료 흐름 그래프, 버블 차트라고도 한다.

자료 흐름도의 네 가지 구성요소: 프로세스(Process), 자료 흐름(Data flow), 자료 저장소(Data Store), 단말(Terminator)

자료 흐름도의 네 가지 구성요소의 표기법: pg48 참조.

자료사전

자료 사전은 자료흐름도에 있는 자료를 더 자세히 정의하고 기록한 것으로, 이처럼 데이터를 설명하는 데이터를 데이터의 데이터 또는 메타 데이터라고 한다.

자료사전에서 사용되는 기호들의 종류:

1) = : 자료의 정의
2) + : 자료의 연결
3) () : 자료의 생략
4) [|] : 자료의 선택
5) { } : 자료의 반복
6) * * : 자료의 설명

++vocab)

하향식 방법: 한 장의 종이에 소프트웨어의 모든 기능을 모델링 할 수 없으므로 소프트웨어의 기능을 전체적인 수준에서 상세 수준까지 위에서 아래로 단계별로 분리하여 모델리하는 것을 의미한다.

자료의 흐름: 자료는 각 절차에 따라 컴퓨터 기반의 시스템 내부를 흘러다니는데, 이를 자료의 흐름이라 한다.

표기법: Yourdon / DeMarco와 Gane / Sarson 에 의해 두 가지 방법으로 표기할 수 있으나 Yourdon / DeMarco 표기 방법이 주로 사용된다.

요구사항 분석 - CASE와 HIPO

문제 키워드: 구조적 요구 분석, HIPO, HIPO 패키지

요구사항 분석을 위한 CASE(자동화 도구)

요구사항 분석을 위한 자동화 도구는 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 도구를 의미한다.

요구사항 분석용 도구의 종류: 요구사항 분석을 위한 자동화 도구에는 SADT, SREM, PSL / PSA, TAGS, EPOS 등이 있다.

1) SADT: SoftTech 사에서 개발한 것으로 시스템 정의, 소프트웨어 요구사항 분석, 시스템 / 소프트웨어 설계를 위해 널리 이용되어 온 구조적 분석 및 설계 도구이다. (블록 다이어그램 채택)

2) SREM: (RSL / REVS) TRW 사가 우주 국방 시스템 그룹에 의해 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 것으로, RSL 과 REVS를 사용하는 자동화 도구이다.

3) PSL / PSA: 미국 미시간 대학에서 개발한 것으로 PSL과 PSA를 사용하는 자동화 도구이다.

4) TAGS: 시스템 공학 방법 으용에 대한 자동 접근 방법으로, 개발 주기의 전 과정에 이용할 수 있는 통합 자동화 도구이다.

HIPO(Hierarchy Input Process Output)

HIPO(Hierarchy Input Process Output)는 시스템의 분석 및 설계나 문서화할 때 사용되는 기법으로, 시스템 실행 과정인 입력, 처리, 출력의 기능을 나타낸다.

HIPO Chart의 세가지 종류:

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

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

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

UML(Unified Modeling Language)

문제 키워드: UML의 기본 구성 요소, UML 모델, UML 확장 모델, 럼바우 객체지향 분석 기법, UML에서 활용되는 다이어그램

UML의 개요

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

사물 (Things)

사물은 모델을 구성하는 가장 중요한 기본 요소로, 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말한다.

사물의 종류: 사물에는 구조 사물, 행동 사물, 그룹 사물, 주해 사물이 있다.

관계 (Relationships)

관계는 사물과 사물 사이의 연관성을 표현하는 것으로, 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계 등이 있다.

1) 연관 관계: 연관 관계는 2개 이상의 사물이 서로 관련되어 있음을 표현한다.

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

3) 포함 관계: 포함 관계는 집합 관계의 특수한 형태로, 포함하는 사물의 변확가 포함되는 사물에게 영향을 미치는 관계를 표현한다.

4) 일반화 관계: 일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현한다.

5) 의존 관계: 의존 관계는 연관 관계와 같이 사물 사이에 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현한다.

6) 실체화 관계: 실체화 관계는 사물이 할 수 있거나 해야 하는 기능(행위, 인터페이스)로 서로를 그룹화 할 수 있는 관계를 표현한다.

다이어그램 (Diagram)

다이어그램은 사물과 관계를 도형으로 표현한 것 이다. 정적 모델링에서는 구조적 다이어그램을 사용하고, 동적 모델링에서는 주로 행위 다이어그램을 사용한다.

1) 구조적(Structual) 다이어그램의 종류:

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

1-2) 객체 다이어그램(Object Diagram): 클래스에 속한 사물들, 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현한다.

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

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

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

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

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

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

2-3) 커뮤니케이션 다이어그램(Communication Diagram): 시퀸스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데, 메시지뿐만 아니라 객체들 간의 연관까지 표현한다.

2-4) 상태 다이어그램(State Diagram): 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현한다.

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

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

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

++ 스테레오 타입: 스테레오 타입은 UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하기 위해 사용한다. - 길러멧이라고 부르는 겹화살괄호 << >> 사이에 펴햔할 형태를 기술한다.

주요 UML 다이어그램

문제 키워드: UML에서 시퀸스 다이어그램

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

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

유스케이스 다이어그램의 구성 요소의 종류:

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

2) 액터 (Actor): 시스템과 상호작용을 하는 모든 외부요소로, 사람이나 외부 시스템을 의미함

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

4) 관계 (Relationship): 유스케이스 다이어그램에서 관계는 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 일어날 수 있으며, 포함 관계, 확장 관계, 일반화 관계의 3종류가 있다.

클래스 (Class) 다이어그램

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

클래스 다이어 그램의 구성 요소들:

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

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

3) 관계: 관계는 클래스와 클래스 사이의 연관성을 표현함

++객체들의 상호 작용을 표현: 객체들의 상호 작용을 표현한다는 의미는 클래스가 수행할 수 있는 동작인 오퍼레이션을 표현한다는 의미이다.

시퀸스 (Sequence) 다이어그램

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

시퀜스 다이어 그램의 구성 요소들:

시퀸스 다이어그램은 액터, 객체, 생명선, 실행, 메시지 등으로 구성된다.

1) 액터: 시스템으로부터 서비스를 요청하는 외부 요소로, 사람이나 외부 시스템을 의미함

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

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

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

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

profile
RM_young

0개의 댓글