이 글은 KMOOC에서 말하는 ‘소프트웨어 공학’을 듣고 강의를 요약해서 정리한 겁니다.
강의에서 배운 내용 중에 중요하다고 생각하는 부분과 꼭 알아야 할 개념을 중심으로 정리했습니다.
ㅇTL;DR = 소프트웨어 품질 :: 사용자 요구 사항 스펙 디자인 얼마나 잘 포함되는지, 실장이 얼마나 적합한지.그 밖에도 트랜센던탈 뷰 등이 있음 = 품질비용(CoQ) : : 페일리아를 requirement 단계에서 발견하면 1달러이지만, 출시 상태에서 발견하면 1000달러가 든다.
200 ~ 1000x . 디펙트를 발견하고 수정하는 비용=품질은 비기능 요구사항에서 나온다.
논펑셔널 리콰이어먼트 퀄리티·아트리뷰트·리콰이어먼트라고 한다.
=퀄리티 노력 일정을 단속할 수 없다.
품질 우선 순위를 정해서 최고 가치로 추진=세이프티::정상/이상 상황인 인간이 예측한 대로 소프트웨어는 작동해야 한다는 성질=리스크 관리;서프라이즈 요인을 줄이는 것. 위험부담이 커지기 전에 주의하라. 리스크=>플래블럼(현실화)=리스크 리덕션 레버리지(RRL) 값을 계산해 어느 것이 중요한지를 결정하는 방법.=위험은 원 타임 액티비티가 아니라 반복적으로 이뤄져야 한다
7-1 소프트웨어 퀄리티, 소프트웨어 품질
소프트웨어의 품질을 바라본 두 가지 관점이 있다.
1. 디자인 퀄리티 :: 사용자의 요구사항, 스펙, 시스템 디자인을 얼마나 잘 포함하고 있는지 2. 적합도 퀄리티 :: 구현이 얼마나 스펙, 시스템 디자인에 적합한지
이 밖에도 퀄리티를 보는 다양한 관점이 있다.
그중에서도 트렌센덴터 르뷰:정말 좋은데 뭐라고 표현할 수 없구나, 이런 요소들
구분하는 유니버설한 정의는 없다.
교수 왈 {{Error가 다른 페이스, 즉 동일한 페이스로 Verification 활동을 통해 필터링 되지 않고 다른 페이스로 발견됨을 Defect라고 합니다.
그래서 Requirement에서 삽입된 Eror가 Design 페이스에서 발견되었을 때 Defect라고 합니다.
그리고 코딩페이스에서 발견이 되었을 때도 역시 Defect라고 이야기를 합니다.
Error는 보통 하나의 페이스로 발생하는데 같은 페이스로 Filter 된 문제점들을 Error라고 하고, 다른 페이스로 Escape 되었을 때 발견된 것을 Defect라고 합니다.
Bug 는 일반적으로 Defect와 같은 의미로 많이 쓰입니다.
그런데 Fault는 Error와 Defect를 모두 합쳐서 Fault라고 하고, Failure는 시스템을 하드웨어에 업로드하여 운영하는 동안 시스템이 운영되는 동안 다른 단계로 이전할 수 없는 상태, 이러한 문제를 일으키는 것을 Software Failure라고 합니다.
}}
ㅇ품질비용(Cost of Quality; CoQ) :: 페일리아를 리콰이어먼트 단계에서 발견하면 수정하는데 1달러 밖에 들지 않지만, 소프트웨어가 출시된 상태에서 발견하면 1000달러가 소요된다.
일반적으로 200배에서 1,000배 정도 더 든다.
Defect를 발견하고 수정하려면 비용이 많이 든다.
이러한 Quality에 대한 비용을 Cost of Quality 또는 품질비용이라고 한다.
결함 수리는 반복적인 품질향 위를 통해서 가능하다 .ㅇ식스시그마에서 보는 품질비용 ::식스시그마는 CoQ를 분류하였다 식스시그마 전략이라고도 한다.
교육을 통해, 혹은 피어 리뷰 등을 통해 미리 고치면 품질 비용이 줄어든다.
한편, 발매 후, 문제를 고치는 비용은 많이 든다.
CMM 레벨이 높은 곳에서도 품질 비용이 저렴함 적은 비용으로 품질 좋은 소프트웨어를 만들 수 있다는 뜻이다.
프로세스가 최적화됐기 때문이다.