삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성...

15
삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석) 2012년 9월 14일 1

Upload: others

Post on 30-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

삼성 반도체 제조 공정관리 프로그램 분석

박대준 (강동옥, 이영석, 이우석)

2012년 9월 14일

1

Page 2: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

분석 대상 소개

•삼성 반도체 제조공정 관리시스템

•반도체와 역사를 같이 한 오래된 시스템

•총 인력: 400여명

•순수 개발자: 200여명

•품질 관리자: 8명 (최근까지 2명)

•라이프 사이클

•마이너 업그레이드: 사소한 비지니스 로직 수정, 품질 관리 프로세스 적용

•메이저 업그레이드: DB 스키마 변경, 특별팀 구성 대응

2

Page 3: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

타겟 프로그램

•절차형 언어

•포인터 없음

•Call by reference

•자료구조는 배열과 스트럭처 뿐

•DB Query

•간단한 것만 사용 (JOIN 사용안함)

•비지니스 로직

•TKIN, TKOUT, REPOSITION, HOLD, ...

•어떤 ‘조건’일 때, 어떤 ‘행동’을 하는지 기술

•핵심 연산은 문자열 생성 및 검색 (산술 연산 없음)

•모듈 구조

•모듈 간 종속성 거의 없음 (한 방향)

3

Page 4: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

분석 성질

•두 버전 사이의 의미 차이 분석

•변경된 부분의 영향도 분석

•비슷한 문제들

•두 버전이 같은 의미를 갖는가?: 리팩토링이 안전한지 체크

•변경된 부분을 위한 테스트셋 생성

•변경 내역 중 의미있는 것만 추려내기

4

Page 5: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

버전 차이 예제 1

if A x := yelse if B ...

if B ...else if A x := y

5

Page 6: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

버전 차이 예제 2

6

Page 7: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

변경 영향 분석 예 1

x = 0;if (c) { x = 1;} else { x = 2;}y = x;z = y;y = 1;

x = 0;if (c) { x = 1;

}y = x;z = y;y = 1;

7

Page 8: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

1 x = 0;2 if (c) {3 x = 1;4 } else {5 x = 2;6 }7 y = x;8 z = y;9 y = 1;

1 x = 0;2 if (c) {3 x = 1;

4 }5 y = x;6 z = y;7 y = 1;

x1 : {(true,0)}x3 : {(c,1)}x5 : {(!c,2)}y7 : {(c,1),(!c,2)}z8 : {(c,1),(!c,2)}y9 : 1

x1 : {(true,0)}x3 : {(c,1)}

y5 : {(c,1),(!c,0)}z6 : {(c,1),(!c,0)}y7 : 1

8

Page 9: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

변경 영향 분석 예 2

y = 0;if (c) { x = y;} else if (!c) { x = 1;}

y = 0;

if (!c) { x = 1;} else if (c) { x = y;}

9

Page 10: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

1 y = 0;2 if (c) {3 x = y;4 } else if (!c) {5 x = 1;6 }

1 y = 0;

2 if (!c) {3 x = 1;4 } else if (c) {5 x = y;6 }

y1 : {(true,0)}x3 : {(c,0)}x5 : {(!c,1)}

y1 : {(true,0)}x3 : {(!c,1)}x5 : {(c,0)}

어떤 것끼리 비교할 것인가?

10

Page 11: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

변환

BEGIN SELECT f INTO x FROM t WHERE eEXCEPTION WHEN OTHERS THEN x := ‘-’;END

c := ex := t.f if cx := ‘-’ if !c

11

Page 12: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

파싱

•기존 파서 이용

•ANTLR 로 작성된 파서

•OCaml 로 작성된 파서

•새로 구현

12

Page 13: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

13

Page 14: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

14

Page 15: 삼성 반도체 제조 공정 관리 프로그램 분석pudrife/talk/2012/0914.pdf · 삼성 반도체 제조 공정 관리 프로그램 분석 박대준 (강동옥, 이영석, 이우석)

Thank you

15