2016년 2월 3일 수요일
제품 매트릭스
모든 공학 프로세스의 핵심요소는 측정이다. 보다 낳은 제품을 만들고 개발할 때 산출물의 품질을 평가하는 모델을 이용하기 위해서는 측정을 해야만 한다. 다른 공학분야와 달리 SW공학은 측정이 쉽지는 않다. SW공학에서 측정을 하는 사람들은 SW의 설계 및 구축에 대한 통찰력을 갖출 수 있도록 SW공학적 작업의 산출물인 제품의 측정 속성에 대해 고려해야 한다.
언제나 어떠한 제품이라도 질적인 평가는 충분하지 않다. 데이터 구조, 인터페이스 및 구성요서의 설계를 살펴보고 도움이 될 수 있는 객관적인 기준이 필요하다. 또한, 테스트시 테스트케이스와 테스트 방법의 선택에 도움이 되기 위해 정량적인 가이드라인이 필요하게 된다. 데이터에서 도출되는 제품의 매트릭스는 요구사항과 설계 모델, 소스코드, 테스트케이스를 통해 연계되며 수집을 위해 목표를 설정하고 매트릭스를 정의해야 한다. 매트릭스의 정의는 SW개발 제품의 품질에 대한 통찰력을 얻기 위해 수행하게 된다.
제품 매트릭스를 위해서는 측정과 매트릭스 그리고 측정인자를 도출해야 한다. 또한 제품 매트릭스의 도출을 위해 여러 가지를 고려하고 추진해야 하지만 SW의 복잡성에 대한 포괄적인 측정이 쉽지만은 않은 상황이다. 측정자의 필요에 따라 해당 도메인과 제품을 평가하기 위한 매트릭스를 고려해야 한다. 제품 매트릭스는 분석 및 설계모델의 평가에 도움이 되고, 디자인과 소스코드에 대한 절차의 복잡성에 관한 표식을 제공하며 효과적인 테스트 설계를 용이하게 해줄 수 있다.
요구사항 모델을 위한 매트릭스를 구성하기 위해서는 기능점수(FP)를 도출하여 SW데이터의 흐름을 확인하는 기능점수기반-매트릭스가 필요하다. SW제품에 대한 정량화를 위해 기능점수로 표현한 후 이를 통제하고 점검할 수 있는 기반을 마련하는 것이다. 아울러 품질요구사항에 대한 매트릭스를 추가로 구성하여 이를 고려해야 한다.
일반적인 설계모델을 위한 매트릭스는 설계 지표를 중심으로 매트릭스를 구성하게 된다. 객체지향 설계에 대한 매트릭스는 규모와 복잡도, 커플링(디자인 요소사이의 물리적 연결), 적합성, 완전성, 결합성, 원시성, 유사성, 변동성을 고려하여 매트릭스를 구성하게 된다.
소스코드를 위한 매트릭스를 위해 측정할 대상은 프로그램 인터페이스에 표기된 별개의 카운트 또는 고유한 피연산자 카운트, 오퍼레이트 카운트, 전체 프로그램 길이, 알고리즘에 잠재적인 볼륨 등 도메인과 상황에 따라 변경되어 측정할 수 있다. 또한 테스트를 위한 매트릭스 구성은 분석, 설계 및 구현 매트릭스에 의존하여 실행되며 최종 제품에 영향을 미치기 때문에 여러가지 상황과 현실을 고려해야 한다. SW 매트릭스는 제품을 만들기 전에 품질을 예상하고 검토할 수 있도록 제품 특성품질을 평가하는 방법을 도출할 수도 있다.
언제나 어떠한 제품이라도 질적인 평가는 충분하지 않다. 데이터 구조, 인터페이스 및 구성요서의 설계를 살펴보고 도움이 될 수 있는 객관적인 기준이 필요하다. 또한, 테스트시 테스트케이스와 테스트 방법의 선택에 도움이 되기 위해 정량적인 가이드라인이 필요하게 된다. 데이터에서 도출되는 제품의 매트릭스는 요구사항과 설계 모델, 소스코드, 테스트케이스를 통해 연계되며 수집을 위해 목표를 설정하고 매트릭스를 정의해야 한다. 매트릭스의 정의는 SW개발 제품의 품질에 대한 통찰력을 얻기 위해 수행하게 된다.
제품 매트릭스를 위해서는 측정과 매트릭스 그리고 측정인자를 도출해야 한다. 또한 제품 매트릭스의 도출을 위해 여러 가지를 고려하고 추진해야 하지만 SW의 복잡성에 대한 포괄적인 측정이 쉽지만은 않은 상황이다. 측정자의 필요에 따라 해당 도메인과 제품을 평가하기 위한 매트릭스를 고려해야 한다. 제품 매트릭스는 분석 및 설계모델의 평가에 도움이 되고, 디자인과 소스코드에 대한 절차의 복잡성에 관한 표식을 제공하며 효과적인 테스트 설계를 용이하게 해줄 수 있다.
요구사항 모델을 위한 매트릭스를 구성하기 위해서는 기능점수(FP)를 도출하여 SW데이터의 흐름을 확인하는 기능점수기반-매트릭스가 필요하다. SW제품에 대한 정량화를 위해 기능점수로 표현한 후 이를 통제하고 점검할 수 있는 기반을 마련하는 것이다. 아울러 품질요구사항에 대한 매트릭스를 추가로 구성하여 이를 고려해야 한다.
일반적인 설계모델을 위한 매트릭스는 설계 지표를 중심으로 매트릭스를 구성하게 된다. 객체지향 설계에 대한 매트릭스는 규모와 복잡도, 커플링(디자인 요소사이의 물리적 연결), 적합성, 완전성, 결합성, 원시성, 유사성, 변동성을 고려하여 매트릭스를 구성하게 된다.
소스코드를 위한 매트릭스를 위해 측정할 대상은 프로그램 인터페이스에 표기된 별개의 카운트 또는 고유한 피연산자 카운트, 오퍼레이트 카운트, 전체 프로그램 길이, 알고리즘에 잠재적인 볼륨 등 도메인과 상황에 따라 변경되어 측정할 수 있다. 또한 테스트를 위한 매트릭스 구성은 분석, 설계 및 구현 매트릭스에 의존하여 실행되며 최종 제품에 영향을 미치기 때문에 여러가지 상황과 현실을 고려해야 한다. SW 매트릭스는 제품을 만들기 전에 품질을 예상하고 검토할 수 있도록 제품 특성품질을 평가하는 방법을 도출할 수도 있다.
형상관리
오늘날의 SW개발에서 형상관리는 다양한 방식의 접근과 도구의 활용을 통해 이루어진다. 일반적으로 SW형상관리의 범위를 소스코드의 버전관리가 주된 활동들이라고 생각하는 경향이 있다. 소스코드의 버전관리에 대한 메타 태그와 인덱스를 정리하는 활동들이 형상관리라고 생각하고 이행되고 있다.
하지만 실제 개발에 사용되는 것들과 표준화적인 요소를 반영하고 있는 CMMI, SPICE, SP인증, ITIL 등 SW공학관점의 형상관리의 기능은 단순한 소스코드 버전관리를 넘어서 변경되는 내용과 이슈에 대한 관리, 릴리즈를 포함한 그 이상의 범위를 대상으로 하고 있다. 실질적으로 변경관리가 된 것 들을 빌드하고 테스트한 후에 배포까지의 전체 프로세스 수행상황에 대해 정리하고 관리하는 것이 바로 형상관리의 목표인 것이다.
형상관리를 공학적으로 어떻게 표현하든 SW개발과 관련된 산출물 및 과정 그리고 기타 활동들은 기록되고 관리되어 지며 검토를 통해 승인되고 저장되어 향후 발생할 수 있는 상황에 대해 대응하고 문제점과 개선점을 도출하여 보다 발전된 형태로 SW개발을 할 수 있는 기반을 마련하는 것이다.
다양한 표준들에서 형상관리항목을 중요하게 생각하고 형상관리를 잘 이행할 수 있도록 또는 점검할 수 있도록 관련 프로세스와 활동들을 정의하고 있으나 이러한 표준들은 현장에서 발생하는 활동들을 관점에 따라 다시 정리한 것으로 이미 현장에서 형상관리를 잘하고 있는 조직은 발전의 기회로 삼으면 될 것이다.
하지만 그렇지 않은 조직이라면 기 검증된 SP인증, CMMI, SPICE 등 표준들을 기반으로 전사적인 형상관리 체계를 구축하고 이행을 위한 기반을 마련하는 것도 하나의 방법일수 있다.
형상항목을 식별하여 체계적으로 형상의 변경을 통제하고 프로젝트 생명주기 전방에 형상의 추적성과 통합성을 유지하는 것은 매우 중요하다. 형상관리의 영역은 버전관리, 변경관리, 빌드관리, 릴리즈 관리, 워크스페이스관리를 모두 포함한다.
형상관리를 통해 산출물의 무결성을 확보하여 유지하고 불필요한 변경요청을 제어할 수 있고 모든 산출물을 프로젝트 팀원이 공유함으로써 커뮤니케이션이 원활해진다. 또한 객관적인 자료와 정보들을 통해 정량적인 진척관리가 가능해 지는 것이다.
하지만 실제 개발에 사용되는 것들과 표준화적인 요소를 반영하고 있는 CMMI, SPICE, SP인증, ITIL 등 SW공학관점의 형상관리의 기능은 단순한 소스코드 버전관리를 넘어서 변경되는 내용과 이슈에 대한 관리, 릴리즈를 포함한 그 이상의 범위를 대상으로 하고 있다. 실질적으로 변경관리가 된 것 들을 빌드하고 테스트한 후에 배포까지의 전체 프로세스 수행상황에 대해 정리하고 관리하는 것이 바로 형상관리의 목표인 것이다.
형상관리를 공학적으로 어떻게 표현하든 SW개발과 관련된 산출물 및 과정 그리고 기타 활동들은 기록되고 관리되어 지며 검토를 통해 승인되고 저장되어 향후 발생할 수 있는 상황에 대해 대응하고 문제점과 개선점을 도출하여 보다 발전된 형태로 SW개발을 할 수 있는 기반을 마련하는 것이다.
< ISO/IEC 15504(SPICE)의 Best Practice >
< CMMI의 Support Area>
< SP인증에서의 형상관리 >
다양한 표준들에서 형상관리항목을 중요하게 생각하고 형상관리를 잘 이행할 수 있도록 또는 점검할 수 있도록 관련 프로세스와 활동들을 정의하고 있으나 이러한 표준들은 현장에서 발생하는 활동들을 관점에 따라 다시 정리한 것으로 이미 현장에서 형상관리를 잘하고 있는 조직은 발전의 기회로 삼으면 될 것이다.
하지만 그렇지 않은 조직이라면 기 검증된 SP인증, CMMI, SPICE 등 표준들을 기반으로 전사적인 형상관리 체계를 구축하고 이행을 위한 기반을 마련하는 것도 하나의 방법일수 있다.
< 현장에서 생각하는 형상관리 범주 >
형상항목을 식별하여 체계적으로 형상의 변경을 통제하고 프로젝트 생명주기 전방에 형상의 추적성과 통합성을 유지하는 것은 매우 중요하다. 형상관리의 영역은 버전관리, 변경관리, 빌드관리, 릴리즈 관리, 워크스페이스관리를 모두 포함한다.
형상관리를 통해 산출물의 무결성을 확보하여 유지하고 불필요한 변경요청을 제어할 수 있고 모든 산출물을 프로젝트 팀원이 공유함으로써 커뮤니케이션이 원활해진다. 또한 객관적인 자료와 정보들을 통해 정량적인 진척관리가 가능해 지는 것이다.
2016년 2월 2일 화요일
스타트업의 생태계 발전과 품질 향상을 위한 SW프로슈머 평가지원사업
지난 2015년 8월, 스타트업이 개발한 소프트웨어를 직접 사용해보고 평가해주는 "SW 프로슈머"가 출범했다. 빠른 기술 변화와 혁신이 요구되는 SW분야에서 스타트업들이 소비자 반응을 토대로 활발한 개선 작업을 통해 시장에 성공적으로 안착할 수 있도록 돕기 위한 사업이다. SW프로슈머 평가지원사업을 담당하고 있는 SW품질인증팀의 윤지석 수석으로부터 이와 관련한 자세한 정보를 들어보자.
<소프트웨어 공학센터 SW품질보증팀 윤지석 수석>
Q: SW프로슈머 평가지원 사업을 추진하게 된 배경은 무엇인가요?
최근 각종 제품에 대한 정보를 접하게 되는 경로가 커뮤니티, SNS 등 다양화되고 있고, 정보 접근성도 빠르게 발달하고 있습니다. 이에 따라 소비자의 식견이 향상되고 있음을 물론, 효율적인 소비를 추구하는 성향도 높아지고 있죠. 이러한 소비 환경을 토대로 소비자 권리에 대한 의사 표현도 점차 적극적으로 변화되고 있습니다.
SW의 경우, SW프로그램이나 각종 앱 등을 이용하는 소비자의 사용 주기가 매우 짧아졌기 때문에 완성도가 낮거나 불편한 제품은 미련 없이 교체하게 되는데요. 이러한 이유로 SW시장에 있어서 소비자(사용자)의 목소리는 SW의 시장 성공 여부에 막대한 영향을 미치고 있습니다.
국내 중소/창업 SW기업의 경우, 아이디어와 기술을 근간으로 시작하고 성장했기 때문에 SW제품의 기획이나 개발과정에서 사용자를 고려하기란 쉽지 않은 일이고, 그렇게 하는 기업도 매우 소수에 불과합니다. 시간과 비용 측면에서 투자가 어려운 상황이기도 하죠.이렇게 사용자를 생각하지 않고 개발한 제품은 출시되었을 때 외면 받을 수 밖에 없습니다.
실제로 제품에 대한 개발자(회사)와 사용자의 시각차는 엄청나다고 할 수 있는데요. 그 격차를 줄일 수 있는 방법에는 여러 가지가 있겠지만, 가장 확실한 방법은 사용자에게 직접 물어보는 것입니다. 사용자가 직접 사용해 보고 그 느낌이나 의견을 개발사가 수집하고, 제품에 반영한다면 시장에서의 성공 확률은 상당히 높아질 수 밖에 없죠.
하지만 국내 중소창업 SW기업은 경험 부족과 예산의 문제로 SW 개발 과정에서 이러한 과정을 수행하기가 매우 어렵습니다. 중소/창업 SW기업이 시장에서 고전을 면치 못하는 이유도 여기에 있다고 볼 수 있는데요. 이러한 이유로 미래창조과학부와 저희 소프트웨어공학센터에서는 우수한 기술력과 독창적인 아이디어를 가진 SW에 대해 사용자를 통한 평가를 사전에 제공하여 사용자가 만족하는 SW를 만듦으로써, 국내 중소/창업 기업의 SW제품이 시장에 안착할 수 있도록 지원하고자 본 사업을 시작하게 되었습니다.
<그림 1> SW프로슈머 평가지원 사업 목표

핀테크를 위한 인증기술
최근에 주목 받고 있는 사물인터넷(Internet of Thing), NFC(Near Field Communication), 전자지감(e-wallet), 에스크로(Escrow), 비콘(Beacon) 등의 기술은 개인정보를 포함하기 때문에 인증기술을 적용하고 있다.
핀테크도 일반적으로 사용되는 인증기술을 활용하는 경우가 많다. 간편결제, 인터넷 전문은행 등의 서비스나 PG사, 휴대폰 결제사업자, VAN사업자 등이 사용하는 인증기술은 일반적인 인증기술과 크게 다르지 않기 때문이다.
이와 같이, 핀테크에서 필요한 기술은 대부분 검증된 상태로 다른 업종에서도 많이 활용되는것이 많지만 핀테크에서 활용이 미진한 이유는 정책적인 뒷받침이 부족하다는 의견이 많다. 이러한 부분을 해소하고자 다양한 방안(<표 1> 참조)을 수립하고 있다.
<표 1> 전자상거래 간편화를 위한 정책 방안
자료 : 금융위원회
아직까지도 아이디, 패스워드와 같이 개인과 서비스 업체만 알 수 있는 정보나 스마트폰이나 IC카드, 보안카드 등과 같이 개인이 소지하고 있는 정보로 인증하는 경우가 많다. 최근에는 개인마다 고유한 생체인식 정보로 인증하는 기술이 주목 받고 있다(<표 2> 참조).
<표 2> 인증요소의 분류
자료 : 금융위원회
일반적으로 생체인식을 이용한 인증기술은 전자금융거래에 직접적으로 사용되지 않는다. 생체정보를 직접적으로 인식하기 위해서는 서비스 제공자가 필요한 장치를 제공해야 하는데 비용이 매우 높다. 이러한 이유로, 생체인식 정보의 일종인 행동학적 요소를 활용한 인증기술이 많이 적용되고 있따. 키입력 패턴 인증, 멀티터치 기반 비밀번호, 익명 인증, In-air 서명 패턴 인증이 있다.(금융위원회의 '지급결제와 정보기술'참조) 더 보기 >>>
2016년 2월 1일 월요일
SW설계 표기법(SW Design Notations)
SW설계 표기법(SW Design Notations)은 구조적 설명 정적관점(Structural Descriptions- Static view)과 행동적 설명 동적관점(Behavior Descriptions- Dynamic view)로 구분한다.
< 구조적 설명 정적관점(Structural Descriptions- Static view) >
< 행동적 설명 동적관점(Behavior Descriptions- Dynamic view) >
피드 구독하기:
글
(
Atom
)









