지금의 소프트웨어 기술 얼마나 미개한가 이광근 교수 전산학과 프로그램 분석 시스템 연구단.

Slides:



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

지금의 소프트웨어 기술 얼마나 미개한가 이광근 교수. 이력 ’87 학사 (computer science & statistics) 서울대 ‘93 박사 (computer science) University of Illinois at Urbana-Champaign ‘93-’95:
제철고 프로그래밍언어 2015 가을학기 연습 #1 Python 연산식 이다훈 POSTECH 컴퓨터공학과 2015 년 9 월 23 일.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
재료금속공학 과 Materials & Metallurgical Engineering.
과제 제안서 IT대학장 귀하 2011년 3월 일 신청자(대표자) : (인/서명) Project 명 사업본부
문산고등학교 학교에서의 인터넷 이용 수칙 사이버 예절, 건강한 디지털 세상의 시작입니다
컴퓨터와 인터넷.
고양이에 대하여 -고양이란? -고양이의 먹이 -고양이의 종류.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
팀 구성 : 조재민 (팀장), 고광춘, 유기민, 김대진, 이재호 발표 일자:
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
네트워크 기술을 통한 현재와 미래 소개.
<<< 시스템등록정보 “하드웨어-장치관리자” 설정 >>>
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
최윤정 Java 프로그래밍 클래스 상속 최윤정
전력전자연구실 (정승기, 최주엽, 송승호 교수님)
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
이광근 교수 Programming Research Laboratory ropas.snu.ac.kr
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
1. C++ 시작하기.
Error Detection and Correction
컴퓨터과학 전공탐색 배상원.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
C++프로그래 밍 컴퓨터정보과 / 이기희교수.
Computational Thinking
소프트웨어 오류 자동 검증 기술.
Solar Tracking Parasol
Method & library.
Chap 6.Assembler 유건우.
I.E.C.C.란 Industrial Engineering Computer Club의 약자로서, 정보화시대에 필수적인 컴퓨터 활용 능력을 향상시키기 위한 아주대학교 산업정보시스템공학부 학생들의 모임입니다. IT산업을 리드하는 폭넓은 지식의 전문가가.
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
나를 지키고, 침착하게 대처하려면, 반드시 익혀야 하는
Go Lang 리뷰 이동은.
HEVC기반 실시간 Full-HD 비디오 플레이어 기술)
CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터
Mobile braille system for the blind
제1장 Unix란 무엇인가?.
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
Flash Communication Server
2장. 변수와 타입.
6강. 객체지향 프로그램의 시작 객체지향 이전의 프로그래밍 객체지향의 등장 배경과 이해 메소드의 이해
LabVIEW WiznTec 주임 박명대 1.
이광근 프로그램분석 시스템 연구단 ropas.kaist.ac.kr KAIST 전산학과
Power Java 제11장 상속.
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
“사람과 컴퓨터” 이 점 숙 컴퓨터와 소프트웨어 “사람과 컴퓨터” 이 점 숙
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
메카트로닉스공학과 메카트로닉스공학과란? 홈페이지 │
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
인공 지능 시대에 필요한 인재 행복한 미래를 만드는 기술자 김송호.
Coding for Kids.
핵심 교양 신,재생에너지와 자원재활용 화공생명공학과 이관영 교수.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
농구 로봇 따라해 보기.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
.Net FrameWork for Web2.0 한석수
Installation Guide.
Wake On Lan 발표자: 김 홍 기 김홍기 조성오
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
교량 구조물의 개념 설계 및 프로토타입 제작 과정
1. 강의 소개 컴퓨팅적 사고와 문제해결.
SNU 컴퓨터의 기초 월 14:00-16:00 43동101호 ropas. snu. ac
펌웨어(S/W) Upgrade 방법 Samsung Kies3
7 생성자 함수.
Presentation transcript:

지금의 소프트웨어 기술 얼마나 미개한가 이광근 교수 전산학과 프로그램 분석 시스템 연구단

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

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

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

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

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

소프트웨어 버그는 사회문제 모두가 알게될 것이다: 크고작은 사고들을 통해서 (최근의 인터넷 대란) 집단공포/공황 새로운 법률 소프트웨어 보험 소프트웨어의 높은 비용

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

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

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

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

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

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

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

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

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

기억해 주세요 감사합니다. -소프트웨어에는 버그가 없어야 합니다. 소프트웨어는 끊임없이 복잡하고 커집니다. 소프트웨어에 버그가 없는 지를 자동으로 확인해 주는 기술이 필요합니다. -이 기술의 현재수준은 이제 겨우 2세대입니다. -이 기술을 최종적으로 달성하기 위해서는 수학/논리학/전산학의 긴밀하고 깊이있는 교류와 공부가 필요합니다. 감사합니다.