2016년 7월 21일 목요일

제65회 SW공학 Technical 세미나 안내 7/28(목)






소프트웨어 프로세스(Software Process, SP) 모델의 정의


소프트웨어 프로세스(이하 SP) 품질인증 제도는 소프트웨어 및 정보시스템을 개발 관리하는 국내 소프트웨어 기업 및 개발조직의 소프트웨어 프로세스 품질 향상과 신뢰성 확보를 목적으로 소프트 웨어 프로세스 품질역량 수준을 심사하여 등급을 판정하는 제도이다. 

SP 품질인증은 소프트웨어 프로세스 품질인증 기준에 대한 만족여부를 심사를 통해 판단하여 부여 된다. SP 품질인증 기준은 5개 영역, 17개 평가항목, 76개 세부평가 항목으로 구성되었다. 5개의 영역을 구체적으로 살펴보면 프로젝트 관리 영역, 개발 영역, 지원영역, 조직관리 영역 및 프로세스 개선 영역으로 구성되어 있다. 

프로젝트 관리 영역은 다시 프로젝트 계획, 프로젝트 통제, 협력업체 관리와 같은 3개의 평가항목 으로, 개발영역은 요구사항 관리, 분석, 설계, 구현 및 테스트가 포함되는 5개 평가항목으로, 지원 영역은 품질보증, 형상관리, 측정 및 분석과 같은 3개의 평가항목으로 구성되어 있으며 이들 3개의 영역이 2등급 영역이다. 3등급 영역인 조직 프로세스 관리는 기반구조 관리, 구성원 교육을 포함하는 2개의 평가항목으로 구성되고, 프로세스 개선 영역은 정량적 프로세스 관리, 문제해 결, 프로세스 개선 관리를 포함한 3개의 평가항목으로 구성되었다. 

기존 SW공학수준 조사에서 프로세스 수준 분석은 CMMI 만을 기준으로 이루어졌기 때문에 SP 품 질인증에 대한 관심도 증가라는 상황과 맞물려 소프트웨어 프로세스 품질인증 기준에 따른 프로세 스 수준 분석의 필요성이 제기되었으며, 소프트웨어 프로세스 품질인증 기준에 따른 프로세스 수준 에 대한 데이터 확보가 필요하게 되었다. 

이러한 필요성에 대응하고자 SP 품질인증 기준의 분석이 수행되었으며, SP 기준의 프로세스 수준 분석은 CMMI Level 3 수준에 맞는 2등급에 포함되는 3개 영역에 대하여 42개 세부평가항목을 기준으로 11개 평가항목에 대한 점수를 산정하여 분석하였다. 


SW공학도구 분석


이번 조사에 참여한 조직의 SW공학도구에 대한 도입연수 비율을 살펴보면 다음의 표와 같다. 
 


 
SW공학도구별로 업무 기여도 정도를 살펴보면, 다음의 표와 같다.




2016년 7월 20일 수요일

SW공학 요소기술 분석


SW공학 요소기술 및 필요수준 수요조사의 대상은 아래의 그림과 같이 총 9개 영역(프로젝트 관리, 프로세스 관리, 품질 관리, 형상 관리, 측정, 요구사항 관리, 분석설계, 구현, 테스트)을 대상으로 각 요소기술 영역별로 현재 보유정도와 향후 필요정도를 조사하였다. 

프로젝트 관리, 요구사항 관리, 프로세스 관리 영역이 현재 보유수준과 향후 수요수준의 차이 가 상대적으로 큰 것으로 나타났다. 

 
1.1 프로젝트관리 기술수요 현황
 
 
프로젝트 관리영역의 요소기술 별 현장의 수요는 아래의 그림과 같다. 아래의 그림에서 살펴보면, 현재 보유정도와 향후 필요정도의 차이가 가장 많이 나는 부분은 일정관리와 자원관리로 나타났다.
 
 

SW공학수준과 경영성과


SW공학수준 등급(Abent, Average, Advanced)별로 경영성과를 분류하여 활동성 및 성장성 지표 와 수익성 지표를 살펴보면, 다음의 표와 같다. 





SW공학수준이 높을수록 활동성 및 성장성 지표를 구성하는 매출액 증가액, 영업이익 증가율, 당기 순이익 증가율 모두 높아지는 결과를 확인할 수 있으며, 수익성 지표를 구성하는 매출액 영업이익 율, 매출액 순이익율, 총자산 순이익율 또한 모두 높아지는 결과를 확인할 수 있다.
SW공학수준이 Absent 수준과 Average 수준의 경우 전년도 대비 활동성 및 성장성 지표와 수익성 지표 대부분이 감소하는 경향을 보이고 있으나, Advanced 수준의 경우에는 활동성 및 성장성 지표 와 수익성 지표 모두 전년도 대비 증가하는 긍정적인 결과를 보여주고 있어 높은 SW공학수준 을 보유할수록 좋은 경영성과를 낼 가능성이 높아진다는 상관 관계를 설명해주고 있다.



경영성과


기업의 경영성과를 파악하여 SW공학수준, 성과, 기업규모, SW개발유형과의 비교를 통해 기업의 경영성과와의 상호 연관관계를 본 분석을 통해 파악하고자 한다. 

분석결과, SW공학수준이 높을수록 경영성과가 상대적으로 높게 나타났으며, 납기와 비용을 준수한 프로젝트가 속한 조직의 경영성과가 그렇지 못한 조직에 비해 상대적으로 높게 나타났다. 

특히 대기업과 중소기업 간의 경영성과 차이가 심각해 중소기업의 경영성과 개선을 위한 노력이 필요함을 확인할 수 있다. 

경영성과 분석을 위해 아래의 표와 같은 지표 및 측정공식을 통해 분석을 수행했다. 


 
경영성과 데이터는 설문조사에 참여한 기업 중 올해 경영공시를 한 기업을 대상으로 추출하였으며, 경영성과 분석 시점이 최종감사 보고서가 공시되지 않은 시점이기 때문에 3분기 보고서를 기준으로 추출하였다. 이번 경영성과 분석은 설문조사에 참여한 기업 중 경영성과 데이터 추출이 가능한 54 개 기업을 대상으로 이루어졌으며, 경영성과 공시정보는 금융감독원의 전자공시시스템 (http://dart.fss.or.kr)을 통해서 확인했다

2016년 7월 19일 화요일

머신 러닝의 발전 방향과 소프트웨어 시장에 미치는 영향

AI는 사람과 똑 같은 사고를 갖게 하는데 목적이 있고 최근에는 사물인터넷(Internet of Things), 클라우드 컴퓨팅(Cloud Computing), 빅데이터(Big Data), 모바일(Mobile) 등과 결합되면서 상상 속에 있던 새로운 비즈니스가 만들어지고 있다. AI는 다양한 분야가 연구되고 있지만 그 중에서도 머신 러닝(Machine Learning)의 관심이 급격히 증가하고 있다. 인간을 이긴 구글의 알파고와 IBM의 왓슨처럼 머신 러닝을 기본으로 한 AI가 이제 영화 속이 아닌 현실에서 나타나고 있고, 시간이 갈수록 머신 러닝의 학습 속도는 점점 빨라져 인간의 뇌와 유사해지고 있다. 이번 회는 머신 러닝이 소프트웨어 활용에 어떤 영향을 미치는지 살펴보도록 한다.

머신 러닝의 동작

머신 러닝은 훈련 데이터(Training Data)를 통해 학습된 속성을 기반으로 결과를 예측하는데 목적을 두고 있기 때문에 데이터 마이닝(Data Mining)을 통해 미처 몰랐던 속성을 발견하는 것에 관심을 보인다. 일반적인 소프트웨어는 개발자가 모든 알고리즘, 로직, 명령어 등에서 필요한 것을 선택해 만들어낸다. 하지만, 머신 러닝의 경우는 자율적인 학습으로 최적의 결과를 만들어낸다.

그림1은 머신 러닝이 동작하는 방법을 간단히 나타내고 있다. 기존에도 프로그램에 의해 입력 받은 데이터를 가공하여 원하는 결과를 나타낼 수 있다. 수학에서 미지수 X의 값을 찾기 위해 많은 수식과 공식을 사용하는 것과 마찬가지다. 하지만, 머신 러닝의 경우는 정해진 수식이나 공식 없이 계속 학습을 하면서 결과를 찾아낸다는 점이 다르다. 개발자는 소프트웨어가 결과를 제시하는 방법을 만들어야 하는 것이 아니라 데이터를 어떻게 받아들이고 결과를 어떻게 보여줄 것인지에 대한 고민이 더 많아야 한다. 아래는 머신 러닝의 수행 단계를 나타낸다.

1. 자료 수집: 엑셀, DB 등의 자료, 텍스트 파일 등에서 학습을 위한 자료를 수집
2. 자료 준비: 데이터의 품질을 높이기 위해 누락, 예외 사항 처리 등을 예비 분석
3. 모델 훈련: 적절한 알고리즘으로 훈련 모델을 개발하고 시험 데이터로 모델을 테스트
4. 모델 평가: 모델의 정확성 여부를 시험하기 위해 평가한 후 정밀도를 결정
5. 성능 개량: 모델의 효율성 증대를 위해 더 많은 변수를 포함하여 모델의 성능을 향상