일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Crawling
- time.sleep
- 딕셔너리
- CSV
- SQL 개발자
- SQLD
- 1과목
- 스크랩핑
- HTML
- 정보처리기사
- lv0
- 데이터베이스
- 프로젝트
- 파이선
- 자격증공부
- 데이터 타입
- SQL
- django
- 슬라이싱
- scraping
- 정리
- 태그
- 크롤링
- 자격증
- 프로그래머스
- 튜플
- 메서드
- Python
- 조건문
- 파이썬
- Today
- Total
나의 공부 일기
정보처리기사) 1과목 정리 ( 3 / 4 ) 본문
UML의 상태다이어그램의 구성요소
상태
- State
- 객체가 존재할 수 있는 공간
시작 상태
- Initial State
- 객체의 시작 상태
종료 상태
- Final State
- 객체의 종료 상태
전이
- Transition
- 객체의 상태가 다른 상태로 변경되는 상태
이벤트
- Event
- 상태의 변화를 주는 현상
전이 조건
- Transition Condition
- 특정 조건 만족 시 전이가 발생하도록 하기 위해 사용되는 속성값의 불린 식
UML에서의 사물(Things)의 종류
구조 사물
- Structural Things
- UML 모델의 정적인 부분들을 정의
- 시스템의 물리적 , 개념적 요소를 표현
ex) 클래스 ,유스케이스, 컴포넌트, 노드 등
행동 사물
- Behavioral Things
UML 모델의 동적인 부분을 표현
- 시간과 공간에 따른 요소들의 행위를 표현
ex) 상호작용, 상태 머신 등
그룹 사물
- Grouping Things
- UML모델의 요소들을 그룹으로 묶어서 표현
ex) 패키지 등
주해 사물
- Annotational Things
- UML모델을 설명(주석)
- 부가적인 설명이나 제약조건 등을 표현
ex) 노트 등
CASE
- Computer Aided Software Engineering
- 프로그램의 구현과 유지보수, 요구분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 자동화 하는것이다
- 소프트웨어 생명주기의 전체 단계를 연결해 주고 자동화해 주는 통합된 도구를 제공한다.
- 개발 과정의 속도를 향상시킨다.
- 소프트웨어 부품의 재사용을 가능하게 만든다.
주요기능
- 그래픽을 지원한다.
- 소프트웨어 생명주기의 전 단계를 연결한다.
- 다양한 소프트웨어 개발 모형을 지원한다.
- 표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다.
- 작업 과정 및 데이터 공유를 통해 작업자 간의 커뮤니케이션을 증대한다.
CAD
- Computer-Aided Design
- 컴퓨터를 이용한 제도 및 설계를 개발하는 환경을 수행하는 응용프로그램
CAI
- Computer-Assisted Instruction
- 보조적 수단으로 컴퓨터를 활용하여 이루어지는 모습
CAM
- Content Addressable Memory
- 기억 장치에서 자료를 찾을 때 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 접근할 수 있는 기억 장치
애플리케이션 설계
HIPO
- Hierarchy Input Process Output
- 하향식 소프트웨어 개발을 위한 문서화 도구
HIPO 특징
- 체계적인 문서 관리가 가능함
- 기호, 도표 등을 사용해서 보기가 쉽고 이해도 쉬움
- 기능과 자료의 의존 관계를 동시에 표현할 수 있음
- 변경, 유지 보수가 용이함
- 시스템의 기능을 고유 모듈들로 분할하여 이들 간의 인터페이스를 계층 구조로 표현한 것을 HIPO 차트라고 함
HIPO 차트 종류
- 가시적 도표
- 총체적 도표
- 세부적 도표
공통 모듈에 대한 명세 기법
명확성
- 해당 기능에 대해 일관되게 이해되고 한 가지로 해석될 수 있도록 작성하는 원칙
코드 설계 종류
연상 코드
- 코드만 보고 대상을 연상할 수 있도록 명칭 일부를 약호(간단하고 알기 쉽게 나타내어 만든 부호) 형태로 넣어 연상할 수 있도록 구성된 코드
블록 코드
- 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련번호를 부여하는 코드
- 구분 코드라고도 불림
순차 코드
- 일정한 기준에 따라 순서대로 일련번호를 부여한 코드
- 대상 자료의 물리적인 수치인 길이, 넓이, 용량 등을 표시한 코드
표의 숫자 코드
- 대상 자료의 물리적인 수치인 길이, 넓이, 용량 등을 표시한 코드
십진 코드
- Decimal Code
- 10진수 형태로 표현한 코드
그룹 분류식 코드
- Group Classfification Code
- 대상을 기준에 따라 대분류, 중분류, 소분류로 구분하여 번호를 부여한 코드
팬 인 / 팬 아웃
팬 인
- Fan-In
- 모듈 자신을 기준으로 모듈에 들어오면 팬 인
팬 아웃
- Fan-Out
- 모듈 자신을 기준으로 모듈에서 나가면 팬 아웃
소프트웨어 설계 시 고려사항
- 전체적이고 포괄적인 개념을 설계한 후 차례로 세분화하고 구체화시켜 나간다.
- 요구사항들을 모두 구현해야 하고 유지 보수가 용이해야함
- 모듈은 독립적인 기능을 갖도록 설계해야 한다.
- 모듈간의 상관성은 낮추고 변경이 쉬워야 한다.
소프트웨어 상위 설계
- 자료 구조 설계
- 아키텍처 설계
- 인터페이스 설계
- 프로시저 설계
소프트웨어 하위 설계
- 모듈 설계
바람직한 소프트웨어 설계 방안
- 모듈의 독립성과 재사용성을 높이기 위하여 결합도는 낮추고 응집도는 높인다.
- 모듈의 복잡도와 중복성을 줄이고 일관성을 유지한다.
- 모듈의 기능은 예측 가능해야 하며, 지나치게 제한적이어서는 안 된다.
- 적당한 모듈의 크기를 유지한다.
- 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.
- 유지 보수가 용이해야 하고 잇기성을 고려해야 한다.
코드 오류 종류
사본 오류
- Transcription Error
- 한 자리를 잘못 표기한 경우
- 필사 오류, 오자 오류라고도 불림
전위 오류
- Transposition Error
- 연속된 두 글자가 서로 바뀌어 표기된 경우
생략 오류
- Omission Error
- 한 글자를 빼먹고 기술한 경우
첨가 오류
- Addition Error
- 한 글자를 추가되어 기술한 경우
이중 전위 오류
- Double Transposition Error
- 전위 오류가 중복 발생한 경우
소프트웨어 아키텍처
- 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼 수 있다.
- 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정함
데이터 중심 아키텍처
- 공유 데이터 저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이함
파이프 필터 아키텍처
- 데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 패턴
- 서브 시스템으로 데이터를 단방향으로 흐르는 구조
- 필터 간 데이터 이동에서 데이터 변환 오버헤드가 발생함
소프트웨어 아키텍처 설계
품질 속성
- 가용성
- 변경 용이성
- 성능
- 보안성
- 사용 편의성
- 시험 용이성
모듈
- Moduel
- 크게 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어
- 단독으로 컴파일 할 수 있으며, 재사용할 수 있음
- 모듈이 되려면 다른 것들과 구분될 수 있는 독립적인 기능을 가져야 하고 유일한 이름을 사용해야 한다.
- 다른 모듈에서의 접근이 가능해야 함
모듈화
- 시스템을 모듈로 분할하면 각각의 모듈을 별개로 만들고 수정할 수 있기 때문에 좋은 구조가 된다.
- 응집도는 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성 요소 간 연관 정도이다.
- 모듈과 모듈 사이의 상호의존 또는 연관 정도는 결합도이다.
- 모듈 간의 결합도가 약해야 독립적인 모듈이 될 수 있다.
- 모듈 내 구성 요소 간의 응집도가 강해야 좋은 모듈 설계이다.
결합도의 종류
내용 결합도
- Content Coupling
- 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우의 결합도
- 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있는 경우의 결합도
공통 결합도
- Common Coupling
- 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용을 하는 경우의 결합도
- 두 모듈이 동일한 전역 데이터를 접근한다면 공통 결합되어 있다고 함
외부 결합도
- External Coupling
- 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프ㅗ토콜 또는 디바이스 인터페이스를 공유할 경우의 결합도
제어 결합도
- Control Coupling
- 어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우의 결합도
- 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상이 발생하게 하는 결합도
스탬프 결합도
- Stamp Coupling
- 모듈 간의 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우의 결합도
자료 결합도
- Data Coupling
- 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호작용이 일어나는 경우의 결합도
내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 순으로 결합도가 낮아진다.
응집도의 유형
우연적 응집도
- Coincidental Cohesion
- 서로 간에 어떠한 의미 있는 연관 관계도 없는 기능 요소로 구성될 경우의 응집도
- 서로 다른 상위 모듈에 의해 호출되어 처리상의 연관성이 없는 서로 다른 기능을 수행할 경우의 응집도
논리적 응집도
- Logical Cohesion
- 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우의 응집도
시간적 응집도
- Temporal Cohesion
- 모듈 내 구성 요소들이 서로 다른 기능을 같은 시간대에 함께 실행하는 경우 응집도
절차적 응집도
- Procedural Cohesion
- 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
통신적 응집도
- Communication Cohesion
- 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우의 응집도
순차적 응집도
- Sequential Cohesion
- 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도
기능적 응집도
- Fuctional Cohesion
- 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우의 응집도
우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적 순서로 응집도가 높아짐
소프트웨어 아키텍처 4 + 1뷰
유스케이스 뷰
- Usecase View
- 유스케이스 또는 아키텍처를 도출하고 설계하며 다른 뷰를 검증하는 데 사용되는 뷰
논리 뷰
- Logical View
- 시스템의 기능적인 요구사항이 어떻게 제공되는지 설명해주는 뷰
프로세스 뷰
- Process View
- 시스템의 비기능적인 속성으로서 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등을 표현한 뷰
구현 뷰
- Implementaion View
- 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여주는 뷰
배포 뷰
- Deployment View
- 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 매핑해서 보여주는 뷰
'자격증공부 > 정보처리기사' 카테고리의 다른 글
정보처리기사) 1과목 정리 ( 4 / 4 ) (1) | 2024.04.03 |
---|---|
정보처리기사) 1과목 정리 ( 2 / 4 ) (0) | 2024.04.01 |
정보처리기사) 1과목 정리 ( 1 / 4 ) (1) | 2024.03.29 |