2015년 8월 22일 토요일

제 15차 SP인증을 중심으로 한 SW프로세스 교육


본 교육은 국내 중소 SW기업과 개발 조직의 SW프로세스 품질 향상과 신뢰성 확보에 목적이 있습니다.
SW개발자, 품질 담당자, 테스트 담당자 등을 대상으로 SW프로세스 개념과 SP인증 기준 이해를 바탕으로 실제 업무에 필요한 SW 프로세스 교육을 진행합니다.

미래창조과학부가 주최하고 SW공학센터가 주관하는 금번 교육은 수강생의 경험과 SP인증기준과의 비교 분석을 통해 스스로 SW프로세스 개선점을 체득할 수 있는 실습 기회를 제공합니다.

애자일과 아웃소싱의 효과적 결합을 위한 가이드

애자일 방법론 적용에 있어 그 자체만으로 많은 z문제점과 과제가 있지만 아웃소싱과 결합될 경우에는 공간, 시간, 언어 등의 상이성으로 이러한 문제점들이 배가되고 새로운 문제점들이 나타납니다. 그러나 하이브리드 애자일 모델의 적용, 업무 영역별 업무와 인력 조직 등 다양한 BEST PRACTICE들을 잘 활용함으로써 이러한 문제점을 적절하게 대처한다면 프로젝트를 성공적으로 이끌 것으로 기대됩니다.


  • 하이브리드 애자일 모델을 활용한 선행 리스크 축소
  • 요구사항 영역별로 (requirement areas or features) 아웃소싱을 위한 업무와 인력을 조직화
  • 고객 친화적으로 애자일 방법론을 변형
  • 변경 지시에 의해 놓치는 영역 (runaway scope) 과 요구사항에 대한 관리
  • 교차배치형 (interleaved) 품질 보증 (QA: Quality Assurance)

임베디드 SW 개발 방법론 part 1 : 임베디드 SW 개발 프로세스

애플 , 인텔 등 선진외국기업 적용방법론을 중심으로

90 년대 말 시작된 agile 개발 방법론은 2000 년대 들어와서 다양한 모습으로 개발자들에게 확산되었습니다 . 한편 70 년대 Water 모델로 시작된 Plan-driven 개발 방법론 은 지금도 대규모 프로젝트나 대기업에서 사용하는 주요 개발모델입니다 . 소규모의 프로젝트나 , 개발자들이 한 곳에 모여서 잦은 커뮤니케이션을 통하여 개발하는 경우는 Agile 을 선호하지만 , Agile 특성상 초보개발자들이 많은 경우는 적용하는 것이 나쁜 결과를 가져오는 경우가 있습니다 . 대규모 프로젝트는 Plan-driven 방법론을 선호하지만 , 프로젝트는 소규모로 나누어 Agile 을 적용한 성공 사례 역시 있습니다 . 임베디드 SW 개발은 타 개발과는 다른 몇 가지 특성이 존재합니다 . Hardware 관계성 , 양산 개념 , Software 와 Hardware 통합 아키텍처 등의 요인들로 인하여 , 타 SW 개발과는 다른 도메인 특성을 보입니다 . 그렇다면 , 임베디드 SW 개발은 Agile 와 Plan-Driven 중 어느 개발 방법론이 적합할까 ? 본 원고에서는 임베디드 개발 도메인의 특성을 살펴보고 , 그에 따라 어떤 방법론이 더 적합한 것인지 살펴보고자 합니다 .

  • Agile vs. Plan-driven 개발 방법론
  • 임베디드 SW 개발 방법론

2015년 8월 21일 금요일

클라우드 애플리케이션 퍼포먼스 관리를 위한 10가지 핵심 요소

대부분의 경우 프라이빗 클라우드 서비스에 필요한 애플리케이션이 우선적으로 등장하고, 이후 수요가 점차 증가됨에 따라 퍼블릭 클라우드 서비스와 이를 관리하기 위한 애플리케이션이 등장하게 됩니다. 점차적으로 자체개발이나 아웃소싱한 클라우드 애플리케이션이 늘어나면서 그 퍼포먼스를 모니터링하기 위한 필요성이 나타게 되는데, 클라우드 애플리케이션 퍼포먼스 관리(CAPM : Cloud Application Performance Management)는 사용자 경험을 관리하기 위한 퍼포먼스를 모니터링하고 분석합니다. 2세대 CAPM툴은 모니터링 에이전트를 활용해 근본 원인 분석하고 CAPM의 주요 요소들을 활용함으로써 클라우드 기반 애플리케이션들의 퍼포먼스 향상을 도모할 수 있는 것으로 기대됩니다.

  1. 리소스 vs. 애플리케이션 퍼포먼스 모니터링
  2. 프라이빗과 퍼블릭 인스턴스 (instance)
  3. 토폴러지 ( 네트워크 접속망 ) 탐지 (Topology discovery)
  4. 1 세대 CAPM 툴과 문제점
  5. 2 세대 CAPM 툴과 장점들
  6. 클라우드 애플리케이션 퍼포먼스 컴포넌트
  7. 에이전트와 애플리케이션
  8. 인프라스트럭쳐의 한 부분으로써의 인터넷
  9. Hosted SaaS CAPM 장점
  10. 근본 원인 분석 과제들

RIA를 위한 미디어 지원 기능 비교 : JavaFX 2 대 HTML5

현재 다양한 미디어파일 포맷들을 모두 결합하는 것은 거의 불가능합니다. 그래서 보통 개발자들은 어떤 기술이 어떤 인코딩 테크닉을 지원하는가에 대한 관심보다는 그들의 애플리케이션들이 잘 작동하기만을 원합니다. 맞춤형 미디어 플레이어를 만드는데 유리한 JavaFX와 코덱과 브라우저 지원에 한계가 있지만 미디어스트리밍에 더 나은 유저환경을 만들 수 있는 HTML5는 이러한 문제들을 해결할 기회를 갖는 기술입니다.

소프트웨어 프로세스 개선의 평가 및 측정 - 체계적인 문헌 리뷰

소프트웨어 프로세스 개선 (SPI: Software Process Improvement) 은 소프트웨어 개발 조직의 효율성과 효과를 증대하고 , 소프트웨어 제품을 향상시킬 수 있는 체계적인 접근방법입니다 . 본 논문은 서로 다른 SPI 활동에 사용되는 평가 전략 및 측정법을 식별하고 특성화를 목표로 , 1991 년부터 2008 년 사이에 발표된 148 편의 논문을 분석하였습니다 . 논문들의 체계적인 문헌 리뷰를 통하여 , SPI 활동 , 응용 평가 전략 및 측정 관점에 따라 분류하고 7 가지의 차별화된 평가 전략을 확인하였습니다 .

Ⅰ . 서론
소프트웨어 프로세스 개선 (SPI) 은 제품의 품질을 높이는 것뿐만 아니라 시장 출시 시간과 생산 비용을 줄이는 것을 목적으로 한다 [28]. SPI 관련 기술로는 Capability Maturity Model (CMM)[76], Capability Maturity Model Integration (CMMI)[2], [113], [114], ISO/IEC 15504(SPICE)[35], [111], Quality Improvement Paradigm(QIP)/Experience Factory[7],[8] 등이 있다 . 본 연구와 유사 연구는 다음과 같다 . Gorschek 와 Davis[167] 은 요구사항단계 (requirements process) 에서 변화의 영향은 서로 다른 수준에서 관찰되고 측정할 수 있다는 아이디어를 가지고 프로세스 변화의 영향을 평가하기 위한 개념적 프레임 워크를 제시하였다 . Gomez 등 [48] 은 “ 무엇을 , 어떻게 , 언제 측정하는가 ” 라는 세 가지 질문을 가지고 소프트웨어공학에서 SLR(Systematic Literature Review) 측정을 실시하였다 . Bellini 등 [10] 은 문헌연구를 통해 측정 이론 , 소프트웨어 메트릭스 , 메트릭스의 개발과 식별 , 측정 수집 , 측정의 평가와 분석 등 5 가지 주요 측정항목을 도출하였다 . Kitchenham 과 Charters[60] 는 소프트웨어 메트릭스 연구에서 최근 동향을 설명하기 위해 체계적인 매핑 연구를 실시하였다 . 본 연구에서는 SPI 활동의 측정에 좀 더 중점을 두었으며 프로세스 개선을 평가하고 분석하는데 어떤 측정법이 사용되는지를 조사하였다 .

2015년 8월 20일 목요일

자동화된 클라우드 컴퓨팅 서비스 기획 시 고려해야할 8가지 주요이슈

클라우드 컴퓨팅은 편리성과 비용절감 효과 때문에 최근 몇 년간 기업들의 컴퓨팅 리소스 활용의 주요 화두임. 클라우드 리소스의 효율적인 활용을 위해 자동화 요구가 높아지고 있음. 효과적인 클라우드 자동화를 위한 주요 요건은 
△ 다이나믹 스케일링 자동화, 
△ 동일한 수준의 보안레벨 확보, 
△ 다양한 플랫폼과 외부 클라우드에 대한 서비스 지원,
△ 사용 편의성 등이 있음

클라우드 서비스의 구성 , 실행 및 지속적인 관리에 대한 자동화에 있어 과제는 다음과 같습니다.

1. 다이나믹 스케일링 (Dynamic Scaling) 
- 대부분의 기업들이 빠르게 오프라인 판매 모델에서 온라인 판매로 이동하고 있음에 따라 , 시즌 세일 때는 추가로 웹과 데이터베이스 서버가 필요함 . 트래픽 증가가 일어날 때 빠르고 자동적으로 이를 대응할 수 있는 것이 다이나믹 스케일링의 하나임
- 하이브리드 클라우드는 거의 일반적인 수요 시에 자체 서버를 이용하고 추가적인 컴퓨팅 파워가 필요할 때 퍼블릭 클라우드 서버를 이용하게 구성되어 있음

2. 환경 재구축 (Rebuilds of environments) 
- 만약 대학에서 학생들에게 다양한 강좌를 제공하기 위한 SW 애플리케이션 등을 포함한 컴퓨팅 자원을 제공하기 위해서는 각 학생별로 적합한 교육환경을 재구축해야 할 필요가 있음
- 클라우드 매니지먼트 툴은 마스터 템플릿을 기반으로 쉽고 빠르게 버추얼 컴퓨팅 환경의 실행 및 재구축을 지원함

3. 지속적인 모니터링 및 가용성 관리 (Ongoing monitoring and availability management) 
- 서버의 지속적인 모니터링 및 관리는 자동적으로 작동하지 않는 서버 및 서비스를 제거하고 이를 새로운 자원으로 확보하여 운영할 수 있도록 하는 것이 중요함

4. 보안 (Security)
- 프라이빗 클라우드의 보안 레벨을 퍼블릭 및 하이브리드 클라우드까지 확장시켜야함 . 클라우드 인프라 자동화 관리 툴은 퍼블릭 , 프라이빗 클라우드 서비스 모두에서 위반사항이나 의심스러운 활동을 모니터링하고 이를 보고하는 기능이 있어야 함

5. 다중역할 (Multi-tenancy)
- Multi-tenancy 는 클라우드 인프라 자동화 툴에서 지원해야 하는 사항임 . IT 조직은 많은 외부 기관 또는 동일한 조직 내의 여러 내부 부서에 컴퓨팅 서비스를 제공하는 경우 다양한 사용자를 만족시키는 서비스를 제공하기 위한 다중역할 (Multi-tenancy) 기능이 필요함

6. 단순화 (Simplicity) 
- 클라우드 인프라 자동화 툴은 다양한 종류의 서버와 데이터베이스 관리 툴 , 애플리케이션 소프트웨어 등에서 구동하기 위해서는 구성 및 이용이 단순해야 함

7. 언어 지원 (Language support)
- 많은 클라우드 기반 서비스들은 자바 , MS 의 C++, C# technologies, PERL, Python 과 다양한 언어를 지원해야 함

8. 모바일 백엔드의 신속한 개발 (Rapid development of mobile back ends) 
- 모바일 애플리케이션 , 특히 기업용 애플리케이션은 결국 빠르게 구성되고 실행되는 모바일 백엔드 서버가 필요함 . 클라우드 인프라 자동화 툴은 점점 더 새로운 요구 사항 (Requirement) 들을 지원할 수 있어야 함