2015년 7월 23일 목요일

SW형상관리 서비스

SW 형상관리 서비스는 국내 중소 SW기업에 대한 SW 형상관리 프로세스 적용을 지원하는 기업 밀착형 컨설팅 지원 서비스입니다.

SW 형상관리 서비스는 SW 형상관리 개념 전파 및 기본 교육을 통한 SW 형상관리에 대한 인식을 제고하고, SW 형상관리 시스템의 활용 및 컨설팅을 통한 SW 품질 및 SW 공학 역량 강화를 지원합니다.

SW 형상관리 현황 파악
신청 기업의 SW 형상관리 수준에 관련하여 인터뷰를 진행하여 서비스 시청 기업의 SW 형상관리 현황을 파악.

SW 형상관리 기본교육
신청기업에 대한 SW 형상관리 개념을 정립하고, 형상관리 프로세스 적용의 필요성에 대한 인식을 제고.

SW 형상관리 시스템 활용
실제적인 SW 형상관리 시스템의 활용을 통한 기업의 형상관리 프로세스 정착.



[SW아키텍처 참조모델] 의료정보 시스템 참조설계모델 2.0

의료 정보시스템의 이해

참조 모델 아키텍처의 정의를 위해 의료 정보 시스템의 중요성, 표준 프레임워크의 필요성, 경제적인 수익 창출 방향성에 대해 고민하고 그 현황을 분석하였습니다.

1)의료정보 시스템의 중요성

  • 의학분야는 접근성의 문제, 자원의 적절하지 못한 분배, 의료사고의 문제, 표준화되지 않은 진료 패턴, 의료비용 증가 등의 문제를 직면하고 있음.
  • Institute of Medicine(IOM)의 의료비용과 품질, 정보과학기술에 대한 보고서에 따르면 건강관리 개혁의 핵심적인 부분은 컴퓨터를 기반으로 한 환자 기록이라고 함.
  • 환자의 의무기록과 처방기록, 검사기록을 전산화하고 이를 통해 의료과오를 줄이고 건강 관리를 향상시킴과 동시에 의료의 품질을 향상할 수 있음.

2) Healthcare SW Framework의 필요성

  • 현재의 의료정보솔루션은 사용자 측면에서 본다면 최신 기술에 대한 무분별한 추종이나 비효율적인 정보시스템 구축, 다양한 의료기 회사와 서비스 회사들의 표준화되지 않은 기술 경쟁으로 비효율 고비용 양상을 보이고 있음.
  • Healthcare SW Framework(이하 HSF)는 표준화된 프레임워크 형태로 의료정보솔루션을 개발함으로써 높은 확장성과 재사용성을 확보하여 구축 기간 및 비용을 절감할 수 있음.
  • 국제 표준을 적용하여 차후 국내뿐 아니라 선진국 및 개발도상국 시장에서 SI 서비스 및 Package제품을 수출 가능하도록 하는데 목적이 있음.

3) 수익 창출 방향성

  • 의료정보시스템은 병원 간 환자 정보를 연동할 수 있는 Health Information Exchange System (이하 HIE), 개인건강기록 지원 및 의료진과 환자에게 모바일 서비스를 제공하는 것으로 확대 중임.
  • 의료 정보 서비스의 확장, 다양한 외부 시스템과의 연동,수출형 SW Framework에 대한 정의는 지속적인 수익 창출을 위한 필수 요소임.
  • 따라서 대상 아키텍처는 다양한 요구사항에 대한 유연성과 시스템 확장성을 고려해 모듈화 되어야 하고 개방형 구조를 기반으로 만들어져야 함.
  • 또한 외부 시스템과의 연동을 표준에 기반하여 상호 운용성 및 호환성을 확보해야 함.

SW프로세스품질인증 - 인증기준 및 등급

소프트웨어프로세스 품질인증 기준

「소프트웨어프로세스 품질인증 기준」이란 소프트웨어 기업 및 개발 조직의 소프트웨어 프로세스 품질역량 수준을 심사할 때 활용하는 기준을 의미합니다.소프트웨어프로세스 품질인증 기준은 조직의 프로젝트 수행역량 강화를 위해 필요한 핵심 활동을 제시하고 있으며. 조직은 인증기준에서 제시하고 있는 핵심 활동의 수행을 통하여 프로세스 역량수준을 효과적으로 개선할 수 있습니다.
소프트웨어프로세스 품질인증 기준은 5개 영역, 17개 평가항목, 70개 세부평가항목으로 구성되어 있습니다.


소프트웨어프로세스 품질인증 등급

「소프트웨어프로세스 품질인증 등급」이란 인증신청 조직의 품질역량 수준을 심사한 결과를 의미하며, 해당 조직의 품질역량을 프로젝트에서 조직 차원으로 유도하기 위한 계층 구조로 되어 있습니다. 
※ 인증등급은 2개 등급(2등급, 3등급)만 유효 수준을 효과적으로 개선할 수 있습니다.



2015년 7월 22일 수요일

드론 소프트웨어 개발

드론은 유통, 광고, 측량, 보안, 안전관리, 셀피, 게임, 헬스 등 우리 일상은 물론 국방, 행정 등에서도 다양한 변화를 만들어 낼 것입니다. 

Flyver 회사는 드론 소프트웨어 개발용 SDK를 GitHub에 오픈하고 다양한 드론 소프트웨어 개발에 도전하고 있으며 자신들의 App Gallery에서 드론이 가져올 일상의 변화를 이해하기 쉬운 컨셉으로 제시하고 있습니다(그림1). 그리고, 이 컨셉 중에는 이미 실현된 앱도 있습니다.

그림1. Flyver App Gallery: 일상을 변화시킬 드론 앱
출처: http://flyver.co/drone-apps/
국내에는 2015년 3월 기준으로 UAV(Unmanned Aerial Vehicle, 무인항공기) 전문 소프트웨어를 생산하는 기업은 안타깝게도 없습니다. 전량 외국에서 수입합니다. AI(인공지능), 운영체제 기술, 충돌 회피 알고리즘 등 고도의 기술력이 요구되는 드론 전문 소프트웨어는 드론 생산 비용의 40% 이상을 차지합니다.

현재 중국 기업 DJI가 세계 드론 소프트웨어 시장의 50%를 차지할 정도로 거의 독점하고 있습니다. 이 회사는 2006년에 설립된 이래 정부의 지원과 지속적인 연구개발로 2014년에는 매출 5,503억원을 달성하는 등 이 분야에서 세계적 기업이 되었습니다. SW품질은 선진국 수준이고, 가격은 경쟁업체 대비 10분의 1에 불과합니다. DJI는 자신들의 드론 사용을 확대하고 좀 더 창의적인 드론 개발 아이디어를 얻고자 SDK(Software Development Kit)를 공개했습니다. 이 SDK로 개발자는 DJI 드론뿐만 아니라 드론 카메라, 짐벌(나침반·크로노미터를 수평으로 유지하는 장치), 공중 커뮤니케이션에 대한 컨트롤을 수행할 수 있습니다. 더군다나 이 SDK는 iOS 및 Android systems과 호환이 됩니다.

SW사업 선진화를 위한 SW발주기술 지원 사업

최근 몇 년간, 범국가적으로 SW산업 활성화가 눈에 띄게 가시화되고 있습니다. SW산업진흥법, SW중심사회, SW제값주기 등 발주분야뿐만 아니라 SW분야 전반에 걸쳐 제도적인 개선을 추진해 온 것입니다. 하지만 이런 움직임 이후에도, 기대와는 달리 여전히 SW기업들이 적정사업기간과 적정대가를 보장받지 못하고 있으며, 새롭게 공공 정보화 시장에 참여한 중견기업들도 여전히 발주관행, 대가체계, 일하는 방식 등 후진적 환경구조를 답습하고 있습니다. 

 이것은 SW기업의 문제라기보다는 보다 근본적으로 발주환경과 잘못된 관행에 큰 원인이 있다고 할 수 있습니다. SW사업에 대한 이해와 전문성이 부족한 발주자가 요구사항을 명확히 제시하지 못하면 해당 SW사업은 물론 관련 조직의 존폐에도 영향을 미칠 수 있습니다.


SW 발주 전문성이 부족할 때 초래하는 문제점 

l  개발중에 잦은 과업변경과 그로 인한 개발기간 지연
l  SW 사업의 부실과 더불어 참여기업 수익성 악화
l SW 개발자의 노동환경 악화
l  개발을 담당한  SW기업과 사업에 참여한 솔루션 업체들의 생존 위협


발주역량 강화와 발주환경의 체계를 선진화하기 위해, 
[SW발주기술지원센터] 출범

공공부문 정보화 사업 발주/관리의 모든 단계에서 상세요구사항도출, 사업기간 및 비용산정 등 발주자가 어려워하는 업무지원을 위해 해당 분야의 전문가를 투입하여 지원하는 내용을 골자로, 공공SW 사업의 발주담당자 역량강화를 위한 제도적인 지원 장치를 마련한 것입니다.

자세히 보기 →

사용자 의도를 정확히 파악하여 소프트웨어를 개발하는 TDD(Test Driven Development) 활용법

사용자 스토리 워크샵은 사용자와 소프트웨어 개발자 간의 커뮤니케이션을 활발하게 하여 만들려는 소프트웨어의 비전을 공유하고, 기능을 구체화한 사용자 스토리를 정리하는 활동이다. 사용자 스토리 워크샵의 가장 큰 목적은 “사용자의 요구사항을”, “사용자와 함께”, “사용자의 용어”로 정의하는 것입니다.

이렇게 만들어진 사용자 스토리를 기초로, 소프트웨어 개발자는 사용자의 요구사항을 프로젝트 초기부터 명확히 반영한다면, 사용자의 요구사항이 제대로 반영되지 않아 재개발을 해야 하는 문제가 발생하지 않을 것입니다. 최근의 소프트웨어 개발 트랜드는 소프트웨어 개발자의 개발 역량에 치중하는 것이 아니라 사용자의 요구사항을 명확히 반영하여 사용자의 만족도를 높이는 것으로 변하고 있습니다. 다시 말해, 소프트웨어를 개발자의 관점이 아닌 사용자의 관점으로 개발하는 것이 소프트웨어 개발자에게 요구되고 있는 것입니다.

사용자 스토리를 작성한 후 소프트웨어 개발자가 어떤 활동을 해야 하는지를 살펴보고자 하며, 그 중에서도 소프트웨어 개발자 주도로 진행되던 테스트를 사용자 관점으로는 어떻게 해야 하는지 알아보도록 합니다.

<소프트웨어 개발자의 필요역량 변화>




2015년 7월 21일 화요일

[SW아키텍처 참조모델] 모바일 오픈 아키텍쳐 레퍼런스 설계(안드로이드)

본 문서는 안드로이드를 기반으로하는 모바일 제품의 아키텍처 참조 모델로 작성되었습니다.

* 모바일 오픈 아키텍쳐 레퍼런스 모델의 해결 문제 목록
- 안드로이드 OS의 파편화
- 오픈 소스로써의 개방성 문제 : 폐쇄성
- 품질 속성 문제: 사용성
- 품질 속성 문제: 유지보수성

* 아키텍쳐 설계 개선 목적
본 모바일 오픈 아키텍처 개선 과제에서는 많은 개발자들과 오픈 소스 커뮤니티에서 검증된 오픈 소스들을 가져와서 개선/수정/리팩토링을 하여서 위에서 언급한 문제들 ? 파편화, 폐쇄성, 사용성, 유지보수성 ?을 해결하면서 다양한 요구사항을 만족시키고 개발 생산성 향상을 꾀하여서 개발 비용 관련 이슈나 파편화 문제 등을 해결하고자 한다. 더불어 이번 과제를 통해서 개선된 아키텍처 및 소스코드를 소개 및 공개/배포함으로써 다른 개발자들이 쉽게 활용하고 더 나은 feature, 아키텍처 및 생태계를 만들어 나갈 수 있도록 하였다.

* 관련 계층
- 유저 인터페이스 (User Interface)
안드로이드의 화면 단편화및 버전 단편화로 인해 버전 별로 제공할수 있는 Widget 함수와 기능들이 상이하다. 액션바 같은 경우, 3.X 버전 때부터 안드로이드에 추가 되었지만, 2.X 버전의 사용자가 전체 안드로이드 폰에서 40%이상이므로, 실제 배포되는 앱에 적용할수 없다. 또한 안드로이드는 커스텀 유저 인터페이스 컴포넌트를 만드는데 많은 비용이 발생한다.

- 네트워크 (Network)
독립형 어플리케이션보다 네트워크 기능을 제공하는 어플리케이션의 중요도가 (앱 내부 결제나 소셜 서비스의 연동)갈수록 성장하고 있다. 2012년 Distimo의 조사에 의하면 네트워크 기반의 어플리케이션의 매출이 전체 앱 시장에서 72%의 매출을 차지한다. 하지만 안드로이드가 제공하는 네트워크 기능은 단순해서, 어플리케이션 구축시 많은 비용이 발생하는 영역이다.

- 공용부 (Common)
안드로이드는 구글의 폐쇄적인 정책으로 인해, 시장의 요구를 재빨리 반영하지 못하고 있다. 이로 인해 어플리케이션에 필요한 로깅, 결제 모듈, 컴포넌트 설정부등을 별도로 제공하지 않고 있다. 

- 서비스로써의 백엔드 (BaaS)
모바일 앱을 개발할때, 구글이 제공하는 백엔드 기능 (푸쉬, 사용자 통계, 오류 리포트)의 품질이 부족하다. 푸쉬 서비스 같은 경우는 지연이나 손실율이 발생하고, 에러 리포트 기능 또한 제한적인 정보만 제공한다. 그러므로 모바일 개발에 필요한 백엔드 서비스를 직접 구축해야 하는 문제가 발생한다.

본 문서는 위의 4계층에서의 주요 문제의 해결책과 아키텍쳐적인 관점, 오픈소스 사례등을 설명하고 있습니다.

자세히 보기 →