2016년 12월 28일 수요일

강의영상: 4차 산업혁명과 SE 중요성 - 고건 석좌교수

22nd SW Quality Insight 컨퍼런스 특별강연 강의영상 

주제 : 4차 산업혁명과 SE 중요성 - 고건 석좌교수




4차산업혁명 시대의 ‘e-Commerce Platform SW’ 와 Paradigm Shift









4차 산업혁명을 위한 인공지능의 핵심기술과 고품질 소프트웨어



인공지능의정의

•인간 지능의 본질을 규명하고 이를 인공적으로 재현하려는 기술/학문
•强한인공지능(strong AI)
  –인간의 지능을 구현하는기술/학문
  –사람처럼 생각하는 기계를 만드는기술
•창의/사고/감정
•弱한인공지능(weak AI)
  –인간의 지능을 모방하여 특정한 문제를 푸는기술/학문
  –주어진 문제를 사람처럼 풀기위한 기술
•편견없이 지치지않고 대용량자료 처리

인공지능구현의어려움과접근방법

•인공지능
  –“What”은알겠으나, “How”는?
•지능 기술의발달사: 컴퓨터 발명이후 60여년간 부단히 계속되는 신기술의 출현과퇴조
  –논리학, 최적화이론, 확률적모형, 탐색이론, 규칙기반시스템, 전문가시스템, 퍼지논리, 신경회로망, 유전자알고리즘, 카오스이론, ..….
•지능시스템 개발방법론
  –지식기반 방법론: 저장된 지식을 기반으로 의사결정 ->IBM 왓슨의인공지능
  –데이터기반 방법론: 데이터로부터 추출된 지식으로 의사결정 -> 구글알파고의인공지능

인공지능구현핵심기술: 탐색



인공지능구현핵심기술: 규칙기반시스템



인공지능기술의현황과해결방안

•현황
  –다양한 기술이 다양한 분야에서 독자적으로 개발되고 있음
  –명칭의 혼란에 따른 과대평가나 기술의오용/남용이 심각함
•해결책1: 통합형 지능기술
  –전통적인 인공지능방법이 추구하는 상위수준의 지능과 다양한 방법을 통한 저수준의지능 사이에 협력이필요
  –연결주의(connectionist)와 기호주의(전통적인인공지능)
  –상향식(인공생명)과 하향식(전통적인인공지능)
  –반응형(행동기반)과 숙고형(전통적인인공지능)
•해결책2: 문제해결을 위한 AI 아키텍쳐구축
  –기호수준의 표현과 연결주의 표현사이의 협력필요
  –사회성, 감정, 감성등에 대한 고려필요



2016년 12월 27일 화요일

Predicting Quality Assurance with Software Metrics and Security Methods


참석자
Will Hayes - Principal engineer in the SEI’s Software Solutions Division
(the Carnegie Mellon University Software Engineering Institute)
Carol Woody - Ph.D., Technical manager of CERT Cybersecurity Engineering Group
요약
오늘 우리가 이야기할 것은 소프트웨어 매트릭스와 보안 방법을 써서 품질 보증을 예측하는 것이다.
우리는 핵심 분야에 대해 개발 방법과 관행을 가지고 개발해 왔습니다. 보안 유지 요구 사항, 소프트웨어 위험 관리 및 공급망 위험 관리는 이러한 것의 세 가지 주요 영역이다. 많은 질적인 조치를 취하고 있지만 실제로 이 영역을 심각하게 관리하기 시작하는 정량적 메커니즘을 확립하는 것은 매우 어렵다.
보안 취약점과 품질 결함 사이의 연결을 알아낼 수 있었다. 주로 다양한 유형의 소프트웨어 전반에 걸쳐 결함 밀도를 추적하는 관점에서 “Capers Jones”가 많은 측정 기준을 가지고 있다.
결점의 1에서 5 %가 실제로 취약성이거나 취약성으로 간주되어야 한다. 매우 제한된 데이터 밖에 없는데 보안 데이터를 공유하려는 사람은 거의 없다. 이러한 데이터는 주로 운영 체제와 연결되어 있다. 이 데이터를 얻기 위해 실제로 상세한 자료를 가지고있는 약 100 개의 프로젝트 정도의 프로세스를 연구했다. 그 중에서 훌륭한 보안 및 안전 결과를 100 개 프로젝트 중 5 개 프로젝트를 식별 할 수 있었다.
중요한 보안 분석과 관행이 라이프 사이클 전반에 걸쳐 연계되어 있음을 확인했고, 초기에 취약점을 포착한 다음 시스템이 설치되기 훨씬 전에 오랫동안 해결하도록 했더니 매우 좋은 운영 결과를 얻을 수 있었다.
다소 적은 데이터 세트라도 최소한의 보안 분석 방법과 관행을 사용하여 높은 상관 관계를 증명할 수 있었고 라이프 사이클 전반에 걸친 취약성 해결이 가능했다.

핀테크 시장에 대한 소프트웨어 개발 업체의 대비 방향


미국에서는 20여년 전에 인터넷 전문은행이 생겼지만 우리나라는 금년말에 케이뱅크가 본인가를 받았고 한국카카오뱅크가 본인가를 신청한다. 은행권은 돈을 다루는 서비스이기 때문에 가장 보수적인 산업으로 잘 알려져 있어 다른 산업과 달리 ICT 기술을 접목시키는데 많은 시간과 어려움이 있었다. 최근에는 핀테크(Fintech; Finance Technology)라는 기술로 새로운 금융 서비스 시대를 열고 있는데, 이번 회에서는 핀테크 시장에 대비하여 소프트웨어 개발 업체는 어떤 준비를 해야 하는지 금융권 프로젝트 PM으로 있는 로만소프트 이영환 대표와 ㈜웹케시 박해윤 박사와 함께 얘기를 들어본다.

Q: 안녕하세요. 핀테크에 대해 많은 말들이 오가고 있지만 정작 핀테크에 대한 의미나 범위는 한가지로 정리되는 것은 아닌 것 같습니다. 핀테크에 대한 정의를 먼저 해주시죠.

저희도 다양한 자리에서 핀테크에 대한 얘기를 하다 보면, 서로 다른 생각을 가지고 얘기하는 경우가 종종 있습니다. 아마도 핀테크의 영역이 그만큼 넓기 때문이지 않을까 싶은데, 아마도 ICT 기술을 잘 모르는 금융권에 너무나 많은 기술들이 한꺼번에 접목되면서 생각할 수 있는 의미나 범위가 더 많은 것이 아닐까 싶네요.
그래도, 핀테크에 대해 한마디로 정리를 하자면, 기존에 있던 금융 서비스 방법을 ICT 기술로 바꾼다는 것이겠죠. 그림1에서 보는 것처럼, 금융권에서 서비스하는 지금/결제, 송금, 대출, 자산관리 등을 ICT를 통해 서비스 하는 것입니다. 최근에 많이 확산되고 있는 모바일 페이먼트의 경우도 신용카드 서비스를 ICT인 스마트폰으로 할 수 있는 것처럼 말이죠.

<그림1> 핀테크의 사업 영역
출처: IPnomics

Q: 인터넷 뱅킹이나 모바일 뱅킹 같은 서비스는 이전에도 많이 해왔던 것들인데 핀테크라는 이름으로 대신하는 것인가요?

그렇지 않습니다. 앞에서 말씀드린 것은 단순히 서비스 측면만 말씀드린 것입니다. 은행이나 신용카드 회사 등을 통해 받던 서비스를 ICT로 활용하는 방법이 바뀌는 것이고요. 서비스 방법을 바꾸기 위해서 필요한 많은 ICT 기술이 있는 것입니다.
그림2는 S사의 페이먼트 관련 아키텍처를 나타내고 있습니다. 페이먼트 서비스 하나를 추가하면 그림과 같이 수많은 ICT 기술이 들어가야 합니다. 페이먼트 서비스를 위해 SMS도 자동 발송되도록 해야 하고 페이먼트 정책은 어떻게 만들고 처리해야 하는지도 고민해서 관리해야 하고, 외부 업체와 연계는 어떻게 되어야 하는지도 생각해야 하죠. 기존 SI 시스템 구축하는 것과 별반 다르지 않습니다.

<그림2> S사의 역할 기반 Multi-Tenant Architecture


모바일 SW 개발 사례 연구 - 품질/테스트


최근 몇 년 사이에 스마트폰의 급격한 증가와 함께 다양한 모바일 소프트웨어가 늘어나고 있고, 상당수의 컴퓨팅 작업들도 스마트폰에서 실현되고 있다. 이러한 이유로 모바일 소프트웨어 사용자의 요구사항이 늘어나고 있으며 요구사항을 반영하기 위한 설계, 개발 기법이나 품질, 테스트 기법들의 필요성도 함께 요구되고 있다. 이번 회에서는 모바일 소프트웨어의 품질과 테스트 방법에 대해 살펴보도록 한다. 품질 확보를 위해 고려해야 하는 테스트 방법을 잘 이해하여 효율적인 모바일 소프트웨어 개발이 되기를 기대한다.

사례 연구 전 확인 사항

모바일 소프트웨어의 개발 환경과 품질 체크 포인트


매우 빠른 트렌드 변화를 보이는 모바일 소프트웨어가 성공하기 위해서는 기존의 소프트웨어 개발 방식이 아닌 모바일만의 개발 환경의 특징을 고려하는 것이 중요하다. 거의 유사한 OS와 해상도에서 구동되는 PC 기반 소프트웨어와는 달리 모바일 소프트웨어는 다양한 플랫폼과 해상도에 맞춰 개발해야 하기 때문에 개발자의 많은 노력과 시간이 요구된다.
모바일 소프트웨어는 마우스와 키보드 없이 사용자와 인터페이스를 해야 하기 때문에 UI/UX 관점의 검토도 필요하지만 모바일 소프트웨어에서 가장 주목해야 할 것은 비즈니스 환경이다. 하루에도 수많은 모바일 소프트웨어가 등록되기 때문에 짧은 시간 안에 개발해야 하고, 품질 측정과 테스트도 빠른 방법이어야 한다. 그림1은 앞에서 설명한 내용을 바탕으로 모바일 소프트웨어의 특징을 7가지로 나타내었다.


<그림1> 모바일 소프트웨어의 특징
출처: Design of Quality Evaluation Model for Mobile Application


모바일 소프트웨어의 개발 시간을 줄이기 위해서는 개발이 필요한 부분만 신경 쓸 수 있도록 개발 환경을 표준화 하는 것이 좋지만 대부분의 개발자들은 각자의 방식으로 개발 환경을 구축하여 소스 코드가 잘못 관리되거나 약간의 개발 환경 변화에도 이전에는 발생하지 않던 오류가 나타나기도 한다. 표준화 된 개발 환경은 개발 효율성을 높이기 위해 필요하다는 것을 잊으면 안된다.


2016년 12월 26일 월요일

IBM의 Rational Test Workbench

출처: IBM Knowledge Center
IBM의 모바일 테스트 기능은 Android나 iOS 디바이스에서 네이티브, 웹, 그리고 하이브리드 소프트웨어의 기능과 성능의 테스트 계획, 실행, 그리고 분석을 자동화하는 것을 기본으로 한다.
IBM 모바일 테스트의 목표는 모바일 소프트웨어가 설계와 개발에 필요한 요구사항이 충족되었는지 확인하는 것이다. 이 목표를 충족할 수 있도록 Rational Test Workbench 는 테스트 프로세스에서 그림2와 같은 테스트 스테이지를 구현한다.


<그림2> IBM 테스트 프로세스의 스테이지


<참고사이트>
iOS 시뮬레이터에 모바일 테스트 클라이언트 설치
http://www.ibm.com/support/knowledgecenter/ko/SSBLQQ_8.7.0/com.ibm.rational.test.lt.moeb.do
c/topics/t_install_ios_client.html

(1) 테스트 워크벤치
윈도우(Windows)나 리눅스(Linux), 애플의 맥(Mac) 등에 설치할 수 있고, 특히 기본 컴포넌트는 모바일 앱 테스트를 지원하도록 설계되어 있다. 테스트 네비게이터에는 테스트를 생성하는데 필요한 모바일 수신 레코딩, 테스트 프로젝트, 테스트 및 모바일 디바이스가 나열된다(그림3).


<그림3> 테스트 네비게이터