System Quality#

Quality Attribute Tree는 소프트웨어 및 임베디드 시스템 설계 시 비기능 요구사항을 체계적으로 분류하고, 설계/구현/운영 상의 의사결정 기준을 명확히 하기 위한 도구입니다.

전체 트리 구조#

System Quality Attributes
├── Functionality (기능성)
│   ├── Correctness (정확성)
│   └── Interoperability (상호운용성)
│
├── Reliability (신뢰성)
│   ├── Fault Tolerance (결함 허용)
│   ├── Availability (가용성)
│   └── Recoverability (복구성)
│
├── Performance (성능)
│   ├── Response Time (반응 시간)
│   ├── Throughput (처리량)
│   └── Resource Usage (CPU, RAM, Flash)
│
├── Maintainability (유지보수성)
│   ├── Modularity (모듈화)
│   ├── Readability (가독성)
│   ├── Testability (테스트 용이성)
│   └── Analyzability (분석 용이성)
│
├── Portability (이식성)
│   ├── Hardware Independence (HW 독립성)
│   └── OS / Toolchain Compatibility (도구 호환성)
│
├── Scalability (확장성)
│   ├── Functional Scaling (기능 확장)
│   └── Resource Scaling (하드웨어 확장)
│
├── Security (보안성)
│   ├── Confidentiality (기밀성)
│   ├── Integrity (무결성)
│   └── Authentication / Authorization (인증/인가)
│
├── Usability (사용성)
│   └── CLI, Web UI, Monitoring Tooling
│
└── Robustness (견고성)
    ├── Error Containment (오류 격리)
    └── Fail-Safe Behavior (안전한 실패)

각 특성 설명 및 임베디드 시스템 적용 예시#

품질 특성

설명

임베디드 시스템 예시

신뢰성 Reliability

주어진 시간 동안 오류 없이 동작할 확률

72시간 연속 동작 보장

복구성 Recoverability

오류 후 빠르게 정상 상태로 복귀하는 능력

watchdog 기반 재부팅

가용성 Availability

시스템이 운영 가능한 시간의 비율

연간 99.9% uptime 보장

성능 Performance

응답 시간, 처리량, 자원 사용 효율

100ms 이내 릴레이 응답

유지보수성 Maintainability

코드 변경 및 점검의 용이성

계층 구조, 단위 테스트 구성

이식성 Portability

다양한 HW/OS로 이전 가능성

ESP32 외 다른 MCU 적용 가능성

확장성 Scalability

기능 또는 자원 요구 증가 대응력

다채널 충전, 데이터 로깅 추가

보안성 Security

무단 접근, 위변조 방지

TLS, ID 검증, 인증서 기반 보안

견고성 Robustness

예외 상황에서 안전하게 실패

릴레이 강제 차단, 전압 과다 시 차단