전체 글 122

데이터 독립성

I. 데이터 독립성 - 데이타베이스 내 데이터, 데이터 사용자 및 응용 프로그램, 데이터베이스의 저장 구조가 서로 영향을 받지 않는 성질 -필요성: 데이터 종속성 제거, 데이터 중복성 제거 II. 데이타베이스 구조 및 구성 가. 데이타베이스 구성 데이터베이스를 3단계 구조로 나누고, 단계별로 스키마를 유지하며 스키마 사이의 대응관계를 정의하는 궁극적인 목적은 데이터 독립성 실현 나. 데이터베이스 구성 구성 설명 사례 외부 스키마 (External schema) - 데이터 베이스의 사용자나 응용 프로그래머가 접근하는 데이터 베이스를 정의한 것으로 특정 개인이나 응용에 한정된 논리적 데이터 구조 부품 마스터 정보 조회 개념 스키마 (Conceptual schema) - 범 기관적 입장에서 데이터 베이스를 정..

CBAM(Cost Benefit Analysis Model)

I. ROI 분석, CBAM 개요 -. 경제적 의사 결정에 대한 요구를 충족시키기 위해 SEI에서 ATAM을 바탕으로 소프트웨어 아키텍쳐 분석에 중점을 둔 경제적 모델링 방법 -. 아키텍쳐 결정의 비용과 이익을 모델화해서 최적화하기 위한 수단으로 ATAM의 종료시점부터 시행, ATAM의 결과물을 바탕으로 수행 -. CBAM을 통해 ROI를 도출하여 아키텍쳐 전략 선택에 활용 -. 특징: ATAM의 산출물을 기반으로 시작, 비용과 이익을 측정. 이익을 효용(utility)으로 표현 비용과 이익으로부터 투자대비효과(ROI)를 계산 의사결정자는 아키텍처 접근법을 선택할 때ROI를 판단 근거로 활용 II. CBAM 단계 단계 설명 시나리오 결정 시나리오 수집 - 기존 ATAM의 시나리오 또는 신규 시나리오 수집..

ISO/IEC 25000(SQuaRE)

I. 품질 평가 방안에 대한 표준, ISO/IEC 25000(SQuaRE)의 개요 - SW 개발 공정 각 단계에서 산출되는 제품이 사용자 요구를 만족하는지를 검증하기 위해 품질 측정과 평가를 위한 모델, 측정기법 평가방안에 대한 국제 표준 -. Software product quality requirements and evaluation -. 배경: SW 제품 품질 모델(ISO 9126), SW 품질 평가지침(ISO 14598), SW 패키지 제품품질 및 시험(ISO 12119)를 하나로 통일 여러 표준 문서가 산재되어 있어 혼란 야기 품질요구 명세부터 품질 판정까지 일관된 표준 지침서 필요 II. ISO 25000의 구성 및 구성항목 가. ISO 25000의 구성 나. ISO 25000의 구성항목 구성..

무중단 배포

I. 무중단 배포 -. 시스템에 의해 제공하는 비즈니스의 연속성과 안정성을 보장하기 위해 운영 환경에 소스 배포 시 서비스가 중단되지 않도록 코드를 배포 할 수 있는 기술 -. 소프트웨어 배포 : 소프트웨어 개발 이후 결과물을 고객에게 제공하는 방법, 시스템을 중단하는 중단배포와 시스템의 중단없이 배포하는 무중단 배포로 부류 II. 무중단 배포 기법의 종류 [KPC99-1] 가. Rolling Update(롤링 배포) 구분 설명 개념 - 일반적인 배포를 의미하며, 단순하게 인스턴스(또는 서버)에 대해 동일한 인스턴스를 띄우고, 준비가 되어 있는 상황에서 1개씩 Rolling을 통해 점진적으로 인스턴스를 변경하는 기법 - Ramped, Incremental 이라고도 불리며, 기존에 사용하고 있었던 기본적인..

리팩토링

I. 구조개선을 통한 SW 품질향상, 리팩토링 개요 -. 코딩 오류 가능성을 최소화하기 위해 프로그램 내에서 이해하기 어렵고, 수정하기 힘들며, 확장하기 어려운 코드를 원래 기능을 그대로 두면서 내부구조를 개선하는 활동 -. 소프트웨어 모듈의 외부적 기능은 수정하지 않고 내부적 구조, 관계 등을 단순화하여 소프트웨어의 유지 보수성을 향상시키는 품질 향상 기법 -. 소프트웨어를 보다 쉽게 이해할 수 있고 유지보수를 용이하게 할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변화시키는 활동 -. 소프트웨어의 이해성 및 유지보수성을 높이기 위해 code smell을 제거하여 동작의 변화없이 내부구조를 변경하는 활동 -. 결과의 변경 없이 코드의 구조를 재조정하여 가독성을 높이고, 유지보수를 편하게 하..

모듈화

I. 효율적 구성 지원 모듈화 개요 -. 프로그램을 분해하고 추상화하여 소프트웨어의 성능을 향상시키거나, 프로그램의 시험, 통합 및 수정을 용이하게 하는 설계 및 구현 기법 -. 프로그램을 효율적으로 관리할 수 있도록 하는 S/W 특성으로 시스템을 분해하고, 추상화를 통하여 S/W제품의 성능을 향상시키거나, 시스템의 디버깅 시험, 통합 및 수정을 용이하게 하는 설계방법 -. 소프트웨어 설계 원리 -. 특징: 모듈성, 응집도, 결합도 구분 설명 특징 모듈성 (Modularity) 프로그램을 효율적으로 관리할 수 있도록 하는 소프트웨어의 특성으로 시스템 분해 및 추상화를 통해 소프트웨어 성능 향상을 위한 적합한 프로그램 단위 성능향상 컴포넌트화 재사용성 응집도 (Cohesion) 모듈의 독립성을 나타내는 개..

function point

I. function point -. 사용자 관점에서 사용자가 요구하고 사용자에게 인도되는 기능을 정량적으로 산정하여 소프트웨어 규모를 측정하는 방법(ISO/IEC 14143) -. 소프트웨어 크기를 결정하는 소프트웨어 기능 유형 별 수량과 성능 및 품질 요인들의 영향도를 고려하여 계산되는 SW 규모 산정 방식 -. 정보처리의 규모와 기능의 복잡도 요인에 의거한SW 규모 산정 방법으로 개발자 중심의 물리적 접근 방식에서 벗어나, 사용자 관점에서 소프트웨어 규모 측정 모델 - 특징: 기능측정, 수요자 관점, 사전 측정 가능, 활용성, 일관성 특징 설명 기능측정 소프트웨어가 사용자에게 제공하는 기능적 요구사항을 측정 수요자 관점 '사용자가 어떠한 기능을 요구했는지'에 집중하여 측정 사전 측정 가능 실제 개발..

코드 커버리지

I. 코드 커버리지 -. 소프트웨어 테스트 수행 시 소스코드를 어느 수준까지 테스트 수행하였는가를 나타내는 기준을 의미로 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표 -. 완전 경로 테스트로부터 기준을 약하게 하여 합리적인 방법으로 테스트 케이스를 선정하는 기준 -. 코드의 구조를 테스트하는 기법은 일반적으로 특정 커버리지를 달성하기 위한 테스트를 설계하고 테스트 케이스를 도출하기 위해 사용 특징: II. 구조기반 테스팅 대상 구분 구조기반 테스팅 대상 컴포넌트 레벨 구문, 결정, 분기문, 코드 통합 레벨 콜 트리(한 모듈이 다른 모듈 호출하는 관계) 시스템 레벨 메뉴 구조, 비즈니스 프로세스, 웹 페이지 구조 II. 소스코드 커버리지 관계도 및 종류 가. 소스코드 커버리지 관..

테스트 종류

I. 소프트웨어 테스트 정의 - 노출되지 않은 숨어 있는 결함(fault)를 찾기 위해 소프트웨어를 작동시키는 일련의 행위와 절차 - 오류 발견을 목적으로 프로그램을 실행하여 품질을 평가하는 과정 II. 소프트웨어 테스트 목적 및 특징 가. 소프트웨어 테스트 목적: - 프로그램에 잠재된 오류 발견 - 기술적인 기능 및 성능의 확인 - 사용자의 요구 만족도 향상, 제품의 신뢰도 향상 나. 소프트웨어 테스트 특징 - Test Case 선정, 테스트 계획 수립에 따른 영향을 받음 - Good Case는 미발견 결함 발견 확률이 높음 - 성공적인 시험은 결함을 찾는데 있음 III. 소프트웨어 테스트 유형별 종류 및 대상별 종류 가. 소프트웨어 유형별 종류 구분 종류 특징 테스트 기법 화이트박스 테스트 - 프로그..