튜토리얼

김동선

경북대학교

프로그램 자동 수정: 기초와 원리, 그리고 패턴 추출

   소프트웨어는 필연적으로 다양한 형태의 오류를 내재하고 있다. 오류는 대상 소프트웨어의 크기, 개발단계, 복잡도 등에 따라서 조금씩 다른 특성을 가지지만, 결과적으로 개발 비용을 증가시키고, 소프트웨어의 신뢰성을 낮추는 등 많은 악영향을 미치게 된다. 자동화된 오류 위치 식별 연구, 오류 우선 순위 결정 자동화 등, 디버깅을 자동화하기 위한 노력 꾸준히 이어져 왔다. 프로그램 (오류) 자동수정(Automated Program Repair; APR)은 디버깅 자동화의 최종 단계이지만, 다른 기술에 비해서 비교적 최근에 본격적인 연구가 시작되었다. 본 튜토리얼에서는 프로그램 자동 수정이 발전해온 역사와 주요 기술들을 설명하고, 그것들이 작동하는 원리에 대해서 살펴본다. 특히, 오류 수정 확률이 높은 패턴 기반의 프로그램 자동 수정 방법에 대해서 자세히 살펴본다. 그리고, 간단한 프로그램을 이용해서 프로그램 자동 수정이 이루어지는 방법을 직접 실습한다.

- 현 경북대학교 컴퓨터학부 조교수
- 룩셈부르크대학교 SnT 책임연구원
- 홍콩과학기술대학교 박사후 연구원
- 서강대학교 학사/석사/박사

연구분야: Automated Program Debugging, Program Repair, Software Testing, Fuzzing.

박창규

삼성전자

Challenges on System IP Design Automation Software

  SOC(System on a Chip)은 AP를 중심으로 현대 산업에서 휴대폰, 차량, IoT, 뉴럴프로세싱에 이르기까지 범위를 확장해나가는 대표적인 시스템 반도체 제품군입니다. 지난 수년간 소프트웨어 개발자들의 각종 산업 도메인으로의 진출이 매우 활발해졌습니다. 본 튜토리얼에서는 우리 소프트웨어 개발자들이 반도체 현장에서 겪을 수 있는 시행착오를 제가 경험한 사례를 바탕으로 소개드립니다. 특히, SoC개발 과정내 설계자동화의 주요사례를 바탕으로 구체적인 도메인 엔지니어와의 협업사례를 소개합니다. 또한 본 튜토리얼에서 소개된 사례를 바탕으로 반도체 도메인에 대한 이해를 조금이나마 확장 하실 수 있는 기회를 제공합니다.

- 삼성전자 반도체 부문 시스템LSI
- 삼성전자 반도체 부문 소프트웨어연구소
- 아주대학교 전자공학부 박사
- 아주대학교 전자공학부 학사

연구분야: IoT, SOA, Emotion Recognition, Healthcare, Domain Specific Automation S/W, Web based Visualization

이승은

와이즈스톤

신뢰성 있는 인공지능 품질평가방안 및 사례

  인공지능은 이미 사람이 해결하던 여러 작업을 스스로 판단하고 수행하는 다양한 분야에 활용되고 있습니다. 하지만 모든 제품 및 서비스의 완성도는 품질에 따라 결정되듯이 인공지능 제품도 예외는 아닙니다. 다양한 분야에 활용되기 때문에 그에 따른 품질이 중요합니다. 본 튜토리얼에서는 인공지능 제품 품질을 어떻게 평가할 수 있는지, 또 그에 따른 사례에 대해서 말씀드리고자 합니다.

- 에이아이플러스인증 시험기관 실무자
- KOLAS 공인시험기관 공인시험원
- 동국대학교 산업시스템공학 학사

연구분야: 인공지능, 소프트웨어 품질 평가, 데이터 품질 평가

이우석

한양대학교

프로그램 합성 소개

  프로그램 합성은 사용자로부터 원하는 프로그램에 대한 조건을 입력받아 자동으로 바람직한 프로그램을 생성하는 기술이다. 최근들어 기술수준이 눈에띄게 발전하고 있으며 일반인을 위한 자동 프로그래밍 뿐 아니라 프로그램 검증, 최적화, 하드웨어 및 소프트웨어 보안, 코딩 교육 등 다양한 응용에 사용되고 있다. 본 튜토리얼에서는 프로그램 합성 알고리즘들을 개괄적으로 소개하고, 용도에 맞게 사용할 수 있는 프로그램 합성 도구들과, 필요에 맞는 합성 도구를 만들 수 있는 프레임워크를 소개한다.

- 2018 ~ 현재 : 한양대학교 ERICA 소프트웨어학부 조교수
- 2017 ~ 2018 : University of Pennsylvania 박사 후 연구원
- 2016 ~ 2017 : Georgia Tech 박사 후 연구원
- 2009 ~ 2016 : 서울대학교 컴퓨터공학박사
- 2005 ~ 2009 : 서울대학교 컴퓨터공학학사

연구분야: 프로그래밍 언어

황성재

성균관대학교

Towards Secure Interoperation in Android

  안드로이드 플랫폼은 서로 다른 모듈간의 연동을 통해 사용자에게 다양한 서비스를 제공한다. 이러한 다양한 모듈과의 연동은 애플리케이션 기능 확장이라는 강력한 기능을 제공함과 동시에, 신뢰할 수 없는 외부 모듈로 인한 보안 취약점을 드러내기도 한다. 본 세미나에서는 안드로이드 플랫폼 상의 모듈간 연동에서 발생할 수 있는 보안 취약점을 소개한다. 안드로이드 앱 사이의 연동, 앱과 시스템 유틸리티 사이의 연동, 앱을 개발하는 서로 다른 프로그래밍 언어 사이의 연동에서 발생할 수 있는 보안 문제를 소개하고, 이러한 보안 문제를 해결하는 정적분석 및 자동화 테스팅 프레임워크 연구에 대해 소개한다.

- 2021.09. ~ 현재 : 성균관대학교 소프트웨어학과 조교수
- 2017.02. ~ 2021.08. : LG전자 VS 사업본부, 책임연구원
- 2014.08. ~ 2017.02. : LG전자 MC 사업본부, 선임연구원
- 2011.06. ~ 2012.02. : 한국인터넷진흥원, 주임연구원
- 2018.02. ~ 2021.02. : 한국과학기술원 박사과정 (지도교수: 류석영)
- 2012.03. ~ 2014.02. : 한국과학기술원 석사과정 (지도교수: 김용대)
- 2005.03. ~ 2008.02. : The University of Manchester 학사

연구분야: Software Testing, Software Security, Empirical Study

이재용

한서대학교

소프트웨어 개발에서의 프로그래밍 심리학

  소프트웨어 개발자들은 매우 빈번한 상호작용을 해야 하는 동시에 혼자만의 깊은 내적 정신작용으로 복잡하고 어려운 문제를 해결한다. 프로그래머의 모든 행위는 성격심리, 사회심리, 인지심리, 학습심리로 해석된다. 최근 PPIG의 연구는 개발자의 성격과 SDLC와의 관련성을 밝혀냈으며 미국, 영국, 케나다의 일부 대학들이 성격유형을 고려한 팀 구성을 통하여 프로그래밍을 가르치고 있다. 최근의 연구된 프로그래밍 심리학은 대학에서의 프로그래밍 학습에 유용한 수단이 될 수 있으며 기업에서는 조직, 팀, 개인의 발전을 도모하는 수단으로 활용하여 기업 전체와 개인의 역량을 증대시킬 수 있다. 본 튜토리얼에서는 HCI의 한 분야인 프로그래밍 심리학을 개괄하고 성격검사를 통하여 성격과 각 소프트웨어 개발 주기와의 적합성을 설명한다. 이는 SDLC의 전체 공정을 경험하여야 하는 개발자에게 전체 공정을 효과적으로 탐색하도록 돕는다. 또, 가장 효율적인 SDLC의 경험 순서를 확인함으로써 개발자의 부담을 감소시켜 개발 능력을 고양시킬 수 있다. 이를 통하여 개인의 발전을 넘어서 팀과 기업의 생산성을 높일 수 있다는 점을 확인한다.

- 2000 ~ 현재 : 한서대학교 컴퓨터공학과, 무인항공기학과 드론응용전공 교수
- 1993 ~ 1999 : 수원여자대학 인터넷학과 조교수
- 1991 ~ 1993 : 과학기술연구원 시스템공학연구소 연구원
- 인하대학교 전자계산공학 학사, 석사, 박사
- HYCU 상담심리학 석사

연구분야: 프로그래밍 심리학, A.I. 교육, HCI, 공학심리학, 인간무인이동체상호작용