2015년 9월 30일 수요일

고신뢰 융합SW를 위한 필수 SW공학기술 연구용역 보고서 소개

안녕하세요.
SW공학센터의 조지만입니다.

 고신뢰 융합SW를 위한 필수 SW공학기술 연구용역 보고서를 소개하기 위하여 블로그에 글을 씁니다.

 이 보고서는 2012년도 경기대학교 권기현 교수님과 작업한 것으로 고신뢰 융합SW를 개발하기 위하여 필요한 SW공학기술이 무엇인지에 대하여 연구한 보고서입니다. 이 보고서는 고신뢰 융합 SW 개발을 위한 필수 SW공학기술을 조사하여 산업현장에서 쉽게 참조할 수 있는 가이드 개발을 목적으로 진행하였습니다.

이에 기능 안전성에 관련된
  • IEC 61508(일반 산업 분야 국제 표준)
  • ISO 26262(자동차 산업 분야 국제 표준)
  • DO-178B(항공 분야 국제 표준)
  • IEC 60880-2(원자력 분야 국제 표준) 
등에 표준의 내용을 간략하게 확인 할 수 있습니다. 그리고 고신뢰 융합SW를 위한 국내외 접근 전략 및 주요 도구를 보실 수 있습니다.

 특히 이 보고서는 각각 영역별 기능 안전성에 특화된 SW공학기술을 기술하는 것보다는 고신뢰 융합SW이면 가져야 할 SW공학기술이 무엇인지를 파악하는데 중점을 두고 있습니다. 아래의 그림을 보면 각각 영역별 프로세스 입장의 기능안전에 관련된 표준들과 이를 공통으로 정리한 "공통 개발 프로세스"를 확인하실 수 있습니다.


 또한 "공통 개발 프로세스"를 기준하여 필요한 SW공학기술을 정리하였습니다. (아쉽게도 기술에 대한 자세한 정리는 부족합니다. 그래도 고신뢰 융합SW를 개발하는데 있어 어떤 기술이 있는지를 한 눈에 알 수 있는 자료입니다.)



 마지막으로 이렇게 정리된 SW공학기술 중에 중요한 기술에 대해서는 간략하게 설명을 정리하고 있습니다. 정리된 공학 기술은 다음과 같습니다.

  • 결함 트리 분석 (Fault Tree Analysis)
  • 분할 아키텍처 (Partitioning Architecture)
  • 다중 버전 프로그래밍 (N-Version Programming)
  • 방어적 프로그램밍 (Defensive Programming)
  • 구조적 테스팅 (Structural Testing)
  • 정적 분석 (Static Analysis)
  • 모델 검증 (Model Checking)
(사실 이 부분에 더 많이 정리 되었으면 좋았을 것이라고 생각하고 있습니다. 그러나 늦은 밤까지 열심히 정리해 주신 연구원님들께는 다시 한번 더 감사합니다.)

 이 보고서가 2012년 보고서라 현재 고신뢰 융합 SW를 위한 SW공학 기술에 대한 최신 버전은 안입니다. 그러나 영역별 기능 안전성 표준에 대하여 간단히 파악할 수 있으면 이에 따른 공통된 SW공학기술을 이해하는데 있어 커다란 도움을 줄 수 있는 주요한 가이드임은 틀림 없습니다. 이 보고서가 SW 기능 안전성 관련 개발하시는 개발자 분들에게 많은 도움이 되길 기원합니다.

보고서 받기->



아...그리고 추가로 관련 자료를 공부하셨으면, 실제 사례를 보고 싶지 않으신가요?
저희 SW공학센터에서는 고신뢰 융합SW에 관련된 컨퍼런스 (SW 안전성 컨퍼런스)를 10월 21일에 합니다. 관심있으신 분들의 많은 참여 부탁 드립니다.

SW안전성 컨퍼런스 안내 보기 ->


[Poll] 소프트웨어 개발 강자는 누구인가?


2015년 9월 26일 토요일

데이터에 생명을 불어넣는 10가지 데이터 시각화 툴

단순한 차트에서부터 복잡한 맵과 정보그래픽(infographic)에 이르기까지   데이터를 시각화를 위해서는 유용한 툴들에 대한 이해가 필요합니다. 여기 소개된 대부분의 툴들은 무료로 이용할 수 있으며, 이미 많은 사람들이 사용하고 있음. 정보의 시각화를 통한 이해도, 유용성 제고를 위해 개인정보에서부터 기업과 정부의 빅데이터에 이르기까지 현재 널리 쓰이고 있는 10가지 데이터 시각화 툴을 소개합니다.

온라인 시각화(Online visualisations)
  • 구글 차트 API(Google Chart API)
  • 라파엘(Raphaël)
  •  D3

쌍방향 GUI 컨트롤
  • 크로스필터(Crossfilter)

맵핑(Mapping)
  • 카르토그래프(Kartograph)
  • 카르토 DB(Carto DB)
프로세싱(Processing)
  • R
  • 웨카(Weka)
  • 게피(Gephi)

SW 프로젝트 위기발생에 따른 기회비용 최소화 관리방안

프로젝트 개발 시 위기관리는 매우 중요한 요소임에 따라, 위기상황발생 시 기회비용을 최소화하는 측면에서 위기사항을 극복할 수 있을 것이라는 희망 하에 적극적으로 대응할 것인가, 그저 그 위기사항이 지나가기를 기다릴 것인지, 아니면 최선의 결과를 생각하며 기회비용을 고려하여 비용대비 효과를 최대화할 수 있는 방안은 무엇인지를 파악하고 행동할 것인지에 대한 대략적인 기준을 제시합니다.

  • 기회비용이란?
  • 모든 것을 중단해야할 순간이 찾아옴
  • 완료되지 않은 일을 살펴봄
  • 비용 절감을 위해 조정하기

공공분야에서의 빅데이터 활용을 위한 지식자산(Knowledge Base) 구축

데이터는 데이터 그 자체로서가 아니라 데이터로부터 의미 있는 지식을 발견하고 이를 활용할 수 있을 때 그 가치가 입증되며, 그 가치는 개인보다는 다수, 그리고 공공의 이익을 도모할 수 있을 때 빛을 발합니다. 그렇기 때문에 지금이 공공의 자원으로서의 빅데이터의 역할을 다시 한번 주목하고, 그 활용방안에 대해 고민할 시기입니다.

2015년 9월 25일 금요일

자바스크립트(Javascript) UI Part 2 - 재사용 패턴

코드 재사용
코드 재사용은 대부분의 언어에서 필요한 기능입니다 . 비슷한 요구사항에 맞춰서 동일한 기능을 반복적으로 개발하는 것은 중복코드를 증가시켜 결국 낭비로 이어집니다 . UI 개발과정에서도 이런 문제는 존재하며 다른 언어와 마찬가지로 그 해법도 크게 다르지 않습니다 .
UI 개발의 경우는 재사용을 위해서 자바스크립트 코드를 재사용할 수 있고 , CSS Framework(less 나 Sass 등 ) 을 통한 CSS 코드를 재사용하는 방법들도 존재합니다 .
자바스크립트의 경우 객체 지향적으로 모듈화를 통해 개발 할 수 있음에도 불구하고 , Java 와 같이 ‘extend’ 와 같은 명시적인 상속을 위한 기능이 존재하지 않습니다 . 다행히 이런 부분이 최근 ECMAScript 6 에 반영되고 있는 중입니다 .
물론 지금 상속을 구현하기 위해서 아무것도 할 수 없는 것은 아닙니다 . 이미 대부분의 자바스크립트 라이브러리와 이를 기반으로 제작된 많은 UI 콤포넌트들은 ‘prototype’ 이라는 속성을 통해 상속을 구현하고 있으며 , 결과적으로 이것을 활용해 코드 재사용이라는 목적을 달성할 수 있습니다 .
본 문서에서는 자바스크립트의 대표적인 재사용패턴을 설명하며 , 그에 앞서 prototype 이 문서에의 prototype 은 prototype 이라는 자바스크립트 코어에 해당하는 핵심 개념을 설명합니다 .
  • 왜 Prototype 인가 ?
  • Prototype 을 통한 상속
  • Object.create() 를 활용한 Prototypal inheritance
데이터는 데이터 그 자체로서가 아니라 데이터로부터 의미 있는 지식을 발견하고 이를 활용할 수 있을 때 그 가치가 입증되며, 그 가치는 개인보다는 다수, 그리고 공공의 이익을 도모할 수 있을 때 빛을 발합니다. 그렇기 때문에 지금이 공공의 자원으로서의 빅데이터의 역할을 다시 한번 주목하고, 그 활용방안에 대해 고민할 시기입니다.

  • 공공분야에서의 빅데이터 중요성
  • 공공 빅데이터 활용을 위한 지식자산 구축
  • 공공 빅데이터를 활용한 대국민 서비스 사례