지금의 소프트웨어 기술 얼마나 미개한가 이광근 교수. 이력 ’87 학사 (computer science & statistics) 서울대 ‘93 박사 (computer science) University of Illinois at Urbana-Champaign ‘93-’95:

Slides:



Advertisements
Similar presentations
컴퓨터공학과. 이세돌 vs 인공지능 알파고 컴퓨터공학과 인생은 실험과 도전의 연속 인생은 실험과 도전의 연속.
Advertisements

제철고 프로그래밍언어 2015 가을학기 연습 #1 Python 연산식 이다훈 POSTECH 컴퓨터공학과 2015 년 9 월 23 일.
제철고 프로그래밍언어 2015 가을학기 강의 #2 Python 변수, 입출력, 배열 박성우 POSTECH 컴퓨터공학과 2015 년 9 월 30 일.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
재료금속공학 과 Materials & Metallurgical Engineering.
2014 하반기 대졸 신입 / 인턴 / 장학생 모집 모집 분야분류세부직무신입인턴장학생관련전공 R&D 설계 전기, 전자, 전파, 반도체, 정보통신, 컴퓨터, 물리 CAE 전기, 전자, 전파, 반도체, 정보통신, 컴퓨터, 물리 소자 반도체,
반도체 산업의 발전 연세대학교 전기전자공학과 이 용 석 교수 전화 : Homepage:
1 8. 국내 이차전지 기술력 8. 국내 이차전지 기술력  이차전지 시장에서 국내 업체들이 선전 - 리튬이온 이차전지 분야 집중 투자로 이차전지 시장에서 세계 1,2 위의 시장점유율, 양산경쟁력 확보 - 리튬이온 이차전지 분야 집중 투자로 이차전지 시장에서 세계 1,2.
과제 제안서 IT대학장 귀하 2011년 3월 일 신청자(대표자) : (인/서명) Project 명 사업본부
신화학산업을 위한 바이오리파이너리의 원천기술 한국과학기술원 (KAIST) 생명화학공학과 교수
컴퓨터와 인터넷.
멀티스케일 에너지 시스템 연구단/서울대학교
Secure Coding 이학성.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
팀 구성 : 조재민 (팀장), 고광춘, 유기민, 김대진, 이재호 발표 일자:
CPU 품 명 PERSONAL COMPUTER 모델번호 HP 6000Pro 제 조 사
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
네트워크 기술을 통한 현재와 미래 소개.
사회적 비용&외부효과 이별희 최미니.
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
최윤정 Java 프로그래밍 클래스 상속 최윤정
전력전자연구실 (정승기, 최주엽, 송승호 교수님)
Samsung Electronics 5 forces
이광근 교수 Programming Research Laboratory ropas.snu.ac.kr
C 언어 강의 Windows, Unix 중심으로.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
정적분석기술을 이용한 sw오류 자동 검증 Airac의 예를통해서
25W급 RF에너지 전송 설계 기술 ETRI Technology Marketing Strategy
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
디지털시스템설계 과목 담당교수 : 원 충 상 한국교통대학교 컴퓨터공학과
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
컴퓨터과학 전공탐색 배상원.
C++프로그래 밍 컴퓨터정보과 / 이기희교수.
소프트웨어 오류 자동 검증 기술.
Chap 6.Assembler 유건우.
I.E.C.C.란 Industrial Engineering Computer Club의 약자로서, 정보화시대에 필수적인 컴퓨터 활용 능력을 향상시키기 위한 아주대학교 산업정보시스템공학부 학생들의 모임입니다. IT산업을 리드하는 폭넓은 지식의 전문가가.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
STOPWATCH 박새별.
HEVC기반 실시간 Full-HD 비디오 플레이어 기술)
제1장 생산공정 개요.
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
C++ 프로그래밍 2010년 봄학기 C++ 세계에 오신 걸 환영합니다!!.
2장. 변수와 타입.
LabVIEW WiznTec 주임 박명대 1.
이광근 프로그램분석 시스템 연구단 ropas.kaist.ac.kr KAIST 전산학과
프로그램 분석 기술의 산업체 이전을 위해서 이광근 서울대 컴퓨터공학부
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
“사람과 컴퓨터” 이 점 숙 컴퓨터와 소프트웨어 “사람과 컴퓨터” 이 점 숙
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
메카트로닉스공학과 메카트로닉스공학과란? 홈페이지 │
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
GENOME PROJECT 학부 :생명분자공학부 학번 : 이름 : 최성림.
지금의 소프트웨어 기술 얼마나 미개한가 이광근 교수 전산학과 프로그램 분석 시스템 연구단.
프로그램분석 어떻게하나 (quick/tiny)
인공 지능 시대에 필요한 인재 행복한 미래를 만드는 기술자 김송호.
12 그리드 시스템.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
운영체제 (Operating Systems)
.Net FrameWork for Web2.0 한석수
Wake On Lan 발표자: 김 홍 기 김홍기 조성오
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
교량 구조물의 개념 설계 및 프로토타입 제작 과정
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
비주얼 교육동화 ‘비주얼메르헨’ 비주얼메르헨 한림대학교 컴퓨터공학과 이진수 컴퓨터공학과 안선근 컴퓨터공학과 임의규
SNU 컴퓨터의 기초 월 14:00-16:00 43동101호 ropas. snu. ac
AUTOSAR 기반 차량 전장용 운영체제 및 MCAL 기술 V2.0
7 생성자 함수.
Presentation transcript:

지금의 소프트웨어 기술 얼마나 미개한가 이광근 교수

이력 ’87 학사 (computer science & statistics) 서울대 ‘93 박사 (computer science) University of Illinois at Urbana-Champaign ‘93-’95: 연구원, Bell Laboratory, USA ’95-’03: 교수, KAIST 전산학과 ’98-’03: 과기부 창의연구단 [ 프로그램분석 시스템 연구단 ] 단장 ’03- 현재 : 교수, 서울대 컴퓨터공학부 전공분야 : – 소프트웨어 정적 분석 (static program analysis) – 소프트웨어 오류 검증 (automatic error detection) – 프로그래밍 시스템 (programming language systems)

컴퓨터하드웨어 크기의 변화 1946 ENIAC 1997 Intel Teraflops 2002 IBM ASCI White flops

다름 분야에서도 마찬가지 에너지 1980 년 원자력발전소 1 기 1899 년 하인 1 명 hp

다른분야도 마찬가지 교통 가마 Boeing Delta-II Rocket jj

컴퓨터소프트웨어 크기 소프트웨어크기도 비슷하게 증가 GNU Emacs, 아래아한글 등 : 170 만줄 (C) 이상 MS Windows: 3000 만줄, 3 만개 이상의 알려진 버그들 ! 삼성휴대폰 : 30 만줄

소프트웨어의 오류 (bug) 소프트웨어에 있는 오류 소프트웨어가 생각한대로 실행되지 않는 것 사람이 소프트웨어를 잘못 만들었기 때문 : 천재지변이 아님

소프트웨어 오류란 ? DNA 오류 살다가 병이든다 SW 오류 SW 로 동작하는 제품이 고장난다 사회적비용 해결책 = 경제적기회 사회적비용 해결책 = 경제적기회

소프트웨어 오류의 문제 소프트웨어를 점점 많이 접한다 : 지구 = 컴퓨터 오류로 인한 불편이 사회적 문제가 된다. 소프트웨어 오류에 대한 책임소재 입법화. 소프트웨어 개발업체의 대응 : 보험을 든다. 소프트웨어 가격의 상승. 모든 제품의 경쟁력 = 무결점 / 고품질 저비용 소프트웨어

소프트웨어 오류는 사회문제 모두가 알게될 것이다 : 크고작은 사고들을 통해서 집단공포 / 공황 새로운 법률 소프트웨어 보험 소프트웨어의 높은 비용

소프트웨어의 오류 어머니가 전해준 슈퍼마켓 심부름 목록 ( 프로그램 ) 1. 우유 1 리터 2 병 2. 우유가 없으면 오렌지주스 1 리터 3 병 3. 우유가 있으면 식빵 500 그람 1 봉 4. 쌀과 자두 우유 1 리터 1 병만 있으면 ? “ 우유 1 리터 2 병이 없으면 ” ? “ 쌀과 자두 ” ? “ 쌀과자두 ” ?

소프트웨어의 오류 알고있는 버그 : Y2K 알지못하는 버그 : 핸드폰, PDA, 자동차, Ariane 5.01(1996), Mars polar lander(1999), 5ESS

오류 잡는 기술 : 미개한 현재 전통적인 주먹구구식 방법 : 테스트, 소프트웨어 읽기 성능 ETRI: 2 달 걸려서 1 글자 버그를 찾다 (2000) ATT: 전화시스템 프로그래밍의 생산성 = 10 줄 / 달 (1996)

오류 잡는 기술 : 다른분야 전자동 기술 구충제 : pill 살충제 : spray 예방주사 : shot

소프트웨어 오류 사람이 손으로 / 손쉽게 잡을 수 없다 - 엄청나게 커지고 복잡해 진 소프트웨어 - 새로운 컴퓨터 환경 : 지구 = 컴퓨터 전지구적 광속의 넷트웍을 타고 불특정 다수의 코드가 내게로 온다 ( 핸드폰 게임 / 응용 ) 문제 : 오류없는 소프트웨어인지 자동으로 확인하는 기술이 필요

컴퓨터 (computer science) 연구의 한 역사 “ 오류가 없는지 확인해 주는 프로그램을 만들어보자 ” 또는 “ 오류를 자동으로 찾아주는 프로그램을 만들어보자 ” 의 역사

오류 잡는 기술 : 1 세대 문법 검증기 : lexical analyzer & parser 1970 년대에 완성된 기술 오류 = 소프트웨어의 생김새가 틀린것 1. 우유 1 리터 2 병 2. 우유가 없으면 오렌지ㅈㅅ 1 리터 3 병 3. 있으면 빵식 우유가 500 그람 1 봉 4. 쌀과 자두

오류 잡는 기술 : 2 세대 오류 = 소프트웨어가 생긴것은 멀쩡한데 잘못된 값이 잘못된 계산과정에 흘러드는 경우 ( 타입이 맞지 않는 경우 ) 1. 우유를 담은 얼음을 가스불위에 올려놓고 데운다 2. 식빵을 유리접시에 담고 방아로 빻는다 3.2 의 접시에 1 의 우유를 튀긴다 타입검증 (type checking) 기 : 1990 년대에 완성 30 년간 프로그래밍언어 분야의 연구 성과

오류 잡는 프로그램 : 3 세대 오류 = 생긴것도 멀쩡하고 타입도 맞지만 실행결과가 바라는 바가 아닌것 실행중에 가져야 할 정교한 조건을 만족시킬 수 없는 경우 1. 우유를 담은 스텐냄비를 가스불위에 올려놓고 데운다 2. 식빵을 스텐접시에 담고 방아로 빻는다 가스불 = 포항제철용광로 방아 = 현대중공업 프레스 프로그램분석 (static analysis): 2010 년정도에나 실용화

기억해 주세요 소프트웨어는 오류가 없어야 합니다 소프트웨어는 끊임없이 크고 복잡해 집니 다 소프트웨어에 오류가 없는지를 자동으로 찾아주는 기술이 필요합니다 이 기술의 현재수준은 이제 겨우 2 세대입니 다 이 기술을 최종적으로 달성하기 위해서는 수학 / 논리학 / 컴퓨터과학 / 컴퓨터공학의 긴밀하고 깊이있는 교류와 공부가 필요합니 다.

소프트웨어 오류 검증 기술 우리 기술수준은 ? 이광근 교수

아이락 Airac 소프트웨어 오류 자동 검출기 개발 미국 / 프랑스 이어 세계 3 번째 개가 과기부 기자간담회

Parsing and transformation done: 25 ast nodes Option: the unrolling depth 3 the unrolling bound 0 Analysis begins Fixpoint iterations with widening Fixpoint iterations with narrowing Result: array index out of bound at (file: a.c, line: 13) Overflow (array index: [24, 24], array size: [10, 10]) 아이락 = 소프트웨어 MRI

아이락 Airac static analyzer for automatic verification of array index ranges in C programs 소프트웨어의 오류 ( 메모리접근오류 ) 자동 검출기 무결점 소프트웨어의 저렴한 개발을 위한 기반기술 선진국에서도 2003 년 이후에야 실용화되고있는 기술 소프트웨어를 테스트하지 않고 자동으로 모든 오류를 찾아줌 : 저비용 무결점 달성 기술. 미국과 프랑스에 이어 세계 3 번째 년 스탠포드대 학의 도슨 앵글러 교수가 상용화한 검증기 성능을 능가.

아이락기술의 사회경제적 의의 2002 년 sw 오류때문에 미국이 지불한 비용 : 595 억불 아이락 : 원천기술 확보 => 오류 비용을 줄 이려는 투자를 흡수하는 발판 아이락 : 상용화 => 최소 100 억 달러 시장에 서 독자기술로 경쟁 아이락 : 100% 독자기술

hardtoswat.c (homemade sample)

아이락 Airac 의 제약점 C 프로그램들만 분석할 수 있슴 ( 인체만 분석할 수 있는 MRI) 메모리 접근 오류만 찾아냄 ( 암세포만 찾아내는 MRI) 다양한 오류들에 대한 분석기들 ( 아이락 가 족 ) 이 개발되야 함 ( 다양한 병들의 증상을 찾아내는 MRI)

감사합니다 ropas.snu.ac.kr