소프트웨어 신뢰성 공학 프로세스는 소프트웨어의 신뢰도를 측정하고 그것을 기반으로 사용자가 만족하는 제품을 알맞은 시간에 정해진 비용 한도 내에서 소프트웨어 제품을 생산할 수 있게 하는 활동의 절차를 이야기한다.
소프트웨어 신뢰성 공학의 대표적인 전문가인 J. D. Musa와 Michael R. Lyu는 다음과 같은 프로세스 모델을 제시하였다. Musa가 제시한 소프트웨어 신뢰성 공학 프로세스는 6가지의 활동으로 이루어졌다.
- 제품 정의 활동
- 운영 프로파일 (Operational Profile) 작성 활동
- "Just Right" 신뢰성 활동
- 시험 준비 활동
- 시험 실행 활동
- 결함 정보 분석 활동
[J. D. Musa가 제안한 소프트웨어 신뢰성 공학 프로세스]
- 제품 정의 활동은 제품의 공급자, 고객, 사용자뿐만 아니라 제품과 연관된 다른 시스템을 찾아내고 정의하는 활동이다.
- 운영 프로파일 작성 활동은 제품의 오퍼레이션들과 사용자 환경에서의 해당 오퍼레이션의 사용빈도를 예측하는 활동으로, 개발 활동에서의 자원의 사용 효율을 증대할 수 있는 정보로 사용된다.
- “Just Right" 신뢰성 활동은 프로젝트의 특성을 고려한 고장 정의 활동, 고장을 나타내는 단위(예를 들면, 시간 당 실패의 수 혹은 호출 당 실패의 수) 정의 활동, 연관된 시스템의 신뢰도 목표치 설정 활동, 개발 대상 시스템의 신뢰도 목표치 설정 및 적합한 소프트웨어 신뢰도 전략 수립 활동과 같은 세부 활동을 포함한다.
- 시험 준비 활동에서는 앞서 작성한 운영 프로파일을 기반으로 해서 테스트 케이스를 선정하고, 시험 절차를 수립한다.
- 시험 실행 활동에서는 계획된 절차와 자원을 가지고 시험을 실행하여 결함 발생 여부를 확인한다.
- 결함 정보 분석 활동에서는 테스트에서 산출되는 결함 정보를 수집하여, 다양한 목적으로 분석을 하여 현재의 신뢰성 및 신뢰성 성장의 변화를 추적하고 이 정보를 바탕으로 신뢰성을 만족하는 시점을 예측한다.
그리고 프로세스 모델에서는 언급되지 않았지만 제품을 인도한 후에도 계속적으로 고장 정보를 수집하여 다음 버전의 제품이나 다른 프로젝트의 신뢰도 목표 및 소프트웨어 신뢰성 전략을 더욱 정밀하게 만드는데 사용한다.
[Michael Lyu의 소프트웨어 신뢰성 공학 프로세스]
- 신뢰성 목표 명세
- 운영 프로파일 작성
- 신뢰성 모델링 및 측정
- 신뢰성 검증
Lyu가 제시한 프로세스에서는 먼저 운영 프로파일 작성을 통하여 사용자 환경에서의 제품이 어떤 식으로 사용될 것인지를 예측한다.
그리고 다른 품질 목표인 개발 기간, 비용 등을 고려하여 고객에게 최대의 만족을 줄 수 있는 신뢰성 목표치를 설정한다. 그리고 운영 프로파일을 기반으로 해서 시험을 실행하여 얻어지는 결함 정보와 그것을 기반으로 신뢰성을 산출해 주는 신뢰성 모델을 통해 목표한 신뢰성을 만족하는지를 확인한다.
여기에서 현재까지 제시된 많은 신뢰성 모델 중에 가장 조직에 적합한 신뢰도 모델을 찾아서 모델링을 하는 것이 필요하다. 목표한 신뢰성이 만족될 때까지 시험과 신뢰성 추정 활동을 계속적으로 한다.
신뢰성 목표가 만족되었다고 판단되면, 제품을 고객에게 인도하고, 사용자의 환경에서 실제적인 신뢰성이 시험 단계에서 추정한 신뢰성과 얼마나 유사한지를 검증하는 활동을 통해서 다음 버전의 제품에 수정 사항이 반영되어 더 정확한 예측이 이루어질 수 있게 한다.
Musa와 Lyu 두 프로세스의 공통점은 시험 단계에서 나오는 결함 정보를 통해 신뢰도 추정에 주력하고 있다는 점이다.
물론 신뢰성 추정 및 예측에 가장 중요한 정보가 시험 과정에서 나오는 결함 정보이기는 하지만 시험 단계 이전 단계인 요구 사항 단계, 설계 단계, 구현 단계 등에서 얻어지는 정보도 신뢰성에 영향을 미치므로 이런 점들이 프로세스 상에 반영되지 않은 한계도 드러내고 있다.
또한 두 프로세스 모델은 제품이 인도된 후에도 신뢰성 검증 활동을 통한 피드백을 통해서 조직 내에서 더 정확한 신뢰성 예측 및 추정을 가능하게 한다.
두 프로세스 모델의 두드러진 차이는 Musa의 프로세스 모델은 결함 정보를 통해서 현재의 신뢰성을 추정할 뿐만 아니라 미래의 신뢰성에 대한 예측도 강조를 해서 언제 제품을 인도할 지에 대한 계획을 세우고 준비를 하는 것을 포함하고 있지만, Lyu의 프로세스 모델은 현재의 신뢰성을 일정 시간 간격으로 지속적으로 추정하여 목표치에 맞는지를 확인하는 것에 제한되어, 신뢰성 예측 측면을 언급하지 않는다는 점이다.
위의 제시된 프로세스들은 조직에 그대로 적용하기 보다는 조직에 내재된 개발 프로세스와 맞물려서 효율을 극대화할 수 있게 조정되어서 수용될 수 있다. 예를 들면 앞에서 말한 개발 초기 단계의 정보 수집 활동을 추가한 프로세스를 조직에서 수용할 수 있다.
본 게시물의 모든 저작권은 본인에게 있으며, 본 게시물의 일부 또는 전체를 인용할 시에는 반드시 출처를 밝혀야 합니다.
'Software Engineering' 카테고리의 다른 글
소프트웨어 신뢰성 관련 용어 정리 (0) | 2021.01.24 |
---|---|
Software Reliability Engineering (0) | 2021.01.24 |
Software Reliability Measurement Process (0) | 2021.01.24 |
Strategy for Software Reliability Improvement (0) | 2021.01.24 |
일반적인 소프트웨어 측도 (Measurement)의 유형 (0) | 2021.01.24 |