객체지향설계
UML
소프트웨어 중심 시스템과 관련한 산출물을 가시화하고, 명세화하며, 시스템 구축 및 문서화에 사용
시스템을 모델링하는 데 적합
기업 IT 시스템, 분산처리의 웹 기반 애플리케이션과 실시간 임베디드 시스템(Real-time Embedded system)까지도 표현 범위에 포함
표현력이 매우 풍부한 언어로서, 시스템들을 개발하고 업무에 배치하는 데 필요한 모든 관점을 다룸
UML 특징
가시화
작성된 개념 모델을 다른 사람에게 전달하는 데 오류가 생기기 쉬움
명세화
정확하고, 명백하며, 완전한 모델을 만드는 것
구축
UML은 시각적인 모델링 언어일 뿐임
모델들은 다양한 프로그래밍 언어와 직접 연결 가능
그래픽으로 가장 잘 표현되는 것은 UML로 처리
문자 위주로 가장 잘 표현되는 것은 프로그래밍 언어로 표현
순공학(forward engineering)
UML 모델로부터 대상 프로그래밍 언어의 코드를 생성하는 것
역공학(reverse engineering)
구현된 코드를 분석하여 UML 모델을 생성
왕복공학(round-trip engineering)
그래픽과 문자중 어느 하나의 판단으로 일을 할 수 있음을 의미
이때 도구는 두 가지 관점을 일치시켜 붐
문서화
산출물의 포함 요소
아키텍처 설계
소스 코드
프로젝트 계획 테스트
프로토타입(Prototype ; UP에서는 사용자 경험 모델이라 칭한다)
배포판(Releases)
산출물
프로젝트의 산출물
개발 도중이나 배치 후에 시스템에 대한 통제, 평가, 의사소통을 하는 데 중요
가장 중요한 산출물
프로젝트 생명주기에 걸쳐 반복적이고 점진적인 시스템 개발을 제어가능 해야 함
Yourdon에 의해 제안된 구조적 방법론
업무 영역에 대하여 기능을 중심으로 분해
업무 프로세스를 행위 위주로 분석/설계
주요 산출물
DFD(Data Flow Diagram), 모듈 명세서(Module Specification)
개발 하위 단계로부터 상위 단계로 거슬러 올라갈 수 없도록 설계
수많은 프로젝트에서 사용되어 정형화되고 검증된 방법론
요구사항 정의 워크플로우 상세
기타 기능적 요구사항 정의
“FURPS+” 모델
요구사항을 기능성(F : Functionality)
유용성(U : Usuability)
신뢰성(Reliability)
성능(P : Performance)
지원성(S : Supportability)
기타(+)로 분할하여 식별
유스케이스(Use-case)
액터와 시스템 간의 대화
시스템에 의해 제공되는 기능
유스케이스의 형식적인 정의
특정 액터를 위해 측정 가능한 가치를 결과로서 제공하기 위해 시스템에 의해 수행되는 일련의 트랜잭션
스토리보드(Story board)
유스케이스에 요구된 행위를 달성하기 위해 필요한 이벤트에 대한 설명
각각의 유스케이스마다 작성되는 것보다 분리해서 작성하는 것이 더욱 효율적
주의할 점
“유스케이스 상호 간에는 연관 관계를 정의할 수 없다”
스테레오타입(Stereotype)
새로운 요소를 만들기 위해 기본 모델링 요소들에 대한 의미의 확장을 제공
스테레오타입의 이름
<<>>안에 쓰임
스테레오타입에 포함 관계(include)를 정의하는 경우
여러 유스케이스들 사이에 공유되는 기능을 나타냄
향후 재활용하고자 활용
스테레오 타입에 확장 관계(extend)를 정의하는 경우
유스케이스의 부수적이고 선택적인 동작을 묘사하기 위해 사용
유스케이스 이벤트 플로우
선행조건(Preconditions)
메인 플로우(Main Flow)
서브 플로우(Sub Flow)
대안 플로우(Alternative Flows)
-----------------------------------------------------------------------------------------------
알고리즘
알고리즘이란 문제를 해결하기 위한 절차나 방법
어떠한 행동을 하기 위해서 만들어진 명령어들의 유한 집합
알고리즘의 특성
정확성: 알고리즘은 주어진 입력에 대해 올바른 해를 주어여야 한다.
수행성: 알고리즘의 각 단계는 컴퓨터에서 수행 가능하여야 한다.
유한성: 알고리즘은 일정한 시간 내에 종료되어야 한다.
효율성: 알고리즘은 효율적일수록 그 가치가 높아진다.
가장 오래된 알고리즘: 기원전 300년경 유클리드 (Euclid)의 최대공약수 알고리즘
최대공약수는 2개 이상의 자연수의 공약수들 중에서 가장 큰 수
유클리드는 2개의 자연수의 최대공약수는 큰 수에서 작은 수를 뺀 수와 작은 수 와의 최대공약수와 같다는 성질을 이용
최대공약수(24, 14)
= 최대공약수(24-14, 14) = 최대공약수(10, 14)
= 최대공약수(14-10, 10) = 최대공약수(4, 10)
= 최대공약수(10-4, 4) = 최대공약수(6, 4)
= 최대공약수(10-4, 4) = 최대공약수(6, 4)
= 최대공약수(6-4, 4) = 최대공약수(2, 4)
= 최대공약수(4-2, 2) = 최대공약수(2, 2)
= 최대공약수(2-2, 2) = 최대공약수(2, 0)
= 2
Euclid(a, b)
입력: 정수 a, b; 단, a≥b≥0
출력: 최대공약수(a, b)
1. if (b=0) return a
2. return Euclid(b, a mod b)
?? 유클리드 알고리즘
while(b!=0)
{
r = b mod s
b=s
s=r
}
그리디 (Greedy) 알고리즘 동전찾기 남은 거스름돈 액수를 넘지 않는 가장 큰 액면의 동전을 계속하여 선택하는 것이다.
이진탐색 (Binary Search) 오름차순으로 정렬된 데이터를 반으로 나누고, 나누어진 반을 다시 반으로 나누고, 이 과정을 반복하여 원하는 데이터를 찾는 탐색 알고리즘
알고리즘의 분류
문제의 해결 방식에 따른 분류:
분할 정복 (Divide-and-Conquer) 알고리즘 (제3장)
그리디 (Greedy) 알고리즘 (제4장)
동적 계획 (Dynamic Programming) 알고리즘 (제5장)
근사 (Approximation) 알고리즘 (제8장)
백트래킹 (Backtracking) 기법 (제9장)
분기 한정 (Branch-and-Bound) 기법 (제9장)
문제에 기반한 분류:
정렬 알고리즘 (제6장)
그래프 알고리즘
기하 알고리즘
기하 알고리즘
특정 환경에 따른 분류:
병렬 (Parallel) 알고리즘
분산 (Distributed) 알고리즘
양자 (Quantum) 알고리즘
시간복잡도 (time complexity) 알고리즘의 수행 시간 = 기본적인 연산 횟수를 입력 크기에 대한 함수로 표현
공간복잡도 (space complexity) 알고리즘 사용 메모리 공간 크기
점근적 표기 (Asymptotic Notation) :
입력 크기 n이 무한대로 커질 때의 복잡도를 간단히 표현하기 위해 사용하는 표기법
O(Big-Oh) -표기 점근적 상한
Ω(Big-Omega) -표기 점근적 하한
Θ(Theta) -표기 O-표기와 Ω-표기가 같은 경우에 사용 동일한 증가율을 가진다는 뜻.
분할 정복 (Divide-and-Conquer) 알고리즘: 주어진 문제의 입력을 분할하여 문제를 해 결 (정복)하는 방식의 알고리즘이다.
총 분할한 횟수= log₂n
1. 분할(Divide) : 문제가 분할이 가능한 경우, 2개 이상의 하위 문제로 나눕니다.
2. 정복(Conquer) : 하위 문제가 여전히 분할이 가능한 상태라면 하위 집합에 대해 1을 수행합니다. 그렇지 않다면 하위 문제를 풉니다.
3. 결합(combine) : 2 과정에서 정복된 답을 취합합니다.
분할 정복의 응용
병합 정렬
1. 정렬할 데이터 집합을 반으로 나눕니다.
2. 나누어진 하위 데이터 집합의 크기가 2 이상이면 이 하위 데이터 집합에 대해 1을 반 복합니다.
3. 원래 같은 집합에서 나뉘어져 나온 하위 데이터 집합 둘을 병합하여 하나의 데이터 집 합으로 만듭니다.
단, 병합을 할 때 데이터 집합의 원소는 순서에 맞춰 정렬합니다.
4. 데이터 집합이 다시 하나가 될 때까지 3을 반복합니다.
병합 정렬
분할된 데이터 집합은 병합 과정에서 어떻게 정렬하는가?
1. 두 데이터 집합을 합한 것만큼의 비어있는 데이터 집합을 마련합니다.
2. 두 데이터 집합의 첫 번째 요소들을 비교하여 작은 요소를 새 데이터 집합에 추가합니다.
그리고 새 데이터 집합에 추가된 요소는 원래의 데이터 집합에서 삭제합니다.
3. 양쪽 데이터 집합이 빌 때까지 2 과정을 반복합니다.
기타 = 거듭제곱, 피보나치 수,
합병 정렬 (Merge sort): n개의 숫자들을 n/2개씩 2개의 부분 문제로 분할하고, 각각 의 부분 문제를 재귀적으로 합병 정렬한 후, 2개의 정렬된 부분을 합병하여 정렬 (정복)한다.
시간 복잡도는 O(nlogn)이다..
공간 복잡도는 O(n)이다.
퀵 정렬 (Quick sort): 피봇 (pivot)이라 일컫는 배열의 원소를 기준으로 피봇보다 작은 숫 자들은 왼편으로, 피봇보다 큰 숫자들은 오른편에 위치하도록 분할하고, 피봇을 그 사이에 놓는다. 퀵 정렬은 분할된 부분 문제들에 대하여서도 위와 동일한 과정을 재귀적으로 수행하여 정렬한다.
평균 경우 시간복잡도는 O(nlogn),
최악 경우 시간복잡도는 O(n2),
최선 경우 시간복잡도는 O(nlogn)이다.
퀵 정렬은 커다란 크기의 입력에 대해서 가장 좋은 성능을 보이는 정렬 알고 리즘이다.
선택 (Selection) 문제: k 번째 작은 수를 찾는 문제로서, 입력에서 퀵 정렬에서와 같이 피봇을 선택하여 피봇보다 작은 부분과 큰 부분으로 분할한 후에 k 번째 작은 수가 들어있는 부분을 재귀적으로 탐색한다.
평균 경우 시간복잡도는 O(n)이다. 재귀적으로 탐색한다.
평균 경우 시간복잡도는 O(n)이다.
분할 정복이 부적절한 경우는 입력이 분할될 때마다 분할된 부분문제들의 입력 크기의 합이 분할되기 전의 입력 크기보다 커지는 경우이다. 또 하나 주의해야 할 요소는 취합 (정복) 과정이다.
선택 알고리즘은 데이터 분석을 위한 중앙값 (median)을 찾는데 활용된다.
버블정렬 인접한 두개 비교해서 큰데이터가 배열의 끝에 오도록 정렬
선택정렬 한자리 정해놓고 그 값을 비교해가며 정렬
삽입정렬 새 데이터를 정렬된 데이터에 삽입해나가는 과정 반복
퀵정렬 과정
특정한 데이터 피봇(pivot) 기준
전체 원소를 피봇 보다 작은 원소들과 피봇 보다 큰 원소들의 집합으로 분류
분류된 각각의 집합에서 다시 피봇을 설정
같은 과정을 반복하여 집합을 정렬
합병정렬 과정
정렬하고자 하는 데이터의 모임을 비슷한 크기의 두 부분으로 반복해서 나눔
나뉘어진 부분 데이터들을 합병정렬 알고리즘을 이용하여 정렬
정렬된 부분 데이터들을 다시 합병
하나의 정렬된 데이터 모임으로 완성
탐색
순차탐색(선형탐색) 그냥 순서대로 하나씩 찾아감
이진탐색 정렬된 데이터 중간값을 찾는 값과 비교하면서 찾아감
Heap
완전이진트리로 각 노드의 값이 자신의 자식노드보다 작음
힙소트(Hearpsort) 배열을 힙으로 만든다음 차례로 힙에서 제거하면서 정렬
카운팅소트랑 라딕스 소트도 있는데 라딕스 소트는 2진수로 된거 자리값 비교해가면서 소팅하는그건듯
전위순회 MLR
중위순회 LMR
후위순회 LRM
a<b<c
b
a c 이런식으로 정렬된트리를 이진탐색트리라고 함.
허프만은 종이 참조
깊이우선 신장트리(depth first spanning tree) 깊이우선탐색 알고리즘을 이용하여 만들어진 신장트리
너비우선 신장트리(breadth first spanning tree) 너비우선탐색 알고리즘을 이용하여 만들어진 신장트리
최소신장트리
프림
가장 작은 가중치를 가진 에지를 서냍ㄱ하고 이 에지와 연결된 정점에서 다시가장 작은 가중치를 선택하는것
크루스칼
가장 작은 가중치를 가진 에지를 선택하고 이 에지와 연결되어 있지 않은 에지더라도 가중치가 작은 에지를 순서대로 선택하여 신장트리에 반복함
-------------------------------------------------------------------
16p 통계를 배우는 목적
->
문제를 해결할때 전체를 다 보기엔 너무 많은 노력이 들어가니 내가 원하는 값을 추론하여 찾기 위해서 사용
불확실성의 해소, 요약, 연관성 파악, 예측 등
19p 모집단 모수 표본 통계량
전국에 있는 학생들 = 모집단 = 대상의 전체 집합
전국 학생들의 투표율 = 모수 = 모집단을 분석하여 얻어지는 결과 수치
동서울대 의 일부 100명 = 표본 = 조사 대상이 된 모집단의 일부
일부 학생중 투표율 = 통계량 = 표본을 분석하여 얻어지는 결과 수치
65~67 74 표본 중간값 최빈값 모분산 분산 표준편차? 값 구하라는듯
평 균 = 나눠서 구한 평균 =AVERAGE(범위)
중간값 = 가운데 위치한 값 =MEDIAN(범위)
최빈값 = 가장 많이 측정된 값 =MODE.SNGL(범위)
모분산 = σ² = VAR.P(범위)
표본분산 = S² = VAR.S(범위)
모표준편차 σ = SQRT(모분산)
58p 도수 분포표 만들기 엑셀로 그리고 a4에 받아적는듯
최대,최소값 구하고 계급구간 만든뒤 데이터->데이터분석->히스토그램
입력범위 : 복용전 원본데이터범위
계급구간 : 내가만든 계급구간범위
출력범위 : 아무데나 ㄱㄱ
분석한거 대충 눌러놓고 삽입->추천차트->모든차트->묶은 세로막대형 ㄱㄱ
끝
OX 2문제 안알랴쥼ㅎ
132,133 5,6,7,8 번 문제
5. 표준편차= √분산 (루트 분산)
(값 - 평균)/표준편차 5번문제같은경우 (107-100)/10 = 0.7
=NORM.S.DIST(해당 값,TRUE) 구하고
1-구한 값 = 확률 나옴
7. 이항분포 구하기
BINOMS.DIST.RANGE( 횟수, 확률, 시도횟수 ) 7번은 (100,0.05,5)
144p z이용 구간추정
표본평균 - 신뢰값? * ( 모표준편차 / 표본개수 ) <= ..
무작위 200개 평균수명 30,000시간 모표준편차=500시간 95% ===???
30000 - 1.96 * ( 500 / sqrt(200) ) <= ...
149p t이용 구간추정 t분포표는 준다고 함
값 엑셀에 집어넣고 평균 구하고 166
표준편차는 =STDEV.S(범위) 6.64...
표준오차는 표준편차/SQRT(개수) 1.91....
자유도= 개수-1 11
신뢰구간은 95% 니까 100% - 95% = 5% = 0.05 인데 양측검정을 해야하므로 나누기2해줘서 0.05/2 = 0.025
t분포표에서 자유도가 11일때 0.025 값 찾으면 2.201 나옴
평균 - 구한값 * ( 표준편차 / sqrt(개수) ) >= ...
166 - 2.201 * ( 6.64 / sqrt(12) ) >= ...
164p 4,7,9번 문제
용어
ㅎ에 특수문자있음
z분포 = 표본의 개수가 충분할 때 표준화 과젖을 거친 정규분포를 표준정규분포라고 함.
t분포 = 표본의 개수가 30개 미만일때
중심극한정리(CTD) 표본의 개수가 충분하다면 모수를 모르는 상황에서도 표본 통계량으로 정규분포를 구성하여 모수를 추정할 수 있다는 것. (최소 30개)
명목척도(nominal scale) = 수 또는 순서의 개념과 상관없이 이름만 붙여지는 척도. (예 성별)
서열척도(ordinal scale) = 순서척도
연속형 척도는 아래2개
등간척도(interval scale) = 측정자료간 더하기 빼기가 가능한 척도, 순서가 있고 간격이 같다.
비율척도(ratio scale) = 등간척도와 달리 0이 있어 사칙연산 가능
중심경향도 = 데이터들을 종합하여 그 중심을 이루는 값이 어느정도가 될지 구한 것
확률변수 = 실험 결과에 실수값을 대응시키고 그값에 확률을 부여한 것.
이산 확률변수 = 특정한 값들로 구성되거나 일정한 범위
연속 확률변수 = 연속형이거나 무한한, 셀수없는 경우
표본을 활용하여 집단의 특성을 설명하는것을 기술통계
표본을 활용하여 모집단의 특성을 나타내는것을 추론통계라 함
점추정은 오차를 필연적으로 동반함. 따라서 오차를 최소로 만들어야됨
평균오차제곱: 최소여야함
불편성 : 추정량이 모수와 같아야 함
일치성 : 표본의 크기가 모집단 규모에 근접해야 함
유효성 : 추정량의 분산이 최소값이어야 함
충분성 : 표본이 모집단의 대표성을 가져야함
으아아엉 이런거 안나올듯
(오차)유의수준 5% 이내 = 신뢰수준 95%
모평균 추정 표본평균을 X 표준오차를 SE 라 할때
X-z*SE <= μ <= X+z*SE
하한값 모평균 상한값 모집단 평균에 대한 신뢰'구간추정'
90% = 1.64 0.05
95% = 1.96 0.025
99% = 2.58 0.005
99.9% 3.30
'시험 정리' 카테고리의 다른 글
| DB설계, JSP 기말 (2) | 2016.06.16 |
|---|---|
| 리눅스 기말시험 (0) | 2016.06.16 |
| 기말 안드로이드 (0) | 2016.06.12 |
| 안드로포세이돈 (0) | 2016.04.26 |
| 소공 / 리눅스 중간고사 (0) | 2016.04.22 |


