소프트웨어 품질의 구성요소



프로그래머라면 누구나 자신이 만든 소프트웨어의 품질이 우수하기를 바란다. 물론 우수한 소프트웨어의 특성이란 것은 사람마다 기준이 다를 것이다. 로버트 L. 글래스는 소프트웨어 품질의 특성으로 7가지 기준을 제시했다.


소프트웨어 품질이 우수하려면 다음 속성을 지녀야 한다.

- 신뢰성
- 효율성
- 인간 공학
- 이해 용이성
- 수정 용이성
- 테스트 용이성
- 이식성


뻔한 말들 같긴하지만, 하나하나 생각해보면 하나같이 만족시키기 어려운 문제들이다. (Paromix군에게만 어려운 문제일 수도 있지만.)
무작정 코드를 많이 짜보는 것도 실력향상에 많은 도움이 되긴하지만, 코드를 작성해 놓고 이정도만 스스로 리뷰해봐도(그리고 그에 맞게 리팩토링하는 것까지 하면 더 좋고) 꽤 소프트웨어 품질이 높아지는 것을 느낄 수 있을 것이다. 물론 다른 사람의 코드를 리뷰할 일이 있을 때에도 염두해두고 있으면 조금더 좋은 코드가 나올 수도 있고 말이지.


추가로 <익스트림 프로그래밍>에서 나온 설계의 단순성을 평가하는 네가지 기준.


1. 대상이 되는 독자에게 적당하다 : 그 설계를 가지고 일할 사람들이 이해하지 못한다면, 그들에게는 단순하지 않은 설계다.
2. 정보전달력 : 시스템의 요소들은 미래의 독자에게 의사를 전달한다.
3. 리팩터링되어 있다 : 종복된 논리나 구조가 있으면 코드를 이해하거나 수정하기 힘들다.
4. 최소성 : 위 세가지 제약안에서, 시스템 요소의 수를 할 수 있는 한 최소로 줄여야 한다.


공부하면 할수록 어려워지는구나. :D


"Paromix"

by Paromix | 2007/08/18 13:29 | □■ 프 로 그 램 ■□ | 트랙백 | 덧글(10)

트랙백 주소 : http://paromix.egloos.com/tb/3700320
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 스팟 at 2007/08/18 14:15
이론와 현실의 괴리를 벗어나게 하는 것이 우리의 몫이겠죠 ^^
Commented by Paromix at 2007/08/19 15:03
스팟 님 // 이론과 현실.. 너무 멀어요..^^ 역시 직접 부딪쳐보지 않고는 모르는게 너무 많다니까요.^^
Commented by Rosa at 2007/08/20 07:49
이런거 하는 사람들 보면 머리가 진짜로 좋은것 같습니다..
Commented by Paromix at 2007/08/21 02:48
Rosa 님 // 전 그림그리시는 Rosa님 보면 너무 멋져보이는 걸요.^^
Commented at 2007/08/21 10:42
비공개 덧글입니다.
Commented by Paromix at 2007/08/22 01:19
비공개 님 // 너무 미워하진 마세요.^^;;;;
Commented by 아라비카 at 2007/10/15 17:41
'소프트웨어 컨플릭트 2.0'의 우수한 품질의 소프트웨어 속성에 대한 내용은 ISO 9126을 인용한것 같습니다. ISO 9126에서는 다음과 같이 소프트웨어 품질 특성을 정의 하고 있습니다.

소프트웨어 품질특성

기능성 : 적합성, 정확성, 상호운용성, 보안성, 준수성
신뢰성 : 성숙성, 오류허용성, 복구성, 준수성
사용성 : 이해성, 습득성, 운용성, 친밀성, 준수성
효율성 : 시간반응성, 자원효율성, 준수성
유지보수성 : 해석성, 변경성, 안정성, 시험성, 준수성
이식성 : 적응성, 설치성, 공존성, 대체성, 준수성

참고로 ISO 9126을 기반으로 한 ISO 14598은 SW품질측정에 대한 실질적인 평가 절차 및 상황에 대한 표준을 제시하고 있고, ISO 12119에서는 일반적인 SW 품질 요구사항에 대한 패키지 품질평가에 대해서 다루고 있습니다.

ps : 좋은글 잘보고 갑니다~
Commented by Paromix at 2007/10/17 02:31
아라비카 님 // ISO 스펙은 공개되지 않은 스펙이라서 살펴볼 기회가 없었는데, 좋은 정보 감사드려요.^^ 블로그에는 자주 놀러 가도록 하겠습니다.^^
Commented by 아라비카 at 2007/10/18 11:12
저도 전체적으로 문서를 본적은 없지만 중요한 내용들은 여기저기서 확인가능 합니다~
그래도 표준인데 공개가 안되어 있진 않을것 같네요 ^^; (저도 원문? 을 본적은 없습니다.. 그냥 써치하다 보니.. 조금씩 알게된..)

위키피디아를 활용하시면 좋을듯 싶네요 ^^;

ISO 9126 : 소프트웨 품질 특성 정의 http://en.wikipedia.org/wiki/ISO_9126
ISO 12207 : 소프트웨어 SDLC 정의 , http://en.wikipedia.org/wiki/ISO_12207
ISO 15504 (SPICE) : SW품질 보증을 위해 ISO 12207의 틀을 기반으로 개발/확장된 소프트웨어 개발 프로세스 수행능력 평가모델..
ISO 12119 : SW 패키지 품질 평가
ISO 14598 : SW 품질 평가 , ISO 12207, ISO 9126과 ISO 12119를 기반으로 품질 평가 한다고 볼수 있죠,..

ps : 이쪽 분야 관심 있어 하시는거 같아서 몇자 적고 갑니다. ^^;
Commented by Paromix at 2007/10/20 16:58
아라비카 님 // 아..^^ 공개는 되어있는데 무료가 아니라서요. 하핫.^^ 위키에 참고할 만한 내용정도는 나와있군요. 감사합니다.^^ 소프트웨어 공학에 관심이 있기도 하긴하지만, 그냥 소프트웨어 품질 자체에 관심이 좀 많아요. 아직 많이 배워야겠죠.^^

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶