클린룸 소프트웨어 엔지니어링

Cleanroom software engineering

클린룸 소프트웨어 엔지니어링 프로세스는 인증 가능한 수준의 신뢰성을 갖춘 소프트웨어를 생산하기 위한 소프트웨어 개발 프로세스다. 클린룸 공정은 원래 할란 밀스IBM의 앨런 헤브너를 포함한 그의 동료들에 의해 개발되었다.[1] 클린룸 공정의 초점은 결함 제거보다는 결함 예방에 있다. '클린룸'이란 명칭은 반도체 제조 과정에서 결함이 유입되는 것을 막기 위해 전자산업에서 사용하는 클린룸을 환기하기 위해 선택됐다. 클린룸 공정은 1980년대 중후반에 처음 사용되었다. 군 내부의 데모 프로젝트는 1990년대 초에 시작되었다.[2] 최근 클린룸 공정에 대한 연구는 CSP에 표시된 사양에 의해 제공되는 자동화된 검증 기능을 가진 퓨전 클린룸을 검토했다.[3]

중심원리

클린룸 프로세스의 기본 원칙은

공식적인 방법에 기반한 소프트웨어 개발
일부 수학적 형식주의에 기초한 소프트웨어 도구 지원에는 모델 검사, 프로세스 알헤브라스, 페트리 그물 등이 포함된다. 박스 구조 방법은 소프트웨어 제품을 지정하고 설계하는 수단 중 하나일 수 있다.[4] 설계가 규격을 올바르게 구현하는지 검증은 종종 소프트웨어 도구 지원을 통해 팀 검토를 통해 수행된다.
통계적 품질 관리 하에 증분 구현
클린룸 개발은 반복적 접근법을 사용하며, 제품이 점진적으로 구현된 기능성을 증가시키는 증분 방식으로 개발된다. 각 증분의 품질을 사전 설정된 표준에 대해 측정하여 개발 프로세스가 허용 가능한 방식으로 진행되고 있는지 검증한다. 품질 표준을 충족하지 못하면 현재 증분에 대한 시험이 중단되고 설계 단계로 되돌아간다.
통계적 음향 테스트
청정실 공정에서의 소프트웨어 시험은 통계 실험으로 실시한다. 공식적인 규격에 기초하여 소프트웨어 입출력 궤적의 대표적인 서브셋을 선택하고 시험한다. 그런 다음 이 표본을 통계적으로 분석하여 소프트웨어의 신뢰성과 그 추정치에 대한 신뢰도 수준을 산출한다.

참조

  1. ^ Mills, H.; M. Dyer; R. Linger (September 1987). "Cleanroom Software Engineering" (PDF). IEEE Software. 4 (5): 19–25. doi:10.1109/MS.1987.231413. S2CID 383170.
  2. ^ Foreman, John (2005). "Cleanroom Software Engineering Reference". Software Technology Roadmap. Software Engineering Institute (SEI). Retrieved 2006-04-27.
  3. ^ Guy H. Broadfoot and P. J. Hopcroft (2005). "Introducing formal methods into industry using Cleanroom and CSP". Dedicated Systems e-Magazine. S2CID 14066854. {{cite journal}}: Cite 저널은 필요로 한다. journal= (도움말)
  4. ^ Linger, R. (April 1994). "Cleanroom Process Model". IEEE Software. 11 (2): 50–58. CiteSeerX 10.1.1.130.8642. doi:10.1109/52.268956. S2CID 206447346.

추가 읽기

  • Stavely, Allan (1999). Toward Zero-Defect Programming. Addison-Wesley.
  • Stacy J. Prowell and Carmen J. Trammell and Richard C. Linger and Jesse H. Poore (1999). Cleanroom Software Engineering: Technology and Process. Addison-Wesley.
  • Jesse H. Poore and Carmen J. Trammell (1996). Cleanroom Software Engineering: A Reader. NCC Blackwell.

외부 링크