CS/Software Engineering

[소프트웨어 공학] 12. 품질

grammiboii 2025. 6. 8. 22:59

소개

품질을 높이는 활동으로 

- 테스트

   테스트는 코드 품질만 향상시킨다

- 리뷰

   이래서 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는 각 프로세스 별로 따로 평가한 것이다.