소프트웨어 공학 Lecture #11: 품질 보증

Slides:



Advertisements
Similar presentations
SM200 우리의 상품을 세계로 해외사업부영업관리부관리부선적관리부 2 SM200 핸드폰 해외 판매 전략.
Advertisements

SW Testing Foundation 교육 1 일 기술 2G 배경호. Test in Life Cycle Request STATIC DYNAMIC Design Code Compo nent Integra tion System Accept ance.
직무에 대한 이해 및 직무정보 탐색 임영찬 취업강사 ‘ 이공계성공취업스토리 ’ 운영자, ‘ 뽑히는이공계취업 ’ 저자.
언어의 자서전 소단원 (1) 단원. 언어의 특성 기호성 자의성 사회성 규칙성 창조성 역사성.
근로조건 저하 없는 근로시간 단축 쟁취 work-shop 2005 년 2 월 24 일 ~25 일 청평풍림콘도 강사 : 기획실장 오 병 철 전국식품산업노동조합연맹.
기술개발과 신뢰성평가연계 산업자원부 기술표준원 신뢰성의 개념 (1) “ 제품에 대한 믿음의 정도 ” 에서 출발한 개념으로, 하나의 제품을 얼마나 오랫동안 사용할 수 있는가를 정량적 수치로 표현 Blue Box 제품고장빈도, 초기성능, 중고평판 축적 신뢰성있는.
1. 던전 디자인 개요_1 1. ‘던전’ 룬스톤은 던전 한 층에도 여러 개가 존재하며, 각 룬스톤 마다 영향을 미치는 범위가 설정되어 있다. 룬스톤이 영향을 주는 범위에 일정시간 사용자가 위치해 있게 되면 사용자 캐릭터는 ‘유령화’ 되어 버리기 때문에, 사용자는.
경남이의 백제역사문화탐방 진주시청소년수련관.
변비 재활전문센터 재활 간호사 김은화.
Safety Instrumented System 연구발표
1장 품질경영의 기본개념 ▶ 경영시스템 INPUT OUTPUT CUSTOMER VALUE ADDED ▶ 품질통제문제
우리아이의 미래를 행복하게 만듭니다.
Q & A (사실상 혼인·이혼) Q. 사실상 혼인·이혼 관계를 어떻게 처리해야 하나요?   사실 혼인·이혼은 부부 모두 동의 여부를 확인하고, 자녀, 이·통·반장으로부터 「사실(이)혼 확인서」를 징구해야 합니다. 만약 어느 한쪽이 동의하지 않는 경우는.
6σ 연계 TPM 추진 안내서 TPM컨설턴트/공학박사/품질기술사 권오운 6σ 연계 TPM 추진 안내서 전체편 6 σ T P M
상관분석(Correlation Analysis)
6 Sigma 개선 프로세스 6 Sigma 개선 기대효과 6 Sigma 개선 필요성 6 Sigma의 전사적 추진전략
2-1. 제조업과 정보기술 1)정보기술 구성요소 ①제조업에서 요구되는 정보기술 구성 요소
소프트웨어 공학 (Software Engineering)
Operating Systems Overview
International Certification Center co., Ltd
제13장 종합적 설비관리 마스터 제목 스타일 편집 공업경영과 경제 마스터 텍스트 스타일을 편집합니다 둘째 수준 셋째 수준
Internet Computing KUT Youn-Hee Han
순환&면역 6조 박아름 이명동 최제춘.
기본적 7 QC 도구 새로운 7 QC 도구\ 실험계획 신뢰성 FMEA 통계적 품질관리.
C++ 프로그래밍 2009년 2학기 전자정보공학대학 컴퓨터공학부.
C++ 프로그래밍 2007년 1학기 전자정보공학대학 컴퓨터공학부.
감독자의 역할 과 비전.
ISO/TS 품질경영시스템
6시그마 경영개념 소개.
시스템 평가와 문서화 6.1 시스템 평가 6.2 시스템 도입 평가 6.3 시스템 문서화.
정도보증/정도관리 (QA/QC) 수질분석과 양정고.
7. 자극과 반응 7-2. 신경계 3. 여러 가지 반응.
시스템 분석 및 설계.
제 3 장 품질 경영.
소프트웨어 공학 (Software Engineering) 품질 보증 (Quality Assurance)
10.1 품질 개념 10.2 품질 보증 활동 10.3 프로세스 품질 10.4 프로덕트 품질 측정 10.5 인스펙션
10장: 품질 보증 - Software Engineering -.
소프트웨어 소프트웨어란? 소프트웨어의 특성 프로그램과 프로그램의 개발, 운용, 유지보수에 필요한 관련 정보 일체
9.1 소 개 9.2 유지보수의 특성 9.3 소프트웨어 형상 관리 9.4 소프트웨어 척도 9.5 유지보수 방법 및 도구
Lecture 01: Compiler Overview
소프트웨어 공학 (Software Engineering)
인도 SW기업의 동향과 최근 사업내용 사례조사
소프트웨어 공학 (Software Engineering)
2011년 7월 상품판매 방향 Agt교육용 부산AM사업단 부산AM2팀장 김 희 경 -고맙습니다~ 사랑합니다~ 성공합시다~-
소프트웨어 공학 (Software Engineering)
소프트웨어와 소프트웨어 개발 - Software Engineering -.
조세의 형평성 함의: 조세의 귀착 Chapter 19
운영체제 발표자료 B반 최민웅.
삼안 인트라넷 메뉴얼.
제 5 장 ISO 9000 개요 및 QMS의 확립 및 활용 ISO 9000 개요 및 QMS 확립 및 활용방법.
우리나라의 수자원 물 보기를 금같이 우리나라의 수자원 현황 우리나라의 수자원 이용 현황.
터미널 하역장비 예지정비 발표 : KL-NET 홍순근 참여 : 한국정보화진흥원 김성현.
마음의 성전이 더 아름다운 조촌교회.
지역의 자연 환경과 인문환경 조사 사회 1학년 1학기 Ⅰ.지역과 사회 탐구>1.지역사회의 지리적 환경(3/6
1.비 사업용(자가용 및 관용) 차 종 적 용 상 의 구 분 승합 자동차 (버스) 1 종
기업과 경영 제 8 장 생산운영관리.
2015년 2학년 1반.
ISO규격에의 대응과 도입 Know-how ㈜드림힐
직장생활 예절 ① - 인사 1.내가 먼저 [인사의 5point] 2.상대방의 눈을 보고 미소지으며 3.상대방에 맞춰서
(제작자: 임현수)모둠:임현수,유시연,유한민
후원단체 참여제안서.
(Ⅰ) 독서와 언어의 본질 언어의 본질 1 2 [고등 국어] – 독서와 문법 독서의 본질 (1) 독서의 특성
고객만족과 커뮤니케이션스킬 인간에게 있어 가장 중요한 능력은 자기표현능력이며 현대의 경영이나 관리는 커뮤니케이션의 능력에 의해서 좌우된다. - 피터 드러크 앞으로 기업의 성패는 커뮤니케티견의 갈들을 얼마나 줄이느냐에 달려있다. - 빌 게이츠 21세기 전문가가 갖추어야.
이미지 지금 아니면 언제 사용하지? 소멸알림톡 페이지 여행은 이거 하나면 돼! 없는 거 빼곤 다 있다!
유체역학 마이크로마노미터의 이론과 공식을 설명하라. 환경공학과 김기복.
(Software Maintenance)
4M: Man, Machine, Material, and Method 그림 14.1 그림 14.4
공차 및 끼워맞춤.
2017년 생활안전구조차 규격서 (그랜드스타렉스 3밴) 생활안전.
품질 우선 주의 - 롯데칠성                       식품영양학과 최경하 바이오식품소재학과 이상재.
Presentation transcript:

소프트웨어 공학 Lecture #11: 품질 보증 최은만 저 6차 개정판 1

학습 목표 소프트웨어 품질 품질 측정 방법 품질 보증 활동 확인 및 검증 기법 프로세스 개선 품질 보증 도구

객체지향 기술 소프트웨어 품질 보증(software quality assurance) 개별 작업과 병행하여 품질에 관한 작업, 즉 표준을 정하고, 품질을 보증하는 작업, 품질 표준에 맞는지 체크하는 작업이 이루어져야 함 보호활동(umbrella activity) 프로젝트 관리, 문서화, 품질 보증 등의 작업 품질 보증(quality assurance) 소프트웨어 프로젝트의 프로세스와 프로덕트에 대한 품질을 관리하고 향상시키는 작업 품질 관리(quality control) 생산된 제품이 요구사항에 부합되는지를 확인하고 잘못되었을 때 원인을 규명하여 설계나 생산 및 조립 방법을 수정

11.1 소프트웨어 품질 소프트웨어 품질 복합적인 요소가 포함된 다중 개념(multi-dimensional concept) 소프트웨어를 사용하는 관점, 개발하는 관점, 발주하는 관점 모두 중요하게 생각하는 품질 특성이 다름

품질의 의미 넓은 범주에서 보면 고객만족의 차원으로 생각 좁은 의미에서 보면 개발자의 입장으로 국한 개발자가 생각하는 품질 : 소프트웨어가 요구를 만족하느냐 못하느냐

품질 속성 소프트웨어 품질 속성(quality attribute) 소프트웨어 품질 관련 측면을 나타내고 특징짓는 속성

품질 속성 소프트웨어의 품질의 특성은 세가지 차원이 존재 품질 요소(factor) : 사용자에 의한 외부 관점 품질 기준(criteria) : 개발자 측면의 내부 관점 메트릭 차원 : 품질을 제어

품질 속성 ISO/IEC 9126 ISO와 IEEE에서는 품질 속성의 계층을 다르게 정의 소프트웨어가 가질 수 잇는 여러 가지 품질 특성을 정의 ISO에서는 여섯 가지의 품질 특성을 정의 ISO와 IEEE에서는 품질 속성의 계층을 다르게 정의

품질 속성 신뢰성(reliability) – 소프트웨어에 요구된 기능을 명시된 조건 하에 실행하여 정확하고 일관성 있는 결과를 생성하는 능력 강인성(robustness) – 소프트웨어에 요구된 기능을 어렵거나 예외적인 환경에서 수행할 능력 효율성(efficiency) – 소프트웨어에 요구된 기능을 최소의 시간과 자원을 사용하여 원하는 결과를 생성하는 능력 상호운용성(interoperability) – 소프트웨어가 다른 소프트웨어와 정보를 교환하는 능력 유지보수성(maintainability) – 소프트웨어가 수리 및 진화될 수 있는 성질

품질 속성 테스트가능성 – 소프트웨어에 요구된 또는 적용될 수 있는 모든 형식의 평가 인스펙션, 동료검토, 화이트박스 테스팅, 블랙박스 테스팅 등 이식성(portability) – 소프트웨어가 여러 운영 환경 및 플랫폼에서 실행될 수 있도록 변형이 가능한 성질 재사용성(reusability) – 소프트웨어가 확장이나 커스텀화 없이 유사한 또는 다른 배경에서 사용될 수 있는 성질 모듈성(modularity) – 소프트웨어가 모듈 컴포넌트의 통합이나 조정을 쉽게 만드는 성질

소프트웨어 유형과 품질 소프트웨어 유형에 따른 품질 특성 중요도의 차이

11.2 품질 측정과 메트릭 소프트웨어 측정(software measurement) 소프트웨어 속성의 객관적이고 정량적인 평가 소프트웨어 메트릭(software metric) 표준화된 소프트웨어 측정 방법

품질 측정과 메트릭의 유용성 품질 측정과 메트릭 지표의 정의와 사용 중요한 부분에 자원을 투입 요구분석, 설계, 구현, 문서화가 포함된 소프트웨어의 정량적인 평가 지표의 정의와 사용 지표 – 상대적 의미가 있는 값의 범위 중요한 부분에 자원을 투입 유사 프로젝트와 시스템을 정량적으로 비교 개선의 정량적인 평가 기술의 객관적인 평가 프로세스 개선의 객관적인 평가

전통적인 품질 메트릭 전통적인 품질 메트릭의 일부

전통적인 품질 메트릭 전통적인 품질 메트릭의 일부

전통적인 품질 메트릭 요구 메트릭(R) 요구의 비모호성(unambiguity) 요구 완전성 메트릭 – 요구 명세서에 기술된 시스템의 상태와 시스템에 대한 외부자극이 완전하다는 가정에 근거 SRS – 시스템의 모든 가능한 상태와 모든 가능한 외부자극을 포함 f함수가 완벽하게 매핑된다면 SRS는 완벽한 것으로 간주

전통적인 품질 메트릭 설계 메트릭 모듈 설계 복잡도(mdc(M)) 선택 복잡도(S0) M0-M7 – 모듈 화살표 – 모듈 호출 다이아몬드 화살표 – 분기 호출 모듈 설계 복잡도(mdc(M)) mdc(M) = d + 1 d : M이 가진 다이아몬드의 수 다이아몬드 : 이진 조건의 분기 선택 복잡도(S0) S0(leaf) = 1, 각 단말 노드는 하나의 서브트리 S0(M) = 𝒊=𝟏 𝒏 𝑺𝟎 𝑴 𝒊 +𝒎𝒅𝒄(𝑴) M : 𝑴 𝒊 (i=1,2,…n) 모듈들을 호출

전통적인 품질 메트릭 M4~M7의 S0 = 1 M1 모듈복잡도 모듈 설계 복잡도 모두 단말 노드 S0(M1) = S0(M4)+S0(M5)+mdc(M1) = 1+1+1 =3 M1은 분기가 없기 때문에 mdc 값이 1 모듈 설계 복잡도 S0(M) = 𝑵 𝒅𝒎 + 𝑵 𝒂𝒅𝒃 𝑵 𝒅𝒎 : 모듈의 개수 𝑵 𝒂𝒅𝒃 : 선택적 모듈을 호출하는 분기의 수

전통적인 품질 메트릭 구현 및 시스템 메트릭 구현 메트릭 시스템 메트릭 LOC 메트릭 : 원시코드의 줄을 세는 것 싸이클로매틱 복잡도 메트릭 : 프로그램을 통과하는 독립된 경로의 개수이며 필요한 테스트의 횟수 시스템 메트릭 신뢰도 메트릭 MTBF = MTTF + MTTR MTBF(Mean Time Between Failure) : 고장 사이의 평균 시간 MTTF(Mean Time To Failure) : 고장 까지의 평균시간 MTTR(Mean Time To Repair) : 수리 평균시간

객체지향 소프트웨어의 품질 메트릭 Chidamber & Kamerer의 메트릭 클래스 당 가중 메소드(Weighted Method per Class) WMC(C) = 𝑪 𝒎𝟏 + 𝑪 𝒎𝟐 +…+ 𝑪 𝒎𝒏 𝑪 𝒎𝒏 , i=1,2,..n : 클래스 C에 있는 메소드의 복잡도 자식 노드의 개수(Number of Children) 해당 클래스의 상속 구조에서 직계 자식 클래스의 수 NOC(C) = |{C’:C’는 C의 직계 자식 클래스}| NOC=0 : Point, Square, LinkNode, PolygonNode NOC=1 : Rectangle, Triangle NOC=2 : Polygon

객체지향 소프트웨어의 품질 메트릭 상속 트리의 깊이(Depth of Inheritance Tree) 상속 트리의 루트로부터 해당 클래스까지 가장 싶은 상속 경로 DIT(C) = 0, 부모 클래스가 없는 경우 DIT(C) = 1+max({DIT(C’): C’ 는 해당 클래스의 직계 부모 클래스}) DIT=0 : Point, Polygon, LinkListNode, PolygonNode 클래스 DIT=1 : Rectangle, Triangle 클래스 DIT=2 : Square 클래스

객체지향 소프트웨어의 품질 메트릭 객체 클래스 사이의 결합(Coupling Between Object Classes) 해당 클래스가 의존하고 있는 클래스의 개수 CBO(C) = |{C’:C 클래스가 C’ 클래스에 의존함}| 의존 관계 : 상속과 집합 관계를 포함 CBO=0 : CBO=1 : Point와 Polygon 클래스 사이 CBO=2 : Polygon은 Point와 LinkListNode 영향을 받음 CBO=3 : LinkListNode는 자기 자신과 Polygon, PolygonNode의 영향 을 받음 CBO가 클수록 이해하고, 테스트하고, 유지보수 및 재사용이 어렵다

객체지향 소프트웨어의 품질 메트릭 클래스의 책임(Response for a Class) 클래스의 메소드 개수 + 그 클래스의 메소드가 호출하는 메소드의 개수 RFC(C) = |{m:m은 클래스의 메소드 또는 C클래스의 메소드에 의하여 호출되는 메소드 m}| 메소드 응집 결핍(Lack of Cohesion in Methods) 해당 클래스의 속성을 공유하지 않는 메소드 쌍의 수 LCOM=n*(n-1)/2-2*|{ 𝒎 𝒊 , 𝒎 𝒋 ): 𝒎 𝒊 와 𝒎 𝒋 가 C의 속성을 공유한다}| n : 클래스C의 메소드 개수 LCOM값이 크면 클래스 안에 있는 요소들 사이에 공하는 속성이 없고 클래스가 모듈로써 응집도가 떨어진다

11.3 품질보증 활동 품질보증 프로세스와 표준의 정의 품질 관리 프로세스 개선 소프트웨어 제품이나 아이템이 정해진 요구에 적합하다는 것을 보장하는데 필요한 계획적이고 체계적인 활동 프로세스와 표준의 정의 품질 관리 프로세스 개선

품질 보증 조직 관리적 활동 개발 조직의 표준화 방법론을 잘 따르도록 하는 것 기술적 활동 방법론을 잘 정의하는 것

프로세스와 표준 정의 전체 조직을 위하여 소프트웨어 품질 보증을 위한 프레임워크를 개발 프로세스와 방법론의 정의 소프트웨어 개발, 품질 관리 프로세스 및 방법론의 정의 개발 주기 동안 품질보증 작업을 수행할 표준, 절차, 가이드라인의 정의 품질 측정과 평가를 위한 품질 메트릭, 지표 정의 프로세스와 방법론의 정의 전통적인 프로세스에서 필요한 품질보증 활동

프로세스와 표준 정의 품질보증 표준과 절차의 정의 품질보증 표준 품질보증 절차 기관의 장기 및 단기 목표와 품질 목표를 포함한 소프트웨어 공학 목표로부터 도출 ISO9001이나 IEEE품질 모델과 같은 품질 모델을 기초하여 정의 품질보증 절차 소프트웨어 검토 및 확인 절차와 소프트웨어 형상관리 절차를 정의하여 명확하게 문서화

프로세스와 표준 정의 메트릭과 지표의 정의 프로젝트의 프로세스와 프로덕트 측면을 측정하는데 사용될 메트릭 지표는 관리자와 개발팀이 프로세스 개선이 어떻게 진행되고 있는지 파악하는데 도움을 준다

품질관리 품질계획 품질 보증 계획(IEEE730) 각 프로젝트 초기에 이루어짐 목적 관리 표준과 관례 리뷰와 감리 형상관리 프로세스, 방법론, 도구, 기술 메트릭, 지표 품질 보증 계획(IEEE730)

품질관리 품질보증 제어 계획이 정확하게 실행되고 있는지 확인하는 것 개발자가 품질보증 활동을 수행하도록 도와주는 것 품질 관련 데이터를 모아 데이터베이스 사용하여 관리 관리자에게 프로세스 개선을 위한 제안을 하고 수용된 제안이 적절히 실현되고 프로세스에 녹아들었는지 확인

11.4 확인 및 검증 기법 확인(verification) 검증(validation) 품질 보증을 위한 검토 작업 프로덕트(소프트웨어)를 올바로 만들었는가? 검증(validation) 올바른 프로덕트(소프트웨어)를 만들었는가? 품질 보증을 위한 검토 작업

인스펙션 품질 개선과 비용 절감을 위한 기법으로 사용 프로덕트를 공통되는 오류, 변칙, 표준이나 관례의 부적합 리스트와 체크해 보는 작업 인스펙션 과정

워크스루 단순한 테스트 케이스를 이용하여 프로덕트를 수작업으로 수행 개발자가 포함된 기술 스텝들이 참석

동료 검토 프로덕트를 동료가 검토 모든 소프트웨어 프로젝트 결과물에 대하여 적용 사람이 판단할 필요가 있는 문제점을 파악하는데 효과적

11.5 프로세스 개선 CMM ISO의 SPICE

CMM 미래의 고객이 소프트웨어 공급업자가 어떤 점이 부족하며 어떤점이 강한지 발견하기 위하여 평가하는 기준 소프트웨어 개발자 스스로 프로세스 능력을 평가하고 개선의 방향을 설정하는 것

CMM CMM의 구조

ISO 9001 SPICE (Software Process Improvement and Capability dEtermination) 소프트웨어 프로세스 평가를 위한 구제 표준

11.6 품질보증 도구 정적분석도구 메트릭 도구

Questions?