2016년 2월 3일 수요일

형상관리

오늘날의 SW개발에서 형상관리는 다양한 방식의 접근과 도구의 활용을 통해 이루어진다. 일반적으로 SW형상관리의 범위를 소스코드의 버전관리가 주된 활동들이라고 생각하는 경향이 있다. 소스코드의 버전관리에 대한 메타 태그와 인덱스를 정리하는 활동들이 형상관리라고 생각하고 이행되고 있다.

하지만 실제 개발에 사용되는 것들과 표준화적인 요소를 반영하고 있는 CMMI, SPICE, SP인증, ITIL 등 SW공학관점의 형상관리의 기능은 단순한 소스코드 버전관리를 넘어서 변경되는 내용과 이슈에 대한 관리, 릴리즈를 포함한 그 이상의 범위를 대상으로 하고 있다. 실질적으로 변경관리가 된 것 들을 빌드하고 테스트한 후에 배포까지의 전체 프로세스 수행상황에 대해 정리하고 관리하는 것이 바로 형상관리의 목표인 것이다.

형상관리를 공학적으로 어떻게 표현하든 SW개발과 관련된 산출물 및 과정 그리고 기타 활동들은 기록되고 관리되어 지며 검토를 통해 승인되고 저장되어 향후 발생할 수 있는 상황에 대해 대응하고 문제점과 개선점을 도출하여 보다 발전된 형태로 SW개발을 할 수 있는 기반을 마련하는 것이다.


< ISO/IEC 15504(SPICE)의 Best Practice >

< CMMI의 Support Area>

< SP인증에서의 형상관리 >

다양한 표준들에서 형상관리항목을 중요하게 생각하고 형상관리를 잘 이행할 수 있도록 또는 점검할 수 있도록 관련 프로세스와 활동들을 정의하고 있으나 이러한 표준들은 현장에서 발생하는 활동들을 관점에 따라 다시 정리한 것으로 이미 현장에서 형상관리를 잘하고 있는 조직은 발전의 기회로 삼으면 될 것이다.

하지만 그렇지 않은 조직이라면 기 검증된 SP인증, CMMI, SPICE 등 표준들을 기반으로 전사적인 형상관리 체계를 구축하고 이행을 위한 기반을 마련하는 것도 하나의 방법일수 있다.

< 현장에서 생각하는 형상관리 범주 >


형상항목을 식별하여 체계적으로 형상의 변경을 통제하고 프로젝트 생명주기 전방에 형상의 추적성과 통합성을 유지하는 것은 매우 중요하다. 형상관리의 영역은 버전관리, 변경관리, 빌드관리, 릴리즈 관리, 워크스페이스관리를 모두 포함한다.

형상관리를 통해 산출물의 무결성을 확보하여 유지하고 불필요한 변경요청을 제어할 수 있고 모든 산출물을 프로젝트 팀원이 공유함으로써 커뮤니케이션이 원활해진다. 또한 객관적인 자료와 정보들을 통해 정량적인 진척관리가 가능해 지는 것이다.

2016년 2월 2일 화요일

SW 고품질을 위한 Model 기반의 SW Visualization (상)



※ 참고: SW 고품질을 위한 Model 기반의 SW Visualization (하)

스타트업의 생태계 발전과 품질 향상을 위한 SW프로슈머 평가지원사업

지난 2015년 8월, 스타트업이 개발한 소프트웨어를 직접 사용해보고 평가해주는 "SW 프로슈머"가 출범했다. 빠른 기술 변화와 혁신이 요구되는 SW분야에서 스타트업들이 소비자 반응을 토대로 활발한 개선 작업을 통해 시장에 성공적으로 안착할 수 있도록 돕기 위한 사업이다.  SW프로슈머  평가지원사업을 담당하고 있는 SW품질인증팀의 윤지석 수석으로부터 이와 관련한 자세한 정보를 들어보자.

IMG_20160106_1.png
<소프트웨어 공학센터 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) > 

임베디드SW 테스트 전략

임베디드SW 테스트 전략은 시장의 상황 및 제품의 특성에 따라 달라지고 통합과 자동화에 대한 검증방법을 사용하여 통합, 테스트 단계에서 유연하게 대처해야 하기 때문에 프레임워크를 통해 적용해야 한다.

테스트 전략이 수립된 단계에서부터 결함을 발견하여 보다 저렴한 비용으로 결함을 해결하고 개발팀 주도로 제품의 출시 및 납품 일정을 관리할 수 있게 되어 고객만족을 향상시킬 수 있다.

< 임베디드 SW 테스트 절차>

객체지향 테스트 전략

현실을 반영한 객체지향 개발의 보편화로 데이터와 프로세스를 개념화한 객체를 모델링하여 시스템을 개발하고 현실에 근접하게 표현하면서 재사용성과 생산성을 증대시키기 위해 많은 노력을 추진하고 있다. 이전 정보공학방법론에 의한 SW테스트와 다른 상속성, 캡슐화, 다양성 등의 객체지향 특성을 고려한 테스트 전략과 기법적용이 성공적 개발의 핵심요소로 부각되기 시작했다.

< 객체지향과 전통적 개발과의 차이점 >



객체지향 테스트를 위해서는 객체지향 테스트 계획간 고려사항으로 전략과 절차, 조직, 자동화 도구를 고려해야 하며, 수행을 위한 고려사항으로 테스트 무결성 검증(debuging), 테스트 표준모델(ISO14598), 테스트 결과의 저장(리포지토리), 테스트 방법(동적, 정적)을 고려해야 한다.

< 객체지향 테스트 전략 >