ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Software Quality Models and Philosophies
    학교생활/소프트웨어디자인패턴 2023. 9. 7. 16:19
    728x90

    다양한 퀄리티 모델 개론

    1. 학습 목표

    • SW 퀄리티와 퀄리티 모델에 대한 의논해본다.
    • '퀄리티' 란 무엇인지 정의한다.

     

    2. 퀄리티란

    정의는 크게 두 분류로 나뉜다.

    1) Conformance to specification 사양의 적합성 - 사전에 정의한 사양/규정요건을 충족한가?

    2) Meeting customer needs 고객 만족도 충족성 - 고객의 합리적이고 구체적인 요구사항을 충족하는가?

    예) 레스토랑에 간 상황 [1]

    1) 사양의 적합성 - '돈을 좀 아낄 건데..' 이 요구를 충족시킬 음식이었나?
    2) 고객 만족도 충족성 - 음식은 맛있었나? 웨이터는 좋은 서비스를 제공했나? 음식은 돈값(혹은 그 이상)을 하는가? 주차공간은 충분했나?

     

    3. 학자들의 의견

    3.1. Philip B. Crosby

    퀄리티는 말그대로 "사양의 적합성" 으로 정의된다.

    3.2. Walter Edwards Deming

    고객의 만족 (사양의 적합성보다 넓은 정의)

    3.3. Armand Vallin Feigenbaum

    품질은 고객의 측면에서 정의되어야 하며, 실제+예상 요구를 모두 충족해야 하며, 요구는 항상 변화하므로 품질은 변화하는 요구에도 들어맞는 역동적인 개념이어야 한다.

    3.4. Kaoru Ishikawa

    품질은 "고객의 요구에 부응" 해야한다. 또한  고객의 요구, 요구, 기대가 지속적으로 변화함에 따라 동적인 개념이다. 품질에 대한 속성으로 그 가격을 포함시키고 있습니다.(과대평가된 제품은 고객을 만족시킬 수 없다.)

    3.5. Joseph M. Juran

    고객을 만족시키는 것은 어렵다. (사양의 적합성을 옹호)

    사용 목적에 따라 어떻게 만들어야 하는지가 다름

    3.6. Walter A. Shewhart

    사양의 적합성(객관적)와 고객 만족도 충족성(주관성) 모두를 퀄리티라고 한다.

     

    4. 퀄리티 모델

    4.1. McCall's

    더보기

     

    • 제품 운영(Product Operation)

        • 정확성(Correctness) • 효율성(Efficiency) • 무결성(Integrity) • 신뢰성(Reliability) • 사용성(Usability)
    • 제품 개선(Product Revision)

        • 유비 보수성(Maintainability) • 유연성(Flexibility) • 테스트(용이성)(Testability)

    • 제품 변환(Product Transition)
        • 상호운용성(Interoperability) • 재사용성(Reusability) • 이식성(Portability)

     

     

    4.2. Boehm's

    더보기

    • 이식성(Portability): 장치 독립성, 자체 포함성

    • 신뢰성(Reliability): 자체 포함성, 정확성, 안정성, 강건성/무결성, 일관성 

    • 효율성(Efficiency): 책임성, 장치 효율성, 접근성
    • 인간공학성(Human Engineering): 강건성/무결성, 접근성, 통신성
    • 테스트성(Testability): 책임성, 접근성, 통신성, 자체 기술성, 구조성
    • 이해성(Understandability): 일관성, 자체 기술성, 구조성, 간결성, 가독성 • 수정(변경)성(Changeability): 구조성, 증가성

     

    교수님 曰: 품질 평가 기준을 도입한 초기 모델은 한번 보자. 초기 모델은 후대 모델들의 기초가 되었기 때문이다.


    4.3. FURPS/FURPS+

    더보기

    ** 이 내용은 OOAD(객체지향 분석 및 설계) 에서도 다룬다. 한번쯤 읽어두자.

     

    Fuctionality 기능 – 기능 세트, 기능 및 보안을 포함할 수 있음

    Usability 인적 요소, 심미성, 사용자 인터페이스의 일관성, 온라인 및 컨텍스트를 포함할 수 있음 - 민감한 도움말, 마법사 및 에이전트, 사용자 설명서 및 교육 자료

    Reliability 고장 빈도 및 심각도, 복구 가능성, 예측 가능성, 정확성 및 평균 고장 간격(MTBF)

    Performance 성능 - 속도, 효율성, 가용성, 정확성, 처리량, 응답 시간, 복구 시간, 리소스 사용량 등과 같은 기능적 요구 사항에 대한 조건을 부여합니다

    Supportability 지원 가능성 - 테스트 가능성, 확장성, 적응성, 유지보수성, 호환성, 구성성, 서비스성, 설치성, 현지화성(국제화)

    4.4. Dromey's

    4.5. ISO

     

     

    출처

    [1] https://elsmar.com/elsmarqualityforum/threads/customer-needs-vs-conformance-to-specification.52662/


     

    생각해볼 질문

    Q. 

    Software에서 high quality 란 무엇인가? 

    어떻게 하면 high quality software 를 만들 수 있는가? 

    Quality model 과는 무슨 관계가 있는가? 설명하라.


    '소프트웨어디자인패턴' 과목을 들어가기에 앞서 Quality 가 무엇인지 배우는 이유는 무엇일까?

     

    산업화 이전에 모든 공정은 수공업으로 이루어져 있었다. 산업화로 인해 근대식 공장이 들어서고, 이는 수공업의 쇠퇴와 자동화의 출현을 의미한다.

    그럼, 자동화와 Quality 는 무슨 상관관계가 있을까?

     

    Ford 자동차회사가 공장화되며 작업들이 자동화 될 때, (교수님 생각) 그 시절 가장 중요했던게 표준화였다.

    * Ford는 최초로 자동차를 대량생산할 수 있는 생산라인을 개발 및 도입한 회사로 유명하다.

        ex) 너트에 맞는 볼트, 엔진에 맞는 피스톤 ...

    표준화를 하게되면 여러 종류의 너트들을 하나로 통일해야 하는데, 그럼 뭔가 기준이 있어야 할 것이다.

    기준은 어떻게 정할 것인가?

     

    기준을 정하기 이전에 측정이 있어야 한다. 그리고 측정은 서양 기술의 핵심이기도 하다.

    '달다' 는 기준이 되지 못하고 측정할 수 없다. 반면 '브릭스'를 기준으로 당도를 측정할 수 있게 되었다.

        ex) 소리의 기준 데시벨, 날씨를 측정하는 온도, 바람의 기압 ... 

     

    결국, 측정을 통해 기준이 생기고 표준화가 가능해지면서 자동화를 통해 상품의 균질화가 가능해졌다!

    또한, 공정을 반복하며 퀄리티를 향상시킬 수 있다. (Quality Control)

     

     

    다시 SW로 돌아와보자.

    SW 에서도 이런게 가능할까? 한다면 어떻게 할까?

    SW 도 마찬가지로 측정이 있어야 할 것이다.  측정하지 않으면 이해할 수 없고, 컨트롤할 수 없고, 향상시킬 수 없다.

    그래서 여러 gurus 들은 각자 SW 퀄리티란 무엇인지 정의를 내리고, 퀄리티 모델은 품질 평가 기준을 도입했다. 그리고 이 기준을 통해 퀄리티를 평가하곤 한다.

    (앞서 정리한) Quality Model 은 어떤 것이 있나 살펴보고, 품질 평가 기준을 도입한 초기 McCall's 와 Boehm's 모델은 한번 보자. 초기 모델은 후대 모델들의 기초가 되었기 때문이다.

    표준화 -> 퀄리티 측정 -> 표준과 비교 -> 피드백

     

     

     

    728x90

    '학교생활 > 소프트웨어디자인패턴' 카테고리의 다른 글

    Strategy Pattern  (0) 2023.10.15
    SOLID Principles  (0) 2023.10.13
    Agile Design  (0) 2023.10.05
    Overview of XP with Planning, Testing and Refactoring  (0) 2023.09.21
    Software Quality with OOP Concepts  (0) 2023.09.15
Designed by Tistory.