2016년 1월 13일 수요일

Variable Length Execution Set을 지원하는 VLIW 아키텍처

최근 내장형 시스템 설계에 있어서 고성능 , 저전력 , 저면적 등에 대한 요구뿐만 아니라 신뢰도에 대한 요구 또한 갈수록 높아지고 있습니다 . 이는 공정기술의 발전에 따른 저전압 공급 , 칩사이즈 축소 , 낮은 노이즈 마진 등으로 인해 소프트 에러의 발생률이 증가하기 때문입니다 . 소프트 에러와 같은 일시적인 결함은 프로그램 실행 과정의 무결성을 보장할 수 없도록 하여 궁극적으로 프로그램의 실행 결과를 더 이상 신뢰할 수 없게 만듭니다 . 특히 의료 , 금융 , 보안 분야와 같이 높은 신뢰도가 요구되는 내장형 시스템일수록 이러한 소프트 에러를 감지하는 기술이 절대적으로 필요합니다 .

  • 제안하는 VLIW 아키텍처
  • 실험결과





블랙박스 테스팅 기법

블랙박스 테스팅은 시스템의 내부 구조를 블랙박스로 보고 입력과 출력을 확인함으로써 시스템의 오류를 발견하는 방식으로 , 기능검사 (functional testing) 라고도 하며 , 블랙박스 테스팅은 소스코드 없이 프로그램을 실행한 뒤 소프트웨어 오류 및 보안 취약점 등을 검증하는 ‘ 동적 분석 ’ 방법으로 SW 품질검증에 필수적인 테스트 과정입니다 .


블랙박스 테스트는 소프트웨어의 내부 로직 구조를 최소한으로 고려하여 시스템의 기본적인 측면들을 검사하고, 특히 블랙박스 테스팅은 소프트웨어 인터페이스에서 수행되는 테스트입니다.
소프트웨어 테스트는 화이트박스 (white box) 테스트와 블랙박스 (black box) 테스트 등 서로 다른 두 관점이 있는데 , 두 경우 모두 최소한의 노력과 시간으로 최대한 많은 에러를 발견하고자 하는 기법입니다.

 ▶ 블랙박스 테스팅 기법들
 ▶ 등가분할 (Equivalence Partitioning)
 ▶ 경계 값 분석 기법 (Boundary Value Analysis)

형상관리 가이드

형상관리(Configuration Management)
형상 항목을 식별하여 그 기능적 물리적 특성을 문서화하고, 그러한 특성에 대한 변경을 제어하고, 변경 처리 상태를 기록 및 보고하고, 명시된 요구 사항에 부합하는지 확인하는 이련의 사항에 대해 기술적 행정적인 지침과 사후 관리를 적용하는 원칙입니다.


  1. 형상관리 필요성
  2. 형상관리의 정의
  3. 형상관리 활동
  4. 형상관리 시스템

2016년 1월 12일 화요일

소단위 조직(VSE)을 위한 국제 소프트웨어 공학 표준 동향

그어느 때보다 , 시스템 통합주체들의 경우 , 하부시스템들의 납품을 위해 수많은 요구사항들을 올바르고 , 빠르고 , 그리고 비용 효과적으로 전개해 나가려는 회의를 공급자들과 나누면서 그들에게 의존하는 형태를 보이고 있습니다 . 대형 시스템의 공급망은 피라미드 구조를 가지고 있는데 , 만약 발견되지 않은 결점들이 있다면 이들은 하위 수준의 컴포넌트에 남아있게 됩니다.
이러한 컴포넌트가 상위 수준 컴포넌트로 통합되면 결점은 여전히 발견되지 않게 되는데 , 예로 < 그림 1> 에서 설명된 바와 같이 대형 제조업체는 발견되지 않은 결점들을 지진 채로 가장 하위 수준 공급자에 의해 생산된 컴포넌트를 하나의 제품으로 통합하게 되고 , 이러한 결함 있는 컴포넌트는 제조사에게 수백만 달러 손실의 결과를 초래할 수 있습니다 .



시스템 및 소프트웨어는 매년 점점 커지고 복잡해지고 있으며 점차적으로 , 품질 , 생산성 , 생명주기시간 , 비용 등에 따라 조직의 경쟁 , 적응 , 생존 능력이 결정되어 갑니다 . 최신의 자동차가 가지는 시스템은 1 억 라인의 코드 , 80 개 프로세서 , 5 개의 버스 시스템에 이르고 있습니다 . 산업은 최대 25 명까지 갖는 기업 , 조직 , 프로젝트 , 부서 즉 , 아주 작은 엔터티 ( 이하 VSE : very small entity) 가 가치 있는 제품 혹은 서비스를 만드는데 공헌하고 있다고 인식합니다 .

효과적인 모바일 애플리케이션 성능 테스팅 수행을 위한 7가지 팁

모바일 환경에서의 품질보증은 지금까지 웹이나 PC 환경 하에서의 테스팅과는 다른 요소들이 존재하고 있습니다 . 다양한 모바일 기기와 네트워크 조건 등의 제약 하에서는 성능 테스팅 측면에서 우선순위를 설정해야 하며 , 현재 모바일 성능 테스팅의 초점은 사용자경험에 두고 있음에 따라 이의 효과적인 수행을 위한 7 가지 팁을 제시합니다 .

기존 웹과 데스크탑 환경에 익숙한 테스터들은 모바일 품질 보증에 있어 완전히 새로운 도전에 직면해 있습니다.
모바일 기기 및 네트워크 조건에 의해 제한되는 모바일 환경 하에서 테스트 프로세스 상에 있어 우선순위들을 재평가해야할 필요가 있고, 현재 개발자와 테스터들의 주안점은 사용자 경험의 희생 없이 애플리케이션을 단순화하는 것으로 고객 ( 또는 사용자 ) 들이 사용하는데 불편 없는 애플리케이션을 구축하고 , 모니터링하며 , 업데이트하기 위해 실제 사용자 시나리오를 시뮬레이션 하는 독창적인 방법 강구해야 한다는 것 입니다.

따라서, 모바일 테스트를 처음 시작하거나 익숙하지 않은 경우 , 도움이 될 만한 몇 가지 사항에 대한 팁을 제공합니다.

성능 테스팅 수행을 위한 7가지 팁
  1. 모바일 애플리케이션에 있어 테스트팀의 중요성
  2. 모바일 테스팅의 첫 번째 단계
  3. 모바일 애플리케이션 테스트 우선순위 설정
  4. 모바일 보안에 있어 주의할 점
  5. 네트워크 조건에 따른 대응 방법
  6. 모바일에서 가장 가치 있는 기술
  7. 빠른 출시 주가 달성 방법

코드리뷰(Code Review), 과연 유용한 것인가

코드리뷰 (code review) 는 개발자가 작성한 코드를 다른 개발자가 정해진 방법을 통해 검토하는 일을 말하며 , 등위 검사 , 제 3 자 검사라고도 합니다 . 그러나 한 조사결과에 따르면 개발자들이 코드리뷰를 수행하지 않는 가장 큰 이유는 시간부족 때문입니다 . 따라서 과연 코드리뷰는 개발자들이 완료일정의 압박에도 불구하고 수행해야 할 가치가 있는 것인지 또는 다른 대응요소가 존재하는 것인지에 대한 견해를 제시합니다 .

미 IT 전문지에서 600 명 이상의 개발자들을 대상으로 수행한 최근 조사에 따르면 코드리뷰를 수행하지 않는 가장 큰 이유는 개발자들에게 시간이 없다는 것입니다.
오늘날 모든 현대인들이 시간에 대해 압박을 받고 있으며 , 모든 개발자들에게도 가장 중요한 문제 중 하나입니다. 코드리뷰에 시간이 많이 걸리는 것이 문제라기보다는 기업 또는 개발팀에서 코드리뷰에 드는 시간을 할당할 여유가 없다는 것이 문제입니다.
일부에서는 형식적이고 수동적인 코드리뷰에는 많은 시간이 소요되고 , 대부분의 사람들은 의심의 여지없이 코드리뷰에 시간을 들이는 것은 비생산적인 것이라고 주장할 수 있습니다.
  • 도구기반 코드리뷰의 차별성
  • 결함이 실제로 수정됐는지 확인하기
  • 결함에 대한 비용에 대해 생각하기
  • 자명한 사실

2016년 1월 9일 토요일

GIT Flow를 활용한 효과적인 소스 형상 관리 Part 3

Source Tree 를 이용한  GIT Flow  실습


그동안 터미널 (Terminal) 에서  GIT Flow 를 사용하는 법을 학습했습니다 . GIT Branch  전략을 매번 터미널에서 작업하기란 쉽지 않습니다 .  그러나  UI  툴을 이용한다면 빠르게  GIT  명령어와  GIT Flow  명령어를 통해 능률을 높일 수 있습니다 .  대표적인  GIT UI  툴인  Source Tree(http://www.sourcetreeapp.com) 를 이용해서 쉽게  GIT  명령어 뿐 아니라  GIT Branch  전략을 사용해 효율을 높이도록 실습하고자 합니다 .  소스 간의 충돌을 최소화하여 효율적인 개발이 가능해 특히 대규모 인원의 개발에서 주로 쓰이는  GIT Flow 를 소개하고 ,  예제를 통해 실무 활용 방안을 살펴보고자 합니다 .


Source Tree 는  < 그림  1> 과 같이 좌측 화면에서  Branch, Tag  정보를 가운데 화면에서는 히스토리 (History)  이력 ,  하단에서는 무엇을 수정했는지 파일 이력 ,  우측 하단에서는 파일  diff  이력을 보며 개발의 편이성을 높인 툴입니다 .  자주 쓰는  GIT  명령어는 상단 아이콘 바 (Bar) 에 위치하고 있어서 터미널 없이도 개발할 수 있는  UX 를 제공하고 있습니다 .