다섯 살도 알 수 있게 · SW공학

좋은 소프트웨어의 조건이 뭐예요?

예쁘기만 해도, 내용만 꽉 차도 좋은 책은 아니에요 — 여러 조건을 함께 갖춰야 하는 이야기예요.

재밌으면 좋겠어요안 망가졌으면 해요읽기 쉬웠으면 해요독자마다 책에게 바라는 게 다 달라요

독자마다 책에게 바라는 게 다 달라요.좋은 책은 독자들의 이 모든 바람에 답해야 해요.

표지는 예쁜데 내용이 틀려요맞는 말인데 너무 어려워요예쁘지만 틀린 책도, 맞지만 어려운 책도 "좋은 책"은 아니에요

한 가지만 잘해서는 좋은 책이 아니에요.예쁘지만 틀린 책도, 맞지만 어려운 책도 "좋은 책"은 아니에요.

좋은 소프트웨어 = 여러 품질 조건을 같이 갖춘 것한 조건만 뛰어나선 안 되고, 조건들 사이 균형이 핵심이에요

좋은 소프트웨어 = 여러 품질 조건을 같이 갖춘 것이에요.한 조건만 뛰어나선 안 되고, 조건들 사이 균형이 핵심이에요.

기능성필요한 내용이 다 있어요
신뢰성오탈자·오류가 적어요
사용성읽기 쉽고 이해가 돼요
유지보수성다음 판 고치기가 쉬워요
품질 조건 여섯 가지(ISO 9126 기준)기능성 — 필요한 내용이 다 있나신뢰성 — 오류 없이 버티나사용성 — 읽기 쉬운가효율성 — 불필요하게 두껍지 않나유지보수성 — 다음 판 고치기 쉬운가이식성 — 다른 판형으로 옮기기 쉬운가

품질 조건은 크게 여섯 가지로 나눠요.효율성과 이식성도 좋은 책의 숨은 조건이에요.

예쁘기만 하면: 내용이 부실해요내용만 꽉 차면: 아무도 못 읽어요한쪽만 챙기면 결국 둘 다 좋은 책이 아니에요 — 균형이 핵심이에요

한쪽으로 치우쳐도 좋은 책은 아니에요.여섯 조건 사이의 균형이 좋은 소프트웨어의 진짜 조건이에요.

한 줄로

좋은 소프트웨어 = 기능성·신뢰성·사용성·효율성·유지보수성·이식성, 이 여섯 가지 품질 조건을 어느 하나도 놓치지 않고 균형 있게 갖춘 것.

ISO/IEC 9126과 그 후속인 ISO/IEC 25010 같은 소프트웨어 품질 모델은 품질을 여러 특성으로 나누어 정의해요. 기능성(필요한 기능을 제공하는가), 신뢰성(오류 없이 안정적으로 동작하는가), 사용성(사용자가 쉽게 쓸 수 있는가), 효율성(자원을 낭비 없이 쓰는가), 유지보수성(변경이 쉬운가), 이식성(다른 환경으로 옮기기 쉬운가)이 ISO/IEC 9126의 여섯 특성이고, ISO/IEC 25010은 여기에 보안·호환성을 더했어요. 좋은 소프트웨어는 이 특성들을 프로젝트 맥락에 맞게 균형 있게 갖춘 것이에요.

어른들은 이렇게 불러요

ISO/IEC 9126·25010
ISO/IEC 9126 and 25010
품질 조건을 정리해둔 국제 표준. 여섯 조건은 9126의 분류이고, 후속 표준 25010은 보안·호환성을 더했어요.
기능성
Functionality
책에 필요한 내용이 다 있는가. 가장 먼저 눈에 띄는 조건이에요.
신뢰성
Reliability
오류 없이 버티는가. QA/QC가 직접 돌보는 영역이에요.
사용성
Usability
읽기 쉽고 이해가 되는가. 독자 관점에서 가장 체감이 커요.
효율성
Efficiency
불필요하게 두껍지 않은가. 자원을 아끼는 쪽 조건이에요.
유지보수성
Maintainability
다음 판 고치기가 쉬운가. 결합도/응집도와 바로 연결돼요. → 챕터가 서로 얼마나 엮여있나
이식성
Portability
다른 판형으로 옮기기 쉬운가. 전자책 전환 같은 상황에서 중요해요.
아키텍처 평가(ATAM/CBAM)
Architecture Evaluation (ATAM/CBAM)
이 조건들의 트레이드오프를 미리 점검. 설계 단계에서 품질 조건을 저울질하는 방법이에요. → 출간 전 시나리오 리허설
다음 이야기
인쇄기를 중간상인 없이 바로 사기 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →