2016년 1월 5일 화요일

소프트웨어 생산성 향상 - 자동화 도구 편

최근의 소프트웨어는 개발 환경이 일반화되어 있어 프로세스나 개발 도구들이 거의 유사하기 때문에 소프트웨어 개발에 필요한 많은 자동화 도구들이 개발되고 있습니다. 개발자가 직접 하던 일들을 대신하는 자동화 도구는 시간과 장소의 제약을 없애주고 개발자가 하는 것보다 더 많고 정확한 결과를 제공하고 있습니다. 최근 들어 자동화 도구 사용을 필수로 하는 프로젝트가 점차 늘어나고 있습니다.

소프트웨어 개발 프로젝트는 사람이 하기 때문에 완벽한 개발과 일관된 테스트를 할 수 없었고, 시스템 구성과 인터페이스도 개발자의 성향에 따라 결정되기도 하였습니다. 자동화 도구는 수많은 케이스를 일관되게 적용할 수 있어 사람이 직접 하는 것보다 빠르고 정확한 결과를 나타냅니다.
테스트 분야에서 시작된 자동화 도구는 개발 효율을 높이기 위한 자동화 도구에 이어 컴포넌트 기반의 개발, UI/UX 자동화 도구까지 선을 보이고 있습니다. 이러한 자동화 도구를 통해 소프트웨어 생산성을 탁월하게 높였다는 다양한 사례가 발표되고 있습니다.

자동화에 많은 발전을 보이고 있는 테스트와 성능 측정, 빌드를 중심으로 자동화 도구의 종류와 구동 방법에 대해서 살펴보도록 합니다.

테스트 자동화
  • 외부 요인에 접근하지 않고 영향을 받지 않아야 한다.
  • 리소스가 반드시 있다고 전제하지 않는다.
  • 테스트 중에 사용자가 개입을 하지 않는다.
  • 테스트 수행 시간이 오래 걸리지 않도록 한다.
소프트웨어 성능 검증 자동화
  • 목표 TPS(Transaction per Second)
  • 목표 응답 시간
  • System Utilization
  • Availability
  • 지표의 품질

IEC 6230와 Agile Scrum의 통합

현재 전세계 의료기기 시장은 성장에 대한 미래가 밝습니다. 최근 의료 IT 융합 및 고령화 추세에 따라 그 수요가 확장되고 있기 때문입니다. 한국보건산업진흥원이 최근 발간한 보고서에 따르면, 우리나라의 의료기기 시장규모는 세계 11위(52억달러)로, 세계의료기기 시장에서 1.5%를 차지하는 것으로 나타났습니다.
이처럼 우리나라 의료기기 산업은 최근 꾸준한 성장세를 보이고 있으나, 가장 어려운 부분은 전세계적으로 의료기기 및 관련 SW에 대한 규제가 점점 더 강화되고 있다는 것입니다. 특히 의료기기는 생명과 직결된 부분이기 때문에 SW의 품질과 안전성의 확보가 가장 중요할 수 밖에 없는 것은 자명합니다. 우리나라 업체들도 연구개발에 지속적인 투자를 하고 있지만, 선진국들과 맞붙을 수 있는 수출경쟁력을 가지기에 어려운 부분이 많습니다.

의료용 SW의 경우 FDA, CE 등의 인증을 위하여 의료용 SW 생명주기의 국제규격인 IEC 62304를 반드시 적용해야 하는데, IEC 62304는 의료부문 기능 안전 필수사항이지만 구체적인 개발 방법론을 규정하지는 않습니다.

IEC 62304와 대표적인 애자일 방법론 중 하나인 Scrum을 어떻게 통합하였고 어떠한 효과가 있었는지, (주)디알텍의 김현준 책임으로부터 그 과정과 노하우에 대해 들어보았습니다.
  1. IEC 62304
  2. Scrum 도입 사유
  3. 두 체계의 통합 및 구축 방법
  4. 도입효과

[SW공학 동영상 11화] SW 아키텍처 설계예시편_Part 2

  • 아키텍처 설계 - 런타임 뷰, 얼로케이션 뷰, 모듈 뷰
  • 아키텍처 평가

http://www.sw-eng.kr/member/customer/Learn/BoardView.do?boardId=00000000000000036203&currPage=&searchPrefaceId=&searchCondition=TOT&searchKeyword=



2016년 1월 1일 금요일

[공고] 2016년 SW품질역량 강화를 위한 공통교육(GCS School) 운영

용역입찰 재공고
  • 입찰건명: 2016년 SW품질역량 강화를 위한 공통교육(GCS School) 운영
  • 용역기간: 계약체결일로부터 약 7개월
  • 제안서(입찰참가신청)제출(시간 초과시 서류 제출이 불가합니다.)
  • 제출마감일:  2016.01.05(화)15시까지
  • 입찰방법:제한경쟁입찰
낙찰자 선정방법 : 협상에의한계약 ( 기술 : 가격 = 90:10)
제안서를 제출받아 평가한 후 협상대상자를 선정 ( 개별통지 ) 하여 , 기술 / 가격협상에 참가할 수 있는 자격을 부여하고 제안서 평가 1 순위 업체부터 협상하여 우리 원에 가장 유리하다고
인정되는 업체를 낙찰자로 결정합니다 .

입찰참가자격 (아래의 자격을 모두 갖춘 자이어야 합니다)

 ▶ 국가를당사자로하는계약에관한법률 시행령 제 12 조 규정 및 동법 시행규칙 제 14 조 규정  에의한 유자격 업체
 ▶ 국가를 당사자로 하는 계약에 관한 법률 시행령 제 76 조 규정에 의한 부정당업자에 해당
하지 않은 업체
 ▶ 입찰참가신청시 우리 원의 선정방식에 이의가 없음을 확약한 업체
 ▶ 중소기업기본법에 의한 소기업 , 소상공인 업체 또는 비영리법인

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


산업계에서는 단순히 GIT 를 사용하기도 하지만 대다수의 대규모 프로젝트에서는 어느 정도 프로세스화된 GIT Branch 전략을 사용하여 개발하고 있습니다 . 이 중에서 가장 널리 사용되고 있는 GIT Branch 전략 중의 하나인 GIT Flow 를 살펴보고자 합니다 .

GIT Flow 는 GIT 의 가장 큰 장점인 GIT Branch 를 활용합니다 . 일반적으로 소프트웨어를 버전 단위로 릴리즈하는 유지보수 관점에서 GIT Flow 는 매우 훌륭합니다 . GIT Flow 는 배포관점의 형상 관리를 담당한다고 볼 수 있는데 원활한 소스코드 관리를 가능하게 하는 것이 핵심입니다 .
보통은 개발 중인 버전 (Develop) 과 이미 배포된 버전 (Master) 을 먼저 분리한 후 사용하는데 , GIT Flow 는 개발 중인 버전 (Develop) 을 바탕으로 중 / 단기 단위로 개발 (Release, Feature) 할 수 있도록 합니다 . 만약 치명적인 결함이 발생하더라도 이미 배포된 버전 (Master) 를 바탕으로 Hotfix 버전을 생성하여 빠른 패치를 진행하고 , 개발 중인 버전 (Develop) 으로 소스 병합 (Merging) 작업을 통해서 소스 형상관리를 최대한 활용할 수 있도록 합니다 .

본고에서는 소스 간의 충돌을 최소화하여 효율적인 개발이 가능해 특히 대규모 인원의 개발에서 주로 쓰이는 GIT Flow 를 소개하고 , 예제를 통해 실무 활용 방안을 살펴보고자 합니다 .

  • GIT Flow 소개
  • Breach 전략

iOS 애플리케이션 GUI 테스팅을 위한 영향 관계 기반 커버리지 및 테스트 케이

iOS 의 사용자 인터페이스는 멀티 터치 제스처에 의한 직접 조작 (Direct Manipulation) 을 기반으로 한다 [1]. 직접 조작이란 , 사용자에게 시각적인 요소를 제공함으로써 , 시스템을 제어할 수 있도록 하는 것을 의미하며 [2], 그래픽 사용자 인터페이스 (GUI) 와 유사한 개념입니다 . 애플에서는 코코아 터치 프레임워크 (Cocoa Touch Framework) 를 통하여 사용자에게 직접 조작을 기반으로 한 인터페이스를 제공한합니다 . 코코아 터치 프레임워크는 터치스크린을 내장하고 있는 모바일 장치를 위한 사용자 인터페이스 프레임워크입니다 . 즉 , iOS 는 터치스크린 기반의 GUI 를 제공하며 그 위에서 동작하는 iOS 애플리케이션 역시 GUI 를 사용자 인터페이스로 갖습니다 . 따라서 iOS 애플리케이션에서 GUI 가 갖는 비중은 매우 크다 . 따라서 GUI 의 문제 여부가 iOS 애플리케이션의 품질에 커다란 영향을 미칠 수 있습니다 . iOS 애플리케이션의 품질을 향상시키기 위해서는 GUI 에 대한 충분한 테스트가 필요합니다 .

  1. 이벤트 핸들러 기반의 테스트 커버리지
  2. 애플리케이션 상태와 영향 관계
  3. 영향 관계 기반의 테스트 케이스 생성 기법

2015년 12월 31일 목요일

애자일팀을 위한 무료 CI툴 10선

연속적인 빌드와 인티그레이션은 프로젝트의 성공 여부를 결정짓는 핵심 요소로 ,  지속적인 통합 (Continuous Integration) 툴은 프로젝트에 투입되는 시간과 노력을 효율화하는 데에 매우 중요한 사안입니다 .  본 원고에서는 애자일 프로젝트팀이 이용할 수 있는 무료  CI 툴  10 선을 소개합니다 .

애자일 팀을 위한 무료  CI 툴  10 선
 1. Hudson
 2. LuntBuild
 3. CruiseControl
 4. BuildBot
 5. Beebox
 6. Apache Gump
 7. Apache Continuum
 8. DarcoNet
 9. Cabie
10. ControlTIER