소개
품질을 높이는 활동으로
- 테스트
테스트는 코드 품질만 향상시킨다
- 리뷰
이래서 extreme programming이 좋다고 하셨다. 리뷰를 많이 하니깐
- 품질보증
즉 품질의 모델은(품질의 속성은) 작업 관점이 어디 있는가에 따라 달라질 수 있다.
고객 만족이 품질에 들어가 있기 때문에 요구사항을 더욱 명확하게 정해야 한다고 하셨다.
요구 사항을 잘 검토 하는것 자체가 품질 관리에 들어가 있다.
구체적인 설명이 필요한 속성들만 적어보면
효율성
- 성능이 좋지 않은 cpu와 적은 메모리로도 돌아가는가
재사용성
- 품질이 구조적인가
그동안 배웠던 결합도, 응집도, 디자인 패턴의 적용 유무 등
품질 특성
위에 있는 항목은 각각
- 품질 요소 : 사용자에 의한 외부 관점
- 품질 기준 : 개발자 측면의 내부 관점
- 메트릭 차원 : 품질을 제어
품질 요소 중 재사용성을 살펴보면 4가지 품질 기준과 연결 되어 있다.
- 구조적
전체 구조를 알아야 재사용이 가능하다 특히 디자인 패턴과 연관
- 간결성
- 장치 독립성
컨테이너와 같은 기술이 관련 있다
- 추적성
품질 모델
품질 모델에 대한 두가지 정의가 있다
- ISO
- IEC 9126
품질 속성
굉장히 많다
- 신뢰성
- 강인성
- 효율성
- 상호 운용성
- 유지 보수성
- 테스트 가능성
- 이식성
- 재사용성
- 모듈성
이렇게 많은 품질 속성들이 있는데 어디에 중점을 두어야 할거냐는 문제는
소프트웨어 유형에 따라 탄력적으로 바꿀 수 있다고 첨언하셨다.
예를 들어 임베디드 시스템은 자원이 한정적이기 때문에 효율성을 많이 따지고
상대적으로 증권 거래 시스템은 효율성 보다는 유지 보수성, 신뢰성에 중점을 둔다고 할 수 있다
추가적으로 품질 보증 조직에 대한 내용은 공감하기 어렵다며
특정 조직보다는 전사적인 노력이 필요하다고 하셨다
전통적인 품질 메트릭
팬 인은 나를 호출하는 모듈이 많아 책임이 과중하다는 뜻이고
팬 아웃은 내가 호출하는 모듈이 많아 상호작용을 이해하기 어렵고 유지보수가 어렵다는 뜻이다.
구현하기 위해
- LOC (line of code) 메트릭 : 원시코드 줄을 세기
- 싸이클로매틱 복잡도 메트릭 : 독립적인 경로 수
이 두 지표가 크다면 시스템이 좀 복잡하고 위험성이 높다고 평가 할 수 있겠다
프로세스 개선
품질을 유지하고 개선할때 다루는 사람 즉 조직의 성숙도가 어느정도인지 가늠하는 표준
- CMMI
- SPICE
CMMI 단계
제일 높은 단계가 5레벨인데
우리나라에서는 LG CNS, 삼성 SDS가 가장 먼저 5단계 성숙도 평가를 받았다고 한다.
학생들은 대부분 취업 전 2단계, 3단계를 경험한다고 한다.
(그런 것 같다)
그런데 마냥 5단계라고 해서 좋은 것은 아니라고 한다.
때로는 과감하게 어떤것을 혁신하고 바꾸고 싶지만 그런 유연성이 부족하다고 느껴질 수 있다고 한다.
그리고 무조건 사용자들이 만족하는 제품을 만드는 것을 뜻하는건 아니라고 한다.
SPICE
CMMI와 다르게 SPICE는 종목별로 나누어 놓은 것
CMMI는 종합 점수를 매긴 것이고
SPICE는 각 프로세스 별로 따로 평가한 것이다.
'CS > Software Engineering' 카테고리의 다른 글
[소프트웨어 공학] 10. 테스팅 추가 (0) | 2025.06.08 |
---|---|
[소프트웨어 공학] 10. 테스팅, 11. 유지보수 (0) | 2025.06.08 |
[소프트웨어 공학] 9. 코딩 (0) | 2025.06.06 |
[소프트웨어 공학] 8. UI 설계 (0) | 2025.06.06 |
[소프트웨어 공학] 7. 아키텍쳐와 패턴 (중요) (0) | 2025.06.06 |