2017년 2월 15일 수요일

제 72회 SW공학 Technical 세미나 안내(2/23(목))




융합 소프트웨어가 산업에 효율적으로 이용되려면

Q: 융합 소프트웨어가 산업에 더 효율적으로 활용되기 위해 더 필요한 것은 무엇이 있을까요?

소프트웨어가 제품이나 기계에 접목되어 활용하고자 하는 노력은 이미 오래전부터 고민하고 시도가 있었지만 여러가지 이유로 실패했습니다. 과거에는 실패했지만 지금은 성공할 수 있는 요인을 크게 두가지로 볼 수 있습니다. 바로 컴퓨터 처리 속도와 네트워크입니다.
과거에는 다양한 정보를 모아 분석하고 다른 것들과 비교할 수 있는 네트워크가 없었습니다. 있다고 하더라도 매우 느려 활용이 어려웠습니다. 자동차를 예를 들면 교통 상황에 대한 정보를 실시간으로 전송 받아야 하는데 네트워크가 없거나 느리면 알 수가 없다는 것입니다. 또 좋은 정보가 아무리 많아도 분석하여 가공하는데 오래 걸린다면 모으는 의미가 없습니다. 실시간으로 빠르게 분석할 수 있는 컴퓨터의 처리 속도가 뒷받침 되어야 하는 것이죠.
지금은 이러한 면에서 융합 소프트웨어가 아주 효율적으로 움직일 수 있는 환경이 구축되어 있다고 봐야 합니다. 특히 정보 수집이나 정보 전송에 제한이 없는 무선 네트워크 환경은 최적의 조건이라고 할 수 있습니다.
이러한 점을 기반으로 4차 산업혁명이 적용된 인더스트리 4.0에서 융합 소프트웨어가 최고의 성능을 내기 위한 구성 방안이 필요한데 요새 자주 들리는 개념 중의 하나인 ICBM(IoT, Cloud, Big Data, Mobile)이 대안이 될 수 있습니다. 저희는 모바일 M을 머신 러닝 M으로 바꿔서 해석하고 있는데요.

<그림5> ICBM의 활용
출처: ZDNet Korea

각 산업에서는 IoT 센서를 통해 데이터를 수집하고 수집된 데이터는 빅데이터로 만들어 저장하고 머신 러닝으로 분석하여 스스로 성장해 나가는 체계를 가질 수 있습니다. 이러한 체계를 클라우드가 묶어주게 되고요. 이렇게 되면 스스로 판단하여 일을 하는 인더스트리 4.0에 딱 맞는 구성 방안이 만들어지게 됩니다. 물론 이러한 것을 움직이는데 융합 소프트웨어가 반드시 필요하겠죠.


디자인 씽킹 실무 적용 - 디자인 사고의 유형

  • 디자인 씽킹 이란?


  • 디자인 사고의 유형


  •  디자인 사고의 유형





2017년 2월 14일 화요일

Quality Attribute Refinement and Allocation

참석자
Suzanne Miller - Principal researcher at the SEI (the Carnegie Mellon University Software Engineering Institute)
Dr. Neil Ernst - A fellow researcher who works in the SEI’s Architectural Practices Initiative
요약
우리는 소프트웨어의 품질 속성에 대해 이야기한다. 이러한 것을 비 기능 요구 사항이라고 한다. 더 일반적인 것일 수도 있는데 품질 속성은 반응해야 하는 속도와 같은 것을 지정한다. 그리고 품질 속성은 시스템에 제약 조건을 추가한다.
성능 제약 조건은 보안 제약 조건, 사용 편의성 제약 조건 내에서 수행해야 하는데 이러한 것들이 모두 품질 속성이 되는 것이다. 품질 속성은 기능적 측면보다 관심을 덜 받는 경향이 있어 경영진은 더 관심이 있다.
아키텍처 측면에서 볼 때 품질 속성은 아키텍처 결정에 가장 큰 영향을 미칠 때가 있다. 예를 들어 로그인 화면을 구현하기 위해 여러 프레임워크 중에서 선택할 수 있지만 성능을 고려하면 선택의 폭을 좁힐 수 있다. (그것은 트레이드 오프 부분이다)
하지만 품질 속성은 잊혀지는 경향이 있다. 어떤 성능을 원하거나 보안을 원하는 것과는 다르다. 이 것은 절충점을 찾아야 한다. 이러한 절충점은 실제로 결정하기 어려운 경우가 많다.
암호를 보면, 모든 속성을 가진 14 자 암호를 사용해야 할 때 사용자로서 영숫자인 것을 기억하기가 쉽지 않다. 새 은행 사이트를 사용할 때 6자에서 8자로 제한되고 영숫자만 가능하다면 이것은 쉽게 해킹 당할 수 있다. 보안 측면을 고려하지 않았고 균형도 못 맞췄다.


소프트웨어가 산업의 변화에 미치는 영향

Q: 소프트웨어 때문에 산업이 변하는 군요. 예를 하나 들어서 말씀해주시죠.

현실화에 가장 근접한 자동차 산업을 예로 볼까요. 미래형 자동차에서 가장 많이 주목받는 것이 자율주행 입니다. 자율주행에서 필요한 것이 무엇일까요? 차선을 보는 눈, 갈림길을 보면서 길을 찾는 지능, 자동차를 움직이는 제어 능력, 돌발 상황에 대처하는 빠른 판단력 등일 겁니다(그림4).

<그림4> 미래형 자동차에 필요한 기술
출처: 한양대학교

그림4에 보이는 것처럼 미래형 자동차는 다양한 IT기술을 가지고 있습니다. 자동차 주변을 인식하는 동작 인식이나 영상 인식 알고리즘, 갈림길을 정확히 인지하면서 길을 찾는 판단 알고리즘, 적시 적소에서 기계를 제어할 수 있는 제어 알고리즘, 돌발 대처를 위한 판단 알고리즘 등 다양한 알고리즘을 기반으로 스스로 판단할 수 있는 소프트웨어가 반드시 필요합니다.


디자인 사고의 유형과 프로세스

  • 대분류

  • 중분류





2017년 2월 13일 월요일

산업 발전과 소프트웨어의 역할

Q: 소프트웨어 산업이 없어진다는 말씀은 조금 충격적인데요? 어떠한 이유인지 자세한 설명을 부탁합니다.

없어지는 것이 아니라 독립적으로 분리된 산업에서 모든 산업에서 사용되는 것으로 더 커지는 것으로 봐야지요. 소프트웨어 개발자가 소프트웨어 산업에서만 필요했는데 이제는 모든 산업에서 필요하다는 의미입니다. 이 점은 매우 중요한데요. 모든 산업이 대부분 하드웨어 중심으로 변화를 해왔지만 이제는 하드웨어가 아닌 소프트웨어 중심으로 변화한다는 것입니다.

Q: 산업 발전에 소프트웨어가 중추적인 역할을 할 것이라는 이유는 무엇인가요?

최근의 산업 트렌드는 IT를 중심으로 만들어지고 있습니다. 공공이나 금융 산업은 물론이고 제조와 서비스 산업까지 모두 IT를 빼고는 얘기할 수 없을 정도가 되었습니다. IT가 적용된 것들을 움직이게 하기 위해서는 운영체제나 펌웨어를 포함한 소프트웨어가 절대적으로 필요합니다. 그리고 소프트웨어 중심으로 변화하는 것은 산업의 몇가지 변화를 이끌어 냅니다.
첫째는 하드웨어 중심에서 사용자 중심으로 변합니다. 지금까지의 산업 변화는 하드웨어와 연관된 기술이 발전되어 변화했지만 이제는 하드웨어는 그대로라고 해도 사용자가 바뀌면 산업이 변할 수 있다는 것입니다.
둘째는 제품 중심에서 서비스 중심으로 변합니다. 우리는 제품을 구입해서 정해진 사용법에 맞춰 사용을 하고 일정 기간이 지나면 폐기하고 새로운 것을 사게 됩니다. 하지만 이제는 내가 원하는 서비스에 맞춰 제품이 만들어지고 내가 원하는 사용법에 맞춰 사용할 수 있습니다.
셋째는 독립적 구성에서 연결적 구성 중심으로 변합니다. 우리는 제품을 구입하면 단독으로 사용을 하게 됩니다. 중간에 고장이 나면 서비스 사원이 방문해 수리를 해야했고 내가 가진 제품이 다른 사람의 제품과 비교를 할 수도 없었습니다. 이제는 네트워크로 실시간 연결이 되어 있기 때문에 원하는 정보를 제품에 바로 반영을 할 수도 있고 내가 가진 정보를 쉽게 다른 곳으로 전송을 할 수도 있고, 이러한 정보 공유는 다양한 다른 서비스나 제품을 만들어 낼 수 있습니다.

<그림3> 소프트웨어로 인한 산업의 변화

이러한 변화를 만들어내기 위해서 소프트웨어가 반드시 필요합니다. 소프트웨어는 각 산업에서 만들어내는 제품이나 서비스가 원활히 움직이도록 체계적인 기능을 제공하게 됩니다. 여기에 4차 산업혁명의 핵심인 자율적 기계 개념이 추가된다면 더 소프트웨어가 필요하게 되겠지요.