본문 바로가기

소프트웨어공학115

기능점수(Function Point) ISO/IEC 14143, 기능점수, 데이터기능점수(ILF, ELF), 트랜잭션기능점수(EI, EO, EQ) I. 요구기능을 파악하여 기능점수 분석법을 적용한 SW규모산정방식, FP의 개요 가. 기능점수(Function Point)의 정의 - 소프트웨어의 크기를 결정하는 소프트웨어 기능 유형 별 수량과 성능 및 품질 요인들의 영향도를 고려하여 계산되는 SW 규모 산정 방식 - 특징 : 기능 중심의 산정, 복잡도 산정 시 주관 개입 - 1979년 IBM FPA 소개, 1986년 국제기능사용자그룹(IFOUG)의 발족으로 활성화, ISO/IEC 14143 표준 제정 나. 기능점수의 등장배경 등장배경 내용 추정의 어려움 소프트웨어 개발 초기 프로그램 LOC를 추정하기 어려움 환경의 영향 동일한 기능의 소프트웨어.. 2021. 2. 4.
소프트웨어 비용산정 LOC계산, COCOMO, 기능점수(Function Point) I. 소프트웨어 개발 비용 예측 활동, 소프트웨어 비용산정의 개요 가. 소프트웨어 비용산정의 정의 - 소프트웨어 개발에 필요한 기능과 규모를 기반으로 직접적으로 필요한 비용을 예측하는 과학적이고 합리적인 활동 나. 소프트웨어 비용산정의 필요성 - 비용산정 오류, 사전비용분석, 비용 계약, 적정품질 관리 다. LOC 계산과 COCOMO는 시험에 나올 가능성이 매우 적음 II. 소프트웨어 규모산정 방식 분류 유형 내용 사례 하향식 산정방법 경험적, 개발자 합의 등을 통해 규모 추정 전문가판단 Delphi 방식(전문가판단+조정자) 상향식 산정방법 업무분류구조 정의, 각 구성요소에 대한 독립적 산정 후 집계 LOC 기법, 본 수, 개발 단계별 인원.. 2021. 2. 4.
코드 난독화(Code Obfuscation) 구획 난독화, 데이터 난독화, 제어 난독화, 예방 난독화, 집단 난독화 가. 코드 난독화(Code Obfuscation)의 정의 - 역공학을 통한 보안 취약점 공격에 대비하기 위한 기술로 코드를 복잡하게 만들어 원시코드를 알아보기 힘들게 하는 기술 나. 코드 난독화의 종류 종류 설명 소스코드 난독화 C/C++/JAVA등의 프로그램 소스 코드를 알아보기 힘든 형태로 바꾸는 기술 바이너리 난독화 컴파일 후에 생성된 바이너리를 역공학을 통해 분석하기 힘들게 변조하는 기술 II. 코드 난독화의 기술 분류 및 기법 가. 코드 난독화 기술 분류 구분 주요내용 수행방법 구획 난독화 (Layout Obfuscation) - 프로그램에 큰 영향을 끼치지 않는 세부적 요소들을 변화, 제거 - 내용을 상당부분 훼손시켜 복원.. 2021. 2. 4.
역공학, 재공학, 재사용 I. 개발 단계를 역으로 올라가 문서 도출, 역공학의 개요 가. 역공학(Reverse Engineering)의 정의 - 개발 단계를 역으로 거슬러 올라가 기존의 개발된 시스템의 코드나 데이터로부터 설계명세서나 요구분석서 등을 도출하는 방법 나. 역공학의 필요성 - 기존 시스템에 대한 유지보수성 확보, 변경에 따른 시스템 효율성 제고 - 메인 프레임에 대한 다운사이징 개발 시 필요, 시스템과 일치하는 문서를 생성 정보 획득 가능 다. 역공학의 개념도 개념도 입/출력 INPUT 원시코드, 목적코드, 작업 제어 절차, 라이브러리, 디스크 디렉토리, 텍스트 자료, 데이터베이스 구조, 입출력 형태와 자료, 각종 문서 OUTPUT 구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도, 자료 흐름 그래프 라. 역공.. 2021. 2. 4.
3R(Reverse Eng. Re-Eng. Reuse Eng) 역공학, 재공학, 재사용 I. 완성된 소프트웨어의 생산성 극대화 기법, 3R의 개요 가. 3R(Reverse Eng. Re-Eng. Reuse Eng)의 정의 - 완성된 소프트웨어 프로그램을 기반으로 역공학, 재공학, 재사용을 통해 소프트웨어의 생산성을 극대화 시키는 기법 나. 3R의 필요성 - 유지보수 효율성 향상 및 비용절감, 개발 생산성 향상, 이해 변경 테스트 용이 - 변경 요구사항에 대한 신속한 대응, 소프트웨어 위기 극복 II. 3R의 개념도 및 구성 가. 3R의 개념도 나. 3R의 구성 역공학 - 개발 단계를 역으로 거슬러 올라가 기존의 개발된 시스템의 코드나 데이터로부터 설계명세서나 요구사항분석서 등을 도출하는 작업 재공학 - 역공학, 재구조화 등의 기술을 이용하여 분석하고 정보를 추출하여.. 2021. 2. 4.
정형기술검토(FTR, Formal Technical Review) 정형기술검토, Review, Inspection, Walk-through I. 제품의 오류 식별, FTR의 개요 가. 정형기술검토(FTR, Formal Technical Review)의 정의 - 프로젝트 이해관계자들이 모여 프로젝트 산출물의 오류 발견 및 고객의 요구사항과 품질을 만족하는지 검토하는 품질보증 기법 나. FTR의 특징 특징 내용 모든 단계 수행 요구사항 검토에서 인수테스트의 최종 검토까지 V모델 모든 단계 수행 오류비용 감소 개발 초기에 수행 할수록 오류비용 감소(Snowball Effect) 산출물 결정 검토의 끝에서 모든 FTR참가자들은 산출물의 승인, 거절을 결정 형상통제의 시작점 승인 절차를 거쳐 단계별 기준선이 설정, 형상통제의 시작점 결함제거 FTR 수행 후 중대한 결함이 발생하.. 2021. 2. 3.
소프트웨어 형상관리(Software Configuration Management) 가시성, 추적성, 형상통제, 식별->통제->감사->기록 I. 소프트웨어에 가시성, 추적성 부여, 형상관리의 개요 가. 소프트웨어 형상관리(Software Configuration Management)의 정의 - 소프트웨어 생명주기 및 유지보수 과정에서 만들어지는 각 단계별 산출물을 체계적으로 관리하여 소프트웨어에 가시성, 추적성을 부여하여 품질보증활동을 향상시키는 기법 나. 소프트웨어 형상관리의 필요성 II. 소프트웨어 형상관리의 개념도 및 관리절차 가. 소프트웨어 형상관리의 개념도 기준선 (Baseline) 각 형상 항목들의 기술적 통제 시점, 모든 변화를 통제하는 시점의 기준 형상항목 프로젝트에서 공식적으로 정의, 관리되는 모든 대상 (문서,프로그램,데이터) 형상물 형상관리의 실제 대상으로 기술문서,.. 2021. 2. 3.
소프트웨어 유지보수 리만의 법칙, 유지보수 유형 I. 소프트웨어 생명연장, 소프트웨어 유지보수의 개요 가. 소프트웨어 유지보수의 정의 (TCO 관점을 항상 생각) - 소프트웨어의 생명 연장을 위해, 결함제거, 성능향상 등 변화된 환경에 적응을 위한 운영 중심의 단계 나. 소프트웨어 유지보수의 필요성 - 버그제거, 운영환경의 변화, 정부 정책의 변화, 비즈니스 절차의 변화, 미래 문제 대비 II. 소프트웨어 진화의 법칙 및 유지보수 유형 가. 리만(Lehman)의 법칙 원리 설명 지속적인 변경의 원칙 (Continuing Change) - 소프트웨어는 변경됨 - 시스템이 릴리즈 된 후, 그 시스템이 대체 될 때까지 계속 변경 프로그램 진화의 법칙 (Large Program Evolution) - 프로그램 별 변경되는 고유한 .. 2021. 2. 3.
테스트 종류 스모크, 뮤테이션, 비버깅, 블랙박스 보안, 패키지 소프트웨어, 크라우드 소싱, 임베디드 I. 테스트 종류 테스트 종류 내용 스모크 테스트 (Smoke Test) 구축된 테스트 환경에서 테스트가 가능한지 판단하기 위해 주요 모듈이나 시스템을 간단하게 테스트 하는 방법 (테스트 환경 테스트) 뮤테이션 테스트 (Mutation Test) 의도적으로 프로그램의 원시 코드를 변형시키고 이에 맞게 디자인된 테스트 데이터를 실행시켜 프로그램 코드 내에 존재할 수 있는 애매모호한 부분을 찾아내는 방법 (찾아내느냐의 여부 (1개)) 비버깅 버그들을 프로그램 소스에 랜덤으로 삽입하고 프로그래머는 그것들을 찾도록 진행, 찾지 못한 버그들의 비율이 잔존하는 실제 버그의 지표 (몇 개를 찾아내는지 체크) 블랙박스 보안시험 소.. 2021. 2. 3.
탐색적 테스팅 Test Charter, Time Boxing I. 경험기반 애자일 테스팅 기법, 탐색적 테스팅의 개요 가. 탐색적 테스팅의 정의 - 테스트 목표를 포함하는 테스트 차터(Charter)를 기반으로 정해진 시간 내(Time Boxing)에 테스트 설계, 실행, 기록, 학습을 하는 경험 기반 테스트 기법 나. 탐색적 테스팅의 특징 특징 설명 결함 집중의 원리 파레토 법칙을 활용하여 중요한 테스트부터 진행 Heuristic 기반 프로세스 또는 테스트 도구보다는 사람(지적 능력, 몰입) 중심 Time-Boxing 짧은 정해진 제한 시간 내에 테스팅하여 몰입 유도 Debriefing 회고를 통해 테스트 경험과 스킬을 공유 II. 탐색적 테스팅의 절차 및 구성요소 가. 탐색적 테스팅의 절차 계획 (Plan) - 리.. 2021. 2. 3.
반응형